APP下载

基于Matlab的FIR数字滤波器最优法设计

2016-07-10陈若冰

电子技术与软件工程 2016年7期

陈若冰

数字信号处理与现代生活息息相关,而数字滤波器是数字信号处理的重要基本元件。利用Matlab仿真设计出FIR数字滤波器,方便直观,便于根据其特性和设计要求变化参数,调试整合达到所需滤波器。本文从以下三点讲述:(1)FIR滤波器设计原理;(2)常用的三种设计FIR滤波器的方法的优劣比较;(3)最优化设计的实现。

【关键词】FIR Matlab 最优化设计 等波纹切比雪夫逼近法

FIR滤波器即有限长单位冲激响应滤波器,因其能保证任意幅频特性的同时具有严格线性的相频特性,以及其单位响应无限长特性导致其必为稳定系统,在图像处理、通信、语音、自动控制等多领域有广泛利用。

1 FIR滤波器设计原理

如图1:FIR滤波器基本结构可看为一个分节的延时线,把每一节输出加权累加以得到滤波器的输出。FIR设计核心是求出有限的脉冲响应来无限逼近给定的频率响应。滤波器阶数越高,运算时间越多,故在满足设计要求下应尽量减少滤波器阶数。

2 常用的三种设计FIR滤波器的方法的优劣比较

我们常用的是窗函数法,频率采样法,最优化设计法(采用最优化准则进行设计,虽有两种准则,但是只有窗函数中的矩形窗满足均方误差最小化准则,却因吉布斯效应使该法不能满足设计要求,所以我们采用的是切比雪夫逼近准则)。

窗函数法的方法,先根据设计要求,选取合适的阶数N和窗函数的类型w(n),使其幅频特性逼近理想滤波器幅频特性。然后加窗,其目的是截断,将无限长的理想滤波器的频率响应Hd(ejw)(由于窗函数法是在时域中进行,先将Hd(ejw)化为hd(n)),乘以窗函数w(n)产生一个被截断的脉冲响应:h(n)=hd(n)w(n)。

频率采样法是从频域出发,根据频域采样定理,对给定的理想滤波器的频率响应Hd(ejw)加以等间隔的抽样,得到:Hd(k)=Hd(ejw)\w2πk/N(k=0,1,…,N-1).再利用Hd(k)可求得FIR滤波器的系统函数H(Z)及频率响应H(ejw)。该法必然有一定的逼近误差,误差的大小取决于理想频响曲线的形状,其变换越平缓,内插函数值越接近理想值,误差越小。

最优设计法,它克服了以上两法缺点,使最大误差(即波纹的峰值)最小化,误差在整个逼近频段上均匀分布。通过对通带和阻带使用不同的加权函数,实现在不同频段(通常指通带和阻带)的加权误差最大值相同 ,从而实现其最大误差在满足性能指标的条件下达到最小值。

从表1的对比中,我们发现,基于Matlab设计FIR滤波器比较适合用最优化设计的方法,误差小,性能好,经济效益高,也方便调试参数。

3 最优化设计的实现

Matlab中利用最优化设计设计FIR数字滤波器的函数是remezord和remez函数。

(1)remezord函数(作用是估算滤波器近似阶数N,归一化频率带边界Fo ,频带内幅值Ao ,各个频带内的加权系数W),F为频带边缘频率 ,A为各个频带期望的幅度值 ,dev是通带和阻带的偏差。函数格式为:[N,Fo,Ao,W]=remezord(F,A,DEV,Fs)

(2)remez函数利用多重交换迭代算法求解等波纹最佳逼近问题,求的满足该准则的FIR数字滤波器的单位脉冲响应h(n):h=remez(N,Fo,Ao,W,ftype)

若事先不能确定要设计滤波器的阶次,调用remezord后,利用b=remez(N,Fo,Ao,W),从而设计出所需要滤波器。remezord会高或低估滤波器的阶数,得到滤波器的系数后,要检查阻带最小衰减是否满足要求。若不能,则增加阶数。最优化设计FIR数字滤波器的步骤是:

(1)给出所需的频响,加权函数和滤波器的单位样值响应h(n)的长度。

(2)由上面给定的参数来形成所需的频率响应(频域)等表达式。

(3)利用Remez多重交换迭代算法解决逼近问题。

(4)利用傅立叶逆变换计算出单位样值响应。

4 结论

Matlab的使用为设计DIR滤波器提供了极大便利,方便多次修改参数,调整设计方法,仿真检验滤波器性能等等以实现使滤波器更好的性能。

参考文献

[1]马月红等.基于Matlab的FIR数字滤波器设计与仿真[J].电子测量技术,2010,11(33).

[2]万永革.数字信号处理的MATLAB实现[M].北京:科学出版社,2007.

[3]Rolf Schaumann.Analog Filter Design3nd Indian Edition[J].Oxford University Press,2013:296-298.

[4]张德丰.详解MATLAB数字信号处理[M].北京:电子工业出版社,2010.

作者单位

兰州大学信息科学与工程学院 甘肃省兰州市 730100