Está en la página 1de 31

DFT y FFT

Tiempo y Frecuencia

Asume
- periódica
- duración infinita

Requiere
- Conocer la señal de - ∞ a + ∞

SHORT TERM FOURIER TRANSFORM


Tiempo y Frecuencia
Tiempo y Frecuencia

- Espectro distorsionado
- Menor relación S/N
Señales periódicas continuas
•Compuestas por la suma de sinusoides armónicas de una fundamental

•Definidas por Amplitud (A), Frecuencia o período (f=1/T) y fase T=1/f

•Fasor A A
-velocidad angular “física” wt

w=2πf [rad/sec]
•Serie de Fourier

-vel angular fundamental

-Coef. de Fourier

-x(t) periódica y continua en el tiempo → Aperiódica y discreta en frecuencia ( )


Señales aperiódicas continuas
•Para representar aperiodicidad necesitaría infinitos fasores.
- ∑ -> ∫
- ak -> X(ω) función continua en ω = f/2π

•Transformada de Fourier

-x(t) aperiódica y continua en el tiempo → X(ω) aperiódica y continua en


frecuencia

•Lo anterior es continuo en el tiempo y en la frecuencia


-> necesito señales discretas en tiempo y en frecuencia para DSP
Señales periódicas discretas en tiempo
•x(n) con período N muestras → x(n) = x(n+kN) (Transformada z no existe)
•Equivale a muestrear el circulo unidad en el plano z Plano z

-velocidad angular “discreta” 2π/N

Ω0=2π/N [muestras/sec]

•Serie Discreta de Fourier

-vel angular fundamental Ω0

-Coef. de Fourier ak = X(z)|z=ej(2π/N)k

-x(n) periódica y discreta en el tiempo → periódica y discreta en frecuencia ( )


Señales aperiódicas discretas en tiempo
•Muestreo x(t) cada Ts segundos. Obtengo N valores en 0, Ts , 2Ts ,…,nTs ,….,NTs

•Intervalo de Nyquist -fs/2 <f< +fs/2 [Hz=ciclos/seg]


-π/fs <ω< +π/fs [ω=2πf radianes/seg]
-π <Ω< +π [Ω=2πf/fs=ωTs radianes/muestra]
•Velocidad angular “discreta” Ω=2πf/fs=ωTs= 2π/N es periódica con período N

•Transformada de Fourier Discreta en el Tiempo (DTFT)


- Periódica
- Continua
DFT Transformada Discreta de Fourier
•Me interesa X(Ω) en N puntos 0, Ω, 2Ω, ….kΩ,….,(L-1)Ω → Limito a L muestras
temporales → luego tomo como si fuera periódica → discreta en frecuencia
DFT de N puntos

N
•En general podría haber L muestras temporales (n=0,1,2,…,L-1) y N puntos para
evaluar la DFT (k=0,1,2,…,N-1). N=L es el caso mas usado.
-Si L < N -> Agrego N-L muestras en cero
-Si L > N -> Reducción módulo N: Divido x[n] en bloques de N muestras
•Fasor digital o “twiddle”
FFT Transformada Rápida de Fourier

•Cada uno de los N puntos de la DFT requiere N-1 sumas y N multiplicaciones.


X(k) = x[0] W0 + x[1] Wk + x[2] W2k +……+ x[n-1] W(N-1)k k = 0,1,…N-1
-> como hay N se requiere (N-1).N sumas complejas y N2 multiplicaciones complejas
•Los factores twiddle presentan periodicidad y simetría
W0 = 1 W6=W14=…
Wk+N = Wk W5=W13=… W7=W15=…

Wk+N /2= -Wk


Para N=8 W4=W12=… W0=W8=…

W3=W11=… W1=W9=…
W2=W10=…
• Aprovechando la simetría y periodicidad se divide la DFT en porciones más pequeñas
que son manejables computacionalmente y se calculan más rápido
FFT Transformada Rápida de Fourier

•Tiene las mismas limitaciones que la DFT (no es peor por ser más rápida)

•Tanto la DFT como la FFT muestran efectos del muestreo (no propios)
Aliasing :

Leakage (Fenómeno de Gibbs):

Error en amplitud
FFT Base 2

