我已使用Web Audio API中的getByteFrequencyData方法使用了来自Analyzer节点的FFT数据来创建频谱可视化器,如下所示:

在这种情况下,我有256个数据箱。这个数字到底对应什么?是每个频率分量的分贝电平。如果是这样,我怎么知道每个仓的频率值对应于什么?

我想知道,因此我可以尝试构建图形方程,因此想知道在哪些点指示滤波器带。理想情况下,我想表示20Hz至20kHz的频率,并相应绘制出它们之间的间隔。

谢谢你的帮助。

最佳答案

是的,getByteFrequencyData会导致0到255之间的值标准化数组。
(它将数据复制到传递给它的数组中)。

频带被均分,因此数组的每个元素N对应于:

N * samplerate/fftSize

因此,第一个bin为0。
并假设采样率为44100,且<analyzerNode>.fftSize为512,则秒为:86.13 Hz,依此类推...

您会在dspSO上找到这两个有用的问题和答案:

请注意,样本数据的长度是<analyzerNode>.fftSize的一半,有效地将频率范围限制为采样率的一半。

关于audio - Web Audio API中的FFT数据对应什么?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/14789283/

10-09 18:26
查看更多