ROOTCASTLE / ENGINEERING LAB
Filterontwerp
Biquad-filteren, Bode-grafieken en C-code.
LOCAL CALCULATION · RUNS IN THE BROWSER
✓ Stable: all poles inside the unit circle
- |H(2kHz)|
- -12.37 dB
- ∠H(2kHz)
- -136.9°
- Section
- 1
- max |pole|
- 0.911594
| Section | b0 | b1 | b2 | a1 | a2 |
|---|---|---|---|---|---|
| 1 | 0.0039161235 | 0.007832247 | 0.0039161235 | -1.8153396 | 0.83100411 |
| 1 · Q14 | 64 | 128 | 64 | -29743 | 13615 |
/* Low-pass Q 0.7071, f0 1kHz, fs = 48000 Hz. Generated by Rootcastle LAB; verify against your own requirements. */
typedef struct { float b0, b1, b2, a1, a2; float z1, z2; } biquad_t;
static biquad_t stages[1] = {
{ 0.003916123487f, 0.007832246974f, 0.003916123487f, -1.815339612f, 0.8310041056f },
};
float filter_step(float x) {
for (int i = 0; i < 1; i++) {
biquad_t *s = &stages[i];
float y = s->b0 * x + s->z1;
s->z1 = s->b1 * x - s->a1 * y + s->z2;
s->z2 = s->b2 * x - s->a2 * y;
x = y;
}
return x;
}Model and assumptions
Second-order IIR (biquad) sections are designed with the bilinear transform using R. Bristow-Johnson’s “Audio EQ Cookbook” formulas. As the corner approaches fs/2, frequency warping increases the deviation from the analog prototype. 4th- and 6th-order low/high-pass filters are cascaded with Butterworth Q values (the Q input is then unused). Fixed-point results show coefficient quantization only; accumulator overflow, rounding noise and limit cycles must be tested separately.
ω0 = 2π·f0/fs; α = sin ω0 / 2Q; H(z) = (b0 + b1·z⁻¹ + b2·z⁻²) / (1 + a1·z⁻¹ + a2·z⁻²)
Wat is het voor?
Een biquad is de meest gebruikte bouwsteen om netspanningsfrequentie (50/60 Hz) uit een sensorsignaal te filteren (notch), een trillingsband te scheiden of storing in een regelingslus te onderdrukken. Probeer de ontwerp hieronder, bekijk magnitude en fase tegelijk, en controleer de coëfficiënten en C-code op uw eigen hardware.
Beperkingen
Faserverlies vermindert de stabiliteitsmarge van een regelingslus; herbereken de fasemarge voordat je de filter in de lus plaatst. In vaste punt, duwt coëfficiënt kwantalisatie polen naar de eenheidscirkel bij lage f0/fs verhoudingen; accumulator breedte en overloop gedrag moeten apart getest worden. Het vervangt geen analoge anti-alias filter: aliasing moet voordat de ADC worden voorkomen.
Referenties
R. Bristow-Johnson, “Cookbook formulae for audio EQ biquad filter coefficients” (W3C Audio EQ Cookbook) · A. V. Oppenheim, R. W. Schafer, Discrete-Time Signal Processing, 3rd ed., ch. 6–7 · S. Butterworth, “On the Theory of Filter Amplifiers”, 1930
Educatief model. Resultaten zijn niet voldoende om een machine te diagnosticeren of veilige bedrijfslimieten vast te stellen.