有限冲激响应

有限冲激响应(英语:Finite impulse response,缩写FIR)滤波器是其冲激响应为有限长度的滤波器,脉冲输入信号的响应会在有限时间内变为零,此特性和无限冲激响应(IIR)滤波器相反,无限冲激响应滤波器存在反馈回路,其冲激响应可能是无限长度的(不过一般会衰减)。

N阶离散时间的FIR滤波器,其冲激响应(对应克罗内克δ函数输入的输出)在变为零之前,最多只持续个采样点(从第一个非零采样点,到最后一个非零采样点)。

FIR滤波器可以是连续时间的,也可能是离散时间的,可以是数字的,也可能是模拟的。

定义

 
直接型的N阶离散FIR滤波器。最上层是N阶的延迟线(delay line)和N + 1个抽头,每一个单元延迟是Z变换下的 z−1运算子
 
格子型的N阶离散FIR滤波器。每一个单元延迟是Z变换下的 z−1运算子

针对因果英语causal filter离散时间的N阶滤波器,输出序列的每一个值都是最近输入的加权和:

 

其中

  •  是输入信号
  •  是输出信号
  •  是滤波器阶数。 th阶滤波器表示在右边有 
  •   阶FIR滤波器在第i时间( )的脉冲响应。若滤波器是直接型的FIR滤波器,则 也就是滤波器的系数。

计算也称为离散卷积

上述项中的 常称为tap(抽头),依数字延迟线英语Digital delay line的结构而定,在许多实现或方块图中,会将延迟输入进行乘法运算。

滤波器的冲激响应定义为有限区间内的非零值。包括零值在内,冲激响应是无限数列:

 

若FIR滤波器是非因果的,其冲激响应上的非零值范围可能从 前就开始。

特性

FIR滤波器相较于IIR滤波器,有以下的优点:

  • 不需要反馈,因此舍去误差不会因为连续的加总而累计。每一次的计算其相对误差都是一样的,因此在实现上比较简单。
  • 在本质上稳定,因为其输出是有限个输入值乘以有限倍数的和,因此不会大于 乘以输入的最大值。
  • 若让系数对称,可以设计成线性相位英语linear phase,这在一些相位很重要的应用(例如资料通讯、地震学分音器)中是很好的特性。

FIR滤波器的主要缺点是若要求要求低频(相对于采样率)截止频率,在相同的锐利程度或是选择性英语selectivity (electronic)情形下,在通用处理器上的运算量要比IIR滤波器要大。不过目前有许多数字信号处理器提供特别的硬件来使FIR滤波器有类似IIR滤波器一样有效率。

频率响应

数列 的滤波效果可以用卷积定理,在频域上描述:

      and      

其中运算子  表示离散时间傅里叶变换(DTFT)和其倒数。因此,复数值的乘性函数 是滤波器的频率响应,可以用以下的傅里叶级数定义:

 

其中加上下标表示2π周期性。此处的 正规单位英语Normalized frequency (digital signal processing)(radians/sample)下的频率。在许多滤波器设计的程式中都较常用 的定义,将频率单位 改为cycles/sample,其周期为1[A]。当x[n]序数是已知的采样率  samples/second 的取代会将频率单位 变为cycles/second赫兹),周期性是  的值会对应  Hz   cycles/sample的频率,也就是奈奎斯特频率

 也可以用滤波器冲激响应的离散时间傅里叶变换表示:

 
 

滤波器设计

在设计有限冲激响应滤波器时,要找到符合特定规格的系数以及阶数,规格可能是时域的(匹配滤波器),也可能是频域的(较常见的情形)。匹配滤波器是将输入信号和已知形状的脉冲进行互相关(cross-correlation)。FIR卷积(FIR convolution)是脉冲响应的逆时间复本(time-reversed copy)和输入信号进行互相关。因此匹配滤波器的脉冲是用针对已知脉冲进行采样,再将采样信号倒序,做为滤波器的系数[1]

若希望有特定的频率响应,以下是一些常见的滤波器设计方式:

  1. 窗函数设计法
  2. 频率采样法
  3. 最小MSE(均方差)法
  4. 帕克斯-麦克莱伦算法(也称为是等涟波法、最佳法或minimax法)常会用雷米兹算法来找最佳等涟波的系数。使用者会标示想要的频率响应,此响应下误差的加权函数,以及滤波器阶数N。算法会找到可以将最大偏移量降到最低的 个系数。直觉上,这可以找到在只用 下,最符合期望频率响应的滤波器。此方式特别容易实作,因为至少有一本教科书[2]有包括可以用理想滤波器以及阶数N,得到最佳系数的程式。
  5. 等涟波FIR滤波器也可以用DFT算法设计[3]。此方式在本质上是迭代的,初始滤波器计设计的DFT可以用FFT算法计算(若没有初始估计值,可以用h[n]=delta[n])。在傅里叶域下,可以依要想的规格调整频率响应,接着计算反DFT。在时域下,只保留前N个系数(其他系数设为0),之后再重复上述的流程:再计算DFT,在频率下调整,再转回时域。

目前已有许多软件可以进行滤波器设计,例如MATLABGNU OctaveScilabSciPy等。

移动平均滤波器的例子

 
简单FIR滤波器的方块器(此例中是二阶三抽头的滤波器,是移动平均滤波器)
此例中二阶FIR滤波器的极零点图英语Pole–zero diagram
二阶FIR滤波器的振幅(绝对值)和相位响应
二阶FIR滤波器的振幅(允许负值)和相位响应

移动平均滤波器是简单的FIR滤波器,有时会称为Boxcar 函数滤波器(特别在之后有降采样的情形下)。滤波器的系数 可以用以下公式求得:

 

以下是更具体的例子,选择滤波器的阶数:

 

其冲激响应如下:

 

右边的方块图是以下要讨论的二阶移动平均滤波器。其递移函数为:

 

下一个图是滤波器的极零点图英语Pole–zero diagram。零频率(直流)对应(1, 0),正频率会绕原点逆时针旋转,直到(−1, 0)的奈奎斯特频率。在原点有二个极点,二个零点在  

若以正规化频率英语Normalized frequency (digital signal processing)ω表示,频率响应为:

 

图上有其振幅和相位的响应,不过此图也可以用冲激响应的离散傅里叶变换得到

因为其对称性,滤波器设计或是显示软件多半只会显示 [0, π]区域。可以看出移动平均滤波器的低频增益接近1,但会衰减高频的信号,因此是简单的低通滤波器。相位图是线性的,但在增益降到零时出现不连续,不连续的大小是π,意思是有变号的情形。最后一张图的振幅允许正负,此时的相位就都是线性的。

参考文献

  1. ^ Oppenheim, Alan V., Willsky, Alan S., and Young, Ian T.,1983: Signals and Systems, p. 256 (Englewood Cliffs, New Jersey: Prentice-Hall, Inc.) ISBN 0-13-809731-3
  2. ^ Rabiner, Lawrence R., and Gold, Bernard, 1975: Theory and Application of Digital Signal Processing (Englewood Cliffs, New Jersey: Prentice-Hall, Inc.) ISBN 0-13-914101-4
  3. ^ A. E. Cetin, O.N. Gerek, Y. Yardimci, "Equiripple FIR filter design by the FFT algorithm," IEEE Signal Processing Magazine, pp. 60–64, March 1997.

注解

  1. ^ An exception is MATLAB, which prefers units of half-cycles/sample = cycles/2-samples, because the Nyquist frequency in those units is 1, a convenient choice for plotting software that displays the interval from 0 to the Nyquist frequency.

相关条目