1、实验三、IIR数字滤波器设计及应用 ———————————————————————————————— 作者: ———————————————————————————————— 日期: 15 个人收集整理 勿做商业用途
2、 本科学生验证性实验报告 学号 104090459 姓名 张静 学院 物电学院 专业、班级 10电子 实验课程名称 数字信号处理实验 教师及职称 杨卫平 教授 开课学期 2013 至 2013 学年 下 学期 填报时间 2013 年 5 月 10 日 云南师范大学教务处编印 实验序号 3 实验名称
3、IIR数字滤波器设计及应用 实验时间 2013-5-8 实验室 数字信号处理实验室 一.实验预习 1.实验目的 加深理解IIR数字滤波器的特性,掌握IIR数字滤波器的设计原理与设计方法,以及IIR数字滤波器的应用。 2.实验原理、实验流程或装置示意图 实验原理: IIR数字滤波器的设计主要通过成熟的模拟滤波器设计方法来实现。首先在频域将数字滤波器设计指标转化为模拟滤波器设计指标,将任意模拟滤波器转化为原型模拟滤波器设计指标,根据模拟低通滤波器设计指标设计出模拟低通滤波,由模拟低通滤波经过相应的复频域转换得到H(s),由H(s)经过脉冲响应不变法或双线性变换法得到所需的IIR
4、数字滤波器H(z).由此可见,IIR数字滤波器的设计的重要环节是模拟低通滤波的设计,设计模拟低通滤波器的主要方法有Butterworth、Chebyshev和椭圆等滤波器设计方法。 实验流程或装置示意图: (1)。设计一个数字滤波器,要求在0~0.2(rad)内衰耗不大于3dB,在0。6~ (rad)内衰耗不小于60dB。 [N,Wc]=buttord(0。2,0。6,3,60); [b,a]=butter(N,Wc); freqz(b,a);axis([0,1,-120,0]); (2)。设计一个数字带通滤波器,要求在100~200Hz通带内纹波不大于3dB,通带两边各5
5、0Hz外是阻带,衰耗不小于40dB。抽样频率为1000Hz。 Wp=[100 200]/500;Ws=[100—50 200+50]/500; Rp=3;Rs=40; [N,Wn]=cheb1ord(Wp,Ws,Rp,Rs) [b,a]=cheby1(N,Rp,Wn); freqz(b,a,512,1000); title(’Chebyshev Type I Bandpass Filter’); axis([0,500,—80,0]); 3.实验设备及材料 个人计算机一台及MATLAB仿真软件。 4.实验方法步骤及注意事项 实验方法步骤: 先打开电脑,然后再打开MA
6、TLAB仿真软件,在Blank M—File中输入程序,然后再编译运行程序,直到程序能编译运行为止。 注意事项: (1).为了省时间以及编译的方便性,程序应该在Blank M—File中输入,而不应该在Command Window中直接运行; (2).在使用MATLAB时应注意中英输入法的切换,在中文输入法输入程序时得到的程序是错误的; (3). MATLAB中两个信号相乘表示为x.*u,中间有个‘。’,同样两个信号相除也是如此,也就是在实验中要注意乘和点乘的区别. 二.实验内容 1.实验现象与结果 实验内容: (1). k=0:100; x=cos(pi*k/4)
7、cos(2*pi*k/3)+1; [n,wc]=buttord(1/4,2/3,0.7,20); [b,a]=butter(n,wc,'low'); freqz(b,a); 滤波器阶数 n=3,wc=0.4316; 系统函数 (2). k=0:100; x=cos(pi*k/4)+cos(2*pi*k/3)+1; [n,wc]=buttord(2/3,1/4,0.7,20) [b,a]=butter(n,wc,’high’) freqz(b,a); 滤波器阶数 n=3,wc=0。4633; 系统函数 (3)。 k=0:100; x=cos(pi
8、*k/4)+cos(2*pi*k/3)+1; [n,wc]=buttord([0.2 0.3],[0.1 0。4],0。7,20) [b,a]=butter(n,wc,'bandpass’) freqz(b,a); 滤波器阶数 n=4;wc=0.1797 0.3302; 系统函数 (4)。 k=0:100; x=cos(pi*k/4)+cos(2*pi*k/3)+1; [n,wc]=buttord([0.1 0。4],[0。2 0.3],0.7,20) [b,a]=butter(n,wc,’stop') freqz(b,a); 滤波器阶数n=4;wc= 0.1
9、707 0。3453; 系统函数 (1). 脉冲响应不变法设计巴特沃斯型滤波器: Wp=[0。3 0.6];Ws=[0.2 0。72];Ap=1;As=42; Fs=1; wp=Wp*Fs;ws=Ws*Fs; [N,Wc]=buttord(wp,ws,Ap,As); [b,a]=butter(N,Wc,'bandpass’); [d,f]=impinvar(b,a,Fs); title(’Butterworth Bandpass Filter’); freqz(b,a); axis([0,1,—120,0]); 脉冲响应不变法设计切比雪夫I型滤波
10、器: Wp=[0。3 0。6];Ws=[0.2 0。72];Ap=1;As=42; Fs=1; wp=Wp*Fs;ws=Ws*Fs; [N,Wc]=cheb1ord(wp,ws,Ap,As); [b,a]=cheby1(N,Ap,Wc,’bandpass’); [d,f]=impinvar(b,a,Fs); title(’chebychev Type I Bandpass Filter'); freqz(b,a); axis([0,1,-120,0]); 脉冲响应不变法设计切比雪夫Ⅱ型滤波器: Wp=[0.3 0.6];Ws=[0.2 0.72];Ap=1;As=42
11、 Fs=1; wp=Wp*Fs;ws=Ws*Fs; [N,Wc]=cheb2ord(wp,ws,Ap,As); [b,a]=cheby2(N,Ap,Wc,'bandpass'); [d,f]=impinvar(b,a,Fs); title('chebychev Type II Bandpass Filter'); freqz(b,a); axis([0,1,-120,0]); 脉冲响应不变法设计滤波器: Wp=[0.3 0。6];Ws=[0。2 0。72];Ap=1;As=42; Fs=1; wp=Wp*Fs;ws=Ws*Fs; [N,Wc]=ellipor
12、d(wp,ws,Ap,As); [b,a]=ellip(N,Ap,As,Wc,'bandpass’); [d,f]=impinvar(b,a,Fs); title('ÍÖÔ²´øÍ¨Â˲¨Æ÷'); freqz(b,a); axis([0,1,-120,0]); (2). 双线性变换法设计巴特沃斯型滤波器: Wp=[0.3 0。6];Ws=[0。2 0.72];Ap=1;As=42; Fs=1; wp=Wp*Fs;ws=Ws*Fs; [N,Wc]=buttord(wp,ws,Ap,As); [num,den]=butter(N,Wc,'bandpass');
13、[numd,dend]=bilinear(num,den,Fs); title(’Butterworth Bandpass Filter’); freqz(b,a); axis([0,1,-120,0]) 双线性变换法设计切比雪夫I型滤波器: Wp=[0.3 0。6];Ws=[0.2 0。72];Ap=1;As=42; Fs=1; wp=Wp*Fs;ws=Ws*Fs; [N,Wc]=cheb1ord(wp,ws,Ap,As); [b,a]=cheby1(N,Ap,Wc,'bandpass'); [d,f]=bilinear(b,a,Fs); title(’chebyc
14、hev Type I Bandpass Filter’); freqz(b,a); axis([0,1,-120,0]); 双线性变换法设计切比雪II型滤波器: Wp=[0.3 0.6];Ws=[0。2 0.72];Ap=1;As=42; Fs=1; wp=Wp*Fs;ws=Ws*Fs; [N,Wc]=cheb2ord(wp,ws,Ap,As); [b,a]=cheby2(N,Ap,Wc,’bandpass’); [d,f]=bilinear(b,a,Fs); title(’chebychev Type II Bandpass Filter’); freqz(b,
15、a); axis([0,1,—120,0]); 双线性变换法设计椭圆型滤波器: Wp=[0。3 0。6];Ws=[0.2 0。72];Ap=1;As=42; Fs=1; wp=Wp*Fs;ws=Ws*Fs; [N,Wc]=ellipord(wp,ws,Ap,As); [b,a]=ellip(N,Ap,As,Wc,'bandpass’); [d,f]=bilinear(b,a,Fs); title(’椭圆型滤波器’); freqz(b,a); axis([0,1,—120,0]); 2.对实验现象、实验结果的分析及其结论 思考题:从原型模拟低通滤波器变换到各
16、种类型的数字滤波器需经过哪些步骤? 答:先从模拟原型低通滤波器通过s域转换成各种类型的模拟滤波器,再通过脉冲不变法或双线性变换法转换到数字滤波器.具体为如下操作: (1)确定数字低通滤波器的技术指标:通带边界频率、通带最大衰减、阻带截止频率、阻带最小衰减; (2)将数字低通滤波器的技术指标转换成相应的模拟低通滤波器的技术指标; (3)按照模拟低通滤波器的技术指标设计过渡模拟低通滤波器; (4)用所选的转换方法,将模拟滤波器H(s)转换成数字低通滤波器系统函数H(z)。 用MATLAB进行数字滤波器的设计的步骤如下: (1) 将设计指标归一化处理。如果采用双线性
17、变换法,还需进行预畸变. (2) 根据归一化频率,确定最小阶数N和频率参数Wn.可供选用的阶数择函 数有:buttord,cheblord,cheb2ord,ellipord等。 (3) 运用最小阶数N设计模拟低通滤波器原型。模拟低通滤波器的创建函数 有:buttap,cheblap, cheb2ap,ellipap和besselap,这些函数输出的是零极点式形式,还要用zp2tf函数转换成分子分母多项式形式.如果想根据最小阶数直接设计模拟低通滤波器原型,可用butter,chebyl,cheby2,ellip,bessel等函数,只是注意要将函数中的Wn设为1。 (4) 根据第2步的
18、频率参数Wn,模拟低通滤波原型转换模拟低通、高通、带 通、带阻滤波器,可用函数分别是:lp21p,lp2hp,lp2bp,lp2bs. (5) 运用脉冲响应不变法或双线性变法把模滤波器转数字滤波器,调用的函数 是impinvar和bilinear.脉冲响应不变法适用于采样频率大于4倍截止频率的锐截止低通带通滤波器. (6) 根据输出的分子分母系数,调用函数buttord计算N和wc,有系数向量 可以写出数字滤波器系统函数Z,再用freqz函数验证设计结果。 结论: 由于模拟滤波器设计技术已非常成熟,且可得闭合形式的解,因此在设计IIR数字滤波器时,一般是通过模拟滤波器来设计数字滤波
19、器。在IIR数字滤波器设计中,模拟滤波器设计是基础,模拟滤波器到数字滤波器的转换是核心.而模拟滤波器的设计都是通过设计模拟低通滤波器来实现,比较常用的模拟低通滤波器有Butterworth和Chebyshev等。将模拟滤波器变换为数字滤波器的主要方法有脉冲响应不变法和双线性变换法。 总结: 通过本次实验,使我加深理解IIR数字滤波器的特性,采用MATLAB设计结果是两个系数,仿真结果是滤波器的频响特性(2张图,一张幅频特性,一张相频特性)可以用freqz直接画图,很方便。从而使我更好的掌握了IIR数字滤波器的设计原理与设计方法,以及IIR数字滤波器的应用。 教师评语及评分: 签名: 年 月 日






