2012-07-23 58 views
0

我目前正在寫一些應該對一組數據執行FFT的代碼。我有一個python的點列表,我可以很容易地創建一個時間列表。當我運行fft(datalist)時,出現'TypeError:'numpy.ndarray'對象不可調用'錯誤。我認爲(但請糾正我)問題是該列表是一個維度,並且他們通過使用上面的那一行代碼根本沒有時間依賴性。我的問題是,我必須輸入一個包含時間和數據點的二維數組嗎?還是我完全錯了,不得不重新思考? 謝謝,邁克 編輯 - 忘了添加一些代碼。 t =時間。難道是因爲數組中的條目數不等於2^n,其中N是一個整數?Python SciPy FFT函數 - 輸入?

sample_rate=10.00 
t=r_[0:191.6:1/sample_rate] 
S = fft([mylist]) 
print S 
+2

看起來你不小心覆蓋'fft'使用數組。 'print fft'給出了什麼? – DSM 2012-07-23 19:43:16

+0

什麼都沒有打印 – 2012-07-23 19:54:12

+0

我不明白這是怎麼回事。 'print type(fft),repr(fft)'給出了什麼? – DSM 2012-07-23 20:03:19

回答

0

Numpy和SciPy fft函數看起來有numpy數組作爲輸入,而不是本機python列表。他們的工作也很好,長度不是2的冪。在傳遞給fft之前,你可能只需要將你的列表轉換爲數組。

從你的示例代碼上面的嘗試:

from numpy.fftpack import fft 
from numpy import array 

""" However you generate your list goes here """ 

S = fft(array([mylist]))