La Transformada Rápida de Fourier (Fast Fourier Transform) (FFT) es un algoritmo eficiente O(NlogN)
para calcular la DFT
-
orignalmente descubierta por Gauss a primcipios de 1800
-
redescubierta por Cooley y Tukey en IBM durante 1960
-
C.S. Burrus, de la Universidad de Rice University siendo jefe del departamento de Ingenieria, literalmente "escribio el libro" de los algoritmos de la rápida Transformada Discreta de Fourier DFT.
La
FFT explota las simetrias en la matriz
WW para aproximarse "divide y conquistaras". No hablaremos del actual algoritmo de la FFT aqui, veamos
estas notas
si usted esta interesado en leer mas a cerca de la idea detras de la FFT.
¿En cuánto es mejor O(NlogN) que O(
N2
N
2
)?
|
NN
|
1010
|
100100
|
10001000
|
106106
|
109109
|
|
N2N2
|
100
|
104104
|
106106
|
10121012
|
10181018
|
|
NlogNNN
|
11
|
200200
|
30003000
|
6×1066106
|
9×1099109
|
Digamos que tiene una maquina de 1 MFLOP (un millión de "puntos flotantes" de operacione spor segundo). Sea
N=1millión=106
N
1
millión
10
6
.
Un algoritmo de O(
N2
N
2
) toma
10121012
procesos →
106
10
6
segundos ≃ 11.5 días.
Un algoritmo de O(
NlogN
N
N
) toma
6×106
6
10
6
procesos → 6 segundos.
N=1millión
N
1
millión
es razonable.
Una camara digital de 3 megapixeles arroja
3×106
3
10
6
números por cada foto. Así que para dos
NN secuencias de punto
fnfn
y hnhn. Si resolvemos directamente
fn⊛hn
⊛
f
n
h
n
: O(
N2
N
2
) operaciones.
Tomando la FFTs -- O(NlogN)
multiplicando la FFTs -- O(N)
la inversa de FFTs -- O(NlogN).
el total de complejidad es O(NlogN).
FFT + computación didigital fue completamente responsable de la
"explosión" del Procesamiento Digital de Señales DSP en los años 60's.
La Universidad de Rice fue (y sigue siendo) uno de los lugares de hacer investigación en
DSP.