一文讀懂濾波器的線性相位,全通濾波器,羣延遲
數字信號處理最常見的面試題,請簡述FIR和IIR的區別。其中的一個區別是FIR可以方便地實現線性相位。那這個線性相位指的是什麼呢?本篇博客通過兩個例子,延遲和全通濾波器,來解釋這些概念。
先說結論:線性相位能保證信號中各頻率成分的相對相位關係不改變。
通俗解釋:信號經過線性相位濾波器後,各個頻率分量的延時時間是一樣的。
1. 延遲
舉一個最簡單的FIR的例子,延遲。假設16kHz的採樣頻率,一個採樣週期的延遲,可以用FIR來表示。利用Matlab來觀看這個濾波器的頻率響應,代碼如下。採樣頻率爲Fs = 16kHz, 採樣週期爲Ts,Ts = 1/Fs。其中num是傳遞函數的分子,den是傳遞函數的分母。分母只有 a0 = 1, 代表是一個FIR濾波器。分子b0 = 0, b1 = 1, 代表是一個採樣點的延遲。
num = [0,1]
den = [1,0]
fvtool(num,den)
下圖中,藍色的實線表示的幅頻響應,爲0dB。紅色實線表示相頻響應,主要看相頻響應。圖中對1k,2k,4kHz頻點的橫縱座標有截圖,16kHz採樣率下,1kHz的正弦信號一個完整的週期(這裏說的週期指的是)內會得到16個採樣值。一個採樣週期的延遲,帶來的相位變化是。而2kHz信號一個完整週期()內會得到8個採樣值,那麼一個採樣週期的延遲帶來的相位變化是,同理,對4kHz的信號,相位變化是。下圖中也可以得到驗證。
這個濾波器對整個信號只產生了延遲一個採樣點的效果,信號的各個頻率成分之間的相位關係沒有改變。從這個例子可以很清楚地看到,線性相位指的是濾波器對每個頻點的相頻響應是一個線性關係。如下圖所示,上面的圖表示2kHz信號和4kHz信號,中間的圖表示兩者之和,下面的圖表示過了一個採樣週期延遲的FIR濾波器。中間的圖和下面的圖,這兩個頻率成分的信號之間相位關係沒有改變。
2. 全通濾波器
全通濾波器,幅頻響應爲0db,但是可以改變個頻率成分之間的相位關係。一階全通濾波器有以下公式。
其中fc爲截止頻率,fs爲採樣頻率。
設計一個fc = 2kHz,其幅頻相頻響應如下圖所示。2kHz處幅頻響應爲,4kHz處幅頻響應爲。很明顯,這裏已經不再是線性相位了。
fs = 16e3;
fc = 2e3;
c = (tan(pi*fc/fs) - 1)/(tan(pi*fc/fs) + 1)
num = [c,1];
den = [1,c];
fvtool(num,den)
我們再將2kHz和4kHz的和通過這個全通濾波器,看看輸出是怎麼樣的。如下圖所示,經過全通濾波器後,2kHz和4kHz信號的相對相位已經改變了。2kHz延遲了,而4kHz延遲了。最下面那幅圖直接在輸入信號上修改初始相位,也可以得到同樣的效果。這裏可以看出來,兩個頻率分量的相對相位關係發生了改變,兩者之和的波形也發生了變化。
3.相位延遲和羣延遲
以上兩個例子可以看出,延遲和全通濾波器都能實現0dB的幅頻響應,但相頻響應區別很大。相位延遲和羣延遲,就是用來描述這種不同。
對於線性時不變系統,輸入爲
輸出爲
其中線性系統的相頻響應爲
羣延遲和相位延遲可以表示爲
這裏先解釋羣延遲,羣延遲是相位對頻率的微分。若其是非常數,信號的各頻率成分的相對相位關係將發生變化,從而產生相位失真。上面兩個例子的羣延遲分別如下圖所示,縱座標的單位爲採樣週期。
延遲(FIR)的羣延遲就是1個採樣週期的延遲,對於每一個頻率分量都是一樣的。
全通濾波器(IIR)的羣延遲會隨頻率變化,低頻部分的延遲時間大於高頻部分。信號經過這個系統之後,信號各頻率成分的相對相位關係就改變了。
4. 實際生活中的例子
就音樂廳來說,如果把舞臺上音樂家的歌唱聲或樂器發出的聲音作爲輸入,聽衆聽到的上述聲音作爲輸出的話,那麼音樂廳可以看成輸入輸出之間的一個系統。最理想的情況是,輸出與輸入之間只有一個類似於延時的線性相位濾波器,也即是舞臺上唱什麼歌,聽衆就能聽到什麼歌,只是時間上稍微有滯後。
如果音樂廳這個系統不是線性相位的,會出現什麼情況呢?音樂是由很多不同的頻率成分構成的。這時候音樂中有些頻率成分很快就從舞臺上傳過來了,有些頻率成分則要過一陣才傳過來。這樣組合起來的音樂,先不論是否悅耳,至少和舞臺上的已經不一樣了。這時候也就意味着坐在不同位置的聽衆,聽到的將是不同的音樂。這是人們不希望看到的。
這種情況下,必須要求線性相位的響應。該舉例轉載於博客《線性相位重要性的理解》。下面這篇博客介紹了線性濾波器在ECG信號中的使用,也是通俗易懂,可以參考。《爲什麼設計的濾波器一定要用線性相位》
總結:
- 線性相位能保證信號中各頻率成分的相對相位關係不改變。通俗解釋是:信號經過濾波器後,各個頻率分量的延時時間是一樣的。
- 延遲(FIR)和全通濾波器(IIR)都能對信號實現0dB的幅頻響應。但是FIR能實現線性相位,而且羣延遲爲一個常數。
- 要讓信號傳輸不失真,這個傳輸系統必須具有常數幅度增益和線性相位延遲。線性時不變系統只能保證常數倍的幅度增益,並不能保證線性相位延遲。
- 音樂廳的衝激響應必須要求線性相位。