6  Muestreo y cuantización: cómo el sonido se vuelve números

6.1 La idea, en una frase

El aire vibra de forma continua: entre dos instantes cualesquiera siempre hay un instante más, y entre dos presiones cualesquiera, un valor intermedio. Un sonido real no tiene escalones, ni en el tiempo ni en la amplitud —fluye. Un computador, en cambio, solo sabe de números, y de una cantidad finita de ellos. El abismo entre esos dos mundos —lo continuo y lo discreto— parece infranqueable: ¿cómo caben las infinitas gradaciones de una onda en una lista finita de enteros? La respuesta, que es a la vez sorprendente y exacta, es el cimiento de todo el audio digital, y descansa en dos recortes deliberados de esa continuidad.

Convertir sonido en datos exige, en efecto, dos aproximaciones. Primero se muestrea: se mide la presión sonora a intervalos regulares, \(f_s\) veces por segundo, renunciando a saber qué pasó entre medida y medida. Después se cuantiza: cada medida se redondea a uno de un número finito de niveles, fijado por la profundidad de bits, renunciando a la amplitud exacta. Muestrear afecta al eje del tiempo y a qué frecuencias podemos representar; cuantizar afecta al eje de la amplitud y al ruido de fondo. Son dos tijeretazos independientes sobre dos ejes distintos, y conviene no confundirlos nunca.

Lo que vuelve todo esto viable —y no una simple pérdida de información— es un resultado tan elegante que cuesta creerlo la primera vez. El teorema del muestreo afirma que si muestreas a más del doble de la frecuencia más alta presente, no pierdes nada: la señal continua original se puede reconstruir con exactitud perfecta a partir de sus muestras, a pesar de los infinitos instantes que dejaste sin medir. La continuidad, bajo esa condición, no se sacrifica: se recupera entera. Pero el teorema tiene un filo. Si te quedas corto en la tasa, aparece el aliasing: un tono de frecuencia alta se disfraza irreversiblemente de uno de frecuencia baja, y ninguna operación posterior podrá ya distinguir al impostor del original.

Idea claveIdea clave

La frecuencia de Nyquist es \(f_s/2\): el techo de lo representable. Todo lo que suba por encima no desaparece — se pliega hacia abajo y contamina la señal como una frecuencia falsa. Por eso todo conversor lleva delante un filtro anti-aliasing.

Compruébalo: sube el tono por encima de \(f_s/2\), o baja \(f_s\), y observa —y escucha— cómo un tono de frecuencia alta se convierte en un falso tono de frecuencia baja. Baja los bits y aparecerá el ruido de cuantización:

Figura 6.1: Muestreo y cuantización — animación interactiva.

Fíjate en que, cuando el tono supera Nyquist, las muestras (puntos azules) caen exactamente sobre una sinusoide de baja frecuencia (roja): esa es la señal que el sistema reconstruye, y no hay forma de distinguirla de una frecuencia baja verdadera. Ese es el corazón del aliasing.

6.2 Aliasing: el plegado en Nyquist

Toda frecuencia por encima de \(f_s/2\) se pliega hacia abajo. La frecuencia que finalmente se oye es

\[ f_{\text{alias}} = \bigl|\, f - f_s\,\operatorname{round}(f/f_s) \,\bigr|, \]

donde:

  • \(f_{\text{alias}}\) — frecuencia que finalmente se oye tras el plegado [Hz]
  • \(f\) — frecuencia real de la componente [Hz]
  • \(f_s\) — frecuencia de muestreo [Hz]
  • \(\operatorname{round}(\cdot)\) — redondeo al entero más cercano

un patrón triangular que rebota entre \(0\) y \(f_s/2\) cada vez que \(f\) cruza un múltiplo de la frecuencia de muestreo. Por ejemplo, 18 kHz muestreado a 32 kHz se oye en 14 kHz:

Figura 6.2: Diagrama de plegado (folding). Frecuencia real (eje x) frente a la que realmente se oye tras muestrear (eje y), en unidades de f_s. Por debajo de Nyquist (f_s/2) la relación es 1:1; por encima, la frecuencia se pliega. El punto marca 18 kHz a f_s = 32 kHz → 14 kHz.

La consecuencia práctica está en elegir \(f_s\) con margen sobre los 20 kHz audibles, para que el filtro anti-aliasing —que no es de pendiente infinita— tenga espacio donde atenuar antes de Nyquist:

\(f_s\) Nyquist \(f_s/2\) Uso típico
44,1 kHz 22,05 kHz CD, streaming
48 kHz 24 kHz audio profesional, video
96 kHz 48 kHz alta resolución, más margen de filtro
192 kHz 96 kHz grabación de alta gama

Muestrear a intervalos \(T_s = 1/f_s\) equivale a multiplicar la señal por un tren de deltas, lo que en frecuencia replica el espectro cada \(f_s\) [1], [2]:

\[ x_s(t) = x(t)\sum_{n} \delta(t - nT_s) \quad\Longleftrightarrow\quad X_s(f) = f_s \sum_{k=-\infty}^{\infty} X(f - k f_s). \]

donde:

  • \(x_s(t)\) — señal muestreada (tren de deltas ponderado)
  • \(x(t)\) — señal continua original
  • \(\delta(t - nT_s)\) — impulso en el instante de muestreo \(nT_s\)
  • \(T_s = 1/f_s\) — periodo de muestreo [s]
  • \(f_s\) — frecuencia de muestreo [Hz]
  • \(X_s(f)\) — espectro de la señal muestreada
  • \(X(f)\) — espectro de la señal continua
  • \(f\) — frecuencia [Hz]
  • \(n,\ k\) — índices enteros (muestra y réplica espectral)

