第 5 次实验
实验项目名称
实验 5 无限冲激响应数字滤波器设计
实
验
目
的
实
验
原
理
1、掌握双线性变换法及脉冲相应不变法设计 IIR 数字滤波器的具体
设计方法;
2、熟悉用双线性变换法及脉冲响应不变法设计低通、高通和带通 IIR
数字滤波器的计算机编程。
在 MATLAB 中,可以用下列函数辅助设计 IIR 数字滤波器:
(1)利用 buttord 和 cheb1ord 可以确定低通原型巴特沃斯和切比雪夫滤
波器的阶数和截止频率;
( 2 ) [num,den]=butter ( N,Wn ) ( 巴 特 沃 斯 ) 和 [num,den]=cheby1
(N,Wn),[num,den]=cheby2(N,Wn)(切比雪夫 1 型和 2 型)可以进行
滤波器的设计;
(3)lp2hp,lp2bp,lp2bs 可以完成低通滤波器到高通、带通、带阻滤波
器的转换;
(4)使用 bilinear 可以对模拟滤波器进行双线性变换,求得数字滤波器
的传输函数系数;
(5)利用 impinvar 可以完成脉冲响应不变法的模拟滤波器到数字滤波器
的转换。
1
预习
要求
在 MATLAB 中,熟悉函数 butter、cheby1、cheby2 的使
用,其中:
[num,den]=butter(N,Wn)巴特沃斯滤波器设计;
[num,den]=cheby1(N,Wn)切比雪夫 1 型滤波器设计;
[num,den]=cheby2(N,Wn)切比雪夫 2 型滤波器设计。
结合课本学习在 MATLAB 中进行数字滤波器的设计;
给出 IIR 数字滤波器参数和滤波器的冲激响应,绘出它们
的幅度和相位频响曲线,讨论它们各自的实现形式和特
点。
一、实验内容
利用 MATLAB 编程,用脉冲响应不变法和双线性变
换法设计一个数字带通滤波器,指标要求如下:
通带边缘频率:
,
,通带峰值
起伏:
;
阻带边缘频率:
,
,最小阻带衰减:
实验内容
。
1)双线性变换法
(1)设计步骤
1、确定数字滤波器的性能指标:通带波动 Rp、阻
带内的最小衰减 As、采样频率 fs
2、确定相应的数字角频率
fs=2000;
Rp=1dB;
As=40dB;
w1=0.45*pi;
w2=0.65*pi;
wr1=0.3*pi;
wr2=0.8*pi;
2
3、计算经过预畸的相应模拟带通原型的频率
w11=2*Fs*tan(w1/2);
w22=2*Fs*tan(w2/2);
wr11=2*Fs*tan(wr1/2);
wr22=2*Fs*tan(wr2/2);
4、根据 w11,w22,wr11,wr22 计算模拟带通原型滤波
器的阶数 N,并求得带通原型的传递函数 Ha(s);
5、使用
代入
Ha(s),求出所设计的传递函数 H(z);
6、分析滤波器特性,检查其指标是否满足要求。
(2)程序代码
wr22],Rp,As,'s');
Rp=1;As=40;fs=2000;
w1=0.45*pi;
w2=0.65*pi;
wr1=0.3*pi;
wr2=0.8*pi;
w11=2*fs*tan(w1/2);
w22=2*fs*tan(w2/2);
wr11=2*fs*tan(wr1/2);
wr22=2*fs*tan(wr2/2);
[N,wn]=cheblord([w11 w22],[wr11
[B,A]=cheby1(N,Rp,wn,'s');
[num,den]=impinvar(B,A,fs);
[h,w]=freqz(num,den);
f=w/(pi*2);
plot(f,20*log10(abs(h)));
axis([0,0.5,-300,5]);
grid;
xlabel('频率/kHz')
ylabel('幅度/dB')
(3)下图为 MATLAB 的计算结果。
3
2)脉冲响应不变法
(1)设计步骤
1、确定数字滤波器的性能指标:通带波动 Rp、阻
带内的最小衰减 As、采样频率 Fs
2、确定相应的数字角频率
fs=2000;
Rp=1dB;
As=40dB;
w1=0.45*pi;
w2=0.65*pi;
wr1=0.3*pi;
wr2=0.8*pi;
3、计算相应模拟带通原型的频率
w11=2*fs*tan(w1/2);
w22=2*fs*tan(w2/2);
wr11=2*fs*tan(wr1/2);
wr22=2*fs*tan(wr2/2);
4、根据 w11,w22,wr11,wr22 计算模拟带通原型滤波
器的阶数 N,并求得带通原型的传递函数 Ha(s);
5、根据
4
滤波器系统函数 Ha(s)转换成数字滤波器系统函数 H(z);
6、分析滤波器特性,检查其指标是否满足要求。
,将模拟
(2)程序代码
Rp=1;As=40;fs=2000;
w1=0.45*pi;
w2=0.65*pi;
wr1=0.3*pi;
wr2=0.8*pi;
w11=fs*w1;
w22=fs*w2;
wr11=fs*wr1;
wr22=fs*wr2;
[N,wn]=buttord([w11 w22],[wr11
[B,A]=butter(N,wn,'s');
[num,den]=impinvar(B,A,fs);
[h,w]=freqz(num,den);
f=w/(pi*1000);
plot(f,20*log10(abs(h)));
grid;
xlabel('频率/kHz')
ylabel('幅度/dB')
wr22],Rp,As,'s');
(3)下图为 MATLAB 的计算结果。
5
实验总结
通过这次实验了解了双线性变换法及脉冲响应
不变法设计 IIR 数字滤波器的具体设计方法,并且学
会了用双线性变换法及脉冲响应不变法设计低通、
高通和带通 IIR 数字滤波器的计算机编程。在实验的
过程中还有很多不足的地方,还需多多练习。
指导教师意见
签 名 :
年
月
日
6