您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 信息化管理 > 基于MATLAB的IIR数字滤波器的设计及DSP实现12
基于MATLAB的IIR数字滤波器的设计(MATLAB在通信中的应用-----课程论文)论文作者:王紫艳专业:通信工程专业10--04班学号:311009020405指导老师:候艳芳基于MATLAB的IIR数字滤波器的设计摘要:在现代通信系统中,由于信号中经常会混有各种复杂成分,很多信号分析都是基于滤波器而进行的,而数字滤波器是通过数值运算实现滤波的,具有处理精确度高、稳定、灵活、不存在阻抗匹配问题,可以实现模拟滤波器无法实现的特殊滤功能。数字滤波器根据其冲激响应函数的时域特性,可以分为两类:无限长冲激响应(IIR)数字滤波器和有限长冲激响应(FIR)数字滤波器。传统的数字滤波器设计使用繁琐的公式计算,尤其是设计高阶滤波器时工作量很大。利用MATLAB数字信号处理(DSP)工具箱(signalprocessingtoolbox)可以快速有效的实现数字滤波器的设计与仿真。MATLAB软件的频谱分析和滤波器的分析设计功能很强,从而使数字信号处理变得十分简单。本文比较了设计IIR数字滤波器的两种方法,介绍了利用双线性变换法设计IIR滤波器的原理、步骤,并在MATLAB下进行了仿真。关键字:MATLABIIR数字滤波器DSP一引言随着数字时代的到来,数字信号处理技术在电子产品中得到越来越广泛的应用,竞争的激烈也促使是数字信号处理技术的不断发展。而数字滤波在数字信号处理过程中占有举足轻重的低位,数字滤波的优劣直接关系到数字信号处理的好坏,常用的数字滤波器有FIR数字滤波器和IIR数字滤波器,其中IIR数字滤波器具有结构简单,运算速度快,占用存储空少,较高的计算精度和较低的阶数实现,较好的选频特性等优点,等到广泛的应用。二IIR数字滤波器的理论IIR数字滤波器的特征是具有无限持续时间的冲激响应,这种滤波器也称之为递归型滤波器。IIR数字滤波器的设计常采用两种方法:一、冲激响应不变法二、双线性变换法。2.1冲激响应不变法冲激响应不变法是从时域出发,要求数字滤波器的冲激响应h(n)对应于模拟滤波器的冲激响应ha(t)的抽样,即h(n)=ha(nT),其中T是抽样周期。冲激响应不变法基本变换过程为:Ha(s)→ha(t)→h(n)→H(z)由于数字滤波器的冲激响应对应模拟滤波器冲激响应的抽样,由抽样定理可知数字滤波器的频率响应为模拟滤波器频率响应的周期延拓:12()()jakkHeHjTT其中,抽样频率为:12,,ssfTTT为了避免混叠失真要求模拟滤波器的频谱限带于折叠频率以内,即要满足:()0,2saHjT而实际的滤波器并非严格限带,所以用冲激响应不变法设计的数字滤波器不可避免地会产生混叠失真。所以此法只适于设计带限滤波器。其映射关系如下:在MATLAB工具箱中,提供了专用函数impinvar来实现以上计算,其调用格式为:格式一:[BZ,AZ]=impinvar(B,A,Fs)功能:把具有[B,A]模拟滤波器传递函数模型转换为采样频率为Fs(HZ)的数字滤波器的传递函数模型[BZ,AZ]。采样频率默认值为Fs=1。格式二:[BZ,AZ]=impinvar(B,A,Fs,TOL)功能:利用指定的容错误差TOL来确定极点是否重复。如果设置的容差增大,则函数认为相邻的很近的极点为重复极点的可能性增大。默认的TOL=0.001,即0.1%。2.2双线性变化法原理为了克服冲激响应不变法多值映射产生的频率混叠的现象,双线性变换法的映射原理是:(1)通过下面的变换公式把整个S平面压缩到中介S1平面的一条横带里(宽度从-π/T到π/T),其中C为常数可根据设计要求选取;1tan()2Tc(2)通过将此横带变换到整个Z平面,这样就使S平面和Z平面是一一对应的单值映射关系,消除了频谱混叠现象。图2-2双线性变换法的映射关系可以证明,从S平面到Z平面的映射关系为:cszcs,1111zscz由于从S→Z和从Z→S的映射规则都是分式线性变换,因此称其为双线性变换。MATLAB信号处理工具箱为实现双线型变换提供了函数bilinear,基本调用格式如下:格式一:[Zd,Pd,Kd]=bilinear(Z,P,K,Fs)功能:把模拟滤波器的零极点模型转换为数字滤波器的零极点模型。其中Fs为采样频率。格式二:[numd,dend]=bilinear(num,den,Fs)功能:把模拟滤波器的传递函数模型转换为数字滤波器的传递函数模型。格式三:[Ad,Bd,Cd,Dd]=bilinear(A,B,C,D,Fs)功能:把模拟滤波器的状态方程模型转换为数字滤波器的状态方程模型。说明:以上三种调用格式中,可以在增设一个畸变频率Fp(HZ)输入参数。在进行双线性变换之前,对采样了频率进行畸变处理,以保证频率冲激响应在双线性变换前后,在Fp处具有良好的单值映射关系。三IIR数字滤波器的设计步骤(1)按一定规则将给出的数字滤波器的技术指标转换为模拟滤波器的技术指标;(2)根据转换后的技术指标设计模拟低通滤波器H(s);(3)在按一定规则将H(s)转换为H(z);若所设计的数字滤波器是低通的,那么上述设计工作可以结束,若所设计的是高通、带通或者带阻滤波器,那么还有步骤:(4)将高通、带通或者带阻数字滤波器的技术指标先转化为低通滤波器的技术指标,然后按上述步骤(2)设计出模拟低通滤波器H(s),再将H(s)转换为所需的H(z)。四IIR数字滤波器的MATLAB设计及实现MATLAB信号工具箱提供了几个直接设计IIR数字滤波器的函数,直接调用这些函数就可以很方便地对滤波器进行设计。这里选取巴特沃斯法、切比雪夫I、切比雪夫Ⅱ、椭圆法四种方法进行比较。给出用上述方法设计数字滤波器的函数如下:Butterworth滤波器:[N,Wc]=buttoed(Wp,Ws,Rp,Rs)[b,a]=butter(N,Wc)[b,a]=butter(N,Wc,'ftype')[h,f]=freqz(b,a,n,Fs)ChebysheveI型滤波器:[N,Wc]=cheb1ord(Wp,Ws,Rp,Rs)[b,a]=cheby1(N,Rp,Wc)[b,a]=cheby1(N,WRp,n,'ftype')[h,f]=freqz(b,a,n,Fs)ChebysheveII型滤波器:[N,Wc]=cheb2ord(Wp,Ws,Rp,Rs)[b,a]=cheby2(N,Rp,Wc)[b,a]=cheby2(N,WRp,n,'ftype')[h,f]=freqz(b,a,n,Fs)椭圆滤波器:[N,Wc]=ellipord(Wp,Ws,Rp,Rs)[b,a]=ellip(N,Rp,Rs,Wc)[b,a]=ellip(N,Rp,Rs,Wc,'ftype')[h,f]=freqz(b,a,n,Fs)频率转换函数列表频率转换转换函数低通到低通0/ss[numt,dent]=lp2lp(num,den,w0)低通到高通ss/0[numt,dent]=lp2hp(num,den,w0)低通到带通0200/1)/(ssBs[numt,dent]=lp2bp(num,den,w0)低通到带阻1)/(/2000ssBs[numt,dent]=lp2bs(num,den,w0)例:设计一个数字信号处理系统,他的采样频率Fs=100HZ,希望在该系统中这几一个Butterworth型高通型数字滤波器,使其通带中允许的最大衰减RP=0.7db,阻带内的最小衰减Rs=50db,通带上的临界频率为Wp=30HZ,阻带的下限临界频率为Ws=60HZ。MATLAB源程序设计如下:Fs=100;Wp=30*2*pi;Ws=60*2*pi;rs=50;rp=0.7;[N,Wc]=buttord(Wp,Ws,rp,rs,'s');[Z,P,K]=buttap(N);[A,B,C,D]=zp2ss(Z,P,K);[AT,BT,CT,DT]=lp2hp(A,B,C,D,Wc);[num1,den1]=ss2tf(AT,BT,CT,DT);%运用双线性变换法把模拟滤波器转化为数字滤波器[num2,den2]=bilinear(num1,den1,Fs);[H,W]=freqz(num2,den2);subplot(2,1,1);plot(W*Fs/(2*pi),abs(H));grid;xlabel('频率/HZ');ylabel('幅值');%运用冲激响应不变法把模拟滤波器转化为数字滤波器[num3,den3]=impinvar(num1,den1,Fs);[H,W]=freqz(num3,den3);subplot(2,1,2);plot(W*Fs/(2*pi),abs(H));grid;xlabel('频率/HZ');ylabel('幅值');实验结果如下:0102030405000.511.5频率/HZ幅值0102030405012.51313.51414.5频率/HZ幅值五结束语滤波是信号处理的基础,滤波运算是信号处理中的基本运算,滤波器的设计也就相应成为数字信号处理的最基本问题之一。信号带有噪声或无用信号,滤波器的作用是将这些干扰成分滤除,也就是让特定频段的信号通过达到对信号筛选的效果。对于设计巴特沃斯数字滤波器来说,冲激响应不变法会发生频率响应的混叠现象,而双线性可以避免这种情况,但会发生非线性变换的问题,设计者应该根据实际需要来确定运用哪种方法。参考文献[1]程佩青.《数字信号处理教程》.清华大学出版社(第三版).2007.2[2]陈怀琛.《MATLAB及在电子信息类课程中的应用》.电子工业出版社.2006.1[3]刘纪文;徐金梧.《IIR数字滤波器的计算机设计方法》.北京科技大学学报.1999/01[4]张合全;张奎.《基于MATLAB的IIR数字滤波器设计》.科技信息(学术研究).2008/12[5]刘彬《MATLAB换记下IIR滤波器设计、仿真与验证,电子测量技术》.2011/04[6]丁玉美;高西全.《数字信号处理【M】》.西安:西安电子科技大学出版社,2000.[7]胡广书;《数字信号处理:理论、算法与实现『M]》.北京:清华大学出版社,l997.[8]罗军辉.《MATLAB7.0在数字信号处理中的应用【M】》.北京:机械工业出版社,2005.
本文标题:基于MATLAB的IIR数字滤波器的设计及DSP实现12
链接地址:https://www.777doc.com/doc-2570553 .html