使用NumPy进行快速傅立叶变换:为什么它看起来像这样?

时间:2013-02-09 19:45:59

标签: python numpy fft

据我所知,快速傅立叶变换是离散傅立叶变换计算的快速方法。

我一直在玩NumPy数学库,因为这样的情节有这个代码:

import numpy as np
from numpy.fft import fft, fftfreq
import matplotlib.pyplot as plt

t = np.arange(0, 10, step=0.001)
signal = np.sin(t) + np.sin(10*t)
sp = fft(signal)
freq = fftfreq(signal.size, d=0.001)
plt.plot(freq, sp)
plt.show()

在我看来,它必须看起来像d(x-1)+ d(x-10)... // d是delta函数

(离散傅立叶变换必须看起来像简单的傅立叶变换,但据我所知,边缘有倾斜)

但事实并非如此。它看起来像“d(x-0.1)+ d(x-1.5)......”我想知道为什么。 fftfreq的问题?

1 个答案:

答案 0 :(得分:1)

我研究过这一年已经很多年了......

您期望看到1和10 Hz(周期/秒)的峰值? 然后你需要改变sin函数的参数。 ar取弧度为arg。 1Hz是2 * pi弧度/秒,10Hz是10 * 2 * pi rad / sec

更改你的信号= np.sin(2 * np.pi * t)+ np.sin(10 * 2 * np.pi * t)#eform math根据需要。