biquad

Module coefficients

Source
Expand description

§coefficients

Module for generating filter coefficients for second order IIR biquads, where the coefficients form the following Z-domain transfer function:

        b0 + b1 * z^-1 + b2 * z^-2
H(z) =  --------------------------
         1 + a1 * z^-1 + a2 * z^-2

The second orders filter are based on the Audio EQ Cookbook, while the first order low pass filter is based on the following Wikipedia article.

§Examples

fn main() {
    use biquad::*;

    // Cutoff frequency
    let f0 = 10.hz();

    // Sampling frequency
    let fs = 1.khz();

    // Create coefficients
    let coeffs = Coefficients::<f32>::from_params(Type::LowPass, fs, f0, Q_BUTTERWORTH_F32);
}

§Errors

Coefficients::from_params(...) can error if the cutoff frequency does not adhere to the Nyquist Frequency, or if the Q value is negative.

Structs§

  • Holder of the biquad coefficients, utilizes normalized form

Enums§

  • The supported types of biquad coefficients. Note that single pole low pass filters are faster to retune, as all other filter types require evaluations of sin/cos functions The LowShelf, HighShelf, and PeakingEQ all have a gain value for its field, and represents the gain, in decibels, that the filter provides.

Constants§