1. 程式人生 > >瞭解FFT和訊號加窗

瞭解FFT和訊號加窗

1. 理解時域、頻域、FFT

傅立葉變換有助於理解常見的訊號,以及如何辨別訊號中的錯誤。 儘管傅立葉變換是一個複雜的數學函式,但是通過一個測量訊號來理解傅立葉變換的概念並不複雜。 從根本上說,傅立葉變換將一個訊號分解為不同幅值和頻率的正弦波。 我們繼續來分析這句話的意義所在。 所有訊號都是若干正弦波的和  我們通常把一個實際訊號看作是根據時間變化的電壓值。 這是從時域的角度來觀察訊號。 傅立葉定律指出,任意波形在時域中都可以由若干個正弦波和餘弦波的加權和來表示。 例如,有兩個正弦波,其中一個的頻率是另一個的3倍。 將兩個正弦波相加,就得到了一個不同的訊號。 

這裡寫圖片描述

這裡寫圖片描述

圖1 兩個訊號相加,得到一個新的訊號

假設第二號波形幅值也是第一個波形的1/3。 此時,只有波峰受影響。

這裡寫圖片描述

這裡寫圖片描述

圖2 訊號相加時調整幅值影響波峰

假加上一個幅值和頻率只有原訊號1/5的訊號。 按這種方式一直加,直到觸碰到噪聲邊界,您可能會認出結果波形。 

這裡寫圖片描述

這裡寫圖片描述

圖3 方波是若干正弦波的和

您建立了一個方波。 通過這種方法,所有時域中的訊號都可表示為一組正弦波。

即使可以通過這種方法構造訊號,那意味著什麼呢? 因為可以通過正弦波構造訊號,同理也可以將訊號分解為正弦波。 一旦訊號被分解,可檢視和分析原訊號中不同頻率的訊號。 請參考訊號分解的下列使用例項:

  • 分解廣播訊號,可選擇要收聽的特定頻率(電臺)。
  • 將聲頻訊號分解為不同頻率的訊號(例如,低音、高音),可增強特定頻段,移除噪聲。
  • 根據速度和強度分解地震波形,可優化樓宇設計,避免強烈震動。
  • 分解計算機資料時,可忽略頻率重要性最低的資料,這樣就能更緊湊地利用記憶體。這就是檔案壓縮的原理。

2 使用FFT分解訊號

傅立葉變換將一個時域訊號轉換為頻域訊號。 頻域訊號顯示了不同頻率對應的電壓。 頻域是另一種觀察訊號的角度。

數字化儀對波形進行取樣,然後將取樣轉換為離散的值。 因為發生了轉換,傅立葉轉換在這些資料上無法進行。 可使用離散傅立葉變換(DFT),其結果是離散形式的頻域訊號。 FFT是DFT的一種優化實現,計算量較少,但是本質上是對訊號的分解。

請檢視上圖1中的訊號。 有兩個頻率不同的訊號。在該情況下,頻域中就會顯示兩條表示不同頻率的豎線。

這裡寫圖片描述

圖4 當相同幅值的兩個正弦波相加,在頻域中就顯示為兩條頻率豎線

原訊號的幅值在豎軸上表示。 圖2中有個不同幅值的訊號。頻域中最高的豎線對應於最高電壓的正弦訊號。 在頻域裡觀察訊號,可直觀地看出最高電壓發生在哪個頻率上。

這裡寫圖片描述

圖5 最高的豎線是幅值最大的頻率

在頻域裡也可觀察到訊號的形狀。 例如,頻域中方波訊號的形狀。 使用不同頻率的正弦波建立一個方波。即可預見,在頻域中,這些訊號都會被表示為一根豎線,每一根豎線都表示組成方波的正弦波。 如頻域中,豎線顯示為一個梯度,就可知道原訊號是一個方波訊號。

這裡寫圖片描述

圖6 頻域中表示正弦波的豎線呈現為一個梯度

現實生活中,情況是怎樣的呢? 許多混合訊號示波器(MSO)都有FFT功能。 下圖中,你可以觀察到混合訊號圖中,方波FFT是如何顯示的。 放大後可觀察到頻域中的尖峰。 

