我在C#中有一个快速傅立叶变换算法,我在一个缓冲器中生成频率为440,FS=1600和窗口长度为2048的正弦波。
在将信号发送到FFT之前,我将窗口长度加倍,并在缓冲区数据之间放置虚值(0E)。在FFT之后,我计算振幅,取最大振幅的索引,并将其乘以bin大小。它正常工作,它返回类似于442 Hz的内容:)
现在我将生成的相同正弦数据放入一个用Matlab录制的.wav文件中。当我从C#运行快速傅立叶变换时,它返回884 Hz的双倍,正如我所预期的那样。为什么?。
我用Audacity检查了.wav文件,他们得到了440的校正值。
你知道为什么我会得到双倍的价值吗?
发布于 2013-05-06 22:03:36
我弄明白了,似乎我没有正确读取wav文件。
https://stackoverflow.com/questions/16379543
复制相似问题