我不明白为什么音量定义的频率不符合预期。
我依次将声音以几个指定的频率发送到麦克风。然后我对麦克风缓冲区进行 FFT。在 FFT 退出时,我有一个复数数组。要了解定义频率上的声音音量,我查看我的数组,该数组中的元素数量是这样得到的:
MyFrequency = n*SamplingRate/SizeOfArray.
接下来,我得到复数的大小
(sqrt(Re^2+Im^2)
如果我是对的,这会显示该频率上的音量。但该值会根据频率发生剧烈变化。如果我错了,请向我解释我需要做什么才能纠正我的错误。如果我是对的,请解释一下为什么这个值变化这么大。
您是否正在申请窗函数 http://en.wikipedia.org/wiki/Window_function在 FFT 之前?如果没有,那么您将看到以下效果频谱泄漏 http://en.wikipedia.org/wiki/Spectral_leakage,并且只有当原始频率是采样率的精确约数时,任何给定 FFT bin 的幅度才是正确的。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)