IIR数字滤波器设计及其MATLAB实现
自动化学院 杨梅 201422070125
摘 要
IIR数字滤波器在设计上可以借助成熟的模拟滤波器的成果,如巴特沃斯、契比雪夫和椭圆滤波器等。在设计一个IIR数字滤波器时,我们根据指标先写出模拟滤波器的设计方法设计一个满足数字滤波器指标的模拟滤波器,然后通过一定的变换,将模拟滤波器转换成数字滤波器。本文介绍了IIR数字滤波器设计,主要分析了其在满足上述要求下的工程方法,冲激响应不变法和双线性变换法。通过理论与实践的分析对比,表明了两种方法的优弊端。
关键词 IIR数字滤波器;MATLAB;冲激响应不变法;双线性变换法 1. 引言
IIR数字滤波器的最通用的方法是借助于模拟滤波器的设
计方法。模拟滤波器设计已经有了相当成熟的技术和方法,有完整的设计公式,还有比较完整的图表可以查询,因此设计数字滤波器可以充分利用这些丰富的资源来进行。对于IIR数字滤波器的设计具体步骤: (1)按照一定的规则将给出的数字滤波器的技术指标转换为模拟低通滤波器的技术指标。 (2)
根据转换后的技术指标设计模拟低通滤波器G(s)(G(s)是低通滤波器的传递函数)。(3)再按照一定的规则将G(s)转换成H(z)(H(z)是数字滤
1
波器的传递函数).下面从原理分析在到实践来分析设计用冲激响应不变法和双线性变换法来设计IIR数字滤波器的过程。 2. 目标分析
冲激响应不变法是一种简单的转换方法,它可以将一个稳定的连续时间系统转换为一个稳定的离散时间系统,而且可以使离散时间系统的冲激响应形状和连续时间系统相同,但是,由于连续时间系统的频率响应往往不是限带频谱,因此,这种方法存在着频谱混叠的现象。这种混叠将造成频谱高端的严重失真,从而使得这种方法只适用于低通滤波器或者频谱限带的高通或带通。
与脉冲响应不变法相比,双线性变换的主要优点:靠频率的严重非线性关系得到S平面与Z平面的单值一一对应关系,整个jΩ轴单值对应于单位圆一周,这个关系就是式 所表示的,其中ω和Ω为非线性关系。如图图中看到,在零频率附近,Ω~ω接近于线性关系,Ω进一步增加时,ω增长变得缓慢, (ω终止于折叠频率处),所以双线性变换不会出现由于高频部分超过折叠频率而混淆到低频部分去的现象。双线性变换法的缺点:Ω与ω的非线性关系,导致数字滤波器的幅频响应相对于模拟滤波器的幅频响应有畸变,(使数字滤波器与模拟滤波器在响应与频率的对应关系上发生畸变)。 下面通过实例来分析两种方法设计IIR低通滤波器。 3. 实例分析
设计低通数字滤波器,要求在通带内频率低于0.2πrad时,允许幅度误差在1dB以内,在频率0.3πrad到πrad之间的阻带衰减大于
2
15dB。用脉冲响应不变法设计数字滤波器。T=1。,要求利用-切比雪夫滤波器原型来设计IIR低通滤波器。需要对信号做频谱分析,为了简便对比,对信号进行频谱分析时,这里统一采用无纲量的归一化频率单位,即模拟频率对采样频率归一化;模拟角频率对采样角频率归一化;数字频率对2π归一化。方法步骤先将技术指标转换为模拟低通滤波器的技术指标,再求出阶数N,查表,得出模拟低通滤波器G(s),按一定规则G(s)转换成H(z),并作出频谱分析的图像,利用MATLAB实现上述分析过程的程序如下: 冲激响应不变法:
wp=0.2*pi;wr=0.3*pi;Ap=1;Ar=15; T=1;Omegap=wp/T;Omegar=wr/T;
[cs,ds]=afd_chb1(Omegap,Omegar,Ap,Ar) %切比雪夫1型 [C,B,A]=sdir2cas(cs,ds); %模拟滤波器级联型
[db,mag,pha,Omega]=freqs_m(cs,ds,pi); %模拟滤波器响应 subplot(224);plot(Omega/pi,mag); title('模拟滤波器幅度响应|Ha(j\\Omega|');
[b,a]=imp_invr(cs,ds,T); %脉冲响应不变法设计 [C,B,A]=dir2par(b,a) %数字低通滤波器并联 [db,mag,pha,w]=freqz_m(b,a); %数字滤波器响应
subplot(2,2,1);plot(w/pi,mag);title('数字滤波器幅度响应|H(ej\\omega|');
subplot(2,2,2);plot(w/pi,db);title('数字滤波器幅度响应(dB)');
3
subplot(2,2,3);plot(w/pi,pha/pi);title('数字滤波器相位响应'); 双线性变换法:
wp=0.2*pi;wr=0.3*pi;Ap=1;Ar=15;
T=1;Omegap=(2/T)*tan(wp/2);Omegar=(2/T)*tan(wr/2); [cs,ds]=afd_chb1(Omegap,Omegar,Ap,Ar) %切比雪夫原型 [C,B,A]=sdir2cas(cs,ds); %模拟滤波器级联型
[db,mag,pha,Omega]=freqs_m(cs,ds,pi); %模拟滤波器响应 subplot(224);plot(Omega/pi,mag); title('模拟滤波器幅度响应|Ha(j\\Omega|'); [b,a]=bilinear(cs,ds,T); %双线性变换法设计 [C,B,A]=dir2cas(b,a) %数字低通滤波器级联型 [db,mag,pha,w]=freqz_m(b,a); %数字滤波器响应
subplot(2,2,1);plot(w/pi,mag);title('数字滤波器幅度响应|H(ej\\omega|');
subplot(2,2,2);plot(w/pi,db);title('数字滤波器幅度响应(dB)'); subplot(2,,23);plot(w/pi,pha/pi);title('数字滤波器相位响应'); delta_w=2*pi/1000;
Ap=-(min(db(1:1:wp/delta_w+1))) Ar=-round(max(db(wr/delta_w+1:1:501)))
4
因篇幅问题不能全部显示,请点此查看更多更全内容
怀疑对方AI换脸可以让对方摁鼻子 真人摁下去鼻子会变形
女子野生动物园下车狼悄悄靠近 后车司机按喇叭提醒
睡前玩8分钟手机身体兴奋1小时 还可能让你“变丑”
惊蛰为啥吃梨?倒春寒来不来就看惊蛰
男子高速犯困开智能驾驶出事故 60万刚买的奔驰严重损毁