ROOTCASTLE / ENGINEERING LAB

Diseño de filtros

Filtros biquad, Bode y código C.

CÁLCULO LOCAL · EN EL NAVEGADOR

✓ Estable: todos los polos dentro del círculo unidad

-100-75-50-250101001k10k−3 dBf0Frecuencia [Hz]|H| [dB]
Coma flotanteCuantizado Q14
-150-100-50101001k10kFrecuencia [Hz]Respuesta en fase [°]
0.250.50.751050100150Muestray[n]
ReIm
× polos○ ceros
|H(2kHz)|
-12.37 dB
∠H(2kHz)
-136.9°
Sección
1
max |pole|
0.911594
Secciónb0b1b2a1a2
10.00391612350.0078322470.0039161235-1.81533960.83100411
1 · Q146412864-2974313615
/* Paso bajo 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;
}
Modelo y supuestos

Secciones IIR de segundo orden (biquad) diseñadas con la transformación bilineal según el “Audio EQ Cookbook” de R. Bristow-Johnson. Cerca de fs/2 la distorsión de frecuencia aumenta la desviación respecto al prototipo analógico. Los filtros paso bajo/alto de orden 4 y 6 se encadenan con valores Q de Butterworth (la entrada Q no se usa). Los resultados en punto fijo muestran solo la cuantización de coeficientes; el desbordamiento, el ruido de redondeo y los ciclos límite deben probarse aparte.

ω0 = 2π·f0/fs; α = sin ω0 / 2Q; H(z) = (b0 + b1·z⁻¹ + b2·z⁻²) / (1 + a1·z⁻¹ + a2·z⁻²)

Para qué sirve

El biquad es el bloque más común para eliminar el zumbido de red de una señal de sensor (notch de 50/60 Hz), separar una banda de vibración o suprimir ruido en un lazo de control. Pruebe el diseño aquí y verifique los coeficientes y el código C en su propio hardware.

Limitaciones

El retardo de fase reduce el margen de estabilidad de un lazo; recalcule el margen antes de meter el filtro en el lazo. En punto fijo, la cuantización acerca los polos al círculo unidad con relaciones f0/fs bajas; el ancho del acumulador y el desbordamiento se prueban aparte. No sustituye al filtro antialias analógico: el aliasing se evita antes del ADC.

Referencias

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

Modelo educativo. Los resultados no bastan para diagnosticar una máquina ni establecer límites seguros de operación.

← Rootcastle LAB

Buscar comandos o páginas