【振動噪音產學技術聯盟】網頁導覽影片

為提供訪客更多、更清楚的資訊,我們建立【振動噪音產學技術聯盟】網頁導覽影片,只要10分鐘的時間,快速為您介紹聯盟網頁架構、網頁內涵及如何應用,讓您多了解【振動噪音產學技術聯盟】網頁!

振動噪音產學技術聯盟

Facebook粉絲專頁

《振動噪音科普專欄》FFT系列:甚麼是洩漏(leakage)?窗函數(window)如何改善洩漏(leakage)?


 這個單元的主題:FFT系列:甚麼是「洩漏(leakage)?「窗函數(window)如何改善「洩漏(leakage)其中,FFTfast Fourier transform快速傅立業轉換」是進行「頻譜分析(spectral analysis)的數學方法,讀者可參閱#27:【甚麼是頻譜分析?】。

 

甚麼是「洩漏」?甚麼是「窗函數」?又為什麼「窗函數」可以改善「洩漏」呢?

 

首先,觀察左上方圖示,從無「洩漏(without leakage)的餘弦波信號之FFT看起,其中,𝒙1(𝒕)=𝑿1𝐜𝐨𝐬(𝟐𝝅𝒇1 𝒕)𝑿1 = 1𝒇1 = 100 Hz。採用的「FFT分析參數」,令 Fmax = fnyq= 500 HzLOR = Nf = 250 lines。可以得到其他5個「FFT分析參數」:

 

1.      取樣頻率(sampling frequency)fs = fnyq*2 = 500*2 = 1000 Hz

2.      總取樣點數(number of samples)Nt = Nf*2 = 250*2 = 500 samples

3.      時間間距(time interval)Δt = 1/fs = 1/1000 = 0.001 sec

4.      頻率解析度(frequency resolution)Δf = fnyq / Nf = 500/250 = 2 Hz

5.      時間長度(time frame)T = 1/Δf = Nf/ fnyq = 250/500 = 0.5 sec

 

以此「FFT分析參數」的設定,對 𝒙1(𝒕) 信號進行FFT快速傅立業轉換」,可以得到「傅立業頻譜𝑿(𝒇),如預期在頻率 𝒇 = 100 Hz = 𝒇1,有振幅值 𝑿 = 1= 𝑿1,這是一個沒有「洩漏」的信號,所以可得到正確的「傅立業頻譜」。

 

為什麼會沒有「洩漏」呢?因為,  = 100/2=50,剛好整除,沒有「餘數」,所以沒有「洩漏」,主要是所取樣的時間波形,可以取得「完整的週期」,能夠正確的解析出 𝒙1(𝒕) 信號的頻率及其振幅值。

 

接著,觀察右方圖示,是有「洩漏(with leakage)的餘弦波信號之FFT,其中,𝒙1(𝒕)=𝑿1𝐜𝐨𝐬(𝟐𝝅𝒇1 𝒕)𝑿1 = 1𝒇1 = 101 Hz。採用相同的「FFT分析參數」進行FFT分析,可以看到所得到「傅立業頻譜𝑿(𝒇),在頻率 𝒇 = 100 Hz,其振幅值 𝑿 = 0.6339,在頻率 𝒇 = 102 Hz,其振幅值 𝑿 = 0.6393,顯然與實際 𝒙1(𝒕) 信號的頻率𝒇1 = 101 Hz,是不相同的。這就是有「洩漏」的現象。

 

那麼,為什麼會有「洩漏」呢?因為,  = 101/2=50.5,不能整除,有「餘數」,所以有「洩漏」,主要是所取樣的時間波形,不能取得「完整的週期」,所以,不能夠正確的解析出 𝒙1(𝒕) 信號的頻率。

 

需注意,在此圖的「窗函數」選項是Box,也可稱為Uniform、或Rectangular,中文稱為「方形/均勻/矩形窗函數」,相當於是窗函數(without window)的效應。當餘弦波信號不能對「頻率解析度  整除,所得到的「傅立業頻譜𝑿(𝒇) 就「洩漏」到鄰近的頻率,在此圖例,分別是𝒇 = 100 Hz𝒇 = 102 Hz,而且其振幅值也都低於𝑿1 = 1,所以此現象就稱為

洩漏(leakage)

 

