2011-10-29 58 views
1

我正在研究測量振動機器人手臂運動的控制系統。由於有一些死亡時間,我需要研究有些嘈雜的信號的未來。 我的想法是使用採樣信號中的頻率併產生可用於外推的傅里葉函數。如何從Matlab中的複數FFT得到正弦/餘弦函數的係數?

我的問題:我已經有了信號矢量的FFT(包含例如60-100個值),並且可以看到幅度譜中的主要頻率。現在我想有一個適合信號的函數f(t),去除一些噪聲,並且可以用來預測信號的近期未來。如何從複數FFT數據中計算正弦/餘弦函數的係數?

非常感謝!

+0

你可能想試試在http://dsp.stackexchange.com上詢問這個問題,因爲它比編程相關的DSP更相關 –

+0

好吧我不知道那個網站!我會在那裏嘗試! –

回答

1

AFAIR FFT本質上產生輸出爲不同頻率的正弦函數之和。每個頻率的重要性是每個峯值的高度。所以你真正想要做的就是過濾掉一些頻率(例如手臂的高頻率輕輕移動),然後回到時域。

在matlab中,這應該像是通過從fft得到的向量,將一些值設置爲0(或者對其執行更復雜的操作),然後使用ifft返回到時域,並基於預測在你得到什麼。

你還應該考慮一件事 - 奈奎斯特頻率 - 這意味着你在fft上獲得的最高頻率是採樣頻率的一半。

0

如果對FFT孔徑長度內不是週期性的數據使用FFT,則可能需要使用窗口來減少由於「頻譜泄漏」導致的寄生頻率。頻率估計技術可以更好地估計「頻段之間」頻率內容也是適當的。每個餘弦正弦曲線相對於窗口邊緣的相位通常是atan2(imag [i],real [i])。頻率取決於採樣率和箱號與FFT的長度。

您可能還想使用卡爾曼濾波器來代替FFT。