22/05/02 Procesamiento Digital de Señales - UNEXPO Luis Tarazona 100
x(0)
x(4)
x(2)
x(6)
x(1)
x(5)
x(3)
x(7)
X(0)
X(1)
X(2)
X(3)
X(4)
X(5)
X(6)
X(7)
W0
W1
W2
W 3
-W 0
-W 1
-W2
-W 3
Stage 1
W0
W2
-W0
-W2
W 0
W2
-W0
-W2
W0
-W 0
W0
-W 0
W0
-W0
W0
-W 0
Stage 2Stage 3x(0)
x(4)
x(2)
x(6)
x(1)
x(5)
x(3)
x(7)
X(0)
X(1)
X(2)
X(3)
X(4)
X(5)
X(6)
X(7)
W0
W1
W2
W 3
-W 0
-W 1
-W2
-W 3
Stage 1
W0
W2
-W0
-W2
W 0
W2
-W0
-W2
W0
-W 0
W0
-W 0
W0
-W0
W0
-W 0
Stage 2Stage 3
LA TRANSFORMADA RAPIDA DE FOURIER
(Fast Fourier Transform – FFT)
22/05/02 Procesamiento Digital de Señales - UNEXPO Luis Tarazona 101
La Transformada Discreta de FourierEcuaciones de análisis y síntesis
Análisis:
Síntesis:
(7.1)
(7.2)
10,)()(1
0−≤≤= ∑
−
=
NkWnxkXN
n
nkN
10 ,)(1)(1
0−≤≤= ∑
−
=
− NkWkXN
nxN
k
knN
10,)()(1
0−≤≤= ∑
−
=
NkWnxkXN
n
nkN
10 ,)(1)(1
0−≤≤= ∑
−
=
− NkWkXN
nxN
k
knN
22/05/02 Procesamiento Digital de Señales - UNEXPO Luis Tarazona 102
Propiedades de los Twiddle Factors
(7.3)
(7.4)
(7.5)
nNkN
NnkN
knN WWW )()( ++ ==
knN
NknN WW −=+ 2/
2/2
NN WW =
(periodicidad)
(simetría)
nNkN
NnkN
knN WWW )()( ++ ==
knN
NknN WW −=+ 2/
2/2
NN WW =
(periodicidad)
(simetría)
22/05/02 Procesamiento Digital de Señales - UNEXPO Luis Tarazona 103
La Transformada Rápida de Fourier• Es la única transformada que es discreta en el
dominio del tiempo y de la frecuencia y estádefinida para secuencias de duración finita.
• Es una transformada computable, pero su implementación usando (7.1) y (7.2) es muy ineficiente, en especial para secuencias largas.
• Cooley y Tuckey (1965) demostraron un procedimiento para reducir considerablemente la cantidad de cálculos necesarios para la DFT. Estos y otros algoritmos eficientes se conocen colectivamente como algoritmos de Transformada Rápida de Fourier (FFT).
22/05/02 Procesamiento Digital de Señales - UNEXPO Luis Tarazona 104
Cálculo eficiente de la DFT
• La DFT requiere de N 2 multiplicaciones complejas y N (N-1) adiciones complejas.
• Idea detrás de la FFT: Divide y vencerás– Se divide la secuencia original de N muestras en dos
secuencias de (N / 2) muestras y así sucesivamente.– Los algoritmos de FFT culminan con secuencias de
dos muestras que solo requieren una multiplicación, dos sumas y recombinación de muestras.
– Esto reduce el total de operaciones a (N log N).
22/05/02 Procesamiento Digital de Señales - UNEXPO Luis Tarazona 105
Algoritmos FFT base-2 • Basándonos en las propiedades de los “twiddle
factors” se describirán dos algoritmos FFT específicos, que requieren de (N log N)operaciones:
– FFT de diezmado en tiempo (decimation-in-time FFT)DIT-FFT.
– FFT de diezamdo en frecuencia (decimation-in-frequency FFT) DIF-FFT.
• Estos algoritmos asumen que la longitud N de la secuencia es una potencia de 2, es decir, N=2v, ventero. Es por esto que se les conoce como algoritmos base-2.
22/05/02 Procesamiento Digital de Señales - UNEXPO Luis Tarazona 106
FFT de diezmado en tiempo (DIT-FFT)
• Si se divide la secuencia de N puntos de (7.1) en dos secuencias DFT, una conteniendo las muestras pares de x(n) (denotadas como x2n) y la otra las muestras impares de x(n) (denotadas como x2n+1) se obtiene:
(7.6)k= 0,1,…, N-1
∑∑−
=
++
−
=
+=12/
0
)12(12
212/
02)(
N
n
knNn
nkN
N
nn WxWxkX
22/05/02 Procesamiento Digital de Señales - UNEXPO Luis Tarazona 107
• Usando las propiedades de los twiddle factors:
• La Ec. (7.4) muestra dos DFTs de N/2 puntos, las cuales se pueden calcular en menos tiempo que una DFT de N puntos. Este proceso de diezmado se continúa hasta que se llega a una serie de DFTs de dos puntos, es decir, sólo dos muestras de entrada.
FFT de diezmado en tiempo (DIT-FFT)
(7.7)k= 0,1,…, N-1
∑∑−
=+
−
=
+=12/
02/122/
12/
02)(
N
n
nkNn
kN
nkN
N
nn WxWWxkX
22/05/02 Procesamiento Digital de Señales - UNEXPO Luis Tarazona 108
FFT de diezmado en tiempo (DIT-FFT)
• Si se define:
• Entonces, (7.7) se puede reescribir como:
(7.8)k= 0,1,…, N-1
(7.9)k= 0,1,…, N-1
(7.10)k= 0,1,…, N-1
nkN
N
nnWxkC 2/
12/
02)( ∑
−
=
=
∑−
=+=
12/
02/12)(
N
n
nkNn WxkD
)()()( kDWkCkX kN+=
nkN
N
nnWxkC 2/
12/
02)( ∑
−
=
=
∑−
=+=
12/
02/12)(
N
n
nkNn WxkD
)()()( kDWkCkX kN+=
22/05/02 Procesamiento Digital de Señales - UNEXPO Luis Tarazona 109
FFT de diezmado en tiempo (DIT-FFT)
• Para y usando (7.4), la ec. (7.10) se transforma en:
• Por ejemplo, supóngase N = 8. Luego, a partir de (7.10) y (7.11):
12/ +> Nk
(7.11)k = 0,1,…, N/2-1
(7.13)k = 0,1,2,3,4
(7.12)k = 0,1,2,3,4
)()()2/( kDWkCNkX kN−=+
)()()( kDWkCkX kN+=
)()()2/( kDWkCNkX kN−=+
)()()2/( kDWkCNkX kN−=+
)()()( kDWkCkX kN+=
)()()2/( kDWkCNkX kN−=+
22/05/02 Procesamiento Digital de Señales - UNEXPO Luis Tarazona 110
• Las ecuaciones (7.12) y (7.13) se pueden representar mediante el siguiente diagrama de flujo (conocido como “mariposa FFT” – FFT butterfly).
Mariposa FFT de dos puntos
• Este diagrama constituye la base para el algoritmo de DIT-FFT.
Diagrama de Mariposa FFT
WNk
-WNk
X(k)
X(k+N/2)D (k)
C (k)
22/05/02 Procesamiento Digital de Señales - UNEXPO Luis Tarazona 111
FFT de diezmado en tiempo (DIT-FFT)
• La siguiente lámina muestra la descomposición de una DFT de 8 puntos en dos DFTs de 4 puntos mediante las ecuaciones (7.12) y (7.13).
• Repitiendo este procedimiento, cada DFT de 4 puntos se descompone en una de dos puntos, como se muestra dos láminas mas adelante.
• Un diagrama de flujo completo para ocho puntos se muestra finalmente. Note que cada descomposición corresponde a una etapa en el cálculo de la DFT.
22/05/02 Procesamiento Digital de Señales - UNEXPO Luis Tarazona 112
Descomposición de una DFT de 8 puntos en dos DFTs de 4 puntos – Etapa 1 de la DIT-FFT
x(0)
x(4)
x(2)
x(6)
x(1)
x(5)
x(3)
x(7)
X(0)
X(1)
X(2)
X(3)
X(4)
X(5)
X(6)
X(7)
C(0)
WN0
WN0-
C(1)
C(2)
C(3)
D(0)
D(1)
D(2)
D(3)
DFT de 4 puntos
DFT de 4 puntos
WN1
WN1-
WN2
WN2-
WN3
WN3-
22/05/02 Procesamiento Digital de Señales - UNEXPO Luis Tarazona 113
Descomposición de las DFT de 4 puntos en DFTs de 2 puntos – Etapa 2 de la DIT-FFT
WN1
WN0
x(0)
x(4)
x(2)
x(6)
x(1)
x(5)
x(3)
x(7)
X(0)
X(1)
X(2)
X(3)
X(4)
X(5)
X(6)
X(7)
WN0
WN2
WN0
WN2
WN0
WN2
WN2
WN0
WN1
WN2
WN3
WN0
WN2
WN3-
-
-
-
-
-
-
-
DFT de 2 puntos
DFT de 2 puntos
DFT de 2 puntos
DFT de 2 puntos
22/05/02 Procesamiento Digital de Señales - UNEXPO Luis Tarazona 114
DIT-FFT de 8 puntos
Etapa 3 Etapa 2 Etapa1
WN1
WN0
x(0)
x(4)
x(2)
x(6)
x(1)
x(5)
x(3)
x(7)
X(0)
X(1)
X(2)
X(3)
X(4)
X(5)
X(6)
X(7)
WN0
WN0
WN0
WN0
WN0
WN0
WN0
WN0
WN0
WN2
WN0
WN2
WN0
WN2
WN2
WN0
WN1
WN2
WN3
WN0
WN2
WN3-
-
-
-
-
-
-
-
-
-
-
-
22/05/02 Procesamiento Digital de Señales - UNEXPO Luis Tarazona 115
DIT-FFT de 8 puntos - Observaciones
• Se requieren log2N etapas y cada etapa tiene 2 adiciones y dos multiplicaciones complejas, por lo tanto se tendrán N log2N adiciones y multiplicaciones complejas.
• El diagrama también sugiere una forma útil de almacenar los datos en arreglos intermedios durante el cálculo de cada etapa (Cómputo “en sitio”).
• Para realizar el cómputo en sitio, se requiere que los datos originales se almacenen (o se accedan) en un orden no secuencial.
22/05/02 Procesamiento Digital de Señales - UNEXPO Luis Tarazona 116
• Es posible reordenar la mariposa FFT para reducir a una sola la multiplicacion compleja:
• Reordenando, se obtiene:
• Que requiere de sólo una multiplicación compleja.
Cálculo simplificado de la mariposa FFT
WNk
-WNk
X(k)
X(k+N/2)D (k)
C (k)
-1
X(k)
X(k+N/2)D (k)
C (k)
WNk
22/05/02 Procesamiento Digital de Señales - UNEXPO Luis Tarazona 117
FFT de diezmado en frecuencia (DIF-FFT)
• En este caso, en lugar de dividir la secuencia de entrada en secuencias más pequeñas, se divide la secuencia de salida. Asumiendo de nuevo una secuencia de N=2v puntos, se divide X(k) en dos mitades:
(7.14)
10,)()()(1
2/
1)2/(
0
−≤≤+= ∑∑−
=
−
=
NkWnxWnxkXN
Nn
nkN
N
n
nkN
22/05/02 Procesamiento Digital de Señales - UNEXPO Luis Tarazona 118
FFT de diezmado en frecuencia
• Mediante substitución de variables obtenemos:
• Pero:
(7.15)
(7.16)
10,2
)()(1)2/(
0
2/1)2/(
0−≤≤
++= ∑∑
−
=
−
=
NkWNnxWWnxkXN
n
nkN
kNN
N
n
nkN
====−−−−======== −−−−
impar 1,-par 1,
)1()(2/
kk
eW kkjkNN
ππππ
10,2
)()(1)2/(
0
2/1)2/(
0−≤≤
++= ∑∑
−
=
−
=
NkWNnxWWnxkXN
n
nkN
kNN
N
n
nkN
====−−−−======== −−−−
impar 1,-par 1,
)1()(2/
kk
eW kkjkNN
ππππ
22/05/02 Procesamiento Digital de Señales - UNEXPO Luis Tarazona 119
FFT de diezmado en frecuencia
• Entonces, (7.15) puede escribirse como un par de ecuaciones:
∑−
=
++=
1)2/(
0even for ,
2)()(
N
n
nkN kWNnxnxkX
∑−
=
+−=
1)2/(
0odd for ,
2)()(
N
n
nkN kWNnxnxkX
para k par
para k impar
(7.18)
(7.17)
22/05/02 Procesamiento Digital de Señales - UNEXPO Luis Tarazona 120
FFT de diezmado en frecuencia
• Sustituyendo k = 2k para k par y k = 2k + 1 para k impar:
∑−
=
=
++=
1)2/(
0
2 1-2
...,1,0 ,2
)()2(N
n
nkN
NkWNnxnxkX
(7.20)
(7.19)
∑−
=
−
=
+−=+
1)2/(
0
2 12
,...,1,0 ,2
)()12(N
n
nkN
nN
NkWWNnxnxkX
22/05/02 Procesamiento Digital de Señales - UNEXPO Luis Tarazona 121
FFT de diezmado en frecuencia• Sean:
• Luego, (7.19) y (7.20) se reescriben como:
++=
2)()( Nnxnxna
∑−
=
==
1)2/(
02/ 1-
2...,1,0 ,)()2(
N
n
nkN
NkWnakX
(7.24)
(7.21)
(7.23)
(7.22)
∑−
=
−
==+
1)2/(
02/ 1
2,...,1,0 ,)()12(
N
n
nkN
nN
NkWWnbkX
+−=
2)()( Nnxnxnb
22/05/02 Procesamiento Digital de Señales - UNEXPO Luis Tarazona 122
FFT de diezmado en frecuencia• Las ecuaciones (7.23) y (7.24) representan dos DFTs
de N/2 puntos, las cuales son más simples de calcular que la DFT original. El proceso se continua hasta terminar con DFTs de sólo dos puntos.
• Note que para obtener la DFT de N puntos se deben formar las secuencias a(n) y b(n), luego multiplicar b(n) por WN
k y finalmente calcular las DFTs de N/2 puntos de esas dos secuencias para obtener las muestras pares e impares, respectivamente.
• Las propiedades de simetría y periodicidad de los twiddle factors reducen aún más la complejidad computacional.
22/05/02 Procesamiento Digital de Señales - UNEXPO Luis Tarazona 123
Diagrama de Mariposa FFT
• El siguiente diagrama de flujo representa el diagrama de mariposa para la DIF-FFT
Mariposa DIF-FFT de dos puntos
• Este diagrama constituye la base para el algoritmo de DIF-FFT.
X(k)
X1(n+N/2) X(k+N/2)
X1(n)
-1
nNW
22/05/02 Procesamiento Digital de Señales - UNEXPO Luis Tarazona 124
FFT de diezmado en frecuencia (DIT-FFT)
• La siguiente lámina muestra la descomposición de una DFT de 8 puntos en dos DFTs de 4 puntos mediante las ecuaciones (7.1) y (7.13).
• Repitiendo este procedimiento, cada DFT de 4 puntos se descompone en una de dos puntos, como se muestra dos láminas mas adelante.
• Un diagrama de flujo completo para ocho puntos se muestra finalmente. Note que cada descomposición corresponde a una etapa en el cálculo de la DFT.
22/05/02 Procesamiento Digital de Señales - UNEXPO Luis Tarazona 125
Descomposición de una DFT de 8 puntos en dos DFTs de 4 puntos – Etapa 1 de la DIF-FFT
x(0)
x(1)
x(2)
x(3)
x(4)
x(5)
x(6)
x(7)
b(2)
b(1)
b(0)
a(3)
a(2)
a(1)
a(0)
b(3)
X(0)
X(2)
X(4)
X(6)
X(1)
X(3)
X(5)
X(7)
W0
W1
W2
W3
-1
-1
-1
-1
Stage 1
4-point DFT
4-point DFT
Etapa1
DFT de 4 puntos
DFT de 4 puntos
22/05/02 Procesamiento Digital de Señales - UNEXPO Luis Tarazona 126
Descomposición de las DFT de 4 puntos en DFTs de 2 puntos – Etapa 2 de la DIF-FFT
x(0)
x(1)
x(2)
x(3)
x(4)
x(5)
x(6)
x(7)
X(0)
X(4)
X(2)
X(6)
X(1)
X(5)
X(3)
X(7)
WN0
W1
WN2
WN3
-1
-1
-1
-1
Stage 1
2-point DFT
2-point DFT
2-point DFT
2-point DFT
Stage 2
WN0
WN2
WN0
WN2
-1
-1
-1
-1
Etapa 1 Etapa 2DFT de2 puntos
DFT de2 puntos
DFT de2 puntos
DFT de2 puntos
22/05/02 Procesamiento Digital de Señales - UNEXPO Luis Tarazona 127
DIF-FFT de 8 puntos
x(0)
x(1)
x(2)
x(3)
x(4)
x(5)
x(6)
x(7)
X(0)
X(4)
X(2)
X(6)
X(1)
X(5)
X(3)
X(7)
WN0
WN1
WN2
WN3
-1
-1
-1
-1
Etapa 1 Etapa 2
WN0
WN2
WN0
WN2
-1
-1
-1
-1
-1
-1
-1
-1
Etapa 3
22/05/02 Procesamiento Digital de Señales - UNEXPO Luis Tarazona 128
DIF-FFT de 8 puntos - Observaciones
• Se requieren log2N etapas y cada etapa tiene 2 adiciones complejas y una multiplicación compleja, por lo tanto se tendrán N log2N adiciones y N/2 log2N multiplicaciones complejas.
• El diagrama también sugiere una forma útil de almacenar los datos en arreglos intermedios durante el cálculo de cada etapa (Cómputo “en sitio”).
• Al realizar el cómputo en sitio, las secuencia de salida queda en orden no secuencial (índice con los bits invertidos).