實務上,此「洩漏」現象可以避免嗎?答案是:不可以避免!就算我們能將「頻率解析度  設定的非常小,但是,實際上餘弦波信號的頻率,仍然可能是無法整除,所以「洩漏」是無法避免的現象。

 

如果,無法避免有「洩漏」的現象,那麼在觀察「傅立業頻譜𝑿(𝒇) 就會誤判餘弦波的正確頻率以及其振幅值,那麼就沒能達到FFT頻譜分析」的目的,因此,需要有改善「洩漏」現象的方法,就是適當的選用「窗函數」,讀者可參考先前單元:#106典型的Window視窗加權函數有哪些?

 

以下舉兩個常採用的「窗函數」,對有「洩漏」現象的信號,進行對應的FFT頻譜分析」,說明如下:

 

1.      漢寧窗函數(Hanning window):參閱左下方圖示,在時間波形,可觀察加入「漢寧窗函數」處理,使得時間區間的兩端,強迫歸零,所以可以減少「洩漏」現象。在「傅立業頻譜𝑿(𝒇) 就可看到振幅值有提高,和Box窗函數」相比較,Hanning窗函數」可以改善解析的振幅值,同時,洩漏到實際頻率鄰近兩側的頻帶寬度,也大幅改善減小,頻帶寬度變得比較集中。

2.      平頂窗函數(flat top window):參閱右下方圖示,在時間波形,可觀察加入「平頂窗函數」處理,使得時間區間的兩端,強迫歸零,所以也可以減少「洩漏」現象。但要注意,和Hanning窗函數」比較,flat top窗函數」的時間域加權效應略有不同。在「傅立業頻譜𝑿(𝒇) flat top窗函數」會有完全正確的振幅值,但是,對應實際頻率峰值的頻帶寬度會增大。

 

綜合一下本單元的討論:

 

1.   無「洩漏(without leakage)的餘弦波信號之FFT:當信號頻率能夠與「頻率解析度  整除,那麼在「傅立業頻譜𝑿(𝒇) 就不會有「洩漏」現象。「傅立業頻譜𝑿(𝒇) 會完全正確。

2.      有「洩漏(without leakage)的餘弦波信號之FFT:在實務上,因為實際的信號各種頻率都有可能,所以有「洩漏」是無可避免的現象。「傅立業頻譜𝑿(𝒇) 會洩漏到實際頻率鄰近兩側的頻帶。

 

要解決「洩漏」的現象,就要選用適當的「窗函數(window function),也可稱為「加權函數(weighting function),本單元介紹了三種「窗函數」:

 

1.      Box窗函數」:也稱為Uniform、或Rectangular,中文稱為「方形/均勻/矩形窗函數」,相當於是窗函數(without window)的效應。對有「洩漏」的信號,在「傅立業頻譜𝑿(𝒇) 會洩漏到實際頻率鄰近兩側的頻帶,其頻帶寬度大,振幅值的解析會不正確。

2.      Hanning漢寧窗函數」:加入「漢寧窗函數」處理,原始信號在時間波形的取樣區間兩端,會強迫歸零,所以可以減少「洩漏」現象。在「傅立業頻譜𝑿(𝒇),洩漏到實際頻率鄰近兩側的頻帶寬度,可大幅減小改善,頻帶寬度變得比較集中,實際信號的振幅值有較正確的解析,對實際信號頻率之解析度比「平頂窗函數」較佳。「漢寧窗函數」適用在任意的隨機信號(random signal),因為,有不錯的「頻率解析」以及「振幅值解析」,可以合理地取得及瞭解信號的「頻率」與「振幅值」特徵。

3.      flat top平頂窗函數」:加入「平頂窗函數」處理,原始信號在時間波形的取樣區間兩端,也會強迫歸零,所以可以減少「洩漏」現象。在「傅立業頻譜𝑿(𝒇),洩漏到實際頻率鄰近兩側的頻帶寬度,會比「漢寧窗函數」的頻帶較寬、較大,不過,有良好的振幅值。「平頂窗函數」適用在單頻率的校正信號之頻譜分析,例如:加速度規校正及麥克風感測器校正,因為「振幅值解析」幾乎正確,雖然,「頻率解析」不好,但是對校正而言,「振幅值解析」的正確性至關重要。

 

以上個人看法,請多指教!

 

王栢村

2020.10.05