在先前單元#183:【FFT系列:甚麼是洩漏(leakage)?窗函數(window)如何改善洩漏(leakage)?】指出:對一個信號進行「FFT頻譜分析」時,是無法避免「洩漏」的現象,當有「洩漏」時,所得到信號的「傅立業頻譜」𝑿(𝒇) 就可能會誤判其正確的「頻率」以及其真實的「振幅值」,那麼就沒能達到「FFT頻譜分析」的目的。因此,需要有改善「洩漏」現象的方法,就是適當的選用「窗函數」,讀者可參考先前單元:#106【典型的Window視窗加權函數有哪些?】。
這個單元針對「振幅調制」(AM)信號,觀察其「洩漏」的現象,並探討施加不同「窗函數」處理「洩漏」的有效性比較。
首先,觀察「無洩漏」(without leakage)的「振幅調制」(AM)信號,讀者可以回顧一下先前單元#185:【FFT系列:甚麼是振幅調制(Amplitude Modulation)?】,參閱圖1的左上角圖示,是一個「振幅調制」信號,特徵說明如下:
1. 「振幅調制」信號是三個「簡諧波」(harmonic waves)的組成:參閱圖示,分別是
𝒙1(𝒕)=𝑿1𝐜𝐨𝐬(𝟐𝝅𝒇1 𝒕),𝑿1 = 1,𝒇1 = 190 Hz。𝒙2(𝒕)=𝑿2𝐜𝐨𝐬(𝟐𝝅𝒇2 𝒕),𝑿2 = 7,𝒇2 = 200 Hz。𝒙3(𝒕)=𝑿3𝐜𝐨𝐬(𝟐𝝅𝒇3 𝒕),𝑿3 = 1,𝒇3 = 210 Hz。是三個相位角相同的餘弦波。
2. 「中心頻率」(center frequency):三個簡諧波的「中心頻率」在此例就是𝒇2 = 200 Hz,其「振幅值」為𝑿2 = 7。
3. 「邊帶頻率」(side band frequency):是除了「中心頻率」外,三個簡諧波的另外兩個頻率的簡諧波,其實際的頻率分別是𝒇1 = 190 Hz及𝒇3 = 210 Hz,有一個重要特徵是,𝒇2 –𝒇1= 10 Hz,而且,𝒇3 –𝒇2= 10 Hz,因此,「邊帶頻率」就是
10 Hz。而𝒇1 = 190 Hz及𝒇3 = 210 Hz的兩個簡諧波稱為「邊帶」(side bands)。
此「振幅調制」信號,會是「無洩漏」,是因為「FFT分析參數」如圖1的中間上圖所示,Fmax = fnyq= 1000 Hz,LOR = Nf = 2000 lines。所以,「頻率解析度」(frequency resolution),Δf = fnyq / Nf = 1000/2000 = 0.5 Hz。而「振幅調制」信號的三個「簡諧波」之「頻率」,除以「頻率解析度」都能夠整除,所以,不會「洩漏」。
但是,讀者必須有個認知,實務上,真實的信號各種頻率都有,所以說:「洩漏」是無法避免的現象。
參閱圖1,就舉一個有「洩漏」的「振幅調制」信號,當「中心頻率」𝒇2 = 200.2
Hz,而「邊帶頻率」一樣是 10 Hz。就可以得到兩個「邊帶」的「簡諧波」,分別是 𝒇1 = 190.2
Hz及
𝒇3 = 210.2 Hz。對應三個「簡諧波」的「振幅值」如前,分別是 𝑿2 = 7,𝑿1 = 1,𝑿3 = 1。在此例,因為三個「簡諧波」的「頻率」都無法對「頻率解析度」整除,所以,就會有「洩漏」的現象。
以下針對圖1這個有「洩漏」的「振幅調制」信號,分別以三種「窗函數」進行「FFT頻譜分析」,比較說明如下:
1. ”Box”「窗函數」:也稱為”Uniform”、或”Rectangular”,中文稱為「方形/均勻/矩形窗函數」,相當於是”無”「窗函數」(without window)的效應。參閱圖1的右上圖示,「傅立業頻譜」𝑿(𝒇),在「頻率」的解析,可以看出能夠明顯的區別出「中心頻率」以及兩個「邊帶」,也可正確取得「邊帶頻率」就是 10 Hz。另外,在「振幅值」的解析,在靠近實際「中心頻率」的𝒇 = 200 Hz「振幅值」是 𝑿2 = 5.29,而兩個「邊帶」的「簡諧波」之「振幅值」,分別是𝑿1 = 0.86,𝑿3 = 0.64。顯然,在「振幅值」有偏低的現象,這就是「洩漏」所導致。
2. 「漢寧窗函數」(Hanning window):參閱圖1的左下方圖示,在時間波形,可觀察加入「漢寧窗函數」處理,使得時間區間的兩端,強迫歸零,所以可以減少「洩漏」現象。在「傅立業頻譜」𝑿(𝒇) 就可看到振幅值有提高,在靠近實際「中心頻率」的𝒇 = 200 Hz「振幅值」是 𝑿2 = 6.31,而兩個「邊帶」的「簡諧波」之「振幅值」,分別是𝑿1 = 0.90,𝑿3 = 0.90。和”Box”「窗函數」相比較,”Hanning”「窗函數」是可以改善解析的「振幅值」。
3. 「平頂窗函數」(flat top window):參閱圖1的右下方圖示,在時間波形,可觀察加入「平頂窗函數」處理,使得時間區間的兩端,強迫歸零,所以也可以減少「洩漏」現象。但要注意,和”Hanning”「窗函數」比較,”flat top”「窗函數」的時間域加權效應略有不同。在「傅立業頻譜」𝑿(𝒇) ,”flat
top”「窗函數」會有幾乎完全正確的振幅值,𝑿2 = 6.99,𝑿1 = 0.99,𝑿3 = 0.99。
對於進行「FFT頻譜分析」,要取得「好」的「頻譜」,有兩個重點:
1. 良好的「頻率」解析
2. 良好的「振幅值」解析
由圖1有「洩漏」的「振幅調制」信號案例來看,三種「窗函數」的比較,似乎「平頂窗函數」有最好的「FFT頻譜分析」效果。不過,要注意這只是針對此範例,而且,實務上來說,真實的信號並不會是像此範例,只有單純的三個「簡諧波」。
接下來,再看另一個有「洩漏」的「振幅調制」信號,參閱圖2的左上角圖示,是一個「振幅調制」信號,特徵說明如下:
1. 「振幅調制」信號是三個「簡諧波」(harmonic waves)的組成:參閱圖2,分別是
𝒙1(𝒕)=𝑿1𝐜𝐨𝐬(𝟐𝝅𝒇1 𝒕),𝑿1 = 1,𝒇1 = 198.2 Hz。𝒙2(𝒕)=𝑿2𝐜𝐨𝐬(𝟐𝝅𝒇2 𝒕),𝑿2 = 7,𝒇2 = 200.2 Hz。𝒙3(𝒕)=𝑿3𝐜𝐨𝐬(𝟐𝝅𝒇3 𝒕),𝑿3 = 1,𝒇3 = 202.2 Hz。是三個相位角相同的餘弦波。
2. 「中心頻率」(center frequency):三個簡諧波的「中心頻率」在此例就是𝒇2 = 200.2 Hz,其「振幅值」為𝑿2 = 7。
3. 「邊帶頻率」(side band frequency):是除了「中心頻率」外,三個簡諧波的另外兩個頻率的簡諧波,其實際的頻率分別是𝒇1 = 198.2 Hz及𝒇3 = 202.2 Hz,有一個重要特徵是,𝒇2 –𝒇1= 2 Hz,而且,𝒇3 –𝒇2= 2 Hz,因此,「邊帶頻率」就是
2 Hz。而𝒇1 = 198.2 Hz及𝒇3 = 202.2 Hz的兩個簡諧波稱為「邊帶」(side bands)。
以下針對圖2這個有「洩漏」的「振幅調制」信號,分別以三種「窗函數」進行「FFT頻譜分析」,比較說明如下:
1. ”Box”「窗函數」:也稱為”Uniform”、或”Rectangular”,中文稱為「方形/均勻/矩形窗函數」,相當於是”無”「窗函數」(without window)的效應。參閱圖2的右上圖示,「傅立業頻譜」𝑿(𝒇),在「頻率」的解析,可以看出可以明顯的區別出「中心頻率」以及兩個「邊帶」,也可正確取得「邊帶頻率」就是 2 Hz。另外,在「振幅值」的解析,在靠近實際「中心頻率」的𝒇 = 200 Hz「振幅值」是 𝑿2 = 5.28,而兩個「邊帶」的「簡諧波」之「振幅值」,分別是𝑿1 = 1.27,𝑿3 = 1.00。顯然,在「中心頻率」的「振幅值」有偏低的現象,這就是「洩漏」所導致。而兩個「邊帶」的「振幅值」有略高的趨勢,尤其,𝑿1 = 1.27甚至高於真實值𝑿1 = 1,這是因為「中心頻率」的「簡諧波」之「洩漏」所導致。因此,在「振幅值」的解析,其實是不正確的。
2. 「漢寧窗函數」(Hanning window):參閱圖2的左下方圖示,在時間波形,可觀察加入「漢寧窗函數」處理,使得時間區間的兩端,強迫歸零,所以可以減少「洩漏」現象。在「傅立業頻譜」𝑿(𝒇) 就可看到振幅值有提高,在靠近實際「中心頻率」的𝒇 = 200 Hz「振幅值」是 𝑿2 = 6.31,而兩個「邊帶」的「簡諧波」之「振幅值」,分別是𝑿1 = 0.87,𝑿3 = 0.95。和”Box”「窗函數」相比較,”Hanning”「窗函數」是可以改善解析的「振幅值」。而且,此「振幅值」的解析是比較接近真實信號的狀態。
3. 「平頂窗函數」(flat top window):參閱圖2的右下方圖示,在時間波形,可觀察加入「平頂窗函數」處理,使得時間區間的兩端,強迫歸零,所以也可以減少「洩漏」現象。但要注意,和”Hanning”「窗函數」比較,”flat top”「窗函數」的時間域加權效應略有不同。在「傅立業頻譜」𝑿(𝒇) ,”flat
top”「窗函數」會有較高的振幅值,𝑿2 = 7.05,𝑿1 = 1.02,𝑿3 = 1.37。此現象是因為,”flat top”「窗函數」對「頻率」解析較差,在對應實際頻率峰值的頻帶寬度會增大,使得”覆蓋”了兩個「邊帶」的「簡諧波」之「振幅值」,也就是在不知道此信號特徵的前提下,看到此「頻譜」,應該只會認定只有一個「峰值頻率」(peak frequency),這樣就誤判了、錯失了兩個「邊帶」的「振幅調制」信號之解析。
由圖2有「洩漏」的「振幅調制」信號案例來看,三種「窗函數」的比較,「漢寧窗函數」是折衷下有最好的「FFT頻譜分析」效果。因為,有較好的「頻率」解析和「振幅值」解析,對「FFT頻譜分析」的兩大需求重點,均可兼顧。
綜合本單元的討論,針對有「洩漏」的「振幅調制」信號,在進行「FFT頻譜分析」時,要選擇適當的「窗函數」,兩個案例中:
1. 圖1:因為「邊帶頻率」是 10 Hz,雖然”flat top”「窗函數」有較寬的頻帶效應,但是「邊帶頻率」大,所以,仍然可以正確解析「振幅調制」信號的三個「簡諧波」之「頻率」及「振幅」。所以,在此案例,”flat top”「窗函數」似乎是不錯的選擇,但是,不適用在通則的「FFT頻譜分析」。
2. 圖2:因為「邊帶頻率」是 2 Hz,因為”flat top”「窗函數」有較寬的頻帶效應,而且「邊帶頻率」小,所以,無法正確解析「振幅調制」信號的三個「簡諧波」之「頻率」及「振幅」。所以,通則來說,選用「漢寧窗函數」是比較好的選擇。
總結來說,要處理解決「洩漏」的現象,對一般的隨機信號(random signal),因為有各種頻率的組成,要有好的「頻率」解析,以及好的「振幅值」解析,「窗函數」最適當的折衷選擇會是「漢寧窗函數」(Hanning window)。
以上個人看法,請多指教!
王栢村
2020.10.16
圖2、振幅調制(AM)信號的洩漏(leakage)會有甚麼現象?施加窗函數(window)的效應? |