FIR濾波器與IIR濾波器的差異:計算形式、穩定性、相位、階數、運算量比較

兩者都是在數位訊號處理中調整頻率特性的濾波器,差別在於計算時是否使用過去的輸出。FIR濾波器(有限脈衝響應濾波器)只是將目前與過去的輸入乘上係數後相加,脈衝響應在抽頭數的長度內結束。IIR濾波器(無限脈衝響應濾波器)也會把過去的輸出回授到輸入側計算,因此脈衝響應在理論上會一直持續。FIR濾波器一定穩定,係數左右對稱時即可成為線性相位,但要得到陡峭的特性需要很多抽頭。IIR濾波器以較低的階數就能得到陡峭的特性,但相位不是線性的,且視極點位置可能變得不穩定。

項目FIR濾波器IIR濾波器
計算形式與脈衝響應y[n] = Σh[k]x[n − k]。只有輸入的加權和,脈衝響應在N個抽頭後結束y[n] = Σb[k]x[n − k] − Σa[k]y[n − k]。也使用過去的輸出(回授),脈衝響應一面衰減一面持續
轉移函數H(z)與穩定性沒有分母,極點只在z = 0。不論係數為何都一定穩定有分母。只有所有極點都在單位圓內側時才穩定
相位特性係數左右對稱時為線性相位。群延遲與頻率無關,為(N − 1)/2個取樣不會是線性相位。群延遲隨頻率改變,在截止頻率附近變大
相同規格所需的階數(例)fs = 48 kHz、通帶邊緣4 kHz、止帶邊緣5 kHz、衰減60 dB、通帶漣波0.5 dB的低通濾波器,以等漣波設計約需110個抽頭相同條件的橢圓濾波器只需7階(4段二階區段)
運算量(每個輸出取樣)與抽頭數相同次數的乘積累加。上例約110次(利用係數的對稱性,乘法約減半)每段二階區段約5次乘法。上例約20次
延遲固定為(N − 1)/2個取樣。上例約56個取樣(約1.2 ms)隨頻率改變。上例在低頻約9個取樣,在通帶邊緣約75個取樣
係數量化(定點數)頻率特性會稍微改變,但不會失去穩定性直接實作高階的式子時,極點可能移動而變得不穩定。以二階區段(biquad)串接實作
主要設計方法窗函數法、等漣波(Parks-McClellan)法將類比濾波器(巴特沃斯、柴比雪夫、橢圓等)的轉移函數做雙線性轉換
主要用途需要保持波形形狀的通訊與量測、語音與影像處理、降取樣與內插的濾波器、適應性濾波器想節省運算量與記憶體的嵌入式設備、音響等化器、去除直流成分與指數平滑

數值為具代表性的大致參考值,會因世代或產品而異。

適用於什麼情況

FIR濾波器
不想破壞波形形狀時(通訊的波形整形、量測、語音與影像處理)、降取樣與內插的濾波器,以及係數變動時仍需保持穩定的適應性濾波器。乘積累加的次數雖多,但可用DSP或FPGA的乘積累加器平行處理。
IIR濾波器
想縮小運算量、記憶體與延遲時。在相位失真不成問題的用途中,能以少量計算實現陡峭的特性、窄頻帶的陷波與直流成分的去除。

常見問題

FIR與IIR的名稱代表什麼?

代表輸入脈衝(只在n = 0為1的訊號)時的輸出,也就是脈衝響應的長度。FIR(Finite Impulse Response)在有限的長度內歸零,N個抽頭時長度為N。IIR(Infinite Impulse Response)因為回授,響應會一直殘留,例如y[n] = 0.2x[n] + 0.8y[n − 1]的脈衝響應為0.2 × 0.8ⁿ,一面趨近0一面無限持續。

線性相位有什麼好處?

所有頻率成分都延遲相同的時間,因此通帶內訊號的波形形狀不會改變。係數左右對稱的N抽頭FIR濾波器,延遲與頻率無關,為(N − 1)/2個取樣,101個抽頭時為50個取樣(48 kHz時約1.04 ms)。IIR濾波器的延遲隨頻率不同,因此脈衝或步階的形狀會走樣。