•Hay varios algoritmos similares. Todos reducen la DFT en partes generando DFTs
sucesivas más cortas y simples. La mas usada es la Fast Fourier Transform Base 2
•La cantidad de puntos debe ser potencia de 2. (Si no se agregan muestras cero)
•Divide la DFT de N puntos en dos DFT de N/2 PUNTOS. Luego divide cada una de éstas
en dos de N/4 puntos, y así siguiendo hasta obtener una DFT de dos puntos (FFT base
2).
•El mismo algoritmo tiene dos procedimientos:
- Diezmado en el tiempo (DIT Decimation in Time)
- Diezmado en frecuencia (DIF Decimation in Frequency)
FFT Base 2 DIT
•Divido la secuencia de N datos temporales en N/2 muestras pares y N/2 muestras
impares.
f1[n] = x[2n] f2[n] = x[2n+1] n = 0, 1, 2, …. , N/2 – 1

•La DFT resultante queda dividida en dos partes

+
W6=W14
W5=W13 =… W7=W15
=… =…
y como
W4=W12 W0=W8
=… =…
W3=W11 W1=W9
=… W2=W10 =…
=…

donde F1(k) y F2(k) son las DFT de N/2 puntos de f1[n] y f2[n].
FFT Base 2 DIT

• Las F1(k) y F2(k) tienen período N/2 -> F1(k+N/2) = F1(k) y F2(k+N/2) = F2(k).
F1(0)

F1(1)
DFT
de N/2
puntos F1(2)

F1(3)

F2(0)

F2(1)
DFT
de N/2
puntos F2(2)

F2(3)
FFT Base 2 DIT
• Además entonces

F1(0)

F1(1)
DFT
de N/2
puntos F1(2)

F1(3)

F2(0)

F2(1)
DFT
de N/2
puntos F2(2)

F2(3)
FFT Base 2 DIT

• Operaciones necesarias:
- 2(N/2)2 multiplicaciones para F1(k) y F2(k)
N2/2 + N/2 multiplicaciones complejas
- N/2 multiplicaciones para

es decir casi la mitad de multiplicaciones para N grande (DFT requiere N2


multiplicaciones)
FFT Base 2 DIT
• Dividiendo también f1[n] y f2[n] en muestras pares e impares tenemos dos
secuencias de N/4 puntos para cada una.
v11[n] = f1 [2n] v12[n] = f1 [2n+1] n = 0, 1, 2, …. , N/4 – 1
v21[n] = f2 [2n] v22[n] = f2 [2n+1] n = 0, 1, 2, …. , N/4 – 1
• Las DFT de F1(k) y F2(k) se calculan con N/4 puntos cada una quedando

k=0,1,2,…., N/4 – 1

donde Vij(k) son las DFT de N/4 puntos de vij[n].


• Operaciones necesarias (multiplicaciones):
- 4(N/4)2 para Vij(k)
N2/4 + N multiplicaciones complejas.
- N/2 para F1(k) y F2(k)
Nuevamente la mitad para N grande
- N/2 para X(k) a partir de F1(k) y F2(k)
FFT Base 2 DIT

DFT V11(0)
de N/4 F1(0)
puntos
V11(1)
F1(1)

DFT V12(0)
de N/4 F1(2)
puntos
V12(1)
F1(3)

DFT V21(0)
de N/4 F2(0)
puntos
V21(1)
F2(1)

DFT V22(0)
de N/4 F2(2)
puntos
V22(1)
F2(3)
FFT Base 2 DIT

V11(0) F1(0)

V11(1) F1(1)

V12(0) F1(2)

V12(1) F1(3)

V21(0) F2(0)

V21(1) F2(1)

V22(0) F2(2)

V22(1) F2(3)
FFT Base 2 DIT
• FFT de 8 puntos (detalle) F1(k)
V11(k)

V12(k)

V21(k) F2(k)

Ejemplo: N=8, k=2


V22(k)
X[2] = F1[2] + W28 F2[2]
F1[2] = V11[0] + W08 V12[0] V11[0] = x(0)+x(4) V12[0] = x(2)+x(6)
F2[2] = V21[0] + W08 V22[0] V21[0] = x(1)+x(5) V22[0] = x(3)+x(7)
FFT Base 2 DIT
• En general N = 2v muestras temporales requieren v = log2N diezmados.
• Cada etapa requiere N/2 multiplicaciones
-> Total multiplicaciones complejas = N/2 log2N
• El total de sumas complejas es N log2N

• Comparación multiplicaciones complejas DFT vs FFT


Puntos DFT FFT Factor de
N NxN N/2 logN mejora
4 16 4 4,0
8 64 12 5,3
16 256 32 8,0
32 1024 80 12,8
64 4096 192 21,3
128 16384 448 36,6
256 65536 1024 64,0
512 262144 2304 113,8
1024 1048576 5120 204,8
FFT Base 2 DIT
• FFT de 8 puntos (etapas)
FFT Base 2 DIT
• Mariposas: DFT de dos puntos

