有没高手能帮我修改一下 MATLAB 数字信号处理程序中的错误

来源:百度知道 编辑:UC知道 时间:2024/09/20 03:21:33
n=20;
rp=0.5;
wn=[100 8000]/10000
[b,a]=cheby1(n,rp,wn);
[h,w]=freqz(b,a,512);
h1=20*log10(abs(h));
m=1,b1=abs(b);
while fix(b1)>0
b1=abs(b)/(2^m);
m=m+1;
end
c1=fix(b1*2^6);
c=sign(b)*c1*2^(m-6-1);
n=1;b2=abs(a);
while fix(b2)>0
b2=abs(b)/(2^n);
n=n+1;
end
d1=fix(b2*2^6);
d=sign(a)*d1*2^(m-6-1);
[hq,w]=freqz(c,d,512);
h2=20*log10(abs(hq));
subplot(121);
plot(w/pi,h1,'b',w/pi,h2,'r');
grid;
axis([0 1 -100 100]);
xlabel('归一化频率');ylabel('幅频响应特性');
legend('量化前','量化后');title('相位量化前后幅频特性分析');
subplot(122);
[z1,p1,k1]=tf2zp(b,a);
[z2,p2,k2]=tf2zp(c,d);
zplaneplot([z1,z2],[p1,p2],[k1,k2],{'s','+','d','*'});
legend('量化前的零点','量化前的极点','量化后的零点','量化后的极点');
title('相位量化前后零极点分析');
c=sig

n=20;
rp=0.5;
wn=[100 8000]/10000
[b,a]=cheby1(n,rp,wn);figure(1)
freqz(b,a);
m=1;b1=abs(b);
while fix(b1)>0
b1=abs(b)/(2^m);
m=m+1;
end
c1=fix(b1*2^6);
c=sign(b).*c1.*2^(m-6-1);
n=1;b2=abs(a);
while fix(b2)>0
b2=abs(b)/(2^n);
n=n+1;
end
d1=fix(b2*2^6);
d=sign(a).*d1.*2^(m-6-1);figure(2)
freqz(c,d);

谢谢