4 Fourier y espectro: el ADN de un sonido
4.1 La idea, en una frase
Un prisma toma un rayo de luz blanca —que parece una cosa simple y única— y despliega el arcoíris que traía escondido. La luz blanca no contenía colores en ningún sentido visible; era la suma de todos ellos, y el prisma solo los separó. Con el sonido ocurre lo mismo, y esta es una de las ideas más hondas de toda la ciencia: aquello que percibimos como un todo indivisible —una nota, un timbre, una voz— es en realidad una superposición de vibraciones más simples que viajaban juntas. Hace falta un instrumento para verlas por separado. En óptica ese instrumento es el prisma; en acústica, y en casi todo lo demás, es el análisis de Fourier.
La afirmación concreta es asombrosa por lo general que resulta. Cualquier sonido periódico —una nota de un oboe, el zumbido de un transformador— puede descomponerse en una suma de tonos puros (senos) a frecuencias múltiplo de una fundamental \(f_0\): los armónicos \(f_k = k\,f_0\). No es que “se pueda aproximar así”; es que la señal es exactamente esa suma. La receta de “cuánto hay de cada uno” —el conjunto de amplitudes \(\{|c_k|\}\)— es su espectro, y esa receta es lo que tu oído interpreta como timbre:
\[ x(t) = \sum_{k} |c_k|\,\sin\!\big(2\pi k f_0 t + \angle c_k\big). \]
donde:
- \(x(t)\) — señal en el instante \(t\)
- \(k\) — índice del armónico
- \(|c_k|\) — amplitud del armónico \(k\)
- \(\angle c_k\) — fase del armónico \(k\) [rad]
- \(f_0\) — frecuencia fundamental [Hz]
- \(t\) — tiempo [s]
Dos instrumentos tocando la misma nota (mismo \(f_0\)) suenan distinto porque reparten la energía entre los armónicos de forma distinta: tienen espectros distintos. El violín y la flauta no se distinguen por qué nota tocan, sino por la proporción exacta de armónicos que mezclan al tocarla. El timbre, esa cualidad que creíamos inefable, resulta ser algo tan preciso como una lista de números.
El análisis de Fourier es la maquinaria matemática que convierte una señal en su espectro y viceversa. Detrás de su aire técnico esconde una afirmación filosófica notable: que el tiempo y la frecuencia son dos idiomas para decir lo mismo, y que existe un diccionario perfecto, sin pérdidas, entre ambos. Es, sin exagerar, la herramienta más usada en todo el audio —un ecualizador, un analizador de sala, un códec MP3 y un afinador funcionan gracias a ella—, y su alcance desborda con mucho el sonido: la misma matemática describe la mecánica cuántica, el procesamiento de imágenes y la estructura de los cristales.
El dominio del tiempo (la forma de onda) y el dominio de la frecuencia (el espectro) son dos vistas de la misma señal. Fourier es el diccionario que traduce entre ambas sin perder información.
Constrúyelo tú mismo: parte de un seno puro y ve añadiendo armónicos. Verás la forma de onda y el espectro cambiar a la vez, y oirás el timbre transformarse:
Prueba el preset Cuadrada: con solo armónicos impares que decaen como \(1/k\) aparece una onda casi rectangular. Fíjate en las pequeñas ondulaciones cerca de los saltos: son el fenómeno de Gibbs, la huella de haber truncado una serie infinita. Aquí está esa misma aproximación calculada con Python, sumando cada vez más armónicos:
4.2 El ADN de cada onda: forma y espectro
La forma de onda (tiempo) y el espectro (frecuencia) son la misma información en dos idiomas. Las ondas clásicas de un sintetizador tienen recetas armónicas conocidas y sencillas:
| Onda | Armónicos presentes | Amplitud del armónico \(k\) | Decaimiento |
|---|---|---|---|
| Seno | solo el 1.º (fundamental) | — | — |
| Cuadrada | impares | \(4/(\pi k)\) | \(1/k\) |
| Sierra | todos | \(2/(\pi k)\) | \(1/k\) |
| Triangular | impares | \(8/(\pi^2 k^2)\) | \(1/k^2\) |
Ese decaimiento es lo que oyes: la sierra (todos los armónicos, \(1/k\)) es brillante y densa; la triangular (solo impares, \(1/k^2\)) es casi tan pura como un seno. A la izquierda, la forma; a la derecha, su espectro de líneas:
Una señal periódica \(x(t)\) de periodo \(T\) (frecuencia \(f_0 = 1/T\)) que cumple las condiciones de Dirichlet admite el desarrollo [1], [2]
\[ x(t) = \sum_{k=-\infty}^{\infty} c_k\, e^{\,j 2\pi k f_0 t}, \qquad c_k = \frac{1}{T}\int_0^T x(t)\, e^{-j 2\pi k f_0 t}\, dt . \]
donde:
- \(x(t)\) — señal periódica en el instante \(t\)
- \(c_k\) — coeficiente complejo del armónico \(k\)
- \(k\) — índice del armónico
- \(T\) — periodo de la señal [s]
- \(f_0\) — frecuencia fundamental, \(f_0 = 1/T\) [Hz]
- \(t\) — tiempo [s]
Los \(|c_k|\) son las alturas de las barras del espectro del widget; sus fases \(\angle c_k\) —que el oído percibe poco en régimen estacionario, pero que importan muchísimo en la suma del capítulo anterior— completan la descripción. Para la onda cuadrada impar, \(c_k = \frac{2}{j\pi k}\) para \(k\) impar y \(0\) para \(k\) par: de ahí el decaimiento \(1/k\) y la ausencia de armónicos pares.
Para señales no periódicas se pasa al continuo tomando \(T\to\infty\):
\[ X(f) = \int_{-\infty}^{\infty} x(t)\, e^{-j 2\pi f t}\, dt, \qquad x(t) = \int_{-\infty}^{\infty} X(f)\, e^{\,j 2\pi f t}\, df . \]
donde:
- \(X(f)\) — transformada de Fourier (espectro) a la frecuencia \(f\)
- \(x(t)\) — señal en el instante \(t\)
- \(f\) — frecuencia [Hz]
- \(t\) — tiempo [s]
La conservación de energía entre dominios es el teorema de Parseval:
\[ \int_{-\infty}^{\infty} |x(t)|^2\, dt = \int_{-\infty}^{\infty} |X(f)|^2\, df , \]
la base de que hablar de “energía por banda” tenga sentido físico.
Parseval habla de energía, y eso vale para señales que empiezan y terminan —un impulso, una nota que se apaga—. Pero el ruido, la música o un tono que “dura para siempre” tienen energía infinita: de ellos solo tiene sentido la potencia media. Para repartir esa potencia por frecuencia se usa la densidad espectral de potencia (PSD, power spectral density):
\[ S_{xx}(f) = \lim_{T\to\infty} \frac{1}{T}\,\bigl|X_T(f)\bigr|^2 , \qquad \overline{P} = \int_{-\infty}^{\infty} S_{xx}(f)\, df . \]
donde:
- \(S_{xx}(f)\) — densidad espectral de potencia (auto-espectro) [unidad²/Hz]
- \(X_T(f)\) — transformada de Fourier de un tramo de duración \(T\)
- \(\overline{P}\) — potencia media de la señal
- \(f\) — frecuencia [Hz]
Es la versión de Parseval para potencia: su integral es la potencia total, y su valor en cada \(f\) dice “cuánta potencia por hertz” hay ahí. Por eso un analizador de espectro de ruido se lee en dB/Hz (no en dB a secas): lo que muestra es una PSD.
Hay un puente elegante con el dominio del tiempo, el teorema de Wiener-Khinchin: la PSD es la transformada de Fourier de la autocorrelación de la señal,
\[ S_{xx}(f) = \int_{-\infty}^{\infty} R_{xx}(\tau)\, e^{-j2\pi f \tau}\, d\tau , \qquad R_{xx}(\tau) = \mathbb{E}\{x(t)\,x(t+\tau)\} . \]
donde:
- \(R_{xx}(\tau)\) — autocorrelación (cuánto se parece la señal a sí misma tras un desfase \(\tau\))
- \(\tau\) — desplazamiento temporal [s]
Y de aquí sale, directo, el capítulo de medición: al comparar la entrada \(x\) con la salida \(y\) se define el espectro cruzado \(S_{xy}(f)\), y con él la función de transferencia \(\hat H(f)=S_{xy}(f)/S_{xx}(f)\) y la coherencia \(\gamma^2(f)=|S_{xy}|^2/(S_{xx}\,S_{yy})\). Promediar varios bloques es lo que estabiliza estas densidades: una PSD de un solo bloque es ruidosa; con muchos, converge. Velo tú mismo —sube el número de promedios y mira la estimación pasar de dentada a lisa hacia la densidad verdadera:
4.3 Del tono periódico al mundo real
Los sonidos reales no son eternos ni perfectamente periódicos, y las señales que medimos son muestreadas (una lista de números, no una función continua). Para eso se usa la Transformada Discreta de Fourier (DFT), que un algoritmo llamado FFT calcula muy rápido. Cuando abres un analizador de espectro, estás viendo una FFT actualizándose muchas veces por segundo [3].
La FFT reparte la señal en \(N\) líneas equiespaciadas; su resolución en frecuencia y la duración del bloque analizado son
\[ \Delta f = \frac{f_s}{N}, \qquad T = \frac{N}{f_s}, \qquad \Delta f \cdot T = 1 . \]
donde:
- \(\Delta f\) — resolución en frecuencia (separación entre líneas) [Hz]
- \(f_s\) — frecuencia de muestreo [Hz]
- \(N\) — número de muestras (líneas) del bloque
- \(T\) — duración del bloque analizado [s]
Esa última igualdad es implacable: más resolución exige más tiempo de señal. Por eso analizar frecuencias bajas —donde 1 Hz importa— obliga a bloques largos y respuesta lenta:
| \(N\) | \(\Delta f\) (a \(f_s = 48\) kHz) | Duración \(T\) |
|---|---|---|
| 1024 | 46,9 Hz | 21,3 ms |
| 4096 | 11,7 Hz | 85,3 ms |
| 16384 | 2,93 Hz | 341 ms |
| 65536 | 0,73 Hz | 1,37 s |
Hay un segundo precio: analizar un trozo finito de señal introduce fuga espectral (leakage). Un tono que no cae exactamente en una línea de la FFT “se derrama” sobre las vecinas, y por eso se aplican ventanas (Hann, Blackman-Harris…) antes de la FFT. Elegir la ventana es equilibrar resolución (ancho del lóbulo principal) contra rango dinámico (altura de los lóbulos laterales) [4]:
| Ventana | Ancho lóbulo principal | Lóbulo lateral más alto | Cuándo usarla |
|---|---|---|---|
| Rectangular (ninguna) | 2 bins | −13 dB | máxima resolución, peor fuga |
| Hann | 4 bins | −31 dB | uso general |
| Blackman-Harris | ~8 bins | −92 dB | máximo rango dinámico |
Se ve de golpe con un tono de 1 kHz que no cae en una línea de la FFT: sin ventana, la fuga levanta un pedestal que oculta todo lo débil; con Hann, el fondo se hunde decenas de dB:
Con \(N\) muestras \(x[n]\) tomadas a frecuencia \(f_s\), la DFT es
\[ X[m] = \sum_{n=0}^{N-1} x[n]\, e^{-j 2\pi m n / N}, \qquad m = 0,\dots,N-1 . \]
donde:
- \(X[m]\) — coeficiente \(m\) de la DFT (línea espectral)
- \(x[n]\) — muestra \(n\) de la señal
- \(m\) — índice de frecuencia (línea)
- \(n\) — índice de muestra (tiempo)
- \(N\) — número de muestras
- \(f_s\) — frecuencia de muestreo [Hz]
Analizar un bloque finito equivale a multiplicar la señal por una ventana rectangular, es decir, a convolucionar su espectro con un núcleo \(\operatorname{sinc}\) de lóbulos laterales altos: eso es la fuga. Una ventana suave \(w[n]\) (Hann, Blackman-Harris) rebaja esos lóbulos a costa de ensanchar el lóbulo principal —peor resolución— en un compromiso cuantificado clásicamente por Harris [4], [5].
No se puede tener resolución arbitraria en tiempo y en frecuencia a la vez. Si \(\sigma_t\) y \(\sigma_f\) miden la dispersión de la señal en cada dominio,
\[ \sigma_t\,\sigma_f \;\ge\; \frac{1}{4\pi}, \]
donde:
- \(\sigma_t\) — dispersión (desviación) de la señal en el tiempo [s]
- \(\sigma_f\) — dispersión de la señal en frecuencia [Hz]
con igualdad para la ventana gaussiana. Es el mismo teorema que en mecánica cuántica, y es la razón de fondo por la que un análisis de frecuencias bajas (que exige buena resolución en frecuencia) necesita ventanas largas —y por tanto responde lento— mientras que capturar un transitorio exige ventanas cortas [1].
4.4 Lecturas adicionales
4.5 Ejercicios
- En el widget, activa solo los armónicos 1, 3, 5 y 7 con amplitudes \(1, \tfrac13, \tfrac15, \tfrac17\). ¿A qué forma de onda tiende? Justifícalo con los coeficientes \(c_k\).
- Demuestra, a partir de la definición, que una señal real y par tiene coeficientes \(c_k\) reales, y que una señal impar los tiene imaginarios puros.
- Una FFT de \(N=4096\) puntos a \(f_s = 48\) kHz. ¿Cuál es su resolución en frecuencia \(\Delta f\)? ¿Y si quieres \(\Delta f = 1\) Hz, cuántas muestras necesitas y cuánto tiempo de señal representa?