Bitácora · DCSS · Unidad 2

El filtro camaleón

Unidad 2 · Conversores

Un pasabajos digital con corte en ωc=0,3π rad/muestra corta, en Hz, donde diga el reloj: a 44,1 kHz eso es 6615 Hz; el mismo código, sin tocar un coeficiente, corriendo a 96 kHz, corta en 14 400 Hz. h[n] no sabe de Hz — sólo sabe de radianes por muestra —, y los Hz los pone el reloj. Y hay una segunda vuelta de tuerca: metida adentro del mismo sándwich C/D → h[n] → D/C, una no linealidad tan simple como elevar al cuadrado conjura contenido espectral que ningún filtro lineal podría haber creado, y ese contenido cae bien adentro de la banda que se suponía limpia.

El filtro que arma el resto de esta nota tiene 41 coeficientes, diseñado con la misma ventana de Hamming que ya usa esta unidad, para un corte nominal de 0,3π. Medido contra su propia respuesta en frecuencia, el corte real de −3 dB no cae justo en 0,3π: cae en 0,280π — la ventana lo corre un poco del valor de diseño. El widget usa ese número medido, no el nominal.

01 · El sándwich es un filtro analógico hecho de software

La pregunta que abre esta unidad: si una señal continua entra por un conversor C/D, pasa por un sistema discreto h[n] y sale por un conversor D/C, ¿el conjunto —de xc(t) a yr(t)— equivale a algún filtro continuo?

Figura 1 El sándwich — cada flecha es una señal (una continua, dos discretas); cada caja, una operación. h[n] es la única pieza que el diseñador elige; las otras dos las fija el reloj.

La respuesta es sí, exacta, bajo tres condiciones: el C/D no aliasa (la entrada está limitada en banda y fs>2·fmax); el procesamiento no genera contenido fuera de la banda que ya estaba; y el D/C reconstruye con un filtro ideal. La segunda condición viene gratis si h[n] es LTI —un sistema lineal e invariante en el tiempo no crea frecuencias nuevas, sólo pesa las que ya estaban—, y es exactamente la que rompe una no linealidad, como se ve más abajo.

Encadenando los tres espectros del sándwich, dentro de la banda de Nyquist (|Ω|<π/T, con T el período del reloj) el resultado colapsa a una sola cosa: la salida reconstruida es la entrada continua multiplicada por la respuesta del filtro digital, evaluada en Ω a través de ω=Ω·T. Fuera de esa banda, el reconstructor ideal pone cero. Eso es la definición del filtro equivalente:

Heq(jΩ)=H(ejΩT), para |Ω|<π/T

El sistema completo ES un filtro analógico, y ω=Ω·T es toda la vuelta de tuerca: el mismo h[n] recorta un ωc fijo en radianes por muestra, pero eso es una frecuencia analógica distinta para cada T. Así funciona todo ecualizador de software: el filtro no cambia, el reloj sí.

02 · Cambiá el reloj

Abajo hay un único h[n], fijo, con su corte medido en 0,280π. El panel de arriba dibuja su respuesta en frecuencia, pero en el eje horizontal en Hz — y ese eje depende del reloj. El panel de abajo pasa un tono de prueba fijo, en ω0=0,9π, por ese mismo sándwich: con el interruptor apagado, por el filtro; encendido, por un cuadrador en su lugar. Antes de mover nada: ¿el corte del panel de arriba se mueve al mover el reloj, o se queda clavado en el mismo lugar de la pantalla?

Simulación 1 El mismo h[n], otro reloj — arriba, la respuesta en frecuencia de un h[n] fijo, con el corte real (línea punteada) llevado a kHz. Abajo, el espectro de un tono de prueba fijo pasado por ese mismo h[n] o, con el interruptor, por un cuadrador en su lugar.
fs — corte analógico (mismo h[n]) — tono de prueba (ω0 = 0,900·π) — amplitud en el pliegue —

El corte se mueve, y se mueve proporcional a fs: la razón entre la frecuencia de corte y el reloj es siempre la misma, 0,1400, la mida donde la mida el deslizador. A 8 kHz el corte cae en 1120 Hz; a 192 kHz, en 26 885 Hz — veinticuatro veces más lejos, exactamente lo que creció el reloj. Ni un coeficiente de h[n] cambió en el camino.

