我正在學習使用web audio api來合成和處理聲音。我發現我有一個BiquadFilterNode類可以使用,但它只允許指定一個定義的過濾器類型("lowpass", "highpass", "bandpass", "lowshelf", "highshelf", "peaking", "notch", "allpass"
)並通過這些過濾器的元參數來控制它:Q
,gain
和center-frequency
。網絡音頻API和濾波器係數
有沒有辦法指定數字濾波器的實際係數?換句話說,對於形式的過濾器:
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
值是多少?
我問,因爲雖然預定義的過濾器類型非常方便,但它們不一定涵蓋所有用例。通過指定係數可以實現一階濾波器,參數部分等。
這似乎是不可能的。但是[這裏](https://dvcs.w3.org/hg/audio/raw-file/tip/webaudio/specification.html#BiquadFilterNode)被寫入'多個BiquadFilterNode過濾器可以被組合以形成更復雜的過濾器'。也許這有幫助..其他方面,你必須自己實現過濾器。 – bitWorking
感謝您的建議@redreggae。我知道我可以直接在JavaScript中實現過濾器(使用[ScriptProcessorNode](http://www.w3.org/TR/webaudio/#ScriptProcessorNode-section)),但這樣效率很低,我很確定所有的東西都需要已經在'BiquadFilterNode'的低層實現了。只是通過API公開係數的問題。 – jorgeh