下面介绍应用Matlab和DSP芯片来实现FIR滤波器的通用模式。
1 FIR滤波器的设计方法
通常采用窗函数法设计FIR滤波器方法简单,但是这些滤波器的设计还不是最优的。 首先 通带和阻带的波动基本上相等,虽然一般需要δ2<δ1,但是在窗函数法中不能分别控制 这些参数。另外对于大部分窗函数来说,通带内或阻带内的波动不是均匀的,通常离开过渡 带时会减小。若允许波动在整个通带内均匀分布,就会产生较小的峰值波动。
最优化设计是将所有的采样值作为变量,在某一优化准则下,通过计算机进行迭代运算得 到的最优结果。其优化准则可以使用均方误差准则。但实践证明,应用最大误差最小化准则 的等波纹迫近法是更为实用的方法,应用他设计时,阶数、通带和阻带的边缘以及误差的加 权函数都可以自由选择,十分灵活,设计得到的滤波器,其误差在整个频率范围内均匀分布 ,因而可以以最低的阶数迫近提出的指标要求。
设待设计滤波器的幅频特性为HdA(ω),实际得到的滤波器的幅频特性为HA(ω),目的是使HA(ω)最好地迫近HdA(ω)。等波纹最佳一致迫近是根据设计要求,导出一组条件,使整个迫近频率区域上的迫近误差绝对值为最小,定义一个加权函数W(ω),W(ω)在不同的频带下可以取不同的值,可用他自由决定各个频 带中误差的权重。优化设计时,W(ω)为已知函数,这样,加权误差函数E(ω)可定义为:
由于Q(ω)是一个已知的三角函数,故除在点ω=0,π外,上式处处有效。令:
则可得到如下数学模型:
据此,可以把FIR滤波器的设计问题,归纳为如下的加权契比雪夫迫近问题:寻找P( ω)的一组系数a(n)(或使E(ω)的最大绝对值在整个频带上都达 到最小。即:
其中:B表示整个有意义的频带。
求解契比雪夫迫近问题的依据是交错定理(这里不再介绍)。
2 用Matlab设计FIR数字滤波器
Matlab信号处理工具箱采用Remez算法实现线性相位FIR滤波器的等波纹最佳一致逼近设计 。与其他设计方法相比,其优点是:设计指标相同时,使滤波器阶数最低;阶数相同时,使 通带最平坦,阻带最小衰减最大;通带和阻带均为等波纹形式,适合设计片段常数型滤波器 。其调用格式如下: