這個單元要來探討的主題是:有「洩漏」(Leakage)信號,施予「窗函數」(Window)處理,如何改善取得較佳的「頻譜」(spectrum)?
在前一個單元:#453,【有洩漏Leakage信號,其頻譜會有甚麼特徵?】,已經有介紹過,有「洩漏」(Leakage)信號,進行FFT分析信號處理,會取得不正確的「頻譜」(spectrum)。又,「洩漏」(Leakage)一定發生,必須進行窗函數處理(windowing),這個單元,就來探討有關windowing窗函數處理。
首先,來回顧一下,如何進行FFT「快速傅立葉轉換」(fast Fourier transform)。參閱圖片左上方,FFT之【ISOC】分析的系統方塊圖(system block diagram),重點說明如下:
1. Input輸入:就是一個信號的「時間波形」(time waveform)。
2. System系統:在此FFT,就是系統。就是要進行FFT「快速傅立葉轉換」(fast Fourier transform)。
3. Output輸出:當然就是「時間波形」信號的「頻譜」(spectrum)。
4. Control控制:進行FFT的控制變數,有三大項,包括:(1) FFT 參數(parameters),(2) 窗函數形式(Window Type),(3) 平均處理(Averaging)。
針對第一個重要選項,是FFT 參數(parameters),主要有兩個變數需要設定,定義如下:
1. Fmax = 200 Hz:最高有效頻率(maximum effective frequency),單位:Hz。
2. LOR = 200 條:頻率解析條數(lines of resolution, LOR),單位:條(lines)。
在此設定,R = Fmax / LOR = 1 Hz:頻譜的頻率解析度(Resolution)。本單元將以此設定,來探討信號的「洩漏」(leakage),如何施予「窗函數」(Window)處理,以改善取得較佳的「頻譜」(spectrum)?
同時,第二個重要選項,是窗函數形式(Window Type)。典型的窗函數,如:(1) ”Box”=「方形/均勻/矩形窗函數」,(2) ”Hanning”=「漢寧窗函數」,(3) ”Hamming”=「漢明窗函數」,(4) ”Flat
top”=「平頂窗函數」。本單元,將探討以上4種「窗函數」(Window)處理,其差異性比較。
第三個重要選項,是平均處理(Averaging),定義如下:
1. 線性平均(Linear averaging)。
2. 平均次數(Number of Averaged):Navg = 1次。因為是一次性的信號,所以,取一次平均,就是沒有平均處理(Averaging)。
3. 平均重疊率(Overlap % for averaging):Overlap
= 0 %。因為,沒有平均處理(Averaging),所以,為0 %。
參閱圖片右上方圖示,分別呈現:
1. 「無洩漏」(No Leakage)信號,F0 =10.0 Hz,A =1:在「時間波形」(time waveform),量測時間T = 1/R = 1 sec,擷取到1秒,有10個完整的sine波週期,其振幅值(amplitude)是1。得到的「頻譜」(spectrum),在F=10 Hz,有一峰值(peak),其振幅值(amplitude)是1。在F=10 Hz兩側以及其他的頻率點,均為零。此「頻譜」完全正確的對應「時間波形」的特徵。
2. 「有洩漏」(With Leakage)信號,F0 =10.5 Hz,A =1:在「時間波形」(time waveform),量測時間T = 1/R = 1 sec,擷取到1秒,只有9.5個的sine波週期,其振幅值(amplitude)是1。雖然,起始點與結束點的值,都為零,但是,最後末端的信號,沒有擷取到完整的sine波週期。得到的「頻譜」(spectrum),在F=10 Hz、F=11 Hz,分別有峰值(peak),其振幅值(amplitude)不是1,而是0.652063、0.621899,兩側以及鄰近的頻率點,不為零。此「頻譜」並沒有正確的解析出單一頻率sine波「時間波形」的「頻譜」特徵。而且,這種「頻譜」特徵,會讓人誤判、以為是振動模態(vibration mode)的響應特性。這種情形,就是所謂的「洩漏」(Leakage)的現象。
再觀察「有洩漏」(With Leakage)信號的「時間波形」(time waveform)以及「頻譜」(spectrum),有施予”Hanning”「漢寧窗函數」處理的特徵,說明如下:
1. 「時間波形」(time waveform):圖片中,黑色的曲線是原始的「時間波形」,紅色的曲線是施予”Hanning”「漢寧窗函數」處理的「時間波形」,起始和結束的信號有降低,均趨近於零,而中間的信號有略微提高。
2. 「頻譜」(spectrum):當以”Hanning”「漢寧窗函數」處理的「時間波形」,進行FFT分析,所得到的「頻譜」,可以大致看到,有明顯的改善「頻譜」的「洩漏」(Leakage)現象。也就是,更接近單一頻率sine波的「頻譜」特徵。
接著,回顧一下「洩漏」(Leakage)的現象、原因、以及處理對策:
1. Know what? 現象:由於取樣的「時間波形」,不是完整的週期。信號頻率F0,不是FFT的頻譜解析頻率R = 1 Hz。「頻譜」的峰值,不正確,而且,F0鄰近頻率,有振幅值。無法取得正確的頻率(frequency)和振幅值(amplitude),進而影響實務上判斷信號的頻率和振幅值。
2. Know why? 原因:F0 / R 不是整數(integer)。其中,R = 頻率解析度(Resolution),R = Fmax / LOR =
200/200 = 1 Hz。
3. Know how? 對策:實務上,一個信號,任何頻率都有,不可能F0/R=整數,所以,「洩漏」(Leakage)一定發生,必須進行窗函數處理(windowing)。
本單元將針對4種windowing窗函數處理,所得到的「頻譜」來瞭解窗函數處理(windowing)的效應以及改善情形。
參閱圖片右邊中間的左側圖示,顯示了「有洩漏」(With Leakage)信號,F0 =10.5 Hz,A =1,在施予4種「窗函數」(Window)處理的差異性比較,先從振幅(Amplitude)解析的角度來看:
1. ”Box”「方形/均勻/矩形窗函數」:相當於沒有「窗函數」(Window)處理,其「頻譜」有明顯的「洩漏」(Leakage)現象。又,在F=10 Hz的振幅值,約0.6520,然而,實際的訊號是頻率F0 =10.5 Hz,振幅值為1。所以,”Box”「窗函數」(Window)處理,所得到的「頻譜」是不好的、不正確的「頻譜」。
2. ”Hanning”「漢寧窗函數」:其「頻譜」有明顯的改善了「洩漏」(Leakage)現象。又,在F=10 Hz的振幅值,約0.8476,然而,實際的sine波訊號是頻率F0 =10.5 Hz,振幅值為1。所以,”Hanning”「窗函數」(Window)處理,所得到的「頻譜」雖然不完美,因為,振幅值仍然不是1,大約有15%的差異。但是,大大改善了「頻譜」的「洩漏」(Leakage)現象,不會誤判是振動模態(vibration mode)的響應特性。
3. ”Hamming”「漢明窗函數」:其「頻譜」特徵,和”Hanning”「漢寧窗函數」很類似,都能改善了「頻譜」的「洩漏」(Leakage)現象,不會誤判是振動模態(vibration mode)的響應特性。又,sine波訊號的振幅值,比”Hanning”「漢寧窗函數」更好一些,約0.8797,大約有12%的差異。
4. ”Flat
top”「平頂窗函數」:其「頻譜」特徵,最顯著的效應是,其sine波訊號的振幅值,非常接近於1,大約是0.9967,僅有0.3%的差異。因此,可以正確的解析sine波訊號的振幅值。所以,”Flat top”「平頂窗函數」常應用於感測器(sensor)的校正(calibration)。
接著,再參閱圖片右邊中間的右側圖示,顯示了「有洩漏」(With Leakage)信號,F0 =10.5 Hz,A =1,在施予4種「窗函數」(Window)處理的差異性比較,觀察其頻率(frequency)解析的效果:
1. ”Box”「方形/均勻/矩形窗函數」:相當於沒有「窗函數」(Window)處理,其「頻譜」有明顯的「洩漏」(Leakage)現象。所以,”Box”「窗函數」(Window)處理,所得到的「頻譜」是不好的、不正確的「頻譜」。
2. ”Hanning”「漢寧窗函數」:其「頻譜」有明顯的改善了「洩漏」(Leakage)現象。由實際的sine波訊號是頻率F0 =10.5 Hz,振幅值為1。”Hanning”「漢寧窗函數」有顯示微小振幅值的範圍,是8、9、10、11、12、13。而,實際訊號是介於10、11之間。
3. ”Hamming”「漢明窗函數」:其「頻譜」特徵,和”Hanning”「漢寧窗函數」很類似,都能改善了「頻譜」的「洩漏」(Leakage)現象。”Hamming”「漢明窗函數」有顯示微小振幅值的範圍,是9、10、11、12。而,實際訊號是介於10、11之間。可以看出,”Hamming”比”Hanning”的頻率(frequency)解析,又更好一些。
4. ”Flat
top”「平頂窗函數」:其「頻譜」特徵,最顯著的效應是,其sine波訊號的振幅值,非常接近於1,大約是0.9967,僅有0.3%的差異。也就是,”Flat
top”「平頂窗函數」有最佳的振幅(Amplitude)解析。但是,”Flat
top”「平頂窗函數」的頻率(frequency)解析,卻是最差的,顯示微小振幅值的範圍,是7、8、9、10、11、12、13、14。而,實際訊號是介於10、11之間。
從以上的振幅(Amplitude)解析、以及頻率(frequency)解析,排除”Box”,來看哪一種「窗函數」(Window)處理比較好?總結如下:
1. 振幅(Amplitude)解析:最優的順序依次如下,”Flat top”、”Hamming”、”Hanning”。
2. 頻率(frequency)解析:最優的順序依次如下,”Hamming”、”Hanning”、”Flat top”。
在振動或噪音的頻譜分析實務應用,「窗函數」(Window)處理的選用原則:
1. 對任意的隨機信號(random signal),因為任何頻率都可能存在,為了要充分瞭解信號的頻率組成,採用”Hanning”或”Hamming”「窗函數」(Window)處理,都可以對「頻譜」的振幅(Amplitude)與頻率(frequency)解析,有權衡的、有效的處理。
2. 對單一頻率的sine波信號,例如加速度規(accelerometer)或是麥克風(microphone)的感測器(sensor)之校正(calibration),標準振動源、或標準聲源的信號,就是單一頻率的sine波信號,因此,可以採用有最佳振幅(Amplitude)解析的”Flat top”「平頂窗函數」。
綜合一下這個單元的討論,有「洩漏」(Leakage)信號,施予「窗函數」(Window)處理,如何改善取得較佳的「頻譜」(spectrum)?重點說明如下:
1. 複習討論了:FFT之【ISOC】分析的系統方塊圖(system block diagram),包括:Input輸入、System系統、Output輸出、Control控制。以瞭解如何取得「頻譜」(spectrum)。
2. 針對Control variables控制變數,尤其重要,設定的參數,包括:(1) FFT 參數(parameters):Fmax = 200 Hz,以及LOR = 200 條。(2) 窗函數形式(Window Type):選擇4種「窗函數」(without window)的比較,包括:”Box”「方形/均勻/矩形窗函數」、”Hanning”「漢寧窗函數」、”Hamming”「漢明窗函數」、”Flat
top”「平頂窗函數」。(3) 平均處理(Averaging) 定義:線性平均(Linear averaging)、Navg = 1次、Overlap = 0 %。
3. 探討了「無洩漏」(No Leakage)信號,F0 =10.0 Hz:因為,F0/R=整數,所以,得到的「頻譜」完全正確的對應「時間波形」的特徵。
4. 探討了「有洩漏」(With Leakage)信號:也觀察了不同窗函數處理(windowing)處理,對「頻譜」的振幅(Amplitude)與頻率(frequency)解析,能有權衡的、有效的處理方式。
以上個人看法,請多指教!
王栢村
2025.12.22







%E4%BF%A1%E8%99%9F%EF%BC%8C%E6%96%BD%E4%BA%88%E7%AA%97%E5%87%BD%E6%95%B8(Window)%E8%99%95%E7%90%86%EF%BC%8C%E5%A6%82%E4%BD%95%E6%94%B9%E5%96%84%E5%8F%96%E5%BE%97%E8%BC%83%E4%BD%B3%E7%9A%84%E9%A0%BB%E8%AD%9C%EF%BC%9F.jpg)