【问题标题】:In The Web Audio Api, How to set correctly the Q value of a BiquadFilter for 1/3 of Octave在 The Web Audio Api 中,如何正确设置 BiquadFilter 的 Q 值以达到 Octave 的 1/3
【发布时间】:2018-02-21 05:07:36
【问题描述】:

我想模拟经典的 1/3 频段模拟均衡器和 1 个八度音程均衡器。我正在使用 BiquadFilter(Peaking),但我不知道如何为此正确设置 Q 值。

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

谢谢。

编辑

我找到了指向The Audio EQ Cookbookthis answer 并说:

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 Octave,中心频率是 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 呢?在Q 等式中,我应该使用BW = 1 表示一个八度音程还是使用BW = 1/3 表示三分之一?

另外,这个 Q 值是否与 BiquadFilter.Q 值兼容,还是我必须对其进行标准化?

【问题讨论】:

  • 是的,规范不是教程,并且假设您已经知道自己在做什么。话虽如此,我也同意在这方面确实需要更多材料。我也无法弄清楚峰值滤波器的 Q 和 BW 之间的关系。这些公式为 Q 或 BW 提供了非常出乎意料的值。
  • 这个答案可能会有所帮助:stackoverflow.com/questions/15627013/…
  • @KevinEnnis 是的,这很有帮助!您的公式是获得 biquadFilter 所需 Q 的最佳直接方法。

标签: web-audio-api


【解决方案1】:

Peaking Equalizers 给出了很好的描述以及 Q 和 BW 之间的简单关系。将它与音频食谱结合起来,应该可以为您提供创建所需峰值滤波器所需的信息。

【讨论】:

  • 那是密集的,自从我学习音频技术以来,我没有见过这样的东西!谢谢雷蒙德,但我必须把这个交给Kevin Ennis,主要是因为这个公式更容易实现。
  • 但峰值滤波器不是带通滤波器。但无论如何。
  • 你是对的......它没有考虑收益。对不起。
  • 这是我要做的事情的清单:创建某种教程或讲述如何从模拟滤波器到等效的 webaudio 双二阶滤波器。总有一天。
猜你喜欢
  • 2016-08-15
  • 1970-01-01
  • 2013-07-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-01-31
  • 2016-11-28
  • 1970-01-01
相关资源
最近更新 更多