我不明白为什么音量定义的频率不如预期。
我依次用几个指定的频率向我的麦克风发送声音。然后,我对我的麦克风缓冲区进行FFT。退出FFT时,我有一个复数数组。要知道定义频率上的声音音量,我看看我的数组,我得到这个数组中的元素数:
MyFrequency = n*SamplingRate/SizeOfArray.
接下来,我得到复数
的大小(sqrt(Re^2+Im^2)
如果我是对的,这会显示此频率上的声音音量。但是这个值会根据频率发生很大变化。如果我错了,请向我解释我需要做些什么来纠正我的错误。如果我是对的,请解释一下为什么这些价值变化如此之大。
答案 0 :(得分:1)
您是在FFT之前应用window function吗?如果没有,那么您将看到spectral leakage的效果,并且如果原始频率是采样率的精确亚倍,则任何给定FFT区间的幅度将是正确的。