為什麼IIR濾波器有時會不穩定?

因為輸出會回授,若極點(使轉移函數分母為0的z)位於單位圓外側,輸出就會無限增大。一階的y[n] = x[n] + 0.5y[n − 1]這類回授係數大小小於1的濾波器是穩定的,但在高階的陡峭濾波器中,極點集中在單位圓附近,只是將係數四捨五入就可能跑到外側。因此會拆成二階區段來實作。

有方法消除IIR濾波器的相位偏移嗎?

若是事後處理已記錄的資料,可將同一個濾波器以正向與反向各套用一次,抵消相位偏移(零相位濾波)。即時處理無法使用未來的輸入,所以不能用這個方法,而是以全通濾波器修正群延遲,或選擇線性相位的FIR濾波器。

理解度檢測

有限脈衝響應(FIR)濾波器的特徵為下列何者?

  1. A具有把輸出送回輸入側的回授,因此能以較少的係數得到陡峭的特性
  2. B脈衝響應無限延續,因此容易因係數量化而變得不穩定
  3. C沒有回授,因此一定穩定,係數對稱時可得到線性相位
查看答案與解析

正確答案:C. 沒有回授,因此一定穩定,係數對稱時可得到線性相位

FIR濾波器只是把目前與過去的輸入乘上係數後相加,沒有輸出的回授。脈衝響應在係數個數(抽頭數)結束,極點只在 z = 0,因此不論係數為何值都穩定。係數左右對稱時成為線性相位,所有頻率成分都延遲相同的時間,波形的形狀不會變形。相對地,要得到陡峭的特性,需要比IIR濾波器更多的抽頭。

具有下列係數的5抽頭FIR濾波器中,具有線性相位特性的為下列何者?

  1. Ah = {1, 2, 3, 2, 1}
  2. Bh = {1, 2, 3, 4, 5}
  3. Ch = {5, 4, 3, 2, 1}
查看答案與解析

正確答案:A. h = {1, 2, 3, 2, 1}

FIR濾波器的係數以中心左右對稱(h[n] = h[N − 1 − n])時,相位成為與頻率成正比的直線,所有頻率成分都延遲相同的 (N − 1)/2 個取樣點。{1, 2, 3, 2, 1} 以中央的3為中心對稱,是延遲固定為2個取樣點的線性相位濾波器。{1, 2, 3, 4, 5} 與 {5, 4, 3, 2, 1} 既不對稱也不反對稱,延遲隨頻率改變。

101抽頭的線性相位FIR濾波器(係數左右對稱)的群延遲為下列何者?

  1. A50個取樣點
  2. B50.5個取樣點
  3. C101個取樣點
查看答案與解析

正確答案:A. 50個取樣點

係數對稱的N抽頭FIR濾波器,群延遲與頻率無關,為 (N − 1)/2 個取樣點。N = 101 時為 (101 − 1)/2 = 50 個取樣點,相當於係數中心(第51個係數 h[50])的位置。取樣頻率48 kHz時為 50 ÷ 48000 ≈ 1.04 ms 的延遲,在即時處理中須注意抽頭數越多延遲越大。

  1. 以指數平滑 y[n] = 0.2x[n] + 0.8y[n − 1] 表示的一階IIR低通濾波器,在直流與奈奎斯特頻率的增益組合為下列何者?
  2. 由類比濾波器的轉移函數 H(s) 設計數位濾波器時所用的雙線性轉換,下列敘述何者正確?
  3. 以係數位元數有限的定點數實作高階IIR濾波器時,下列注意事項何者正確?

前往數位訊號處理基礎的練習題

相關名詞的解說