這裡寫圖片描述

這裡寫圖片描述

圖7 上圖為原正弦波和FFT,下圖是放大的FFT,可觀察到表示頻率的尖峰

在頻域中觀察訊號有助於驗證和發現訊號中的問題。 例如,假設有一個輸出正弦波的電路。 可在示波器上檢視時域輸出訊號,如圖8所示。 看上去沒有任何問題! 

這裡寫圖片描述

圖8 如果將兩個很相似的波形相加,仍然會得到一個完美的正弦波

在頻域中檢視訊號時,如果輸出的正弦波頻率穩定,應該只在頻率中顯示為一條豎線。 但是,可以看到在更高的頻率上仍然有一條豎線,表示正弦波並不如觀察到的那麼完美。 可嘗試優化電路,去除特定頻率的噪聲。 在頻域中顯示訊號有助於發現訊號中的干擾、噪聲和抖動。 

這裡寫圖片描述

圖9 檢視圖8中看似完美的正弦波,可以看出波形中有一個抖動

3. 加窗

FFT提供了觀察訊號的新視角,但是FFT也有各種限制,可通過加窗增加訊號的清晰度。

3.1 什麼是加窗?

使用FFT分析訊號的頻率成分時,分析的是有限的資料集合。 FFT認為波形是一組有限資料的集合,一個連續的波形是由若干段小波形組成的。 對於FFT而言,時域和頻域都是環形的拓撲結構。時間上,波形的前後兩個端點是相連的。 如測量的訊號是週期訊號,採集時間內剛好有整數個週期,那麼FFT的上述假設合理。 

這裡寫圖片描述

這裡寫圖片描述

圖10 測量整數個週期(上圖)可以得到理想的FFT(下圖)

在很多情況下,並不能測量到整數個週期。 因此,測量到的訊號就會被從週期中間切斷,與時間連續的原訊號顯示出不同的特徵。有限資料取樣會使測量訊號產生劇烈的變化。 這種劇烈的變化稱為不連續性。

採集到的週期為非整數時,端點是不連續的。 這些不連續片段在FFT中顯示為高頻成分。這些高頻成分不存在於原訊號中。 這些頻率可能遠高於奈奎斯特頻率,在0~ 取樣率的一半的頻率區間內產生混疊。 使用FFT獲得的頻率,不是原訊號的實際頻率,而是一個改變過的頻率。 類似於某個頻率的能量洩漏至其他頻率。 這種現象叫做頻譜洩漏。頻率洩漏使好的頻譜線擴散到更寬的訊號範圍中。 

這裡寫圖片描述

這裡寫圖片描述

圖11 測量非整數個週期(上圖)將頻譜洩漏新增至FFT(下圖)

可通過加窗來儘可能減少在非整數個週期上進行FFT產生的誤差。 數字化儀採集到的有限序列的邊界會呈現不連續性。加窗可減少這些不連續部分的幅值。 加窗包括將時間記錄乘以有限長度的窗,窗的幅值逐漸變小,在邊沿處為0。 加窗的結果是儘可能呈現出一個連續的波形,減少劇烈的變化。 這種方法也叫應用一個加窗。 

這裡寫圖片描述

這裡寫圖片描述

圖12 加窗可儘可能減少頻譜洩漏

3.2 加窗函式

根據訊號的不同,可選擇不同型別的加窗函式。 要理解窗對訊號頻率產生怎樣的影響,就要先理解窗的頻率特性。

窗的波形圖顯示了窗本身為一個連續的頻譜,有一個主瓣,若干旁瓣。 主瓣是時域訊號頻率成分的中央,旁瓣接近於0。 旁瓣的高度顯示了加窗函式對於主瓣周圍頻率的影響。 對強正弦訊號的旁瓣響應可能會超過對較近的弱正弦訊號主瓣響應。 一般而言,低旁瓣會減少FFT的洩漏,但是增加主瓣的頻寬。 旁瓣的跌落速率是旁瓣峰值的漸進衰減速率。 增加旁瓣的跌落速率,可減少頻譜洩漏。

