数字滤波器

数字滤波器是对数字信号进行滤波处理以得到期望的响应特性的离散时间系统。作为一种电子滤波器，数字滤波器与完全工作在模拟信号域的模拟滤波器不同。数字滤波器工作在数字信号域，它处理的对象是经由采样器件将模拟信号转换而得到的数位信号。

数字滤波器的工作方式与模拟滤波器也完全不同：后者完全依靠电阻器、电容器、晶体管等电子元件组成的物理网络实现滤波功能；而前者是通过数字运算器件对输入的数字信号进行运算和处理，从而实现设计要求的特性。

数字滤波器理论上可以实现任何可以用数学算法表示的滤波效果。数字滤波器的两个主要限制条件是它们的速度和成本。数字滤波器不可能比滤波器内部的数字电路的运算速度更快。但是随着集成电路成本的不断降低，数字滤波器变得越来越常见并且已经成为了如收音机、蜂窝电话、立体声接收机这样的日常用品的重要组成部分。

数字滤波器一般由寄存器、延时器、加法器和乘法器等基本数字电路实现。随着集成电路技术的发展，其性能不断提高而成本却不断降低，数字滤波器的应用领域也因此越来越广。按照数字滤波器的特性，它可以被分为线性与非线性、因果与非因果、无限脉冲响应（IIR）与有限脉冲响应（FIR）等等。其中，线性时不变的数字滤波器是最基本的类型；而由于数字系统可以对延时器加以利用，因此可以引入一定程度的非因果性，获得比传统的因果滤波器更灵活强大的特性；相对于IIR滤波器，FIR滤波器有着易于实现和系统绝对稳定的优势，因此得到广泛的应用；对于时变系统滤波器的研究则诞生了以卡尔曼滤波为代表的自适应滤波理论。

## 特性

数字滤波器具有比模拟滤波器更高的精度，甚至能够实现后者在理论上也无法达到的性能。例如，对于数字滤波器来说很容易就能够做到一个1000Hz的低通滤波器允许999Hz信号通过并且完全阻止1001Hz的信号，模拟滤波器无法区分如此接近的信号。

数字滤波器相比模拟滤波器有更高的信噪比。这主要是因为数字滤波器是以数字器件执行运算，从而避免了模拟电路中噪声（如电阻热噪声）的影响。数字滤波器中主要的噪声源是在数字系统之前的模拟电路引入的电路噪声以及在数字系统输入端的模数转换(A/D)过程中产生的量化噪声。这些噪声在数字系统的运算中可能会被放大，因此在设计数字滤波器时需要采用合适的结构，以降低输入噪声对系统性能的影响。

数字滤波器还具有模拟滤波器不能比拟的可靠性。组成模拟滤波器的电子元件的电路特性会随着时间、温度、电压的变化而漂移，而数字电路就没有这种问题。只要在数字电路的工作环境下，数字滤波器就能够稳定可靠的工作。

由于奈奎斯特采样定理（Nyquist sampling theorem），数字滤波器的处理能力受到系统采样频率的限制。如果输入信号的频率分量包含超过滤波器1/2采样频率的分量时，数字滤波器因为数字系统的“混叠”而不能正常工作。如果超出1/2采样频率的频率分量不占主要地位，通常的解决办法是在模数转换电路之前放置一个低通滤波器（即抗混叠滤波器）将超过的高频成分滤除。否则就必须用模拟滤波器实现要求的功能。

传统的线性滤波器通常基于衰减。或者，可以设计非线性滤波器，包括能量传输滤波器，允许用户以设计好的方式移动能量，以便将不需要的噪声移动到频率较低或较高的新频段，并在一定频率范围内分裂或聚焦。能量传输滤波器补充了传统的滤波器设计，并在滤波器设计中引入了更多的自由度。数字能量传输滤波器相对容易设计、实现非线性动力学。

### 分析方式

可以采用多种数学技术来分析给定数字滤波器的行为。许多这些分析技术也可用于设计，并且通常构成滤波器规范的基础。

通常，人们通过计算滤波器对简单输入（例如脉冲）的响应来表征滤波器。然后可以扩展这一信息来计算滤波器对更复杂信号的响应。

过滤器可以用方块图表示，然后可以使用该方块图来导出样本处理算法，以通过硬件指令实现过滤器。

滤波器也可以描述为差分方程式。

#### 差分方程式

在离散时间系统中，数字滤波器常通过Z变换将转移函数转换为线性常系数差分方程式（LCCD )。离散频域转移函数可写为两个多项式的比值。例如：

$$H(z) = \frac{(z+1)^2} {(z-\frac{1}{2}) (z+\frac{3}{4})}$$

经展开后

$$H(z) = \frac{z^2+ 2z +1} {z^2 +\frac{1}{4} z - \frac{3}{8}}$$