有限脈衝響應濾波器(FIR)
脈衝響應在有限長度內結束的數位濾波器(有限脈衝響應濾波器)。以 y[n] = Σh[k]x[n − k] 計算,把目前與過去 N 個輸入乘上係數後相加,沒有輸出的回授。極點只在 z = 0,因此不論係數為何都穩定;係數左右對稱時成為線性相位,所有頻率成分都延遲 (N − 1)/2 個取樣點。另一方面,要得到陡峭的特性需要很多抽頭,每輸出1個取樣點要進行與抽頭數相同次數的乘積累加運算。
無限脈衝響應濾波器(IIR)
具有把過去的輸出送回輸入側的回授,脈衝響應無限延續的數位濾波器(無限脈衝響應濾波器)。以 y[n] = 0.2x[n] + 0.8y[n − 1](指數平滑)這類差分方程式計算,轉移函數有分母。能以較少的係數與運算量得到陡峭的特性,延遲也小,但相位不是線性的。若不是所有極點都在單位圓內側就會不穩定,高階濾波器對係數量化較敏感,因此常以二階區段(biquad)的串接實作。常用的設計方法是以雙線性轉換從類比濾波器轉換。
線性相位
濾波器的相位特性是與頻率成正比的直線。此時所有頻率成分都延遲相同的時間(群延遲固定),因此波形不會變形。FIR濾波器的係數以中心對稱(或反對稱)時恰為線性相位,N個抽頭時延遲為 (N − 1)/2 個取樣點。穩定且因果的IIR濾波器無法實現完全的線性相位,因此在需要保持波形的音訊、通訊接收、量測等處理中常使用FIR濾波器。
群延遲
表示通過濾波器的訊號成分在各頻率延遲多少的量,定義為相位特性 φ(ω) 對頻率微分後取負號(−dφ/dω)。群延遲在所有頻率相同時,整個波形只是保持形狀延遲。係數對稱的N抽頭FIR濾波器,群延遲固定為 (N − 1)/2 個取樣點。IIR濾波器與類比濾波器的群延遲隨頻率改變,多半在截止頻率附近變大,使脈衝波形失真。貝索特性的濾波器是重視群延遲平坦度的設計。
脈衝響應
對系統輸入單位脈衝 δ[n](只有 n = 0 為1,其他為0)時的輸出 h[n]。對線性非時變(LTI)系統,任意輸入的輸出都可由輸入與 h[n] 的摺積 y[n] = Σx[k]h[n − k] 求得,因此 h[n] 代表系統的全部性質。h[n] 在有限長度結束的稱為FIR濾波器,無限延續的稱為IIR濾波器。Σ|h[n]| 為有限是BIBO穩定的條件,h[n] 的z轉換就是轉移函數 H(z)。
差分方程式
以目前與過去的輸入,以及過去的輸出的加權和,來表示離散時間系統輸出的式子。例如 y[n] = x[n] + 0.5y[n − 1] 是把前1個輸出的一半加到目前的輸入上。右邊不含過去輸出的是FIR濾波器,含有過去輸出(有回授)的通常是脈衝響應無限延續的IIR濾波器。給定初始值即可依序計算,能直接以程式或硬體實作。兩邊做z轉換即得轉移函數 H(z)。
z轉換
把離散時間訊號 x[n] 轉換成複數 z 的函數 X(z) = Σx[n]z^(−n) 的方法。延遲1個取樣點相當於乘上 z⁻¹,因此差分方程式可當作 z 的分式(轉移函數 H(z))處理。使 H(z) 的分母為0的 z 稱為極點,使分子為0的 z 稱為零點;因果系統在所有極點都位於單位圓內側時穩定。令 z = e^(jω) 在單位圓上求值,即可得到頻率響應。相當於連續時間的拉普拉斯轉換。
移動平均濾波器
輸出最近 N 個取樣值平均的最簡單低通濾波器。y[n] = (x[n] + x[n − 1] + … + x[n − N + 1])/N,是係數全部為 1/N 的FIR濾波器。直流增益為1,在頻率 fs/N 的整數倍增益為0,因此例如以恰好等於市電週期的區間平均,就能去除市電頻率及其諧波的雜訊。係數對稱,因此是線性相位,延遲為 (N − 1)/2 個取樣點。以加上最新取樣值、減去最舊取樣值的方式更新總和,不論 N 多大都能以很少的運算計算。

相關的比較