Biquad Low-pass Filter

オーディオDSPの入口として、2次IIRローパスフィルターを実装します。少ない計算量で、カットオフ周波数とQを直感的に扱える定番の構成です。

Design

正規化角周波数 ω₀ = 2πf₀ / fs から係数を計算します。Qを上げるほどカットオフ付近のレゾナンスが強くなります。

const auto w0 = 2.0 * pi * cutoff / sampleRate;
const auto alpha = std::sin(w0) / (2.0 * q);
b0 = (1.0 - std::cos(w0)) * 0.5;
b1 = 1.0 - std::cos(w0);
b2 = b0;

Listening notes

係数更新をサンプル単位で滑らかに補間すると、カットオフを動かしたときのzipper noiseを抑えられます。