Deze pagina is automatisch vertaald van Engels en kan fouten bevatten. De Engelse origine is autoritair. Lees de Engelse originele versie: Filterontwerp

ROOTCASTLE / ENGINEERING LAB

Filterontwerp

Biquad-filteren, Bode-grafieken en C-code.

LOCAL CALCULATION · RUNS IN THE BROWSER

✓ Stable: all poles inside the unit circle

-100-75-50-250101001k10k−3 dBf0Frequency [Hz]|H| [dB]
Floating pointQuantized Q14
-150-100-50101001k10kFrequency [Hz]Phase response [°]
0.250.50.751050100150Sampley[n]
ReIm
× poles○ zeros
|H(2kHz)|
-12.37 dB
∠H(2kHz)
-136.9°
Section
1
max |pole|
0.911594
Sectionb0b1b2a1a2
10.00391612350.0078322470.0039161235-1.81533960.83100411
1 · Q146412864-2974313615
/* 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.

← Rootcastle LAB

Zoeken naar opdrachten of pagina's