当前位置:文档之家› matlab数字滤波器设计程序

matlab数字滤波器设计程序

%要求设计一butterworth低通数字滤波器,wp=30hz,ws=40hz,rp=0.5,rs=40,fs=100hz。

>> wp=30;ws=40;rp=0.5;rs=40;fs=100;>> wp=30*2*pi;ws=40*2*pi;>> [n,wn]=buttord(wp,ws,rp,rs,'s');>> [z,p,k]=buttap(n);>> [num,den]=zp2tf(z,p,k);>> [num1,den1]=impinvar(num,den);Warning: The output is not correct/robust.Coeffs of B(s)/A(s) are real, but B(z)/A(z) has complex coeffs.Probable cause is rooting of high-order repeated poles in A(s).> In impinvar at 124>> [num2,den2]=bilinear(num,den,100);>> [h,w]=freqz(num1,den1);>> [h1,w1]=freqz(num2,den2);>> subplot(1,2,1);>> plot(w*fs/(2*pi),abs(h));>> subplot(1,2,2);>> plot(w1*fs/(2*pi),abs(h1));>> figure(1);>> subplot(1,2,1);>> zplane(num1,den1);>> subplot(1,2,2);>> zplane(num2,den2);%要求设计一chebyshev1低通数字滤波器,wp=30hz,ws=40hz,rp=0.5,rs=40,fs=100hz. >> wp=30;ws=40;rp=0.5;rs=40;fs=100;>> wp=30*2*pi;ws=40*2*pi;>> [n,wn]=cheb1ord(wp,ws,rp,rs,'s');>> [z,p,k]=cheb1ap(n,rp);>> [num,den]=zp2tf(z,p,k);[num1,den1]=impinvar(num,den);>> [num2,den2]=bilinear(num,den,100);[h,w]=freqz(num1,den1);[h1,w1]=freqz(num2,den2);subplot(1,2,1);plot(w*fs/(2*pi),abs(h));subplot(1,2,2);plot(w1*fs/(2*pi),abs(h1));figure(2);subplot(1,2,1);zplane(num1,den1);subplot(1,2,2);zplane(num2,den2);%要求设计一chebyshev2低通数字滤波器,wp=30hz,ws=40hz,rp=0.5,rs=40,fs=100hz. wp=30;ws=40;rp=0.5;rs=40;fs=100;wp=30*2*pi;ws=40*2*pi;[n,wn]=cheb2ord(wp,ws,rp,rs,'s');[z,p,k]=cheb2ap(n,rs);[num,den]=zp2tf(z,p,k);[num1,den1]=impinvar(num,den); [num2,den2]=bilinear(num,den,100); [h,w]=freqz(num1,den1);[h1,w1]=freqz(num2,den2);subplot(1,2,1);plot(w*fs/(2*pi),abs(h));subplot(1,2,2);plot(w1*fs/(2*pi),abs(h1));figure(2);subplot(1,2,1);zplane(num1,den1);subplot(1,2,2);zplane(num2,den2);Rp,rs增大,chebyshev2的幅频响应图会好wp=500;ws=600;rp=1;rs=60;fs=1000;wp=500*2*pi;ws=600*2*pi;不明白的是双线性变换法得倒的滤波器没有冲激不变法的好。