03 · Por qué la condición 2 no viene gratis con un cuadrador

Con el interruptor apagado, el tono de prueba —fijo en ω0=0,9π, bien por encima del corte del filtro— sale aplastado: su amplitud cae de 0,5 a apenas 0,0013, y en 0,1·fs —adentro de la banda de paso— no hay nada, del orden de lo que deja el borde de la convolución. Es lo esperado de cualquier filtro lineal: no crea contenido donde no había.

Encendé el cuadrador y mirá el mismo punto, 0,1·fs: aparece una raya de amplitud 0,2500, exacta, donde el filtro lineal no dejaba nada. Sale de una identidad trigonométrica cerrada, cos2(θ)=0,5+0,5·cos(2θ): el cuadrador mete el doble de la frecuencia original, 1,8π, que no existe como tal en tiempo discreto —el eje de frecuencias digital es periódico cada 2π— y se pliega, muestra a muestra, sobre 0,2π. Es la misma idea que abrió esta unidad: cos(1,8π·n) y cos(0,2π·n) no se parecen, son la misma secuencia de números, y el tono original, a 0,9π, desaparece por completo del espectro cuadrado —del orden de 10⁻¹⁵, cero de la máquina, no una atenuación—.

Esa raya en 0,2π queda del lado de adentro del corte, 0,280π. Ningún reconstructor —ni el ideal, ni el D/C real— puede distinguirla de una señal legítima: no es una imagen que un filtro pasabajos pueda tapar después, porque ya nació adentro de la banda que se suponía limpia. Por eso la condición 2 del sándwich —"el procesamiento no genera contenido nuevo fuera de banda"— viene gratis con cualquier h[n] LTI (una autofunción entra, la misma autofunción sale, sólo reescalada) y se rompe con la primera no linealidad que se cuele en el medio.

04 · El reconstructor tampoco es gratis

El D/C del sándwich, si es el ZOH real (el que retiene cada muestra durante todo el período en vez de reconstruir con el sinc ideal), tiene su propia respuesta en frecuencia, y esa respuesta también es un sinc: en el borde de la banda de Nyquist, Ω=π/T, cae exactamente en sinc(0,5) respecto de su valor en continua —el mismo sinc que ya usa este sitio, no una fórmula aparte—. En decibeles, −20·log10(sinc(0,5))=3,9224 dB de caída, el droop del ZOH. El apunte lo redondea a «~4 dB» y tiene razón como aproximación; el número exacto es 3,9224, y no depende de fs más que a través del mismo reescalado de siempre: Ω=π/T es distinto en Hz para cada reloj, pero la caída relativa —en radianes— es la misma cifra siempre. Otra pieza del sándwich, otra manifestación de la misma idea: lo que es fijo es la forma en radianes; lo que cambia con el reloj es dónde cae en Hz.

Para tener a mano

  1. El sándwich C/D → h[n] → D/C equivale a un filtro analógico exacto, Heq(jΩ)=H(ejΩT) para |Ω|<π/T, bajo tres condiciones: sin aliasing en el C/D, sin contenido nuevo en el procesamiento, reconstrucción ideal en el D/C.
  2. ω=Ω·T hace que el mismo h[n] sea un filtro analógico distinto según el reloj: medido, la razón corte/reloj es constante en 0,1400, así que el corte en Hz escala exactamente con fs.
  3. La condición «sin contenido nuevo» viene gratis con cualquier h[n] LTI y se rompe con una no linealidad: un cuadrador sobre un tono en 0,9π hace desaparecer ese tono (10⁻¹⁵, cero de máquina) y hace aparecer una raya de amplitud 0,2500 en 0,2π — adentro de la banda de paso, donde el filtrado lineal no dejaba nada (0,0013).
  4. Esa raya no es una imagen: nació adentro de la banda de Nyquist, y ningún reconstructor la puede separar de una señal legítima.
  5. El droop del ZOH real, 3,9224 dB en el borde de Nyquist, se deriva del mismo sinc(0,5) del resto de la unidad: otra magnitud fija en radianes que el reloj traduce a Hz de otra manera cada vez.
← Anterior Siguiente → Inicio