对正弦信号进行 FFT 并返回

信息处理 傅里叶变换
2022-02-14 05:24:27

我是一名计算机科学专业的学生,​​想用音频数据做一些事情。我想用 DFT 来分析和合成一些声音。在去更复杂的东西之前,我尝试了基本音调,发现了一些我不明白的问题——因此我想在这个物理论坛上寻求帮助。

的音频程序创建了一个单一的正弦波函数由此我采用 DFT 并希望从中重新创建原始信号。这样做时,首先我发出负频率,因此只采用前频率。是我的块大小(我将信号分成长度为的块)。我的音频信号的采样率为因此,当我这样做并从结果数据中获取 IFT 时,我可以完美地重建我的信号。440 Hzn/2Nn44100 Hz

现在到我的问题和问题:

  1. 当我在傅里叶空间(虚部)中将相位设置为,我恢复了带有一些周期性噪声的正弦信号。 0n
    • 我假设这是块之间可以听到的相位差?
  2. 当我将设置为(采样频率)时,我得到了完全的噪音。 n44100
    • 这是为什么?
  3. 现在我只想明智地采用最强的频率幅度(我认为这应该完美地工作) - 因此我将傅里叶空间中的所有其他频率设置为,然后进行 IFT。对于不同这种作品,我得到一个带有一些周期性噪声的正弦信号。 0n
    • 为什么会有噪音?
    • 此外,所得音调的频率随变化。这是为什么?n
    • 随着我得到完全的沉默。为什么?n=44100
  4. 当我再次将阶段设置为时,我得到了相同的结果。0

我希望它对你也有点有趣。你能给我解释一下这些“现象”吗?

2个回答

部分问题是您使用的是正弦波。FFT 结果的虚部包含有关纯正弦波的所有信息(例如,相当于在 FFT 孔径开始时相位为零的 sin() 函数,并且在孔径中恰好是整数周期)。如果仅使用 FFT 结果的实部,则只能看到余弦波(不是正弦波,孔径中的周期性),因此是无声的结果。

对于较短的 FFT,如果正弦波的频率在给定 FFT 长度的 FFT 结果箱之间(例如,孔径中不是整数周期),则结果的实部可能包含窗口伪影。因此,在合成中,您听到的是频率量化的伪影。

在数学上,FFT 是傅里叶变换的一种特殊形式。首先,您仅在固定的点网格处对其进行采样,从而产生周期性的频率表示(您无法区分频率相差采样频率的整数倍的正弦波)。这是您在采样阶段已经需要通过预先设置适当的低通滤波来处理的问题。

然后,您获取数据的示例窗口并无限次重复它。作为该操作的结果,生成的傅立叶变换将仅包含周期性为样本窗口长度整数倍的分量。作为该操作的另一个结果,周期不是采样窗口的精确倍数的正弦信号将在它们“粘贴在一起”的点处具有不连续性。

使用“加窗”是为了在频率仓上产生的频率泄漏和信号表示的合理符号精度之间取得良好的折衷。

请注意,只要您对转换后的数据不做任何操作,而是将其原封不动地转换回来,它将被完美地重建:FFT 是一种信息保留转换。

它只是不是傅里叶变换,其方式非常适合计算无源电路的频率响应,因为它适用于时间离散的强制周期数据,并产生离散的频率区间。