選擇加窗函式並非易事。 每一種加窗函式都有其特徵和適用範圍。 要選擇加窗函式,必須先估計訊號的頻率成分。

  • 如果您的訊號具有強幹擾頻率分量,與感興趣分量相距較遠,那麼就應選擇具有高旁瓣下降率的平滑窗。
  • 如果您的訊號具有強幹擾頻率分量,與感興趣分量相距較近,那麼就應選擇具有低最大旁瓣的窗。
  • 如果感興趣頻率包含兩種或多種很距離很近的訊號,這時頻譜解析度就非常重要。 在這種情況下,最好選用具有窄主瓣的平滑窗。
  • 如果一個頻率成分的幅值精度比訊號成分在某個頻率區間內精確位置更重要,選擇寬主瓣的窗。
  • 如訊號頻譜較平或頻率成分較寬,使用統一窗,或不使用窗。
  • 總之,Hanning窗適用於95%的情況。 它不僅具有較好的頻率解析度,還可減少頻譜洩露。 如果您不知道訊號特徵但是又想使用平滑窗,那麼就選擇Hanning窗。

即使不使用任何窗,訊號也會與高度一致的長方形窗進行卷積運算。本質上相當於對時域輸入訊號進行截圖,對離散訊號也有效。 該卷積有一個正弦波函式特性的頻譜。 基於該原因,沒有窗叫做統一窗或長方形窗。

Hamming窗和Hanning窗都有正弦波的外形。 兩個窗都會產生寬波峰低旁瓣的結果。 Hanning窗在視窗的兩端都為0,杜絕了所有不連續性。 Hamming窗的視窗兩端不為0,訊號中仍然會呈現不連續性。 Hamming窗擅長減少最近的旁瓣,但是不擅長減少其他旁瓣。 Hamming窗和Hanning適用於對頻率精度要求較高對旁瓣要求較低的噪聲測量。 

這裡寫圖片描述

這裡寫圖片描述

圖13 Hamming和Hanning都會產生寬波峰低旁瓣的結果

Blackman-Harris窗類似於Hamming和Hanning窗。 得到的頻譜有較寬的波峰,旁瓣有壓縮。 該窗主要有兩種型別。 4階Blackman-Harris是一種通用窗,在高90s dB處具有旁瓣抑制功能,有較寬的主瓣。 7階Blackman-Harris窗函式有寬廣的動態範圍,有較寬的主瓣。

這裡寫圖片描述

這裡寫圖片描述

圖14 Blackman-Harris窗的結果是較寬的波峰,旁瓣有壓縮

Kaiser-Bessel窗在幅值精度、旁瓣距離和旁瓣高度之間取得了較好的平衡。 Kaiser-Bessel窗與Blackman-Harris窗類似,對於相同的主瓣寬度而言,較近的旁瓣更高,較遠的旁瓣更低。 選擇該窗通常會將訊號洩漏至離噪聲較近的位置。

Flat top窗也是一個正弦波,穿過0線。 Flat top窗的結果是在頻域中產生一個顯著寬廣的波峰,與其他窗相比離訊號的實際幅值更近。 

這裡寫圖片描述

這裡寫圖片描述

圖15 Flat top窗具有更精確的幅值資訊

上面列舉了幾種常見的窗函式。 選擇窗函式並沒有一個通行的方法。 下表可幫助您做出初步選擇。 請始終比較窗函式的效能,從而找到最適合的一種窗函式。

這裡寫圖片描述

4 總結

  • 所有時域中的訊號都可表示為一組正弦波。
  • FFT變換將一個時域訊號分解為在頻域中表示,並分析訊號中的不同頻率成分。
  • 在頻域中顯示訊號有助於發現訊號中的干擾、噪聲和抖動。
  • 訊號中如果包含非整數個週期,會發生頻率洩漏。可通過加窗來改善該情況。
  • 數字化儀採集到的有限序列的邊界會呈現不連續性。加窗可減少這些不連續部分的幅值。
  • 沒有窗叫做統一窗或長方形窗,因為加窗效果仍然存在。
  • 一般情況下,Hanning窗適用於95%的情況。 它不僅具有較好的頻率解析度,還可減少頻譜洩露。
  • 請始終比較窗函式的效能,從而找到最適合的一種窗函式。