FFT之頻率與幅值的肯定(轉)

FFT以後獲得的是什麼數
FFT以後獲得的那一串複數是波形對應頻率下的幅度特徵,注意這個是幅度特徵不是複製,下面要講兩個問題:1.如何獲取頻率,2.如何獲取幅值算法

獲取頻率
FFT變換如何獲取頻率?傅里葉變換並沒對頻率進行任何計算,頻率只與採樣率和進行傅里葉變換的點數相關,注意這裏是進行傅里葉變換的點數而不必定是信號的長度。
FFT變換完第一個數時0Hz頻率,0Hz就是沒有波動,沒有波動有個專業一點的說法,叫直流份量。
後面第二個複數對應的頻率是0Hz+頻譜分辨率,每隔一個加一次,頻譜分辨率Δf計算公式以下:
Δf=FsN
式中:
Fs爲採樣率
N爲FFT的點數
所以只要Fs和N定了,頻域就定下來了。spa

FFT變換後的第一個實數 - 直流份量
FFT以後的第一個結果表示了時域信號中的直流成分的多少,所謂直流信號,表明和基準0的偏移量。
上面的結果很差說明,下面再看一個例子:io

oneWave = [1,1,1,1,1,1,1,1];fft(oneWave)
輸出:co

8 0 0 0 0 0 0 0

oneWave 的直流份量是1,但計算結果是8,這裏又引入一個問題,FFT以後的數值不是真實的幅值,須要進行轉轉換,第一個點須要除以N,才能還原爲原來的結果

FFT變換後的複數模 - 幅度
假設原始信號的峯值爲A,那麼FFT的結果的每一個點(除了第一個點直流份量以外)的模值就是A
的N/2倍。而第一個點就是直流份量,它的模值就是直流份量的N倍

也就是說,要得出真實幅值,須要把除了第1個點(i=0)以及最後一個點(i=N/2)除以N之外,其他點須要求得的模除以N/2 這是由於傅里葉級數對應時域幅值,其中已經包含了1/N項,而fourier變換中沒有該係數, 因此,進行完fft變換後需除以N/2才能與時域對應上。 FFT的計算公式 Fn=∑i=0N−1xie−2πjNni 實際應用中,只有i=0~N/2是有用的 全世界絕大部分的FFT算法計算出來後都須要進行幅度的轉換的,幅值根據需求有不一樣需求

相關文章
相關標籤/搜索