2012-07-12 59 views
2

我正在使用FFTW來分析高程數據,但是我只是通過查看一個簡單的1D fft來開始,以確保我能夠正常工作。它似乎工作,除了規範化(規模)因素,我不能從文檔中找出,主要是因爲我的數字是可笑的大。例如,當我試圖只取一個餘弦波如何正常化1維FFT輸出

1 6.12323e-017 -1 -1.83697e-016 1 3.06162e-016 -1 -4.28626e-016 1 5.51091e-016 -1  -2.44991e-015 etc... 

的FFT我得到的變換是

4.33743e-013 1.06036e+267 3.25205e+265 1.05963e+267 6.49675e+265 1.05743e+267 9.72679e+265 1.05379e+267 1.29349e+266 1.04869e+267 1.61138e+266 1.04216e+267 etc... 

例如,可笑的龐大的數字。

任何幫助,將不勝感激。

+0

這是一個非常明顯的症狀,讀取未初始化的數據。你可能想要確保你的輸入矢量實際上是正確的。 – Mysticial 2012-07-12 18:02:56

+0

可能會給我們一些代碼? – Tobas 2012-07-12 18:04:22

+1

神祕和丹尼爾完全正確。問題不在於程序,而在於使用它的愚蠢行爲。 – bigbenbt 2012-07-12 18:20:50

回答

6

您正在FFT複數,但您正常(沒有虛部)數組初始化陣列。

我繼續他們的身邊,發現有新的功能可以提供雙重複雜和複雜的雙重功能。整潔-O!

這裏:http://www.fftw.org/doc/New_002darray-Execute-Functions.html

+0

* facepalm。就是這樣。除非另有說明,否則我使用的最後一個FFT模塊假定爲實數。除非另有說明,否則FFTW假定複雜。 – bigbenbt 2012-07-12 18:20:04

+0

我很幸運,因爲我的朋友在組裝中加窗函數來加速我的項目,問題是:爲什麼輸出數據(來自窗口函數)的大小是雙倍的(每隔一個數字爲零)... – 2012-07-12 18:30:42