正弦波频谱显示多频

信息处理 fft 频谱
2022-02-18 21:55:20

我对DSP很陌生,所以请原谅我的无知。

使用 Audacity,我生成了一个正弦波:

  • 频率 440Hz
  • 幅度:0.8
  • 时长:1分钟

现在,当我绘制这个正弦波的频谱时,我得到这样的图像:

在此处输入图像描述

这对我来说真的很令人惊讶。

我预计纯音会出现 440 Hz 的单次浪涌。但这完全不同。当然,这与噪音无关。对 ?

我的问题

一个纯音的频谱怎么会有这么多的频谱成分。

我错过了什么明显的东西?

2个回答

如果单个纯实正弦输入的频率其周期是 FFT 大小的精确整数因数,则 FFT 只会产生单个分量(加上其复共轭和一些微小的数值噪声)。矩形窗口会使任何“泄漏”到其他不相邻的垃圾箱中变得更糟。

但是您指定的 FFT 长度是 512,这不是信号周期的精确倍数(即 44100/440 = 100.227273)。

当您对有限长度序列进行 DFT 时,您实际上是在对其进行窗口化。对于您使用正弦曲线描述的简单示例,您首先采用 y[n] = x[n] * w[n] 其中 x 是正弦曲线,w 是窗口函数。时域中的乘法是频域中的卷积。矩形窗口的 DFT 是一个sinc函数。请参阅Wikipedia中的傅立叶变换对 201 ,它显示了一个矩形函数。sin 函数的傅立叶变换是 +/- 频率的两个 delta 脉冲。您只是在绘制正频率,但在负频域中也存在同样的情况。

当您将 sinc 函数与 delta 函数进行卷积时,您会涂抹两者,这就是为什么您有一个 sinc 函数在频域上涂抹的原因。

还有其他表征窗口函数的属性,如主瓣宽度和峰值旁瓣电平,所有这些都超出了这个问题的范围,但通常人们在进行 FFT 之前使用汉明或汉宁窗口。