(1)双线形变换法设计巴特沃斯IIR低通数字滤波器,代码如下:
clcclearwp = 0.4*pi;ws = 0.6*pi;rp = 2;rs = 15;
Ts = 0.0001; Fs = 1/Ts; wp = 2/Ts*tan(wp/2);ws = 2/Ts*tan(ws/2);
[N,wc]=buttord(wp,ws,rp,rs,'s');[z,p,k]=buttap(N);[b,a]=zp2tf(z,p,k);[B,A]=lp2lp(b,a,wc);[Bz,Az]=bilinear(B,A,Fs);w=0:0.001:pi;
[H,w1]=freqz(Bz,Az,w);H=20*log10(abs(H));plot(w/pi,H);grid on;
title('双线形变换法设计巴特沃斯IIR低通数字滤波器');xlabel('频率/pi');ylabel('幅度/dB');
%采样频率
低低低低低低低低低低低低IIR低低低低低低低500-50-100低低/dB-150-200-250-30000.10.20.30.40.5低低/pi0.60.70.80.91(2)直接法设计巴特沃斯IIR低通数字滤波器,代码如下::clcclearwp=0.4;ws=0.6;rp=2;rs=15;[N,wc]=buttord(wp,ws,rp,rs);[Bz,Az]=butter(N,wc);w=0:0.001:pi;[H,w1]=freqz(Bz,Az,w);H=20*log10(abs(H));plot(w/pi,H);grid on;title('直接法设计巴特沃斯IIR低通数字滤波器');xlabel('频率/pi');ylabel('幅度/dB');低低低低低低低低低IIR低低低低低低低500-50-100低低/dB-150-200-250-30000.10.20.30.40.5低低/pi0.60.70.80.91(3)设计一个巴特沃兹低通滤波器,给定技术指标是fp100Hzfst300Hzp3dBs20dB,抽样频率为Fs1000Hz。代码如下:clcclearfp=100;fs=300;Fs=1000;af = 3;as = 20;wp = 2*fp/Fs;ws = 2*fs/Fs;[n, Wn]=buttord(wp,ws,af,as);[b, a]=butter(n, Wn);figure(1)freqz(b,a,512,1);title('巴特沃斯IIR低通数字滤波器');低低低低IIR低低低低低低低0Magnitude (dB)-50-100-15000.050.10.150.20.250.3Frequency (Hz)0.350.40.450.50Phase (degrees)-50-100-150-20000.050.10.150.20.250.3Frequency (Hz)0.350.40.450.5五、实验体会 本次实验中用了双线性变换法、冲击响应不变法及直接设计法设计了IIR滤波器。通过本次实验,我更直观的看到了滤波器的特性,对理论有了更深刻的认识。Matlab是一个十分强大的工具,有很多很好用的函数,比起人工计算设计滤波器来简单了很多很多,很直观也很实用。
因篇幅问题不能全部显示,请点此查看更多更全内容