Está en la página 1de 8

TRANSFORMADA RAPIDA DE FOURIER

Transformada Rpida (FFT) En la prctica, la Transformada de Fourier


se calcula con un algoritmo llamado Fast Fourier Transform o FFT.
Por ejemplo en Matlab o Octava la funcin para calcular la
transformada de Fourier se llama fft. Este algoritmo es ms eficiente
cuando N es potencias de 2, i.e., N = 2p con p un nmero entero. Es
por esto que en la prctica en general se hace Zero Padding de modo
que la seal tenga un largo N = p 2 con los beneficios,

Mayor eficiencia del algoritmo FFT


Efecto colateral de mejorar la interpolacin espectral.

El trmino genrico transformada rpida de Fourier abarca distintos


algoritmos con distintas caractersticas, ventajas y desventajas. Por
ejemplo, una FFT diseada y optimizada usando un lenguaje de alto
nivel probablemente no funcionar correctamente en un DSP de coma
fija. Sin embargo, todas las FFTs usan la misma aproximacin para
reducir el algoritmo en un nmero reducido de DFTs sucesivas,
cortas y simples. Hay que tener en cuenta que:

La FFT es un algoritmo (no una aproximacin) a iguales


intervalos de espaciamiento
Las limitaciones de la FFT surgen de las que tiene la DFT.
No es ni mejor ni peor. Sin embargo se logra una eficiencia
debido a los nmeros de operaciones menores que utiliza la FFT
para ser resuelta.

El algoritmo de FFT a presentar en este trabajo, descompone la DFT


de N puntos en transformadas ms pequeas. Una DFT de N puntos
es descompuesta en dos DFTs de N/2 puntos. Cada DFT de N/2
puntos se descompone a su vez en dos DFTs de N/4 puntos y as
sucesivamente. Al final de la descomposicin se obtienen N/2 DFTs
de 2 puntos cada una. La transformada ms pequea viene
determinada por la base de la FFT. Para una FFT de base 2, N debe ser
una potencia de 2 y la transformada ms pequea es la DFT de 2
puntos. Para implementar la FFT existen dos procedimientos:
diezmado en el tiempo (DIT del ingls Decimation In Time) y
diezmado en frecuencia (DIF del ingls Decimation In Frequency).
Considrese la Transformada Discreta de Fourier (DFT):

1
x 0 ( k ) . exp

X( n)

j . 2. . n. k
N

k=0

n 0 .. N

Donde se ha reemplazado k.T por k y n/N.T por n por conveniencia


de notacin .Se percibe que la ecuacin describe el cmputo de N
ecuaciones. Por ejemplo, si N = 4 y si se hace:

j . 2.

W exp

La expresin puede ser escrita como:

x 0 ( 1 ). W

x 0 ( 1 ). W

x 0 ( 1 ). W

x 0 ( 1 ). W

X( 0 ) x 0 ( 0 ) . W
X( 1 ) x 0 ( 0 ) . W
X( 2 ) x 0 ( 0 ) . W
X( 3 ) x 0 ( 0 ) . W

x 0 ( 2 ). W

x 0 ( 3 ). W

x 0 ( 2 ). W

x 0 ( 2 ). W

x 0 ( 2 ). W

x 0 ( 3 ). W

x 0 ( 3 ). W

x 0 ( 3 ). W

3
6

Las ecuaciones anteriores pueden ser ms fcilmente representadas


en forma matricial:

X( 0 )

X( 1 )

X( 2 )

X( 3 )

n . k.

O ms compactamente:

X( n) W

x 0( k)

x 0( 0)

x 0( 1)
x 0( 2)
x 0( 3)

La FFT debe su xito al hecho que el algoritmo reduce el nmero de


multiplicaciones y adiciones requeridas en el clculo de (22-4). Ahora
se discutir, a nivel intuitivo, como se lleva a cabo esta reduccin.
Para ilustrar el algoritmo FFT, es conveniente elegir el nmero de
puntos muestras de x0(k) de acuerdo a la relacin N = 2 dondees
un entero. Recurdese que la ecuacin resulta de la eleccin N = 4 =
2 = 22 por lo tanto, se puede aplicar la FFT al cmputo de
El primer paso en el desarrollo del algoritmo FFT para este ejemplo es
reescribir como:
1

X( 0 )

1
1

X( 1 )

1 W

X( 2 )

1 W

X( 3 )

1 W

x 0( 0)

1
3

x 0( 1)

x 0( 2)

x 0( 3)

La matriz de la ecuacin (23-1) se deriva de la (22-4) usando la


relacin:
n. k

mod( n . k , N )

Recurdese que mod(n.k,N) es el resto de la divisin entre n.k y N,


por lo tanto si N=4, n=2 y k=3 entonces:
6

Ya que
n. k

exp

exp

j . 2. .
( 6)
4

j . .2.
( 2)
4

exp( j . 3. ) exp( j . )
mod( n . k , N )

El segundo paso en el desarrollo es factorear la matriz cuadrada en


(23-1) como sigue:

1 0 W

1 W

0 1

1 W

1 W

X( 0 )

1 W

X( 2 )
X( 1 )
X( 3 )

W
2

1 0 W

0 1

x 0( 0)

0
.

x 0( 1)
x 0( 2)

0
2

x 0( 3)

Se puede demostrar fcilmente que el producto de las dos matrices


cuadradas da por resultado la matriz cuadrada Con la excepcin
que las filas 1 y 2 han sido intercambiadas. Note que el
intercambio ha sido tomado en cuenta reescribiendo el vector
columna X(n), se denota el vector con la fila intercambiada por:
X( 0 )
X d ( n)

