數字濾波器

數字濾波器是對數位訊號進行濾波處理以得到期望的響應特性的離散時間系統。作為一種電子濾波器，數字濾波器與完全工作在模擬信號域的模擬濾波器不同。數字濾波器工作在數位訊號域，它處理的對象是經由採樣器件將模擬信號轉換而得到的數位信號。

數字濾波器的工作方式與模擬濾波器也完全不同：後者完全依靠電阻器、電容器、電晶體等電子元件組成的物理網路實現濾波功能；而前者是通過數字運算器件對輸入的數位訊號進行運算和處理，從而實現設計要求的特性。

數字濾波器理論上可以實現任何可以用數學演算法表示的濾波效果。數字濾波器的兩個主要限制條件是它們的速度和成本。數字濾波器不可能比濾波器內部的數字電路的運算速度更快。但是隨著積體電路成本的不斷降低，數字濾波器變得越來越常見並且已經成為了如收音機、蜂窩電話、立體聲接收機這樣的日常用品的重要組成部分。

數字濾波器一般由寄存器、延時器、加法器和乘法器等基本數字電路實現。隨著積體電路技術的發展，其性能不斷提高而成本卻不斷降低，數字濾波器的應用領域也因此越來越廣。按照數字濾波器的特性，它可以被分為線性與非線性、因果與非因果、無限脈衝響應（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