%要求设计一chebyshev2低通数字滤波器,wp=30hz,ws=40hz,rp=0.5,rs=40,fs=100hz. wp=30;ws=40;rp=0.5;rs=40;fs=100;wp=30*2*pi;ws=40*2*pi;[n,wn]=ellipord(wp,ws,rp,rs,'s');[z,p,k]=ellipap(n,rp,rs);[num,den]=zp2tf(z,p,k);[num1,den1]=impinvar(num,den);[num2,den2]=bilinear(num,den,100);[h,w]=freqz(num1,den1);[h1,w1]=freqz(num2,den2);subplot(1,2,1);plot(w*fs/(2*pi),abs(h));subplot(1,2,2);plot(w1*fs/(2*pi),abs(h1));figure(2);subplot(1,2,1);zplane(num1,den1);subplot(1,2,2);zplane(num2,den2);Butterworth带通wp1=10;wp2=20;ws1=5;ws2=25;fs=100;rp=0.5;rs=50; wp1=10*2*pi;wp2=20*2*pi;ws1=5*2*pi;ws2=25*2*pi; wp=[wp1,wp2];ws=[ws1,ws2];[n,wn]=buttord(wp,ws,rp,rs,'s');bw=wn(2)-wn(1);wo=sqrt(wn(1)*wn(2)); [z,p,k]=buttap(n);[a,b,c,d]=zp2ss(z,p,k);[a1,b1,c1,d1]=lp2bp(a,b,c,d,wo,bw); [num,den]=ss2tf(a1,b1,c1,d1);[h3,w3]=freqs(num,den);figure(4);plot(w3/(2*pi),abs(h3));title(‘模拟滤波器的幅频特性’);figure(5);plot(w3/(2*pi),angle(h3));title(‘模拟滤波器的相频特性’);figure(6);zplane(num,den);title(‘模拟滤波器的零极点图’);[num1,den1]=impinvar(num,den,fs);[h2,w2]=freqz(num1,den1);[num2,den2]=bilinear(num,den,fs);[h1,w1]=freqz(num2,den2);figure(1);subplot(1,2,1);plot(w2*fs/(2*pi),abs(h2));title(‘冲击不变法数字滤波器的幅频特性’); subplot(1,2,2);plot(w1*fs/(2*pi),abs(h1));title(‘双线性法数字滤波器的幅频特性’); figure(2);subplot(1,2,1);zplane(num1,den1);title(‘冲击不变法数字滤波器的零极点图’); subplot(1,2,2);zplane(num2,den2);title(‘双线性法数字滤波器的零极点图’); figure(3);subplot(1,2,1);plot(w2*fs/(2*pi),angle(h2));title(‘冲击不变法数字滤波器的相频特性’); subplot(1,2,2);plot(w1*fs/(2*pi),angle(h1));title(‘双线性法数字滤波器的相频特性’);Chebshev1通带wp1=10;wp2=20;ws1=5;ws2=25;fs=100;rp=0.5;rs=50; wp1=10*2*pi;wp2=20*2*pi;ws1=5*2*pi;ws2=25*2*pi; wp=[wp1,wp2];ws=[ws1,ws2];[n,wn]=cheb1ord(wp,ws,rp,rs,'s');bw=wn(2)-wn(1);wo=sqrt(wn(1)*wn(2));[z,p,k]=cheb1ap(n,rp);[a,b,c,d]=zp2ss(z,p,k);[a1,b1,c1,d1]=lp2bp(a,b,c,d,wo,bw);[num,den]=ss2tf(a1,b1,c1,d1);[num1,den1]=impinvar(num,den,fs);[h2,w2]=freqz(num1,den1);[num2,den2]=bilinear(num,den,fs);[h1,w1]=freqz(num2,den2);subplot(1,2,1);plot(w2*fs/(2*pi),abs(h2));subplot(1,2,2);plot(w1*fs/(2*pi),abs(h1));figure(1);subplot(1,2,1);zplane(num1,den1);subplot(1,2,2);zplane(num2,den2);Chebshev2通带wp1=10;wp2=20;ws1=5;ws2=25;fs=100;rp=0.5;rs=50; wp1=10*2*pi;wp2=20*2*pi;ws1=5*2*pi;ws2=25*2*pi; wp=[wp1,wp2];ws=[ws1,ws2];[n,wn]=cheb2ord(wp,ws,rp,rs,'s');bw=wn(2)-wn(1);wo=sqrt(wn(1)*wn(2));[z,p,k]=cheb2ap(n,rs);[a,b,c,d]=zp2ss(z,p,k);[a1,b1,c1,d1]=lp2bp(a,b,c,d,wo,bw);[num,den]=ss2tf(a1,b1,c1,d1);[num1,den1]=impinvar(num,den,fs);[h2,w2]=freqz(num1,den1);[num2,den2]=bilinear(num,den,fs);[h1,w1]=freqz(num2,den2);subplot(1,2,1);plot(w2*fs/(2*pi),abs(h2));subplot(1,2,2);plot(w1*fs/(2*pi),abs(h1));figure(1);subplot(1,2,1);zplane(num1,den1);subplot(1,2,2);zplane(num2,den2);椭圆通带wp1=10;wp2=20;ws1=5;ws2=25;fs=100;rp=0.5;rs=50; wp1=10*2*pi;wp2=20*2*pi;ws1=5*2*pi;ws2=25*2*pi; wp=[wp1,wp2];ws=[ws1,ws2];[n,wn]=ellipord(wp,ws,rp,rs,'s');bw=wn(2)-wn(1);wo=sqrt(wn(1)*wn(2));[z,p,k]=ellipap(n,rp,rs);[a,b,c,d]=zp2ss(z,p,k);[a1,b1,c1,d1]=lp2bp(a,b,c,d,wo,bw);[num,den]=ss2tf(a1,b1,c1,d1);[num1,den1]=impinvar(num,den,fs);[h2,w2]=freqz(num1,den1);[num2,den2]=bilinear(num,den,fs);[h1,w1]=freqz(num2,den2);subplot(1,2,1);plot(w2*fs/(2*pi),abs(h2));subplot(1,2,2);plot(w1*fs/(2*pi),abs(h1));figure(1);subplot(1,2,1);zplane(num1,den1);subplot(1,2,2);zplane(num2,den2);。

相关主题