随着信息时代和数字世界的到来,数字信号处理已成为当今一门极其重要的学科和技术领域。数字信号处理在通信、语音、图像、自动控制、雷达、军事、航空航天、医疗和家用电器等众多领域得到了广泛的应用。在数字信号处理应用中,数字滤波器十分重要并已获得广泛应用。数字滤波器根据其冲激响应函数的时域特性,可分为两种,即无限长冲激响应(IIR)滤波器和有限长冲激响应(FIR)滤波器。IIR滤波器的特征是具有无限持续时间的单位脉冲响应;FIR滤波器的单位脉冲响应只能延续一定时间,它由于可以很方便地实现线性相位特性和容易实现而在工程上得到广泛应用。FIR数字滤波器的设计方法有多种,如:窗函数设计法、频率采样法、最优设计法(雷米兹法)等。鉴于现有的文献多数都是仅介绍设计思想和方法,没有从实际应用和实现的角度来考虑多带FIR滤波器的设计。
FIR滤波器的滤波运算,当输入序列是有限长时,用FFT快速卷积进行计算只要进行2次FFT,1次IFFT就可完成线性卷积(滤波)计算。对于无限长序列可以采用重叠相加法或者重叠保留法将它化为有限长序列卷积运算。而H(k)如果可以在滤波器设计时直接获得,则只要1次FFT,1次IFFT就可完成滤波运算,因此称为FIR滤波器FFT快速算法。下面讨论FIR滤波器频域直接计算H(k)的方法。
1 FIR滤波器的频域设计
1.1 H(k)计算公式
根据FIR滤波器频域采样法设计,如果滤波器的类型和阶数N确定,可以在频域上确定h(n)的N点FFT,用H1(k)表示。因此,有:


考虑下面两种特殊情况:
(1)当L为N的整数倍时,记为:
L=iN,其中i为大于0的正整数;
可见,当L为N的整数倍时只要通过对H1(k)内插0,再进行比例放大,就可得到H(k)。
(2)假设滤波器具有线性相位特性,则H1(k)可用幅度函数和相位函数的采样表示,记为:

从上面分析可见,只要确定滤波器的阶数N和H1(k)(H1k)就可计算出H(k)。下面讨论其确定方法。
1.2 滤波器的阶数和H1(k)确定方法
在设计一个滤波器之前,必须首先根据工程实际的需要确定滤波器的技术指标。数字滤波器常常被用来实现选频操作,因此,指标的形式一般在频域中给出幅度和相位响应,并且对于FIR滤波器的设计,相位响应指标通常希望系统在通频带中具有线性相位。确定了技术指标后,就可以建立一个目标的数字滤波器模型。确定滤波器的阶数和H1(k)。
下面以一个实际例子来说明计算过程。假设要设计一个多带FIR线性相位数据滤波器的技术指标为:对模拟信号进行采样的周期T=0.000 1 s,在fp=[1 000,2 000,3 000]Hz处的衰减小于2 dB,在fr=[1 250,1 750,3 250]Hz处的衰减大于40 dB。则:
(1)滤波器的技术指标

(2)目标滤波器的模型
采用理想滤波器模型作为所要设计的目标滤波器模型。根据指标要求,选用如图1所示的幅度模型。
(3)确定滤波器的阶数和H1(k)
根据过渡带的指标要求,由理想滤波器模型的过渡带为2π/N可以确定滤波器阶数N=40。根据线性相位的约束条件,N为偶数,滤波器的幅度函数要求奇对称,即H1k满足:H1k=-H1(N-k)。
由边界频率: ,可求出边界频率采样点kp=[4,8,12]。
以理想滤波器为目标滤波器进行设计,则幅度函数采样点为:

(4)设计结果性能分析
根据内插公式可求出所设计的滤波器的频率响应。这里,直接利用Matlab编程分析得到的结果如图2所示。

由图2可见,滤波器的边界频率符合要求,但是,阻带衰减仅达到16 dB,因此,必须进行优化。
1.3 优化设计
1.3.1 简易优化设计法
由内插公式可知,频率采样滤波器的频响在采样点上等于采样点的值,因此,在不增加阶数的情况下,可通过修改边界频率点的采样值进行优化。根据指标要求:通带衰减小于Ap=2 dB,阻带衰减大于Ar=40 dB。将通带和阻带的边界采样点的值按式(10),式(11)计算:

根据式(10),式(11),将Ap,Ar代入,利用Matlab编程,相应的语句如下:

计算结果:Hp=0.794 3,Hr=0.010 0,优化式(7)得到新的设计结果。进行频率特性分析得到如图3所示的结果。由图3可见,滤波器的边界频率符合要求,但是,阻带最小衰减已经超过了20 dB,得到了明显改善。

1.3.2 自适应搜索优化
上述方法简单但不是最优,达到的性能指标不高。下面利用自适应搜索算法对过渡点进行进一步的优化。
自适应搜索算法采用均方误差最小准则。对于具有线性相位的FIR数字滤波器,其性能主要取决于幅度函数,因此定义误差函数E(ω)为:

式中:Hd(ω)为设计的目标滤波器的幅度函数;H(ω)为设计的滤波器的幅度函数,其表达式为:

则均方误差为:

设:Hi为过渡点,η为搜索步长。则可以导出该过渡点调整算法为:

可以证明,0<η<2/N时,该算法是收敛的。
根据上述算法,利用Matlab编程对过渡点进行自适应调整,得到如图4所示结果。

由图4可见,滤波器的边界频率符合要求,阻带衰减超过40 dB,符合指标要求,但是过渡带增大。N增大一倍后,设计结果如图5所示,滤波器指标满足要求。

2 结 语
FIR滤波器的FFT快速算法实现,只要一次的FFT和一次的IFFT就可以实现,在阶数高的情况下,具有很高的运算效率。采用在频域上直接设计可以很方便地得到所需的滤波器的频域系数。当L为N的整数倍时,只要通过对H1(k)内插0,再进行比例放大,就可得到H(k),因此,可以作为L,N选择时参考。文中提出的根据所要设计的滤波器的技术指标来确定边界频率点幅度取样和自适应搜索算法,可供教学和科研设计中进行滤波器优化时使用. |