0
我試圖重新編譯python中的fft函數。我在這裏看到過一個類似的問題Manual fft not giving me same results as fft,但是我很難看到我是否做了同樣的錯誤或不同的錯誤。python manual fft botched
import numpy as np
import numpy.random as npr
N=9 ### 10 -1
MC=10
###Genrate soem data
data=complex(1,0)*npr.uniform(size=(N,MC))+complex(0,1)*npr.uniform(size=(N,MC))
naive_fft=complex(1,0)*np.zeros((N,MC))
for K in range(N):
for m in range(N):
phase=(2*np.pi*K*m)/float(N+1)
naive_fft[K,:]=naive_fft[K,:]+data[m,:]*np.exp(complex(0,1)*phase)
fft=np.fft.fft(data,axis=0)
ifft=np.fft.ifft(data,axis=0)
print('fft')
print(naive_fft-fft)
print('ifft')
print(naive_fft-ifft*(N+1.0))
我的成績相較於numpy的FFT我無法重現既不FFT也不IFFT(只有naive_fft[0,:]
似乎匹配fft[0,:]
值。
謝謝。你救了我。那個範圍(N)給出了0,....,N-1仍然有點奇怪,沒有我。 –