小编gbe*_*605的帖子

快速傅立叶变换中以零为中心的尖峰

我有时间相关的数据,我想对其执行傅立叶变换。数据位于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()
Run Code Online (Sandbox Code Playgroud)

然而,这给出了以零为中心的单个尖峰,而不是预期的频率图。我怎样才能得到这个以给出准确的结果?

python numpy fft scipy

1
推荐指数
1
解决办法
2010
查看次数

标签 统计

fft ×1

numpy ×1

python ×1

scipy ×1