1

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

我一直在玩 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-function

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

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

4

1 回答 1

1

学习这个已经很多年了...

您期望在 1 和 10 Hz(周期/秒)处看到峰值吗?然后你需要改变 sin 函数的参数。sin 采用弧度作为 arg。1 Hz 是 2*pi 弧度/秒,10 Hz 是 10*2*pi 弧度/秒

改变你的信号 =np.sin(2*np.pi*t) + np.sin(10*2*np.pi*t) # 根据需要优化数学。

于 2013-02-13T02:32:40.990 回答