我有一個使用FFT的數據的數組(大小爲128)。我試圖通過FFT譜找出數據的頻率。問題是公式freq = i * Fs/N
似乎沒有工作。我的數據相當嘈雜,我不知道是因爲我的噪音數據還是因爲我做了其他事情。下面是我的原始數據:從嘈雜的數據獲取FFT頻率?
這是從產生的頻譜的變換:
我在獲得同等幅度兩個最大峯值在指數4和128輸出數組。的數據的頻率應爲約1.1333赫茲,但是當我使用式我正在5-6或完全錯誤值:
freq = i * Fs/N;
i
哪裏是最大幅度峯值的數組索引,Fs
是採樣率以Hz爲單位,並且N
是數據大小。
使用我的數據,你得到freq = (4 * 11.9)/128
= 0.37赫茲,這是非常不符合預期。
如果我的計算是正確的,有沒有改善我的數據的任何方式?或者,我的頻率計算是否有誤?
對於你的頻譜似乎包含256點,所以我猜你正在繪製交錯的實部和虛部而不是幅度。如果'i'是頻譜圖中顯示的指數,那麼結果將會減少2倍(儘管並不幫助你的情況)。然後你有一個強大的平均值/非常低的頻率分量(原始數據的分段在98-100之間變化,而不是接近0),這自然會出現在較低頻譜分箱中。消除偏差,你可能會更好地看到與你的數據振盪相關的頻譜峯值。 – SleuthEye
強平均值是指頻譜邊緣的峯嗎?我移除了每邊大約1/5的頻譜,並得到這個:[image link](http://imgur.com/Fc4ExB3)。所以我猜測我的數據太吵了,無法創建精確的頻譜? – Piglet
我也對最大幅度的指標感到困惑。假設有256個數據點,並且虛數部分是交錯的,如果最高的數值在索引90處,那麼我會說i = 45,因爲第45個真實數值是在索引90處? – Piglet