Si la señal está limitada en banda a \(|f| < f_s/2\), las réplicas no se solapan y un filtro paso-bajo ideal recupera \(X(f)\) intacto. La reconstrucción exacta es la fórmula de interpolación de Whittaker-Shannon:

\[ x(t) = \sum_{n=-\infty}^{\infty} x[n]\, \operatorname{sinc}\!\left(\frac{t - nT_s}{T_s}\right). \]

donde:

  • \(x(t)\) — señal continua reconstruida
  • \(x[n]\) — muestra \(n\) (valor medido en \(t = nT_s\))
  • \(T_s\) — periodo de muestreo [s]
  • \(t\) — tiempo [s]
  • \(n\) — índice de muestra (entero)
  • \(\operatorname{sinc}(u) = \dfrac{\sin(\pi u)}{\pi u}\) — núcleo de interpolación

Este es el teorema de Nyquist-Shannon: la condición \(f_s > 2 f_{\max}\) es necesaria y suficiente para no perder información.

Si \(f_{\max} > f_s/2\), las réplicas se solapan y una componente en \(f\) se hace indistinguible de otra en la frecuencia plegada

\[ f_{\text{alias}} = \bigl|\, f - f_s\,\operatorname{round}(f/f_s) \,\bigr|, \]

que es justo lo que traza la curva roja del widget. El plegado es irreversible: una vez solapados los espectros, ningún procesado posterior los separa. Por eso el filtro anti-aliasing debe actuar antes del muestreo.

6.3 Cuántos bits, cuánto ruido

Con \(B\) bits hay \(2^B\) niveles, separados por un paso \(\Delta = 2^{-(B-1)}\) (a plena escala \(\pm 1\)). Cada redondeo introduce un error de hasta \(\pm\Delta/2\) —el ruido de cuantización— cuya potencia \(\sigma_e^2 = \Delta^2/12\) fija la relación señal-ruido. Para una senoide a plena escala, la relación señal-ruido de cuantización es

\[ \text{SQNR}_{\text{dB}} = 6{,}02\,B + 1{,}76 , \]

donde:

  • \(\text{SQNR}_{\text{dB}}\) — relación señal-ruido de cuantización [dB]
  • \(B\) — profundidad de bits (número de bits por muestra)

es decir, cada bit vale ~6 dB de rango dinámico. A la izquierda se ve el escalonado que mete la cuantización; a la derecha, la ley lineal con los puntos conocidos:

Figura 6.3: Izquierda: una senoide cuantizada a 3 bits (8 niveles); el escalonado es el ruido de cuantización. Derecha: SQNR = 6,02·B + 1,76 dB; cada bit añade ~6 dB. Se marcan 16 bits (CD, ~98 dB) y 24 bits (~146 dB).

De ahí los números conocidos, muy por debajo del ruido acústico de cualquier sala real:

\(B\) Niveles \(2^B\) \(\text{SQNR}=6{,}02B+1{,}76\) Uso típico
8 256 49,9 dB telefonía antigua, lo-fi
16 65 536 98,1 dB CD, distribución
24 16 777 216 146,2 dB grabación y producción
32 (coma flotante) ~1500 dB de rango mezcla y proceso interno

Redondear a \(B\) bits introduce un error \(e[n]\) que, bajo hipótesis razonables, se modela como ruido blanco uniforme en \([-\Delta/2, \Delta/2]\) con \(\Delta = 2^{-(B-1)}\) (escala \(\pm 1\)). Su potencia es \(\sigma_e^2 = \Delta^2/12\). Para una senoide a plena escala, la relación señal-ruido de cuantización resulta [2]

\[ \text{SQNR}_{\text{dB}} = 6{,}02\,B + 1{,}76 . \]

Cada bit vale ~6 dB: la regla que viste en la lectura. A 16 bits, ~98 dB.

El modelo de ruido blanco falla a niveles bajos, donde el error de cuantización se correlaciona con la señal y produce distorsión audible en vez de ruido benigno. La solución, contraintuitiva, es añadir ruido (dither) antes de cuantizar: descorrelaciona el error, linealiza el conversor en media y permite codificar información por debajo del bit menos significativo, a costa de un suelo de ruido ligeramente mayor. Es uno de los resultados más elegantes del audio digital [3].

6.4 Lecturas adicionales

  • El teorema del muestreo en su fuente y su desarrollo moderno: [1] y [2].
  • Cuantización, ruido y la teoría del dither: [3].
  • Interpolación, convolución con el \(\operatorname{sinc}\) y reconstrucción: [4].

6.5 Ejercicios

  1. Un tono de 18 kHz muestreado a \(f_s = 32\) kHz. ¿A qué frecuencia se oye? Verifícalo en el widget y explica el plegado con la fórmula de \(f_{\text{alias}}\).
  2. Deduce \(\text{SQNR} = 6{,}02B + 1{,}76\) dB partiendo de \(\sigma_e^2 = \Delta^2/12\) y de la potencia de una senoide a plena escala.
  3. ¿Por qué el sonido directo de un conversor real necesita sobremuestreo además del filtro anti-aliasing? Relaciona tu respuesta con la pendiente finita de los filtros reales del capítulo de crossovers.