X( 2 )
X( 1 )
X( 3 )

Esta factorizacin es la clave de la eficiencia del algoritmo FFT.


Habiendo aceptado el hecho que es correcta, aunque los resultados
estn "revueltos", se puede observar el nmero de multiplicaciones
requeridas para computar la ecuacin. Hgase primero:
0

x 1( 0)

1 0 W

x 1( 1)

0 1

x 1( 2)

1 0 W

x 1( 3)

0 1

W
2

x 0( 0)

0
.

x 0( 1)
x 0( 2)

0
2

x 0( 3)

Esto es, el vector columna x1(k) es igual al producto entre el vector y


la matriz a la derecha de la ecuacin
El elemento x1(0) es computado por una multiplicacin compleja y
una adicin compleja (W0 no es reducido a la unidad para desarrollar
un resultado general).

x 1( 0) x 0( 0)

0
W .x 0( 2)

El elemento x1(1) est tambin determinado por una multiplicacin


compleja y una adicin. Slo una adicin compleja se realiza para
computar x1(2). Esto deviene del hecho que W0 = - W2.
Por lo tanto
x 1( 2) x 0( 0)

2
W .x 0( 2) x 0( 0)

0
W .x 0( 2)

Donde la multiplicacin compleja W0x0(2) ya ha sido computada en


la determinacin de x1(0).
Por el mismo razonamiento, x1(3) es computada por slo por una
adicin compleja y ninguna multiplicacin. El vector intermedio x1(k)
es entonces determinado por cuatro adiciones y dos multiplicaciones
complejas.

1 W

x 2( 2)

1 W

x 2( 3)

1 W

X( 0 )

x 2( 0)

1 W

X( 2 )

x 2( 1)

X( 1 )
X( 3 )

x 1( 0)

1
3

x 1( 1)
x 1( 2)
x 1( 3)

El elemento x2(0) est determinado por una multiplicacin y una


adicin complejas:
x 2( 0) x 1( 0)

0
W .x 1( 1)

El elemento x2(1) est determinado por una adicin compleja porque


W0 = - W2
Con un razonamiento similar x2(2) est determinado por una
multiplicacin compleja y una adicin y x2(3) por slo una adicin.
Luego el cmputo de (23-4) requiere un total de cuatro
multiplicaciones complejas y ocho sumas complejas. En cambio el
cmputo de (22-4) requiere diecisis multiplicaciones complejas y 12
sumas complejas.

Ntese que el proceso de factorizacin de la matriz introduce ceros en


las matrices factoreadas y, como resultado, reduce el nmero
requerido de multiplicaciones. Para este ejemplo, el proceso de
factorizacin de matriz ha reducido el nmero requerido de
multiplicaciones en un factor de dos.
Ya que el tiempo de cmputo es fuertemente gobernado por el
nmero de multiplicaciones, se ve la razn de la eficiencia del
algoritmo FFT.
Para N = 2 el algoritmo FFT es entonces simplemente un proceso de
factorizacin de una matriz N x N en matrices (cada una de N x N)
de modo tal que cada una de las matrices factoreadas tenga una
propiedad especial de minimizar el nmero de multiplicaciones y
adiciones.
Si se extiende el resultado del ejemplo previo, se nota que la FFT
requiere N /2 = 4 multiplicaciones complejas y N = 8 adiciones
complejas, mientras que el mtodo directo requiere
multiplicaciones complejas y N(N-1) adiciones complejas.

Si se supone que el tiempo de cmputo es proporcional al nmero de


multiplicaciones, entonces la razn aproximada de tiempo de
cmputo del mtodo directo al de la FFT est dado por:

2. N

N
N.

La cual para N =1024 = 210 es una reduccin computacional de ms


de 200 a 1. La Figura ilustra la relacin entre el nmero de
multiplicaciones requeridas usando el algoritmo FFT comparada con
el nmero de multiplicaciones del mtodo directo.

El procedimiento de factorizacin introduce


Recurdese que el cmputo de produce:

X d ( n)

en vez de

una

discrepancia.

X( n)

Este reordenamiento es inherente al proceso de factorizacin de la


matriz y es un problema menor debido a que es sencillo generalizar
una tcnica de "reordenamiento" de Xd(n) para obtener X(n).
Reescribiendo

Xd(n)
equivalentes binarios:

reemplazando

el

argumento

X( 0 )

X( 00 )

X( 2 )

X( 10 )

X( 1 )

X( 01 )

X( 3 )

Se convierte en

con

sus

X( 11 )

Obsrvese que si los argumentos binarios de (18) son "flippeados" o


"bit reversed" (es decir, 10 se transforma en 01, etc.) En otras
palabras, la imagen del espejo del binario. Entonces

X d ( n)

X( 00 )

X( 00 )

X( 10 )

X( 01 )

X( 01 )

X( 10 )

X( 11 )
(23-13)

flipea a

X( 11 )

X( n)

Es sencillo desarrollar un resultado generalizado para "reordenar" la


FFT.
Para N mayor que 4, es voluminoso describir el proceso de
factorizacin de la matriz anloga a (23-4). Por esta razn es
conveniente interpretar a (23-4) de manera grfica. Usando esta
formulacin grfica se puede describir en forma suficientemente
generalizada un diagrama de flujo para un programa de
computadora.
BIBLIOGRAFIA

http://www.dsp.efn.unc.edu.ar/documentos/FFT
https://ccrma.stanford.edu/workshops/cm2007/topics/clases/PD
Fs/05fourier_handout

También podría gustarte