双线性变换法IIR数字滤波器设计一、实验目的1、掌握用双线性变换法设计低通IIR数字滤波器的基本原理和算法。2、掌握用双线性变换法设计高通和带通IIR数字滤波器的基本原理和算法。3、进一步了解数字滤波器和模拟滤波器的频率响应特性。二、实验原理与计算方法1、双线性变换法设计IIR低通数字滤波器的基本原理和算法双线性变换法设计数字滤波器,采用了二次映射的方法,就是先将整个s平面压缩到s1平面的一个TjTj~的横形条带范围内,然后再将这个条带映射到z平面上,就能建立s平面到z平面的一一对应关系。对于低通数字滤波器,映射关系为zzTzzTs11211211(1)其中T为抽样周期。用双线性变换法设计低通IIR数字滤波器的基本步骤,首先根据设计要求确定相应的模拟滤波器的传递函数)(sHa,再应用(1)式得数字滤波器的传递函数)(zHzzTsasHzH112)()((2)通常可以给定的参数为:低通数字滤波器通带边界频率ppf21、阻带边界频率ssf21和对应的通带衰减函数p、阻带衰减函数s。s1平面中的模拟角频率1与数字角频率的关系为线性关系T1,在计算模拟滤波器的阶数N、极点si和传递函数)(sHa之前,应作预畸变处理22tan22tan21TfTTT(3)模拟滤波器的阶数N、极点si和传递函数)(sHa的计算方法与冲激响应不变法相同,可以采用Butterworth逼近或Chebyshev逼近。2、双线性变换法设计IIR高通、带通、带阻数字滤波器的基本原理和算法由于双线性变换法获得的数字滤波器频率响应特性中不会出现混叠现象,因此可以适用于高通、带通和带阻滤波器的设计。IIR数字滤波器的设计通常要借助于模拟低通滤波器的设计,由原型低通滤波器到其他形式(高通、带通、带阻)IIR数字滤波器的频带变换有模拟频带变换法和数字频带变换法。(1)模拟频带变换法首先将给定的对数字滤波器(DF)的技术要求转换为一个低通模拟滤波器(AF)的技术要求,根据这种要求用某种逼近设计出原型的低通模拟滤波器(LPAF),计算出模拟滤波器的阶数N、极点si和传递函数)(sHa,再按照双线性变换的变换关系,将模拟滤波器的传递函数)(sHa转换为数字滤波器的传递函数)(zH。表8-1中列出了将给定的对数字滤波器(DF)的技术要求直接转换为对一个低通模拟滤波器(AF)的技术要求的频率预畸变校正关系和转换公式。表8-1双线性变换和频率预校正的计算公式变换类型变换关系频率预校正备注低通变换zzs112tan2TTf2其中,T为抽样周期,f为模拟频率中心频率21210sinsin)sin(cos其中,21,分别为数字带通滤波器通带的上下边界角频率,或数字带阻滤波器阻带的上下边界角频率。高通变换zzs112tan122tan22spsppTT带通变换2201cos21zzzsssspsincoscossincoscos0220带阻变换202cos211zzzsssspΩΩcoscossincoscossin0202例:数字高通滤波器的设计首先将给定的数字高通滤波器的技术指标根据公式转换为模拟低通滤波器的技术指标,利用cheb1ord(Wp,Ws,ap,as,'s')函数求出chebyshev模拟低通滤波器的阶数N,再利用cheb1ap(N,ap)函数求出模拟低通滤波器系统函数)(sHa的零极点,zp2tf(z,p,k)函数将零极点转换为系统函数系数;然后利用lp2hp由模拟低通滤波器的系统函数得到模拟带通滤波器的系统函数,bilinear函数则用于实现双线性变换法由模拟带通滤波器系统函数)(sHa计算数字数字带通滤波器系统函数)(zH的系数。(2)数字频带变换法首先将给定的对数字滤波器(DF)的技术要求转换为一个低通模拟滤波器(AF)的技术要求,用双线性变换法将原型的低通模拟滤波器(LPAF)映射为低通数字滤波器,再将数字低通滤波器根据相应的变换公式经频带变换到各型数字滤波器。例:数字高通滤波器的设计函数[bhp,ahp]=zmapping(blp,alp,Nz,Dz)用来实现从数字低通滤波器得到数字高通滤波器的有理函数。%数字滤波器技术指标wp=0.2*pi;ws=0.3*pi;Rp=1;As=15;%对应的模拟滤波器技术指标T=1;Fs=1/T;Wp=(2/T)*tan(wp/2);=(2/T)*tan(ws/2);[cs,cd]=afd_chb1(Wp,Ws,Rp,As);%Chebyshev模拟滤波器[blp,alp]=bilinear(cs,cd,Fs)%双线性变换wphp=0.6*pi;%数字高通滤波器截止频率%低通-高通频带变换alpha=-(cos((wplp+wphp)/2))/(cos((wplp+wphp)/2))Nz=-[alpha,1];Dz=[1,alpha];[bhp,ahp]=zmapping(blp,alp,Nz,Dz)%数字高通滤波器的系统函数系数(3)IIR数字滤波器的设计可利用MATLAB提供的函数直接设计相应的数字滤波器。函数buttord和cheb1ord用来根据给定的技术指标求出滤波器的阶数N和边界频率wn,butter和cheby1则根据阶数和边界频率设计相应的数字滤波器。输入的参数不同则所设计的滤波器类型不同。[N,wn]=buttord(wp,ws,Rp,As);[N,wn]=cheb1ord(wp,ws,Rp,As);[b,a]=butter(N,wn);[b,a]=cheby1(N,Rp,wp);三、实验内容(1)ChebyshevIIR数字带通滤波器满足如下技术指标低阻带边界频率Hz1001sf,高阻带边界频率Hz6001sf,阻带衰减函数dB18s低通带边界频率Hz2001pf,高通带边界频率Hz4002pf,通带波动dB2抽样频率Hzf2000,记录所得的模拟滤波器的阶数N,画出模拟滤波器和数字滤波器的频率响应的幅频和相频特性曲线。A.实验代码:fs1=100;fs2=600;fp1=200;fp2=400;fsa=2000;As=18;Rp=2;T=1./fsa%对应的模拟滤波器技术指w1=2.*pi.*(fp1./fsa)%Chebyshev模拟滤波器w2=2.*pi.*(fp2./fsa)wp1=2*pi*fp1*T;wp2=2*pi*fp2*Tws2=2.*pi.*(fs2./fsa)cosw0=(sin(w1+w2))./(sin(w2)+sin(w1))w0=acos(cosw0);bw=wp2-wp1Wp=(cosw0-cos(w2))./sin(w2)Ws=(cosw0-cos(ws2))./sin(ws2)[N,omgn]=cheb1ord(Wp,Ws,Rp,As,'s')%返回模拟低通滤波器阶数N和边界频率[z,p,k]=cheb1ap(N,Rp)%得系统函数零极点[blp,alp]=zp2tf(z,p,k);%由零极点得系数[bhp,ahp]=lp2bp(blp,alp,w0,bw)%模拟低通到模拟带通[bdf,adf]=bilinear(bhp,ahp,1)%双线性变换将模拟带通滤波器转换成数字带通滤波器[BPA,wa]=freqs(bhp,alp,fsa);[BPD,wd]=freqz(bdf,adf,fsa);subplot(2,2,1);plot(abs(BPA));title('模拟带通滤波器幅频特性')subplot(2,2,2);plot(angle(BPA));title('模拟带通滤波器相频特性')subplot(2,2,3);plot(abs(BPD));title('数字带通滤波器幅频特性')subplot(2,2,4);plot(angle(BPD));title('数字带通滤波器相频特性')实验截图:(2)ChebyshevIIR数字带阻滤波器满足如下技术指标低阻带边界频率Hz10001sf,高阻带边界频率Hz20001sf,阻带衰减函数dB20s低通带边界频率Hz5001pf,高通带边界频率Hz30002pf,通带波动dB3抽样频率kHzf10,记录所得的模拟滤波器的阶数N,画出模拟滤波器和数字滤波器的频率响应的幅频和相频特性曲线。实验代码:fs1=1000;fs2=2000;fp1=500;fp2=3000;fsa=10000;As=18;Rp=2;T=1./fsa%对应的模拟滤波器技w1=2.*pi.*(fp1./fsa);%Chebyshev模拟滤波器w2=2.*pi.*(fp2./fsa)wp1=2*pi*fp1*T;wp2=2*pi*fp2*Tws2=2.*pi.*(fs2./fsa)cosw0=(sin(w1+w2))./(sin(w2)+sin(w1))w0=acos(cosw0);bw=wp2-wp1Wp=(cosw0-cos(w2))./sin(w2)Ws=(cosw0-cos(ws2))./sin(ws2)[N,omgn]=cheb1ord(Wp,Ws,Rp,As,'s')%返回模拟低通滤波器阶数N和边界频率?n[z,p,k]=cheb1ap(N,Rp)%得系统函数零极点[blp,alp]=zp2tf(z,p,k)%由零极点得系数[bhp,ahp]=lp2bs(blp,alp,w0,bw)%模拟低通到模拟带通[bdf,adf]=bilinear(bhp,ahp,1)%双线性变换将模拟带通滤波器转换成数字带通滤波器[BPA,wa]=freqs(bhp,alp,fsa)[BPD,wd]=freqz(bdf,adf,fsa)subplot(2,2,1);plot(abs(BPA));title('模拟带阻滤波器幅频特性')subplot(2,2,2);plot(angle(BPA));title('模拟带阻滤波器相频特性')subplot(2,2,3);plot(abs([BPD]));title('数字带阻滤波器幅频特性')subplot(2,2,4);plot(angle([BPD]));title('数字带阻滤波器相频特性')实验截图: