我想在Python 2.7中使用pynfft包来进行非均匀快速傅里叶变换(nfft)。因为我只学习Python两个月,所以有些困难。
这是我的代码:
import numpy as np
from pynfft.nfft import NFFT
#loading data, 104 lines
t_diff, x_diff = np.loadtxt('data/analysis/amplitudes.dat', unpack = True)
N = [13,8]
M = 52
#fourier coefficients
f_hat = np.fft.fft(x_diff)/(2*M)
#instantiation
plan = NFFT(N,M)
#precomputation
x = t_diff
plan.x = x
plan.precompute()
# vector of non uniform samples
f = x_diff[0:M]
#execution
plan.f = f
plan.f_hat = f_hat
f = plan.trafo()
我基本上是按照在pynfft教程中找到的说明(http://pythonhosted.org/pyNFFT/tutorial.html)来进行操作的。
我需要使用nfft,因为我的数据所采取的时间间隔不是恒定的(我的意思是,第一次测量在t时刻,第二次在dt之后,在dt+dt'之后进行第三次测量,其中dt'与dt不同,以此类推)。
pynfft软件包在执行之前需要傅里叶系数向量(“f_hat”),因此我使用numpy.fft计算了它,但我不确定这个过程是否正确。还有其他方法可以做到这一点吗(也许使用nfft)?
我还想计算频率;我知道使用numpy.fft有一个命令:是否也有类似于pynfft的命令?我在教程中没有找到任何信息。
非常感谢您能给我的任何建议。