我在C#中有一个FFT算法,我在一个缓冲区中生成正弦波,频率为440,FS = 1600,窗口长度为2048.
在将信号发送到FFT之前,我将窗口长度加倍并在缓冲区数据之间放置虚数值(0)。在FFT之后,我计算幅度并获取最大幅度的索引并将其乘以容器大小。它的工作原理是返回442赫兹:)
现在我用Matlab将相同生成的正弦放入录制的.wav文件中。当我从C#运行FFT时,它会像我预期的那样返回884 Hz。为什么呢?
我用Audacity检查了.wav文件,他们得到了440更正值。
所以我知道为什么我的价值增加了一倍?
答案 0 :(得分:-1)
我想通了,好像我没有正确读取wav文件。