《数字信号处理教学课件》iir滤波器.ppt
《《数字信号处理教学课件》iir滤波器.ppt》由会员分享,可在线阅读,更多相关《《数字信号处理教学课件》iir滤波器.ppt(45页珍藏版)》请在三一办公上搜索。
1、IIR滤波器的设计,一、模拟低通滤波器的设计,1、巴特沃思低通滤波器的设计,MATLAB提供了一个叫做z,p,k=buttap(N)的函数,来设计N阶归一化的巴特沃思模拟原形滤波器,它返回数组z和p(零点和极点)以及增益k。但是,我们需要具有任意c的未归一化的巴特沃思滤波器。,可以用自定义的u_buttap(N,Omegac)函数来设计未归一化的巴特沃思模拟原形滤波器。,function b,a=u_buttap(N,Omegac);%b,a=u_buttap(N,Omegac);%b=numerator polynomial coefficients of Ha(s)%a=denominat
2、or polynomial coefficients of Ha(s)%N=Order of the Butterworth Filter%Omegac=Cutoff frequency in radians/secz,p,k=buttap(N);%z,p,k为归一化的零、极点和增益p=p*Omegac;%极点去归一化k=k*OmegacN;%增益乘 B=real(poly(z);%由零点恢复多项式B(z)b0=k;b=k*B;a=real(poly(p);%由极点恢复多项式A(z),模拟低通滤波器是由参数p,Rp,s和As描述的,设计巴特沃思滤波器的基本思想是根据这些指标得到阶数N和截止频率
3、c。可以编写函数afd_butt来实现:,function b,a=afd_butt(Wp,Ws,Rp,As);if Wp 0)endif Ws Passband edge)endif(Rp 0)end,N=ceil(log10(10(Rp/10)-1)/(10(As/10)-1)/(2*log10(Wp/Ws);fprintf(n*Butterworth Filter Order=%2.0f n,N)OmegaC=Wp/(10(Rp/10)-1)(1/(2*N);b,a=u_buttap(N,OmegaC);,例1:设计一个低通巴特沃思滤波器,以满足:通带截止频率:p=0.2,通带波动:Rp
4、=7dB 阻带截止频率:s=0.3,阻带波动:As=16dB,wp=0.2*pi;Ws=0.3*pi;Rp=7;As=16;%模拟滤波器设计:b,a=afd_butt(Wp,Ws,Rp,As)%计算频率响应:w=0:1:500*pi/500;h=freqs(b,a,w);%画图subplot(2,2,1);plot(w/pi,abs(h);title(幅度响应);grid;subplot(2,2,3);plot(w/pi,20*log10(abs(h);title(幅度响应(dB);grid;subplot(2,2,2);plot(w/pi,angle(h)*180/pi);title(相位响
5、应);grid;subplot(2,2,4);impulse(b,a);title(脉冲响应);grid;,2、切比雪夫型低通滤波器的设计,MATLAB提供了一个函数z,p,k=cheblap(N,Rp),来设计一个阶数为N,通带波动为Rp的归一化切比雪夫型原型滤波器。,可以自编写函数u_chblap用于设计一个未归一化的切比雪夫型原型滤波器,它返回直接形式的Ha(s)。,以函数u_chblap为基础,可以编写一个afd_chb1函数,它根据给定的技术指标设计模拟切比雪夫型滤波器。,例2:设计一个低通切比雪夫型滤波器,以满足:通带截止频率:p=0.2,通带波动:Rp=1dB阻带截止频率:s=0
6、.3,阻带波动:As=16dB,Wp=0.2*pi;Ws=0.3*pi;Rp=1;As=16;%模拟滤波器设计:b,a=afd_chb1(Wp,Ws,Rp,As);%计算频率响应:w=0:1:500*pi/500;h=freqs(b,a,w);%画图subplot(2,2,1);plot(w/pi,abs(h);title(幅度响应);grid;subplot(2,2,3);plot(w/pi,20*log10(abs(h);title(幅度响应(dB);grid;subplot(2,2,2);plot(w/pi,angle(h)*180/pi);title(相位响应);grid;subplo
7、t(2,2,4);impulse(b,a);title(脉冲响应);grid;,3、切比雪夫型低通滤波器的设计,MATLAB提供了一个函数z,p,k=cheb2ap(N,As),来设计一个阶数为N,通带波动为As的归一化切比雪夫型原型滤波器。,函数u_chb2ap用于设计一个未归一化的切比雪夫型原型滤波器,它返回直接形式的Ha(s)。,以函数u_chb2ap为基础,可以编写了一个afd_chb2函数,它根据给定的技术指标设计模拟切比雪夫型滤波器。,例3:设计一个低通切比雪夫型滤波器,以满足:通带截止频率:p=0.2,通带波动:Rp=1dB阻带截止频率:s=0.3,阻带波动:As=16dB,Wp
8、=0.2*pi;Ws=0.3*pi;Rp=1;As=16;%模拟滤波器设计:b,a=afd_chb2(Wp,Ws,Rp,As);%计算频率响应:w=0:1:500*pi/500;h=freqs(b,a,w);%画图subplot(2,2,1);plot(w/pi,abs(h);title(幅度响应);grid;subplot(2,2,3);plot(w/pi,20*log10(abs(h);title(幅度响应(dB);grid;subplot(2,2,2);plot(w/pi,angle(h)/pi);title(相位响应);grid;subplot(2,2,4);impulse(b,a);
9、title(脉冲响应);grid;,4、椭圆低通滤波器的设计,MATLAB提供了一个函数z,p,k=ellipap(N,Rp,As),来设计一个阶数为N,通带波动为Rp,阻带衰减为As的归一化椭圆原型滤波器。,函数u_elipap用于设计一个未归一化的椭圆原型滤波器,它返回直接形式的Ha(s)。,以函数u_elipap为基础,我们提供了一个afd_elip函数,它根据给定的技术指标设计模拟椭圆低通滤波器。,例4:设计一个低通椭圆滤波器,以满足:通带截止频率:p=0.2,通带波动:Rp=1dB阻带截止频率:s=0.3,阻带波动:As=16dB,wp=0.2*pi;Ws=0.3*pi;Rp=1;A
10、s=16;%模拟滤波器设计:b,a=afd_elip(Wp,Ws,Rp,As);%计算频率响应:w=0:1:500*pi/500;h=freqs(b,a,w);%画图subplot(2,2,1);plot(w/pi,abs(h);title(幅度响应);grid;subplot(2,2,3);plot(w/pi,20*log10(abs(h);title(幅度响应(dB);grid;subplot(2,2,2);plot(w/pi,angle(h)/pi);title(相位响应);grid;subplot(2,2,4);impulse(b,a);title(脉冲响应);grid;,二、模拟数字
11、滤波器变换,1、脉冲响应不变变换,脉冲响应不变变换法的步骤如下:,1)确定T并选择模拟频率:p=p/T,s=s/T 2)根据指标p,Rp,s和As,设计模拟滤波器Ha(s),这 可由上面所讲的三种原形之一来实现。3)利用部分分式展开式,把Ha(s)展成:4)把模拟极点Pk转换成数字极点,得到数字滤波器,MATLAB工具箱提供了函数impinvar,它采用冲激响应不变法来实现模拟滤波器到数字滤波器的转换。,bz,az=impinvar(b,a,Fs)可将模拟滤波器(b,a)变换成数字滤波器(bz,az),两者的冲激响应不变,即模拟滤波器的冲激响应按h抽样后等同于数字滤波器的冲激响应。当缺少参数F
12、s时,抽样频率Fs取缺省值1Hz。,例5:用巴特沃思滤波器原型设计一个低通数字滤波器,满足通带截止频率:p=0.2,通带波动:Rp=1dB阻带截止频率:s=0.3,阻带波动:As=15dB,wp=0.2*pi;%digital Passband freq in Hzws=0.3*pi;%digital Stopband freq in HzRp=1;%Passband ripple in dBAs=15;%Stopband attenuation in dB%模拟原型指标的频率逆映射T=1;Fs=1/T;%Set T=1OmegaP=wp/T;%Prototype Passband freqO
13、megaS=ws/T;%Prototype Stopband freq%模拟巴特沃思原型滤波器计算cs,ds=afd_butt(OmegaP,OmegaS,Rp,As);%脉冲响应不变变换b,a=impinvar(cs,ds,Fs);,%画图h,w=freqz(b,a);subplot(2,2,1);plot(w/pi,abs(h);title(幅度响应);grid;subplot(2,2,2);plot(w/pi,angle(h);title(相位响应);grid;subplot(2,2,3);plot(w/pi,20*log10(abs(h);title(幅度响应(dB);grid;n=0
14、:1:59;imp=1;zeros(59,1);y=filter(b,a,imp);subplot(2,2,4);plot(n,y);title(脉冲响应);grid;,2、双线性变换,MATLAB工具箱提供了函数bilinear()实现双线性变换。,numd,dend=bilinear(num,den,Fs)把模拟滤波器的传递函数模型转换成数字滤波器的传递函数模型,其中Fs为抽样频率。双线性变换步骤如下:,1)选择T值,设计时它是任意的,可以置为1。2)根据截止频率p和s进行预修正,即:3)设计模拟滤波器。4)最后,设 化简得到为z-1 的有理函数的H(z)。,例6:用切比雪夫I型滤波器原型
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数字信号处理教学课件 数字信号 处理 教学 课件 iir 滤波器
![提示](https://www.31ppt.com/images/bang_tan.gif)
链接地址:https://www.31ppt.com/p-4952578.html