8 Filtros IIR y el biquad: el caballo de batalla de la ecualización
8.1 La idea, en una frase
Golpea una copa de cristal con la uña y escúchala cantar: un tono limpio que nace de golpe y luego se apaga despacio, alimentándose de sí mismo hasta que el aire termina por llevárselo. Ese decaimiento no es un adorno del sonido; es la firma de un sistema con memoria, uno cuyo presente depende de su propio pasado. Casi toda resonancia del mundo físico —una cuerda pulsada, la caja de una guitarra, un modo de una sala, un circuito que oscila— obedece la misma lógica: la energía da vueltas dentro del sistema, realimentándose, antes de disiparse. Y resulta que la forma más barata y más natural de imitar esa conducta dentro de un procesador digital es un filtro que también se escucha a sí mismo.
Ese filtro es el IIR, y su encarnación cotidiana es el biquad. Casi todo el ecualizado del mundo —consolas, plugins, procesadores de altavoz— se hace con filtros IIR de segundo orden llamados biquads. Un biquad es una pieza diminuta cuya función de transferencia tiene solo cinco coeficientes,
\[ H(z) = \frac{b_0 + b_1 z^{-1} + b_2 z^{-2}}{1 + a_1 z^{-1} + a_2 z^{-2}}, \]
donde:
- \(H(z)\) — función de transferencia del biquad
- \(z\) — variable compleja de la transformada z; \(z^{-1}\) es un retardo de una muestra
- \(b_0,\ b_1,\ b_2\) — coeficientes del numerador (alimentación directa / ceros)
- \(a_1,\ a_2\) — coeficientes del denominador (realimentación / polos)
y que, según sus valores, puede ser paso-bajos, paso-altos, campana (peaking), shelf o notch. Encadenando unos pocos se construye cualquier curva de ecualización. Hay algo hermoso en esa economía: la copa de cristal y el modo de la sala son, en el fondo, sistemas de segundo orden —masa que se resiste, rigidez que restaura, rozamiento que disipa— y ese puñado de números es exactamente lo que hace falta para describirlos. El biquad es el primo digital del oscilador con amortiguamiento; no imita una resonancia, es una resonancia, escrita en el lenguaje de las muestras.
“IIR” significa respuesta al impulso infinita: el filtro tiene realimentación, así que su cola se extiende teóricamente para siempre. Los coeficientes del denominador —los \(a\)— son esa memoria: le dicen a la salida cuánto de su propio pasado reinyectar en cada muestra. Ahí está el pacto que define a toda esta familia. A cambio de esa realimentación el filtro consigue pendientes pronunciadas y campanas afiladas con un cómputo ridículamente pequeño —por eso domina el audio en tiempo real—, pero paga el precio de que su fase ya no es libre: magnitud y fase quedan atadas la una a la otra, herederas del mismo lazo de realimentación. Aceptar ese trato, y sacarle todo el provecho, es de lo que trata este capítulo.
Un EQ paramétrico no es más que varios biquads en cascada. Como filtrar es multiplicar en frecuencia, sus curvas se multiplican (se suman en dB). Ajustas frecuencia, ganancia y Q de cada banda y esculpes la respuesta total.
Juega con un EQ paramétrico real de tres bandas. La curva azul gruesa es la cascada de las tres, y es exactamente lo que oyes sobre el ruido:
Sube la Q de la banda media y verás la campana estrecharse: la Q controla el ancho de banda. Baja mucho una banda (un notch) para cazar una resonancia. Cada control mueve unos coeficientes que el procesador calcula con las fórmulas de Robert Bristow-Johnson, el estándar de facto en audio [1]. (La historia es deliciosa por lo humilde: el “Audio EQ Cookbook” no es un paper ni un estándar oficial — es un documento de texto plano que Bristow-Johnson publicó en los foros de Usenet en los años noventa, y que resultó tan claro y tan correcto que hoy vive dentro de consolas, plugins y de la propia Web Audio API de tu navegador.)
8.2 La receta: cinco multiplicaciones y dos memorias
Antes de seguir, vale la pena ver lo poco que hay dentro. En llano: para cada muestra que entra, el biquad cocina la salida con una receta fija — un poco de lo que entra ahora, un poco de lo que entró hace una y dos muestras… y un eco de lo que él mismo acaba de sacar. Ese último ingrediente —probar su propia sopa— es la realimentación, y es toda la magia:
\[ y[n] = b_0 x[n] + b_1 x[n-1] + b_2 x[n-2] - a_1 y[n-1] - a_2 y[n-2]. \]
donde:
- \(y[n]\) — muestra \(n\) de la salida
- \(x[n]\) — muestra \(n\) de la entrada
- \(x[n-1],\ x[n-2]\) — entradas retardadas una y dos muestras
- \(y[n-1],\ y[n-2]\) — salidas retardadas (la realimentación)
- \(b_0,\ b_1,\ b_2,\ a_1,\ a_2\) — coeficientes del biquad (adimensionales)
- \(n\) — índice de muestra (entero)
Cuenta el costo: cinco multiplicaciones y cuatro sumas por muestra, con dos números de memoria. A 48 kHz son 240 000 multiplicaciones por segundo — calderilla para un DSP moderno, cuya arquitectura entera (la instrucción multiply-accumulate) se diseñó justamente para esta operación. Por eso una consola digital corre miles de biquads a la vez sin despeinarse, y por eso el biquad es el ladrillo del audio en tiempo real. Los términos \(y[n-k]\) son además la marca de la casa: un FIR (capítulo 9) solo mezcla entradas pasadas; el IIR se escucha a sí mismo — de ahí su cola infinita y su parentesco con la copa que resuena. (La notación \(z^{-1}\) con que se escribe todo esto —la transformada z— salió de la teoría de control de posguerra: Ragazzini y Zadeh le pusieron nombre en 1952.)
8.3 El EQ paramétrico es una cascada
Un EQ de \(M\) bandas es la cascada de \(M\) biquads, \(H(z)=\prod_{m=1}^{M} H_m(z)\). Como filtrar es multiplicar en frecuencia, las magnitudes se multiplican —o, en decibeles, se suman:
\[ 20\log_{10}|H(e^{j\omega})| = \sum_{m=1}^{M} 20\log_{10}|H_m(e^{j\omega})| . \]
donde:
- \(H(e^{j\omega})\) — respuesta en frecuencia de la cascada completa
- \(H_m(e^{j\omega})\) — respuesta en frecuencia de la banda (biquad) \(m\)
- \(\omega\) — frecuencia angular normalizada [rad/muestra]
- \(M\) — número de bandas
- \(m\) — índice de banda (entero)
Esa suma en dB es exactamente la curva azul gruesa del widget. Aquí, tres bandas y su cascada:
La Q de cada campana fija su ancho de banda. La relación (para el prototipo) es \(\text{BW}_{\text{oct}} = \frac{2}{\ln 2}\,\operatorname{arcsinh}\!\big(\tfrac{1}{2Q}\big)\), que en la práctica se recuerda con una tabla:
| Q | Ancho de banda | Carácter |
|---|---|---|
| 0,5 | ~2,5 oct | muy ancha, musical |
| 0,7 | ~1,9 oct | ancha |
| 1 | ~1,4 oct | media |
| 2 | ~0,7 oct | estrecha, correctiva |
| 4 | ~0,36 oct | quirúrgica |
| 8 | ~0,18 oct | notch fino |
Las letras chicas de la Q
Una advertencia de campo que ahorra discusiones: “Q = 2” no significa lo mismo en todas las máquinas. El número depende de cómo defina el fabricante el ancho de banda de una campana con ganancia: algunos lo miden entre los puntos de −3 dB, otros a media ganancia (los puntos donde la campana lleva la mitad de sus dB), otros ajustan la Q automáticamente con la ganancia (proportional-Q: la campana se estrecha al subir dB, el gesto clásico de las consolas británicas) y otros la mantienen fija (constant-Q, típico de procesadores de sistema). El resultado práctico: copiar números de EQ entre marcas no copia el sonido. Lo único portable entre equipos es la curva medida (capítulo 18) — otra razón por la que el analizador, y no la pantalla del procesador, es el juez.
Con \(\omega_0\), \(\alpha\) y \(A\) definidos abajo, las fórmulas de Bristow-Johnson dan [1], [2]: \[ \begin{aligned} b_0 &= 1+\alpha A, & b_1 &= -2\cos\omega_0, & b_2 &= 1-\alpha A,\\ a_0 &= 1+\alpha/A, & a_1 &= -2\cos\omega_0, & a_2 &= 1-\alpha/A, \end{aligned} \]
donde:
- \(b_0,\ b_1,\ b_2,\ a_0,\ a_1,\ a_2\) — coeficientes del biquad (adimensionales)
- \(\omega_0 = 2\pi f_0/f_s\) — frecuencia central normalizada [rad/muestra]
- \(f_0\) — frecuencia central de la campana [Hz]
- \(f_s\) — frecuencia de muestreo [Hz]
- \(Q\) — factor de calidad (controla el ancho de banda)
- \(\alpha = \sin\omega_0/(2Q)\) — parámetro de ancho de banda
- \(A = 10^{G/40}\) — factor de ganancia lineal
- \(G\) — ganancia de la campana [dB]
normalizados dividiendo por \(a_0\). El widget calcula estos mismos coeficientes y evalúa \(|H(e^{j\omega})|\) punto a punto; por eso su curva coincide con la de la Web Audio API, que usa idénticas fórmulas.
Para una campana, la Q se relaciona con el ancho de banda \(BW\) en octavas por \[ Q = \frac{\sqrt{2^{BW}}}{2^{BW}-1}\,\Big/\,\text{(factor de }\ln 2), \qquad \alpha = \sin\omega_0 \,\sinh\!\left(\frac{\ln 2}{2}\,BW\,\frac{\omega_0}{\sin\omega_0}\right). \]
donde:
- \(Q\) — factor de calidad de la campana
- \(BW\) — ancho de banda [octavas]
- \(\alpha\) — parámetro de ancho de banda del biquad
- \(\omega_0\) — frecuencia central normalizada [rad/muestra]
Q alta ⇒ campana estrecha (quirúrgica, para notch); Q baja ⇒ ancha y musical. La ganancia \(G\) y la Q interactúan: a igualdad de Q, la campana se ensancha en su base al subir \(G\).
Un EQ de \(M\) bandas es la cascada \(H(z)=\prod_{m=1}^{M} H_m(z)\); su magnitud en dB es la suma de las magnitudes en dB de cada banda —lo que ves en el widget—. La fase total es la suma de las fases, y de ahí que un EQ agresivo introduzca retardos de grupo apreciables: la motivación directa de los filtros de fase lineal del próximo capítulo.
8.4 Del biquad analógico al digital
El biquad hereda su comportamiento de los prototipos analógicos del capítulo de respuesta en frecuencia, llevados al dominio digital por la transformada bilineal. Su realimentación —los coeficientes \(a_1, a_2\)— es lo que le da eficiencia, pero también lo que obliga a vigilar la estabilidad y la fase: como vimos, un IIR de fase mínima no puede tocar la magnitud sin mover la fase, y esa fase será la protagonista del capítulo siguiente.
Toda la conducta del biquad se lee en el plano \(z\): los ceros (raíces del numerador) crean nulos y los polos (raíces del denominador) crean resonancias. El filtro es estable si y solo si sus polos están dentro del círculo unidad, lo que para el biquad equivale a las condiciones de Jury \(|a_2| < 1\) y \(|a_1| < 1 + a_2\). Cuanto más cerca del círculo está un polo, más agudo es el pico que produce:
Un biquad no se inventa desde cero: casi siempre nace de un prototipo analógico \(H(s)\) —un filtro en el dominio de Laplace— al que se le aplica la transformada bilineal, que mapea el plano \(s\) continuo al plano \(z\) discreto:
\[ s \;\longleftarrow\; \frac{2}{T}\,\frac{1 - z^{-1}}{1 + z^{-1}}. \]
donde:
- \(s\) — variable de Laplace (dominio continuo) [rad/s]
- \(z\) — variable de la transformada z (dominio discreto)
- \(T = 1/f_s\) — periodo de muestreo [s]
Esta sustitución tiene una virtud enorme: mapea todo el eje imaginario \(s=j\Omega\) (las frecuencias analógicas, de \(0\) a \(\infty\)) sobre el círculo unidad \(z=e^{j\omega}\) (las frecuencias digitales, de \(0\) a \(f_s/2\)), y el semiplano izquierdo estable al interior del círculo. Por eso un prototipo analógico estable produce siempre un filtro digital estable.
El precio es el alabeo de frecuencia (frequency warping): comprimir un rango infinito en uno finito curva el eje, de modo que la frecuencia digital \(\omega\) y la analógica \(\Omega\) se relacionan por \(\Omega = \tfrac{2}{T}\tan(\omega/2)\). Se corrige con prewarping: se predistorsiona la frecuencia de corte del prototipo para que, tras la transformada, caiga exactamente donde se quiere. (Ese \(\tan\) es el mismo que asoma en las fórmulas de Bristow-Johnson.)
Sea cual sea el origen, el resultado son los cinco coeficientes de siempre. Muévelos y observa cómo esculpen la respuesta y colocan los polos y ceros en el plano \(z\) —y cómo, al empujar un polo fuera del círculo, el filtro se vuelve inestable:
En aritmética real, cómo se colocan esos coeficientes importa tanto como sus valores. Las estructuras habituales difieren en memoria y robustez numérica:
| Estructura | Memoria | Robustez numérica |
|---|---|---|
| Forma directa I | 4 retardos | intuitiva; frágil en punto fijo a baja frecuencia |
| Forma directa II traspuesta | 2 retardos | buen comportamiento numérico; la estándar en audio |
| Variable de estado (SVF) | 2 estados | muy robusta; \(f\) y \(Q\) casi ortogonales, ideal para modular |
8.5 La trampa numérica de las frecuencias bajas
Hay una debilidad del biquad que no se ve en las fórmulas y sí en el mundo real, y conviene conocerla porque explica decisiones de diseño de todo el equipo que usas. Primero en llano: un filtro en 40 Hz corriendo a 48 kHz es una tortuga medida con un cronómetro de Fórmula 1 — entre muestra y muestra, la senoide de 40 Hz apenas avanza un tercio de grado. Toda la personalidad del filtro queda escrita entonces en diferencias diminutas entre coeficientes casi iguales: la resonancia vive en la cuarta o quinta cifra decimal.
La versión matemática: con \(f_0 \ll f_s\), \(\omega_0 = 2\pi f_0/f_s \to 0\), así que \(\cos\omega_0 \to 1\) y los polos se pegan a \(z=1\) — la esquina del círculo unidad, justo contra la frontera de estabilidad de Jury (\(|a_1|<1+a_2\)). Haz la cuenta para 40 Hz, Q = 4, a 48 kHz: \(a_1 \approx -1{,}9986\) y \(a_2 \approx 0{,}9987\) — a milésimas del borde. Cualquier error de redondeo en esos coeficientes, o en la aritmética que los usa, mueve el polo una distancia comparable a la que lo separa de la inestabilidad: el resultado audible es ruido que respira en las frecuencias bajas y, en punto fijo, los ciclos límite — pequeñas oscilaciones que no se apagan nunca [2], [3].
De ahí tres decisiones prácticas que ya viste en la tabla de estructuras: los procesadores serios calculan los biquads en doble precisión (o en flotante de 64 para los acumuladores — la conexión con el capítulo 7); usan la forma directa II traspuesta en vez de la ingenua; y para filtros que se mueven (una Q barrida en vivo) prefieren el SVF, cuya geometría numérica aguanta sin ensuciarse. Nada de esto lo eliges tú en campo — pero cuando un procesador antiguo “sisea” al poner un paramétrico en 31 Hz, ya sabes exactamente qué está pasando adentro.
8.6 La rutina: cazar una resonancia
El uso más noble del paramétrico es quirúrgico: encontrar una resonancia —de la sala, de una caja, de un micrófono que retroalimenta— y neutralizarla sin tocar lo demás. La técnica de campo es la misma desde hace décadas, y funciona porque usa el oído para buscar y el filtro para apuntar. Dónde: sobre el sistema real, con la señal que delata el defecto (ruido rosa, música, o la voz que se retroalimenta). Cómo:
- Arma el señuelo: una banda con +8 dB y Q media (~2). No para corregir — para buscar: el realce convierte tu banda en una lupa.
- Barre despacio la frecuencia. Cuando pases sobre la resonancia, el defecto se infla y “aúlla”: el realce tuyo y el del sistema se apilan y el oído lo encuentra solo.
- Invierte a corte: en esa frecuencia, cambia la ganancia a negativa, aproximadamente lo que el defecto sobra (si aullaba con +8, prueba −8 y afina).
- Ajusta la Q al ancho del defecto: empieza ancha y estrecha hasta que el corte haga su trabajo sin abrir un cráter alrededor. Un defecto de Q 3 se corrige con Q ~3 — ni con 0,7 ni con 12.
- Verifica con el bypass (A/B) y, si puedes, con la traza del analizador: la meta no es que “suene distinto”, es que el rizado desaparezca y no se note que hay un filtro.
Entrena aquí — el sistema esconde una resonancia distinta cada vez, y la traza es tu analizador:
Los errores clásicos: cortar de oído sin bypass (el oído se adapta en segundos y “mejora” cualquier cosa — capítulo 17); Q quirúrgica para un defecto ancho (el cráter suena peor que el pico); y apilar cortes buscando una resonancia que en realidad es una cancelación —un nulo—, que como sabrás en el capítulo 19, no se arregla con EQ.
8.7 Lecturas adicionales
8.8 Ejercicios
- En el widget, pon la banda media a \(-15\) dB con Q alta y bárrela: es un notch móvil. ¿Qué Q necesitas para un ancho de banda de ~1/3 de octava?
- Escribe la ecuación en diferencias de un low-shelf y verifica, evaluando en \(z=1\) (continua) y \(z=-1\) (Nyquist), que las ganancias límite son las esperadas.
- Demuestra las condiciones de estabilidad de Jury para el biquad a partir de la localización de los polos dentro del círculo unidad.
- Juega tres rondas de “Caza la resonancia” siguiendo la rutina (señuelo → barrido → corte → Q → bypass). ¿En qué paso pierdes más tiempo? ¿Qué te dice eso de tu oído vs. tu técnica?
- Calcula \(a_1\) y \(a_2\) (fórmulas de la campana) para \(f_0=40\) Hz, Q = 4, a \(f_s=48\) kHz, y compáralos con la frontera de Jury \(|a_1|<1+a_2\). ¿A cuánto estás del borde? Repite a \(f_s=96\) kHz: ¿mejora o empeora? ¿Por qué?