在Web Audio Api中,如何正确设置BiquadFilter的Q值为Octave的1/3

时间:2018-02-17 19:00:24

标签: web-audio web-audio-api

我想模仿一个clasic 1/3波段模拟eq和1个八度音阶。我正在使用BiquadFilter(Peaking),但我无法找到如何正确设置Q值。

在WAA文档中没有等效或示例值的示例。有谁知道我怎么能做到这一点?

感谢。

修改

我发现this answer指向The Audio EQ Cookbook并说:

  

正如https://webaudio.github.io/web-audio-api/#filters-characteristics中所述,双二阶滤镜的公式基于http://www.musicdsp.org/files/Audio-EQ-Cookbook.txt处的注释

     

这表示Q和带宽与公式有关   1/Q = 2*sinh(ln(2)/2*BW*w0/sin(w0))   其中w0 = = 2*pi*f0/Fsf0是中心频率,Fs是采样率。

在该等式中,我不确定如何正确获取带宽,例如在此页http://www.sengpielaudio.com/calculator-bandwidth.htm中,我们可以看到一个公式,其中指出BW = f2 − f1其中f2是下一个频率Eq和f1之前的频率?

例如,如果EQ是1/3倍频程,则中心频率为1Khz,采样率为44100hz,

  

f2 = 1250Hz   f0 = 1000Hz   f1 = 800hz

     

w0 = 2 * pi * 1000/44100 = 0.14247585730565954

     

BW = 1250hz - 800hz = 450

但是,1.09283639196669×10^-68的Q值太小了。但是,如果我将BW视为1/3(如八分之一的三分之一),它会给4.30381250657881几乎与同一个Sengpiel Audio网站中的BW到Q计算器相同。

那么为什么BW = f2 − f1?我应该在BW = 1等式中使用BW = 1/3作为一个八度音,还是Q作为三分之一?

此外,此Q值是否与BiquadFilter.Q值兼容,还是我必须将其标准化?

1 个答案:

答案 0 :(得分:1)

Peaking Equalizers提供了一个很好的描述和Q与BW之间的简单关系。将其与音频食谱相结合,可以为您提供创建所需峰值滤波器所需的信息。