IIR数字滤波器的设计
一、实验目的
(1)掌握双线性变换法及脉冲响应不变法设计IIR数字滤波器的具体设计方法及其原理,熟悉用双线性变换法及脉冲响应不变法设计低通、高通和带通IR数字滤波器的计算机编程。
(2)观察双线性变换及脉冲响应不变法设计的滤波器的频域特性,了解双线性变换法及脉冲响应不变法的特点。
(3)熟悉巴特沃斯滤波器、切比雪夫滤波器和椭圆滤波器的频率特性。
二、主要仪器设备
硬件:微型计算机
软件:Matlab
三、实验内容
1、;
设计一切比雪夫高通滤波器,观察其通带损耗和阻带衰减是否满足要求。(提示:P163 例4.5)
程序代码:
wp=2*1000*tan(2*pi*300/(2*1000));
ws=2*1000*tan(2*pi*200/(2*1000));
[N,wn]=cheb1ord(wp,ws,0.8,20,'s');
[B,A]=cheby1(N,0.8,wn,'high','s');
[num,den]=bilinear(B,A,1000);
[h,w]=freqz(num,den);
f=w/(2*pi)*1000;
plot(f,20*log10(abs(h)));
axis([0,500,-80,10]);
grid;xlabel('频率');ylabel('幅度/dB')
结果显示:
实验分析:
f=200Hz时阻带衰减大于30dB,通过修改axis([0,fs/2,-80,10])为axis([200,fs/2,-1,1])。发现通带波动rs满足<0.8。
2、;
分别用脉冲响应不变法和双线性变换法设计一巴特沃斯数字低通滤波器,观察所设计的滤波器的幅频特性曲线,记录带宽和衰减量,检查是否满足要求,比较这两种方法的优缺点。(提示:P162 例4.4)
程序代码:
T = 1;fs = 1000;fc = 200;fr = 300;
wp1 = 2*pi*fc;wr1 = 2*pi*fr;
[N1,wn1] = buttord(wp1,wr1,1,25,'s')
[B1,A1] = butter(N1,wn1,'s');
[num1,den1] = impinvar(B1,A1,fs);
[h1,w] = freqz(num1,den1);
wp2 = 2*fs*tan(2*pi*fc/(2*fs))
wr2 = 2*fs*tan(2*pi*fr/(2*fs))
[N2,wn2] = buttord(wp2,wr2,1,25,'s')
[B2,A2] = butter(N2,wn2,'s');
[num2,den2] = bilinear(B2,A2,fs);
[h2,w] = freqz(num2,den2);
f = w/(2*pi)*fs;
plot(f,20*log10(abs(h1)),'-.',f,20*log10(abs(h2)),'-');
axis([0,500,-100,10]);grid;xlabel('频率/Hz ');ylabel('幅度/dB')
title('巴特沃思数字低通滤波器');
legend('脉冲相应不变法','双线性变换法',1);
结果显示:
实验分析:
脉冲响应不变法的N=9,双线性变换法的N=6,由图知它们都满足要求,但脉冲响应的衰减较快,双线性变换的过渡带窄一些,且阶数比脉冲小,容易实现。
3、利用双线性变换法分别设计满足下列指标的巴特沃斯型、切比雪夫型、椭圆型数字低通滤波器,并作图验证设计结果:
比较三种滤波器的阶数。(P153 例4.2)
程序代码:
wc=2*pi*1200;wr=2*pi*2000;
rp=0.5;rs=40;fs=8000;
w1=2*fs*tan(wc/(2*fs));
w2=2*fs*tan(wr/(2*fs));
[Nb,wn]=buttord(w1,w2,rp,rs,'s') %巴特沃思
[B,A]=butter(Nb,wn,'s');
[num1,den1]=bilinear(B,A,fs);
[h1,w]=freqz(num1,den1);
[Nc,wn]=cheb1ord(w1,w2,rp,rs,'s') %切比雪夫
[B,A]=cheby1(Nc,rp,wn,'s');
[num2,den2]=bilinear(B,A,fs);
[h2,w]=freqz(num2,den2);
[Ne,wn]=ellipord(w1,w2,rp,rs,'s') %椭圆型
[B,A]=ellip(Ne,rp,rs,wn,'low','s');
[num3,den3]=bilinear(B,A,fs);
[h3,w]=freqz(num3,den3);
f=w/(2*pi)*fs;
plot(f,20*log10(abs(h1)),'-',f,20*log10(abs(h2)),'--',f,20*log10(abs(h3)),':');
axis([0,4000,-100,10]);
grid;
xlabel('Frequency in Hz');
ylabel('Gain in dB');
title('三种数字低通滤波器');
legend('巴特沃思数字低通滤波器','切比雪夫数字低通滤波器','椭圆数字低通滤波器',3);
结果显示:
实验分析:
N=9,为九阶巴特沃思低通滤波器,从图中可以看出通带波动和阻带衰减都满足设计要求。
N=5,为五阶切比雪夫低通滤波器,从图中可以看出通带波动和阻带衰减都满足设计要求。
N=4,为四阶椭圆型数字低通滤波器,从图中可以看出通带波动和阻带衰减都满足设计要求。
四、实验小结
通过本次实验,掌握双线性变换法及脉冲响应不变法设计IIR数字滤波器的具体设计方法及其原理,熟悉用双线性变换法及脉冲响应不变法设计低通、高通和带通IR数字滤波器的计算机编程。了解了双线性变换法及脉冲响应不变法的特点,熟悉了巴特沃斯滤波器、切比雪夫滤波器和椭圆滤波器的频率特性。