k
k

• En cada etapa:
a) se toman 2 nros complejos (a,b)
b) se multiplica b por WkN
c) se calculan dos nros complejos (A,B)
d) se puede almacenar (A,B) en el mismo lugar de (a,b). Operación in situ
-> una FFT de N puntos requiere 2N posiciones para almacenar N nros complejos
FFT Base 2 DIT
• Posición de las muestras:

• Para obtener X(k) en el orden correcto,


las muestras temporales deben acomodarse
en memoria según el orden “bit inverso”.

• Algunos DSP tienen modo de direccionamiento en “bit inverso”.


FFT Base 2 DIT
W6=W1
• Pasos a seguir: W5=W1 4=… W7=W1
3=… 5=…
1) Adquirir las N muestras temporales x[n],
2) Acomodarlas según el orden “bit inverso”, W4=W1 W0=1
3) Realizar N/2 DFT de dos puntos, 2=…

4) Combinar los resultados anteriores y repetir 3) y 4) log2N3=veces


W -(1-j)V2 W1=(1-j)V2
• Ejemplo: Calcular la FFT de x = [4 -3 2 0 -1 -2 3 1] W2=-j
4 3 8 4

-1 1 5 5+j 5+j+j

2 5 1 -2 -2+6j

3 1 -1 -j 5-j 5-j+j

-3 -5 -4 1 12

-2 1 -1 -1+j 5+j-j
FFT Inversa Base 2 DIT
• Pasos a seguir:
1) Realizar el complejo conjugado de los puntos X(k) (frecuencia),
2) Acomodarlas según el orden “bit inverso”,
3) Realizar el complejo conjugado del resultado,
4) Dividir por N → IFFT (X(k)) = 1/N [FFT(X(k)*)]*
• Ejemplo: Calcular la IFFT del ejemplo anterior
12 32
4 4 16 4
-20 -24
5+j+j 12 1 -8 -3
20 16
-2+6j -2-6j -4 1 2
4 0
5-j+j -2+6j 1 -12j -j 0
20 -8
12 5-j-j 10-2j 1 -1
-(1+j)2 -16
5+j-j 5-j+j 1 -2j -2
-4j 24
BIBLIOGRAFIA

-Higgins, R. J., 1990. Digital Signal Processing In Vlsi. Prentice‐Hall,Inc. New Jersey.

-Orfanidis, S. J., 1996. Introduction to Signal Processing. Prentice may, Inc.

-Smith, S. W., 1999. The Scientist and Engineer's Guide to Digital Signal Processing. -
California Technical Publishing, Second Edition.

-Proakis, J. G. y Manolakis, D. G., 2003. Tratamiento Digital de Señales. Tercera Edición.


Prentice Hall.Madrid.

- Oppenheim, A. V., Schafer, R. W. and Buck, J. R., 1999. Discrete‐Time Signal


Processing. 2nd Ed. Prentice‐Hall Signal Processing Series.
FFT Base 2 DIF
•Dividimos los N puntos de la DFT en dos de N/2 puntos

y utilizando tenemos

y reemplazando podemos dividir en X(2k) (pares) y X(2k+1) (impares)

k=0,1,2,…..,N/2 - 1

•Definiendo dos secuencias temporales de N/2 puntos

n=0,1,2,…..,N/2 - 1
FFT Base 2 DIF
•Reemplazando g1[n] y g2[n]

•Se continua dividiendo los puntos resultantes de X(2k) y X(2k+1) en pares e impares
•Luego de log2N veces se llega a una operación de 2 puntos.
•Requiere el mismo nro de multiplicaciones y sunas complejas que la FFT base 2 DIT.
•Usa una mariposa para cada cálculo (notar ubicación fasor digital)

k
k
FFT Base 2 DIF
• FFT de 8 puntos DIF (detalle). Notese la salida en orden de bit inverso
BIBLIOGRAFIA

-Higgins, R. J., 1990. Digital Signal Processing In Vlsi. Prentice‐Hall,Inc. New Jersey.

-Orfanidis, S. J., 1996. Introduction to Signal Processing. Prentice may, Inc.

-Smith, S. W., 1999. The Scientist and Engineer's Guide to Digital Signal Processing. -
California Technical Publishing, Second Edition.

-Proakis, J. G. y Manolakis, D. G., 2003. Tratamiento Digital de Señales. Tercera Edición.


Prentice Hall.Madrid.

- Oppenheim, A. V., Schafer, R. W. and Buck, J. R., 1999. Discrete‐Time Signal


Processing. 2nd Ed. Prentice‐Hall Signal Processing Series.

También podría gustarte