有限冲激响应(英语:Finite impulse response,缩写FIR)滤波器是其冲激响应为有限长度的滤波器,脉冲输入信号的响应会在有限时间内变为零,此特性和无限冲激响应(IIR)滤波器相反,无限冲激响应滤波器存在反馈回路,其冲激响应可能是无限长度的(不过一般会衰减)。
N阶离散时间的FIR滤波器,其冲激响应(对应克罗内克δ函数输入的输出)在变为零之前,最多只持续个采样点(从第一个非零采样点,到最后一个非零采样点)。
FIR滤波器可以是连续时间的,也可能是离散时间的,可以是数字的,也可能是模拟的。
FIR滤波器相较于IIR滤波器,有以下的优点:
- 不需要反馈,因此舍去误差不会因为连续的加总而累计。每一次的计算其相对误差都是一样的,因此在实现上比较简单。
- 在本质上稳定,因为其输出是有限个输入值乘以有限倍数的和,因此不会大于乘以输入的最大值。
- 若让系数对称,可以设计成线性相位,这在一些相位很重要的应用(例如资料通讯、地震学或分音器)中是很好的特性。
FIR滤波器的主要缺点是若要求要求低频(相对于采样率)截止频率,在相同的锐利程度或是选择性情形下,在通用处理器上的运算量要比IIR滤波器要大。不过目前有许多数字信号处理器提供特别的硬件来使FIR滤波器有类似IIR滤波器一样有效率。
数字滤波器的设计理念是直接去近似某个离散时间系统的理想频率响应。在设计有限冲激响应滤波器时,要找到符合特定规格的系数以及阶数,规格可能是时域的(匹配滤波器),也可能是频域的(较常见的情形)。匹配滤波器是将输入信号和已知形状的脉冲进行互相关(cross-correlation)。FIR卷积(FIR convolution)是脉冲响应的逆时间复本(time-reversed copy)和输入信号进行互相关。因此匹配滤波器的脉冲是用针对已知脉冲进行采样,再将采样信号倒序,做为滤波器的系数[1]。
若希望有特定的频率响应,以下是一些常见的滤波器设计方式:
- 窗函数设计法:理想频率响应可由下式表示: 对于许多滤波器的理想系统脉冲在频带边缘具有不连续的特性。将响应微弱的脉冲段设为0,响应强烈的地方指派为非0值。也就是:, 我们可用w[n]将冲激响应看成一个长度为M+1的窗户。就是窗户型函数其傅立业变换的周期性回旋积分。
- 频率采样法:对滤波器的频率响应采样。由下式 即可设计不同k点(离散的频率点) 之值。举例,将较小的k对应的响应值设计为1,较大的k对应的响应值设计为0,可得低通滤波器响应;将较小的k对应的响应值设计为0,较大的k对应的响应值设计为1,可得高通滤波器响应。
- 最小MSE(均方差)法:定义理想的滤波器频率响应,以及所想要的均方差,将一滤波器的MSE对设计的时冲激响应偏微分,将偏微分的的式子等于0,用程式最佳化的方式求出数字滤波器的频率响应。此方法着重在滤波器的频率响应和理想响应在采样频率段的平均误差。
- 帕克斯-麦克莱伦算法:(也称为是等涟波法、最佳法或Mini-max法)常会用雷米兹算法来找最佳等涟波的系数。使用者会标示想要的频率响应、此响应下误差的加权函数,以及滤波器阶数N。此方法会找到可以将最大偏移量降到最低的个系数。直觉上,这可以找到在只用个频率点下,最符合期望频率响应的滤波器。此方式不容易实作,因为最大误差要考虑设计的响应式与理想响应式相减后的绝对值,如下式:。计算上较为复杂,不常应用在滤波器设计上。目前有一本教科书[2]有包括可以用理想滤波器以及阶数N,得到最佳系数的程式。
- 等涟波FIR滤波器也可以用DFT算法设计[3]。此方式在本质上是迭代的,初始滤波器计设计的DFT可以用FFT算法计算(若没有初始估计值,可以用h[n]=delta[n])。在傅里叶域下,可以依要想的规格调整频率响应,接着计算反DFT。在时域下,只保留前N个系数(其他系数设为0),之后再重复上述的流程:再计算DFT,在频率下调整,再转回时域。
目前已有许多软件可以进行滤波器设计,例如MATLAB、GNU Octave、Scilab和SciPy等。
简单FIR滤波器的方块器(此例中是二阶三抽头的滤波器,是移动平均滤波器)
移动平均滤波器是简单的FIR滤波器,有时会称为Boxcar 函数滤波器(特别在之后有降采样的情形下)。滤波器的系数可以用以下公式求得:
以下是更具体的例子,选择滤波器的阶数:
其冲激响应如下:
右边的方块图是以下要讨论的二阶移动平均滤波器。其递移函数为:
下一个图是滤波器的极零点图。零频率(直流)对应(1, 0),正频率会绕原点逆时针旋转,直到(−1, 0)的奈奎斯特频率。在原点有二个极点,二个零点在,。
若以正规化频率ω表示,频率响应为:
图上有其振幅和相位的响应,不过此图也可以用冲激响应的离散傅里叶变换得到
因为其对称性,滤波器设计或是显示软件多半只会显示 [0, π]区域。可以看出移动平均滤波器的低频增益接近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
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
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.
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.