【发布时间】:2013-01-12 09:12:15
【问题描述】:
我正在学习使用web audio api 来合成和处理声音。我看到我可以使用 BiquadFilterNode 类,但它只允许指定定义的过滤器类型之一 ("lowpass", "highpass", "bandpass", "lowshelf", "highshelf", "peaking", "notch", "allpass") 并通过此类过滤器的元参数控制它:Q、gain 和 @987654328 @。
有没有办法指定数字滤波器的实际系数?换句话说,对于以下形式的过滤器:
b_0 + b_1*z^(-1) + b_2*z^(-2)
H(z) = -----------------------------
1 + a_1*z^(-1) + a_2*z^(-2)
我可以以某种方式直接指定b_0, b_1, b_2, a_1, a_2 的值吗?
我问是因为虽然预定义的过滤器类型非常方便,但它们不一定涵盖所有用例。通过指定系数,可以实现一阶滤波器、参数部分等。
【问题讨论】:
-
这似乎是不可能的。但是here 写成
Multiple BiquadFilterNode filters can be combined to form more complex filters。也许这有帮助..否则你必须自己实现过滤器。 -
感谢您的建议@redreggae。我知道我可以直接在 JavaScript 中实现过滤器(使用ScriptProcessorNode),但这非常低效,我很确定所需的一切都已经在
BiquadFilterNode的低级别实现了。只是通过 API 公开系数的问题。
标签: signal-processing web-audio-api