徐美清+孫晨亮
摘 要:快速傅立葉變換FFT是離散傅立葉變換DFT的一種快速算法,計算量小的顯著的優(yōu)點,使得FFT在現代數字信號處理與數據分析領域獲得了廣泛的應用。但是在利用FFT算法對連續(xù)信號進行分析時,存在頻譜混疊、柵欄效應及頻譜泄露現象。本文簡單介紹了FFT算法,并對其存在的缺點進行了詳細的分析。
關鍵詞:傅立葉變換;頻譜混疊;柵欄效應;頻譜泄露
1 FFT簡介
快速傅里葉變換(Fast Fourier Transform,簡稱為FFT)并不是一種新的變換, 而是離散傅里葉變換(Discrete Fourier Transform,簡稱為DFT)的一種快速算法。在相當長的時間里,由于DFT的計算量太大,即使采用計算機也很難對問題進行實時處理,所以并沒有得到真正的運用。直到1965年J.W.Cooley和J.W.Tukey首次提出了DFT運算的一種快速算法,后來又有G.Sande和J.W.Tukey的快速算法相繼出現以后,情況才發(fā)生了根本的變化。人們開始認識到DFT運算的一些內在規(guī)律,從而很快地發(fā)展和完善了一套高速有效的運算方法,這就是現在人們普遍稱之為快速傅里葉變換FFT的算法。
2 FFT算法的優(yōu)點
FFT算法使DFT的運算大大簡化,使其運算速度提高了1-2個數量級,從而使DFT的運算在實際中真正得到了廣泛的應用。
3 FFT算法的缺點
利用FFT對連續(xù)信號進行傅里葉分析時可能造成一定的誤差,從而產生頻譜混疊、頻譜泄漏以及柵欄效應現象。
3.1 頻譜混疊
對連續(xù)信號進行采樣時,通常假定所處理的信號是帶限的。假設連續(xù)信號的最高頻率為fh,采樣頻率為fs,那么根據香農定理,為了不產生混疊現象,應該有
如果不滿足fs≥2fh,就會產生頻譜的交疊,即頻譜混疊,從而產生失真現象。下面對頻譜混疊現象進行舉例說明,假定連續(xù)信號具有4個頻率(5Hz,10Hz,50Hz,80Hz)分量,其采樣點數為512個,采樣頻率fs為分別取50Hz和200Hz,用FFT對它進行頻譜分析,其頻譜圖如下。
通過頻譜圖,我們可以看出采樣頻率對頻譜的影響,當采樣頻率為50Hz時并不能分析出原信號中含有的信號,當采樣頻率為200Hz時沒有發(fā)生混疊,能準確的分析出原信號中的頻率分量。但在此需注意兩個問題:第一,對采樣定理中“兩倍”含義的理解,容易產生如下的誤解:“如果采用采樣頻率fs對一個信號進行采樣,信號中fs/2以上的信息會消失”,采樣定理的證明過程顯示當采用采樣頻率fs對一個信號進行采樣,信號中fs/2以上的信息不是消失,而是對稱的映像到fs/2以下的頻帶中,并且和fs/2以下原有的頻率成分疊加起來,從而產生混疊;第二,上述信號是假定帶限的信號,如果連續(xù)信號是非帶限的,那么將無法準確的從有限的采樣點中分析原始信號的頻譜,而只能通過適當提高采樣頻率和增加采樣點來減少對頻譜分析所造成的影響。
3.2 柵欄效應
利用FFT計算頻譜,只給出離散點 或 上的頻譜取樣值,也就是只給出了基頻的整數倍的頻譜值,而不可能得到連續(xù)頻譜函數, 這就像通過一個“柵欄”觀看信號頻譜,所以只能在離散點上看到信號頻譜, 這種現象稱之為“柵欄效應”。減小柵欄效應的一個方法就是要使頻域取樣更密,即增加頻域取樣點數N,在不改變時域數據的情況下,必然是在數據末端添加一些零值點,使一個周期內的點數增加,但并不改變原有的記錄數據。頻譜取樣為 ,的增加必然使樣點間距更近(單位圓上樣點更多),譜線更密,譜線變密后原來看不到的譜分量就有可能看到了。
為更好地說明FFT計算頻譜時存在的問題,對分析對象進行一些改動,令f2=49.5Hz,其他頻率成分不變,采樣頻率fs=200Hz,利用Matlab可得其信號和頻譜圖如圖3所示。
雖然采樣的頻率合適了,但是信號的頻率分辨率還是比較低的,并沒能反應出頻率為49.5Hz的信號,這就是柵欄效應的結果。
3.3 頻譜泄漏
對信號進行FFT計算,首先必須使其變成有限時寬的信號,這就相當于信號在時域乘一個窗函數如矩形窗,窗內數據并不改變。時域相乘即v(n)=x(n)·w(n),加窗對頻域的影響,可用下面的卷積公式表示
卷積的結果,造成所得到的頻譜V(ejω)與原來的頻譜X(ejω)不相同,有失真。這種失真最主要的是造成頻譜的“擴散”(拖尾、 變寬),這就是所謂的“頻譜泄漏”。
我們利用SPTOOL工具箱的頻譜分析功能,通過改變窗的類型,分析窗對減小能量泄露的影響。采用WELCH方法,其中采樣頻率Fs=200Hz,FFT采樣點(Nfft)=512,Nwind=256。分別對信號加矩形窗(boxcar)、三角窗(triang)、漢寧窗(hanning)、漢明窗(hamming)和布萊克曼窗(blackman)后頻譜圖如圖4至圖6所示。
從這些加窗后的頻譜圖分析比較可以看出,矩形窗的頻譜的主瓣比較小,但是它對旁瓣的抑制卻是比較差的;三角窗對旁瓣抑制比較好,但代價是犧牲了主瓣,它的主瓣比矩形窗的主瓣寬度增加不少;漢寧窗使能量集中在主瓣,旁瓣大大減小,主瓣寬度比矩形窗的主瓣寬度增加一倍左右。
各個頻譜圖上都看不到頻率為49.5Hz的信號,這說明各種窗的加入還是對頻率分辨率有比較大的影響,泄漏造成的后果是降低頻譜的分辨率。此外,由于在主譜線兩邊
形成很多旁瓣,引起不同頻率分量間的干擾(簡稱譜間干擾), 特別是強信號譜的旁瓣可能湮沒弱信號的主譜線,或者把強信號譜的旁瓣誤認為是另一信號的譜線,從而造成假信號,這樣就會使譜分析產生較大偏差。所以對于窗函數的選擇需要在主瓣寬度、第一旁瓣水平和旁瓣水平大小隨頻率增加而降低的速度之間進行折中選擇。
參考文獻
[1]程佩青.數字信號處理教程[M].清華大學出版社,2001.
[2]胡廣書.數字信號處理理論、算法與實現[M].清華大學出版社,2004.
[3]丁玉美,高西全.數字信號處理[M].西安電子科技大學出版社,2001.
[4]潘士先.譜估計和自適應濾波[M].北京航天航空大學出版社, 1991.