相关疑难解决方法(0)

在Python中绘制快速傅里叶变换

我可以访问numpy和scipy,并希望创建一个简单的数据集FFT.我有两个列表,一个是y值,另一个是y值的时间戳.

将这些列表提供给scipy或numpy方法并绘制结果FFT的最简单方法是什么?

我查了一些示例,但它们都依赖于创建一组具有一定数量的数据点和频率等的假数据,并没有真正展示如何使用一组数据和相应的时间戳来实现它.

我尝试过以下示例:

from scipy.fftpack import fft
# Number of samplepoints
N = 600
# sample spacing
T = 1.0 / 800.0
x = np.linspace(0.0, N*T, N)
y = np.sin(50.0 * 2.0*np.pi*x) + 0.5*np.sin(80.0 * 2.0*np.pi*x)
yf = fft(y)
xf = np.linspace(0.0, 1.0/(2.0*T), N/2)
import matplotlib.pyplot as plt
plt.plot(xf, 2.0/N * np.abs(yf[0:N/2]))
plt.grid()
plt.show()
Run Code Online (Sandbox Code Playgroud)

但是当我将fft的参数更改为我的数据集并绘制它时,我得到了非常奇怪的结果,看起来频率的缩放可能会关闭.我不确定.

这是我试图FFT的数据的pastebin

http://pastebin.com/0WhjjMkb http://pastebin.com/ksM4FvZS

当我在整个事情上做一个fft时,它只有一个零的巨大尖峰而没有别的

这是我的代码:

## Perform FFT WITH SCIPY
signalFFT = fft(yInterp)

## Get Power Spectral Density
signalPSD = np.abs(signalFFT) ** 2

## …
Run Code Online (Sandbox Code Playgroud)

python numpy fft scipy

65
推荐指数
7
解决办法
22万
查看次数

从xy点列表中进行离散傅里叶变换

我想要做的是,从具有周期性模式的xy点列表中,计算周期.凭借我有限的数学知识,我知道傅立叶变换可以做到这一点.

我正在编写Python代码.

我在这里找到了一个相关的答案,但是它使用了均匀分布的x轴,即dt固定,这对我来说并非如此.由于我不太了解它背后的数学,我不确定它是否能在我的代码中正常工作.

我的问题是,它有效吗?或者,是否有一些方法numpy可以完成我的工作?或者,我该怎么办?

编辑:所有值都是Pythonic float(即双精度)

python math numpy

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

标签 统计

numpy ×2

python ×2

fft ×1

math ×1

scipy ×1