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
, andPeakingEQ
all have a gain value for its field, and represents the gain, in decibels, that the filter provides.
Constants§
- Common Q value of the Butterworth low-pass filter