为了使滤波器符合因果关系，分子和分母除以z的最高阶：

$$H(z) = \frac{1 + 2z^{-1} +z^{-2}} {1 +\frac{1}{4} z^{-1} - \frac{3}{8} z^{-2}} = \frac{Y(z)}{X(z)}$$

分母的系数$a_{k}$是“回馈”系数，分子的系数$b_{k}$是“前馈”系数。得到的线性差分方程式为：

$$y[n] = -\sum_{k=1}^{M} a_{k} y[n-k] + \sum_{k=0}^{N} b_{k} x[n-k]$$

## 类型

按照数位滤波器的特性，可以被分为1. 线性滤波器的输入及输出为线性变换，若输入及输出为非线性的滤波器则为非线性滤波器。线性滤波器满足叠加原理，指的是如果输入是不同信号的加权线性组合，则输出是相应输出信号的类似加权线性组合。

- 因果滤波器仅使用输入或输出信号前的样本，相反的，非因果过滤器使用未来的输入样本。通常可以通过添加延迟将非因果过滤器转换为因果过滤器。

- 时不变滤波器随着时间的推移具有恒定的特性，其他滤波器（例如自适应过滤器，随输入信号自动性调整）则会随时间变化。

- 稳定滤波器产生的输出随时间收敛到一个恒定值，或在有限区间内保持在一定值内。不稳定的滤波器可以产生无限增长的输出，即使是在输入保持在一定值内甚至为零时。

- 有限脉冲响应 (FIR) 滤波器仅使用输入信号，而无限脉冲响应 (IIR) 滤波器存在反馈回路，同时使用输入信号和输出信号的先前样本，因此对于脉波输入讯号的响应是无限延续的。FIR 滤波器总是稳定的，而 IIR 滤波器可能不稳定。

### IIR滤波器与FIR滤波器

参见：IIR滤波器、FIR滤波器、滤波器设计

线性非时变的数字滤波器包括无限长脉冲响应滤波器（IIR滤波器）和有限长脉冲响应滤波器（FIR滤波器）两种。这两种滤波器的系统函数可以统一以Z变换表示为：

$$H(z) = \frac{B(z)}{A(z)} = \frac{{b_{0}+b_{1}z^{-1}+b_{2}z^{-2} + \cdots + b_{N}z^{-N}}}{{1+a_{1}z^{-1}+a_{2}z^{-2} + \cdots +a_{M}z^{-M}}}$$

当$M \ge 1$时，M就是IIR滤波器的阶数，表示系统中反馈环的个数。由于反馈的存在，IIR滤波器的脉冲响应为无限长，因此得名。若$A(z)=1$，则系统的脉冲响应的长度为N+1，故而被称作FIR滤波器。

- IIR滤波器的优缺点

IIR滤波器的优点在于，其设计可以直接利用模拟滤波器设计的成果，因为类比滤波器本身就是无限长脉冲响应的。换句话说，若是有一个类比滤波器，可以很直接地设计出IIR滤波器。

通常IIR滤波器设计的过程如下：首先根据滤波器参数要求设计对应的模拟滤波器（如巴特沃斯滤波器、切比雪夫滤波器等等），然后通过映射（如脉冲响应不变法、双线性映射等等）将模拟滤波器变换为数字滤波器，从而决定IIR滤波器的参数。

IIR滤波器的重大缺点在于，由于存在反馈其稳定性不能得到保证。另外，反馈还使IIR滤波器的数字运算可能溢出，即Z转换后极点有可能超出单位圆之外。

- FIR滤波器的优缺点

FIR滤波器最重要的优点就是由于其脉冲响应之长度有限，输入有限长度讯号输出的也会是有限长度，Z转换后全部极点都在单位圆内，相较于IIR是一个稳定的系统。

FIR滤波器还确保了线性相位，这在信号处理中也非常重要。

此外，由于不需要反馈，在FIR滤波器中要做最佳化(optimize)也比IIR滤波器简单。

FIR滤波器的缺点在于相较于可以直接取样类比滤波器设计的IIR滤波器来说设计较为不易。

此外它的性能不如同样阶数的IIR滤波器，不过由于数字计算硬件的飞速发展，这一点已经不成为问题。再加上引入计算机辅助设计，FIR滤波器的设计也得到极大的简化。基于上述原因，FIR滤波器比IIR滤波器的应用更广。

### 状态空间滤波器

数字滤波器的另外一种形式是状态空间模型。状态空间滤波器的一个典型例子是鲁道夫·卡尔曼在1960年提出的卡尔曼滤波器。

## 外部链接

- Free filter design software
- Free filter design software
- Java demonstration of digital filters
- IIR Explorer educational software