天天看點

FFT頻譜分析中的幾個誤差

fft在分析頻譜分析的時候,會有下面四個方面的誤差:

(1)頻譜混疊: 奈奎斯特定理已被衆所周知了,是以幾乎所有人的都知道為了不讓頻譜混疊,理論上采樣頻譜大于等于信号的最高頻率。那和時域上聯系起來的關系是什麼呢?

采樣周期的倒數是頻譜分辨率,最高頻率的倒數是采樣周期。

設定采樣點數為N,采樣頻率fs,最高頻率fh,故頻譜分辨率f=fs/N,而fs>=2fh,是以可以看出最高頻率與頻譜分辨率是互相沖突的,提高頻譜分辨率f的同時,在N确定的情況下必定會導緻最高頻率fh的減小;同樣的,提高最高頻率fh的同時必會引起f的增大,即分辨率變大。

(2)栅欄效應:由于dft是隻取k=0,1,2,.......N-1,隻能取到離散值,如果頻譜之間相隔較大的話也許會将一些中間的資訊丢失掉,而用fft計算dft是不可避免的,解決的辦法就是增加采樣點數N。這樣頻譜間隔變小,丢失資訊的機率減小。

另外,增加0可以更細緻觀察頻域上的信号,但不會增加頻譜分辨率。

這裡有補零對分辨率的影響

(3)頻譜洩露:是由加窗函數引起的,同樣是計算量的問題(用fft用dft必需要加窗函數),時域上的相乘,頻域上卷積,引起信号的頻譜失真,隻有在很少的情況下,頻譜洩露是不會發生的,大部分情況都會引起洩露。如x(n)=cos(2π/N),(n=0,1,2,3.....N-1,)  N點的fft則不會發生洩露,但2N,或N+1,N+2等均會引起失真,而引起失真可以從表達式上可以看出  X(K)=卷積以後的頻譜在2π/N*k的      取樣值,是以如果是2N的dft,為2π/2N*K,相當于N點dft結果各個值中間再取樣了一個值,而2π/(N+2)*k,就與N點fft完全不一樣了。解決辦法,可以擴大窗函數的寬度(時域上的寬了,頻域上就窄了,(時域頻域有相對性),也就是洩露的能量就小了),或者不要加矩形的窗函數,可以加緩變的窗函數,也可以讓洩露的能量變下。

因為洩露會照成頻譜的擴大,是以也可能會造成頻譜混疊的現象,而洩露引起的後果就是降低頻譜分辨率。

頻譜洩露會令主譜線旁邊有很多旁瓣,這就會造成譜線間的幹擾,更嚴重就是旁瓣的能量強到分不清是旁瓣還是信号本身的,這就是所謂的譜間幹擾。

繼續閱讀