了解正弦曲线的 FFT

Posted

技术标签:

【中文标题】了解正弦曲线的 FFT【英文标题】:Understanding FFT for a sinusoid 【发布时间】:2021-05-20 11:33:41 【问题描述】:

我正在尝试了解 FFT 的工作原理。

如果我绘制此信号的 FFT(即 np.abs(fft(y)),我会看到预期的 10 Hz 处的一个峰值。 我的实验是改变 y 的最后一个值(即 y[-1] = 0),使重复时信号 y 似乎连接不顺畅,但输出没有变化:

output

我的理解是 FFT 图中会有泄漏,因为 FFT 会“认为”信号在 1 秒左右没有平滑连接在一起。但是,我根本看不到泄漏。我错过了什么重要的东西吗?

【问题讨论】:

你的意思是“y的最后一个值”吗? y 将是 -1 到 1 范围内的浮点数,因为它是某物的余数。 y[-1] 指的是不在您的代码中的数据结构。你为什么不编辑你的问题来澄清。 “我根本看不到泄漏”。那你看到了什么?更改输入数组中的值必须更改输出。如果您根本看不到变化,也许您正在寻找与您想象的不同的东西?为什么不发布完整的代码来重现您正在查看的情节? 看看红点怎么没有和Y轴上的0对齐?这就是你的“泄漏” 【参考方案1】:

样本点必须是 2 的幂。我建议您工作的点数至少高出 4 倍。这使得 10Hertz x4 = 40 点,最接近 2 的幂是 64 点。

【讨论】:

不需要有两个样本的幂。

以上是关于了解正弦曲线的 FFT的主要内容,如果未能解决你的问题,请参考以下文章

我不太了解 FFT 和采样率

频率为随机变量的正弦曲线 - FFT 脉冲是啥样的?

来自近乎完美的正弦曲线的奇怪 FFT 频谱

OI中的快速傅里叶变换(FFT)

在 fft 中应用窗口函数的正确方法

关于cubic-bezier 贝塞尔曲线的简单了解