🧮 Computational Mathematics

Inicio · Parte 13 — Teoría de la información, señales y series

274 — FFT

avanzado clase 14 de 20 4 horas demostración fft

La FFT da el mismo resultado que la DFT y convierte n² en n log n.

Fórmulas

coste DFT: O(n²)   coste FFT: O(n log n)
n = 10⁶:  10¹² frente a 2·10⁷ operaciones
teorema de convolución: f * g = IFFT(FFT(f)·FFT(g))

Desarrollo

La transformada discreta de Fourier calculada de forma directa necesita operaciones complejas. Para un millón de muestras eso son 10¹² operaciones: horas o días. La FFT obtiene exactamente el mismo resultado en O(n log n), unas 2·10⁷ operaciones: una fracción de segundo.

El algoritmo, publicado por Cooley y Tukey en 1965 —aunque Gauss ya lo conocía en 1805—, explota que la transformada de una señal se puede construir a partir de las transformadas de sus muestras pares e impares. Aplicar esa descomposición recursivamente da el logaritmo. Es un divide y vencerás de manual.

Su impacto es difícil de exagerar. La FFT es lo que hace posible el audio digital, las telecomunicaciones modernas, la resonancia magnética, el análisis sísmico y la multiplicación rápida de polinomios y de enteros grandes. Está en la lista habitual de algoritmos más influyentes del siglo XX.

El teorema de convolución convierte esa velocidad en una herramienta general: convolucionar en el tiempo es multiplicar en frecuencia, así que para núcleos grandes es más rápido transformar, multiplicar punto a punto y volver, que convolucionar directamente. El punto de cruce está alrededor de núcleos de 50 a 100 elementos, y por eso las CNN con núcleos de 3×3 no usan FFT.

Ejemplo trabajado

FFT y DFT sobre la misma señal de 256 muestras.

256 muestras con componentes en 10 Hz y 40 Hz

picos detectados:  [10, 40]
frecuencias reales: [10, 40]        coinciden        ✓
FFT y DFT dan resultados idénticos                   ✓

Coste:
  DFT: 256² = 65 536 operaciones
  FFT: 256 · log₂ 256 = 256 · 8 = 2 048 operaciones
  ganancia: 32×

Para n = 10⁶ la ganancia sería de 50 000×:
la diferencia entre imposible y instantáneo.

Qué calcula el laboratorio

FFT frente a DFT: mismo resultado, coste muy distinto.

python classes/part-13-teoria-de-la-informacion-senales-y-series/274-fft/lab.py
compmath run 274

Salidas del laboratorio (9)

Muestra de la ejecución real

{
  "muestras": 256,
  "picos_detectados": [
    10,
    40
  ],
  "frecuencias_reales": [
    10,
    40
  ],
  "coinciden": true,
  "fft_y_dft_coinciden": true,
  "operaciones_DFT": 65536
}

Errores comunes

Dónde se usa

Procesamiento de audio en tiempo real, telecomunicaciones, imagen médica, convoluciones rápidas y multiplicación de enteros grandes.

Idea rectora de la parte

Nyquist fija la frecuencia mínima de muestreo; por debajo hay aliasing irreversible.

Error a evitar

Comparar entropías calculadas en bases logarítmicas distintas.

Conexión con IA

La función de pérdida de casi todo clasificador es entropía cruzada; el VAE optimiza un ELBO con un término KL; las CNN son convoluciones aprendidas.

Bibliografía de la clase

Archivos de la clase