我正在编写一个程序,您可以在其中通过添加到声音的傅立叶变换来合成波,然后对变换进行逆变换以获得修改后的声音。为了做到这一点,我需要知道在 DFT 中添加什么来合成纯波。我试图从许多来源了解傅里叶合成,但他们都在谈论傅里叶级数而不是傅里叶变换,他们都说对于纯波,你所需要的只是该波频率系数中的一个值,和 0 其他地方。但是傅里叶变换是一个连续函数。您可以在这里看到纯 12KHz 正弦波的傅里叶变换是什么样子(在对数刻度上)。如您所见,它不仅仅是一个瞬时峰值,其他任何地方都为 0。
所以我试着自己做数学。正式地说,假设我们有一个采样信号, 在哪里 ,是我们信号中的样本数,,是一个幅度 确定波的频率,并且是波的相位。该信号的 DFT 将是一个序列在哪里:
我的希望是,由于我们的信号是纯波,所以会有一个直接的计算公式这可以比直接进行上面的数学计算快得多,并且该公式将是我链接的图像中那个尖峰的形状,因为这是我真正感兴趣的。为了简单起见,我假设,因为一旦我弄清楚如何解决这种情况,我可能就能概括它。我不会让你厌烦所有的数学,因为它并不重要,你可能已经知道答案了。我最后得到的是, 对于所有其他.
令人震惊。所以最后我发现它确实等于 0 除了波的频率。但是我不明白我链接的图表中的尖峰形状来自哪里。不过,我仍然在追求它,因为仅添加一个与我感兴趣的频率相对应的样本对我不起作用(我已经尝试过)。
所以我想我的问题是:为什么绘制纯波的傅里叶变换实际上不会在所有样本中产生零,除了对应于该波频率的样本,以及你看到的那个尖峰的公式是什么。


