我用一种语言或另一种语言设置了一些FFT,我发现它根据我设置缓冲区大小的方式更好或更差地响应不同的事情。此外,输出变化很大,峰值频率的幅度范围从500到10。
我有两个测试,特别是我正在运行,第一个是幅度为1.0的正弦波,LFO改变它的频率为0.1Hz。我发现较小的缓冲区在跟踪频率方面更准确。频率播放的幅度很容易达到300.
接下来的测试是使用麦克风,它的反应非常不同。如果我吹口哨或嗡嗡声,它会接受那个频率。如果我播放音乐,而不是增加所有频率的幅度,一切都变得更弱,包括任何吹口哨或嗡嗡声。将缓冲区大小更改为更小有帮助,但是在缓冲区上FFT的大多数迭代都会导致整个板上的幅度非常小。
一般来说,我发现的事情是较小的缓冲区更有可能获得非常强的频率幅度,但是a(幅度> 1)的频率越高,任何频率都越小。它们非常强大(> 200)。
所以,给定音频输入和频率和幅度的输出(由sqrt((实^ 2 + imag ^ 2)/(numSamples / 2)计算)我的问题如下:
鉴于一个唯一的,不动的正弦波,缓冲区大小相对较小,在什么频率上会出现什么样的幅度?
鉴于一个唯一的,不动的正弦波,具有相对较大的缓冲区大小,在什么频率上会出现什么样的幅度?
鉴于唯一的,频繁的正弦波,具有相对较小的缓冲区大小,在什么频率上会出现什么样的幅度?
鉴于唯一的,频繁的正弦波,具有相对较大的缓冲区大小,在什么频率上会出现什么样的幅度?
给定静态,缓冲区相对较小,可以预期到什么样的幅度?
给定静态,缓冲区相对较大,预计会有多大的幅度?
我知道这是很多问题,但我从这些测试中得到的结果是正确的,或者我做错了什么,而我找到的最简单的方法是找到某种多个场景的例子(我发现大多数输入/输出的例子都是基于单个场景)。