首页 文学文摘 时政新闻 科技科普 经济法律 健康生活 管理财经 教育教学 文化艺术 社科历史

基于Matlab的IIR数字滤波器设计方法比较及应用

作者:庞建丽, 高丽娜 来源:现代电子技术


  摘 要:滤波是信号处理的基础,滤波运算是信号处理中的基本运算,滤波器的设计也就相应成为数字信号处理的最基本问题之一。这里着重IIR数字滤波器的设计研究,应用Butterworth滤波器,Chebysheve Ⅰ型滤波器,Chebysheve Ⅱ型滤波器以及椭圆滤波器分别对低通、高通、带通和带阻四种滤波器形式进行比较仿真,通过不同设计方法的对比,将各种滤波器的设计特点很好地呈现出来。应用了Butterworth滤波器实现了混合信号频谱的分离,取得了良好的仿真效果。
  关键词:IIR数字滤波器; 频谱分离; Matlab仿真; 信号检测
  中图分类号:TN713 文献标识码:A
  文章编号:1004-373X(2010)11-0103-03
  
  Comparison of Matlab-based Design Methods and Application of IIR Digital Filters
  PANG Jian-li, GAO Li-na
  (Information Engineering Department, Huanghuai University, Zhumadian 463000, China)
  Abstract: The design of IIR digital filter is researched emphatically. The comparison of four types of low pass, high pass, band pass and band-stop filtering modes is respectively simulated with Butterworth, Chebysheve I, Chebysheve II and elliptic filters. The design features of the various filters are offered through the comparison of different design methods. The separation of mixed-signal spectrum was achieved with Butterworth filter. A good simulation effect was obtained.
  Keywords: IIR digital filter; spectrum separation; Matlab simulation; signal detection
  
  0 引 言
  数字滤波器(Digital Filter)是指输入、输出都是离散时间信号,通过一定运算关系改变输入信号所含频率成分的相对比例或者滤除某些频率成分的器件。数字滤波器在数字信号处理中起着非常重要的作用,在信号的过滤、检测与参数的估计等方面,是使用最为广泛的一种线性系统[1]。
  实现数字滤波器的方法有两种,一是采用计算机软件进行,就是把所要完成的工作通过程序让计算机来实现;二是设计专用的数字处理硬件。这个地方主要用到的就是第一种方法。即是用Matlab提供的信号处理工具箱来实现数字滤波器[2]。
  Matlab信号处理工具箱提供了丰富的设计方法,可以使得繁琐的程序设计简化成函数的调用,只要以正确的指标参数调用函数,就可以正确快捷地得到设计结果[3]。
  1 IIR数字滤波器设计方法比较
  1.1 概述
  IIR数字滤波器的最通用的方法是借助于模拟滤波器的设计方法。模拟滤波器设计已经有了相当成熟的技术和方法,有完整的设计公式,还有比较完整的图表可以查询,因此设计数字滤波器可以充分利用这些丰富的资源来进行[4-6]。
  对于IIR数字滤波器的设计具体步骤如下:
  (1) 按照一定的规则将给出的数字滤波器的技术指标转换为模拟低通滤波器的技术指标。
  (2) 根据转换后的技术指标设计模拟低通滤波器G(s)(G(s)是低通滤波器的传递函数)。
  (3) 再按照一定的规则将G(s)转换成H(z)(H(z)是数字滤波器的传递函数)。若设计的数字滤波器是低通的,上述的过程可以结束,若设计的是高通、带通或者是带阻滤波器,那么还需要下面的步骤:
  将高通、带通或带阻数字滤波器的技术指标转换为低通模拟滤波器的技术指标,然后设计出低通G(s),再将G(s)转换为H(z)。
  Matlab信号工具箱提供了几个直接设计IIR数字滤波器的函数,直接调用这些函数就可以很方便地对滤波器进行设计。这里选取巴特沃斯法、切比雪夫Ⅰ、切比雪夫Ⅱ、椭圆法四种方法进行比较。给出用上述方法设计数字滤波器的函数如下:
  Butterworth滤波器:
  [N,Wn]=buttord(Wp,Ws,Rp,Rs)
  [b,a]=butter(N,Wn)
  [b,a]=butter(N,Wn,′ftype′)
  [h,f]=freqz(b,a,n,Fs)
  其中:Wp表示通带截止频率;Ws表示阻带截止频率;Rp表示通带纹波系数;Rs表示阻带纹波系数;N表示滤波器最小阶数;Wn表示截止频率。b,a分别表示阶次为N+1的数字滤波器系统传递函数的分子和分母多项式系数向量;Fs为采样频率;n为在区间[0 Fs]频率范围内选取的频率点数;f记录频率点数。n取2的幂次方,可以提高运算的速度,因为freqz函数采用基2的FFT算法。ftype=high时,为高通滤波器;ftype=bandpass时,为带通滤波器; ftype=stop时,为带阻滤波器。
  Chebysheve Ⅰ型滤波器:
  [N,Wn]=cheb1ord(Wp,Ws,Rp,Rs)
  [b,a]=cheby1(N,Rp,Wn)
  [b,a]=cheby1(N,Rp,Wn,′ftype′)
  [h,f]=freqz(b,a,n,Fs)
  Chebysheve Ⅱ型滤波器:
  [N,Wn]=cheb2ord(Wp,Ws,Rp,Rs)
  [b,a]=cheby2(N,Rs,Wn)
  [b,a]=cheby2(N,Rs,Wn,′ftype′)
  [h,f]=freqz(b,a,n,Fs)
  椭圆滤波器:
  [N,Wn]=ellipord(Wp,Ws,Rp,Rs)
  [b,a]=ellip(N,Rp,Rs,Wn)
  [b,a]=ellip(N,Rp,Rs,Wn,′ftype′)
  [h,f]=freqz(b,a,n,Fs)
  1.2 四种设计方法比较
  (1) 在低通滤波器中的比较
  假如:
  Wp=20 Hz,Ws=50 Hz,Fs=200,
  Rp=1 dB,Rs=30 dB,分别用Butterworth低通滤波器、Chebyshev Ⅰ型低通滤波器、Chebyshev Ⅱ型低通滤波器、椭圆低通滤波器四种方法进行设计,如图1所示。
  图1 低通数字滤波器幅频响应曲线
  (2) 在高通滤波器中的比较
  假如:Wp=50 Hz,Ws=20 Hz,Fs=200,Rp=1 dB,Rs=30 dB,分别用Butterworth高通滤波器、Chebyshev Ⅰ型高通滤波器、Chebyshev Ⅱ型高通滤波器、椭圆高通滤波器四种方法进行设计,如图2所示。
  
  图2 高通数字滤波器幅频响应曲线
  (3) 在带通滤波器中的比较
  假如:Wp=[100,200],Ws=[50,250],Rp=3 dB,Rs=30 dB,Fs=1 000,分别用Butterworth带通滤波器、Chebyshev Ⅰ型带通滤波器、Chebyshev Ⅱ型带通滤波器、椭圆带通滤波器四种方法进行设计,如图3所示。
  图3 带通数字滤波器幅频响应曲线
  (4) 在带阻滤波器中比较
  假如:Wp=[100,200],Ws=[50,250],Rp=3 dB,Rs=30 dB,Fs=1 000,分别用Butterworth带阻滤波器、Chebyshev Ⅰ型带阻滤波器、Chebyshev Ⅱ型带阻滤波器、椭圆带阻滤波器四种方法进行设计,如图4所示。
  1.3 比较结果分析
  通过对各种类型的滤波器通过不同的方法进行设计,可以使一些结论得到验证。利用Butterworth滤波器、Chebysheve Ⅰ型滤波器、Chebysheve Ⅱ型滤波器、椭圆滤波器都可以进行低通、高通、带通、带阻滤波器的设计,但是各有特点。Butterworth滤波器通带内的幅频响应曲线能得到最大限度的平滑,但牺牲了截止频率的坡度。
  图4 带阻数字滤波器幅频响应曲线
  Chebysheve Ⅰ型滤波器通带内等波纹,阻带内单调;Chebysheve Ⅱ型滤波器通带内单调,然而阻带内等波纹;椭圆滤波器阻带和通带内都是等波纹的,但下降的坡度更大,而且可以以更低的阶数实现和其他两类滤波器一样的性能指标[7-9]。
  2 IIR数字滤波器应用
  假定信号的采样频率是600 Hz,输入信号的频率为100 Hz,180 Hz和250 Hz的合成正弦波信号f(t)=sin(200πt)+sin(360πt)+sin(500πt),通过截止频率是120 Hz的巴特沃斯低通滤波器,通过滤波前后频谱的对比,可以发现信号通过滤波器后,两个高频的信号180 Hz和250 Hz的正弦信号被滤掉,达到了滤波的效果。
  图5和图6给出了巴特沃斯低通滤波器滤波前后的频谱图。
  图5 合成正弦波信号滤波前频谱
  依然是上述的条件,如果想保留高频的信号250 Hz的正弦信号,可以通过巴特沃斯高通滤波器,此高通滤波器截止频率为220 Hz,滤波以后的频谱如图7所示,两个低频的信号100 Hz,180 Hz的正弦波信号被滤掉;当预保留100 Hz,250 Hz两个信号后可以通过带阻滤波器滤掉180 Hz的正弦信号,如图8所示;同理如果仅仅保留180 Hz的正弦信号可以通过带通滤波器,而滤掉其他两个信号,如图9所示。
  图6 合成正弦波信号经过低通滤波后频谱
  图7 合成正弦波信号经过高通滤波后频谱
  图8 合成正弦波信号经过带阻滤波后频谱
  图9 合成正弦波信号经过带通滤波后频谱
  3 结 语
  滤波是信号处理的基础,滤波运算是信号处理中的基本运算,滤波器的设计也就相应成为数字信号处理的最基本问题之一。信号带有噪声或无用信号,滤波器的作用是将这些干扰成分滤除,也就是让特定频段的信号通过达到对信号筛选的效果。在经典的滤波器中,通过对IIR数字滤波器的设计研究,应用Butterworth滤波器、Chebysheve Ⅰ型滤波器、Chebysheve Ⅱ型滤波器以及椭圆滤波器四种形式分别对低通、高通、带通和带阻四种滤波器形式进行比较仿真,得到其不同的仿真特性;选择三个不同频率100 Hz,180Hz和250 Hz的合成正弦波信号:
  f(t)=sin(200πt)+sin(360πt)+sin(500πt)
  进行叠加,应用了Butterworth滤波器实现了混合信号频谱的分离,得到了良好的仿真效果。
  
  参考文献
  [1]Mitra S K.数字信号处理——基于计算机的方法[M].孙洪,译.北京:电子工业出版社,2005.
  [2]飞思科技产品研发中心.Matlab 7辅助信号处理技术与应用[M].北京:电子工业出版社,2005.
  [3]张志涌.精通Matlab 6.5版[M].北京:北京航空航天大学出社,2007.
  [4]Kamen E W.应用Web和Matlab的信号与系统基础[M].高强,威银城,余萍,等译.北京:电子工业出版社,2002.
  [5]陈怀琛.数字信号处理教程——Matlab释义与实现[M].北京:电子工业出版社,2008.
  [6]Miroslav D Lutovac, Dejan V Tosic, Brian L Evans.信号处理与滤波器设计(英文版)[M].北京:电子工业出版社,2002.
  [7]黄埔堪,陈建文,楼生强.现代数字信号处理[M].北京:电子工业出版社,2003.
  [8]程佩青.数字信号处理教程[M].2版.北京:清华大学出版社,1995.
  [9]罗伯特 D 斯特拉姆.现代线性系统——使用Matlab[M].西安:西安交通大学出版社,2002.