在快速傅里叶变换中,尖峰以零为中心

时间:2016-08-15 13:34:31

标签: python numpy scipy fft

我有时间关联数据,我想要执行傅里叶变换。数据位于http://pastebin.com/2i0UGJW9。问题是数据的间隔不均匀。为了解决这个问题,我试图对数据进行插值,然后执行快速傅里叶变换。

import numpy as np
from scipy.fftpack import fft, fftfreq, fftshift 
from scipy.interpolate import interp1d 
import matplotlib.pyplot as plt

x = np.linspace(min(times), max(times), len(times))
y = interp1d(times, data)(x)
yf = fft(y)
xf = fftfreq(len(times), (max(times)-min(times))/len(times))
xf = fftshift(xf)
yplot = fftshift(yf)
plt.figure()
plt.plot(xf, 1.0/len(times) * np.abs(yplot))
plt.grid()
plt.show()

然而,这会给出一个以零为中心而不是预期频率图的尖峰。如何才能得到准确的结果?

0 个答案:

没有答案