Está en la página 1de 64

5 Curso-Tratamiento Digital de Seal

Transformada Discreta de Fourier


(DFT)
Transformada Discreta de Fourier
FFT (Fast Fourier Transform)

17/11/99 Captulo 6: Transformada Discreta de Fourier (DFT) 1


5 Curso-Tratamiento Digital de Seal

Transformada Discreta de Fourier


Antes de definir la DFT, analizaremos primero la Transforma-
da de Fourier en tiempo discreto (DTFT).
La DTFT describe el espectro de seales discretas. Deducire-
mos la DFT a partir de la convolucin discreta explicada en el
Captulo 2.
All se defini la convolucin discreta como
y[n] = x[n] h[n] = x [k ]h [n k ]
k =
s s

Si tenemos una seal de entrada armnica x[n]=exp(j2nfts), la


respuesta y[n] es
y[n] = exp[ j 2 (n k ) ft s ] h[k ]
k =

= exp( j 2nft s ) exp( j 2kft s ) h[k ] = x[n] H ( f )
k =

H(f) es la DTFT de la seal discreta h[n]. Ntese que la funcin H(f)


es peridica, debido a que h[n] es una funcin discreta.
17/11/99 Captulo 6: Transformada Discreta de Fourier (DFT) 2
5 Curso-Tratamiento Digital de Seal

Transformada Discreta de Fourier


Se define la DTFT de una seal discreta x[n] como
X( f ) = x[k ]exp( j 2kfts )
k =

Dualidad entre las series de Fourier y la DTFT


Tenemos una seal peridica continua xp(t). Mediante las series de
Fourier transformamos esa seal peridica continua en una funcin
aperidica y discreta (los coeficientes espectrales
XS[k]).
1
X S [k ] = x p (t ) exp( j 2kf0 t )dt x p (t ) = X S [k ]exp( j 2kf0 t )
T T
k =
De una manera dual, podemos intercambiar tiempo y frecuencia de
forma
xS [k] = X P ( f )exp( j2kfts )df XP ( f ) = x [n]exp( j2kft )
1
SF
SF
k =
S s

donde SF=1/ts . Ahora tenemos una seal aperidica discreta xs[k] y la


transformamos en una seal peridica continua (Xp(f)) mediante la
DTFT.

17/11/99 Captulo 6: Transformada Discreta de Fourier (DFT) 3


5 Curso-Tratamiento Digital de Seal

Transformada Discreta de Fourier


El comportamiento dual entre las series de Fourier y la DTFT se
manifiesta en lo siguiente :
En las series de Fourier parto de una seal x(t), temporal, continua y peri-
dica (periodo T) y obtengo los coeficientes X[k], que es una funcin de la
frecuencia, aperidica y discreta con una distancia entre dos valores
consecutivos de f0=1/T.
En la DTFT parto de una seal discreta en el tiempo x[n], con periodo de
muestreo ts=1/fs y aperidica y obtengo una funcin X(f), que es funcin
continua de la frecuencia y peridica con periodo fs.
Todas las propiedades que se vieron para las series de Fourier tienen su
correspondientes equivalencias en la DTFT.
Ejemplo : DTFT de la secuencia x[n]=[n] :
X ( f ) = [k ] exp( j 2kft s ) = 1
k =
Si tenemos una secuencia x[n]={1,0,3,-2}, a partir de la anterior ecuacin
y aplicando la propiedad del desplazamiento,
X ( f ) = 1 + 3 exp( j 4ft s ) 2 exp( j 6ft s )

17/11/99 Captulo 6: Transformada Discreta de Fourier (DFT) 4


5 Curso-Tratamiento Digital de Seal

Transformada Discreta de Fourier


Sin embargo, a la hora de realizar operaciones tenemos los
mismos problemas que en las series de Fourier ya que
seguimos tratanto con seales continuas o con series de datos
de longitud infinita. La electrnica nos obliga a trabajar con
un nmero finito de datos discretos que adems tienen una
precisin finita.
De lo que se trata es de conseguir discretizar las variables
continuas y de limitar el nmeros de muestras en los dos
dominios (temporal y frecuencial).
Esto nos lleva a definir las series discretas de Fourier y la
Transformada Discreta de Fourier (DFT).

17/11/99 Captulo 6: Transformada Discreta de Fourier (DFT) 5


5 Curso-Tratamiento Digital de Seal

Transformada Discreta de Fourier


De las Series de Fourier a las Series Discretas de Fourier
Para las Series de Fourier se cumple (f0=1/T)

xP (t ) = X S [k ]exp( j 2kf0t ) X S [k ] = xP (t ) exp( j2kf0t ) dt
1
k = T T
Para limitar xp(t), tomamos N muestras de xp(t) durante un periodo a
intervalos ts, de forma que Nts=T. Al calcular los coeficientes X[k] me
queda, 1 N 1
X [k ] = x [n] exp( j 2kf nt ) t
P 0 s s
Nt s n =0
N 1

x [n] exp( j 2kn / N )


1
= P k = 0,1,2  , N 1
N n =0

La cantidad X[k] es la serie de Fourier Discreta de la seal peridica


muestreada xP[n].

17/11/99 Captulo 6: Transformada Discreta de Fourier (DFT) 6


5 Curso-Tratamiento Digital de Seal

Transformada Discreta de Fourier


De la DTFT a la DFT
Tenemos una seal x[n] limitado a N muestras con un periodo de
muestreo ts. N 1

La DTFT se define como X P ( f ) = x[ n ] exp( j 2nft s )


n=0
XP(f) es peridica con periodo 1/ts. Muestreamos esta seal N veces
sobre un periodo, por tanto XT[k] ser sustituir f por k/(Nts) :
[ ]
N 1
X T [ k ] = x[n] exp j 2nkt s / ( Nt s )
n=0
N 1
= x[n] exp[ j 2nk / N ] k = 0,1,2, , N 1
n=0

Esta ltima expresin resultante es la Transformada Discreta de


Fourier de una seal x[n]. Excepto por el trmino 1/N es idntica a la
Serie Discreta de Fourier.

17/11/99 Captulo 6: Transformada Discreta de Fourier (DFT) 7


5 Curso-Tratamiento Digital de Seal

Transformada Discreta de Fourier


Transformada Discreta inversa (IDFT),
1 N 1
x[n] = X T [k ]exp( j 2nk / N ) n = 0,1,2,, N 1
N k =0

Convolucin Circular o Cclica


La convolucin normal entre dos seales peridicas es cero o infinito. Para
este tipo de seales se define la convolucin circular de dos secuencias xp[n] y
hp[n] con periodo N :
1 N 1
y p [n] = x p [n] h p [n] = x p [k ]h p [n k ]
N k =0
La convolucin circular requiere que las dos secuencias sean del mismo
tamao. Si no fuera as habra que llenar de ceros la secuencia ms corta.

17/11/99 Captulo 6: Transformada Discreta de Fourier (DFT) 8


5 Curso-Tratamiento Digital de Seal

Transformada Discreta de Fourier


Propiedades de la DFT
Simetria Conjugada X T [ k ] = X T [k ] = X T [ N k ]
Linealidad x[n] + y[n] X T [k ] + YT [k ]
Desplazamiento x[n m ] X T [k ] exp( j 2km / N ) = X T [k ] WNkm
Modulacion WN nm x[n] X T [k m]
1
Producto x[n]y[n] X T [k ] YT [k ]
N
Simetria x[ n] X T [ k ] = X T [k ]
Conjugado x [n] X T [ k ]
Convolucion Circular x[n] y[n] X T [k ]YT [k ]
Correlacion x[n] y [ n] X T [k ]YT [k ]
1
x[n] = T [ ]
2 2
Ecuacion de Parseval X k
N

17/11/99 Captulo 6: Transformada Discreta de Fourier (DFT) 9


5 Curso-Tratamiento Digital de Seal

Transformada Discreta de Fourier


Ejemplos
x[n]={1,2,1,0}
k=0 XT [0] = x[n] = 1 + 2 + 1 + 0 = 4
k = 1 X T [1] = x[n]exp( j 2 / 4) = 1 + 2 exp( j / 2 ) + exp( j ) = j 2
k=2 X T [2] = x[n]exp( j 2 2 / 4) = 1 + 2 exp( j ) + exp( j 2 ) = 0
k=3 XT [3] = x[n]exp( j 2 3 / 4) = 1 + 2 exp( j 3 / 2) + exp( j 3 ) = j 2

por tanto la DFT de x[n] es XT[k]={4,-j2,0,j2} para k=0,1,2,3

17/11/99 Captulo 6: Transformada Discreta de Fourier (DFT) 10


5 Curso-Tratamiento Digital de Seal

Transformada Discreta de Fourier


Podemos interpretar los resultados del DFT de una secuencia
xs[n] desde dos puntos de vista:
Como los coeficientes espectrales (series de Fourier) de una seal
peridica discreta cuyos muestreos coinciden con la secuencia xs[n].
Como el espectro de una seal aperidica discreta cuyos muestreos
corresponden a la secuencia xs[n].
EL DFT es una aproximacin al espectro de la seal analgica
original. Su magnitud se ve influenciada por el intervalo de
muestreo, mientras que su fase depende de los instantes de
muestreo.

17/11/99 Captulo 6: Transformada Discreta de Fourier (DFT) 11


5 Curso-Tratamiento Digital de Seal

Transformada Discreta de Fourier


Como hacer la DFT a partir de una seal x(t), muestreada
durante D segundos, con periodo de muestreo ts :
Elegir el intervalo de muestreo ts de forma que se cumpla el Teorema
del muestreo.
Crear la expensin periodica (xp(t)) de x(t) con periodo D.
Tomar N muestras de xp(t) empezando en t=0.
Si hay discontinuidades, los valores de muestreo los tomaremos en el
punto medio de la seal.
x(t) x p (t)

-3 -2 -1 0 1 2 3 T -3 -2 -1 0 1 2 3 T

17/11/99 Captulo 6: Transformada Discreta de Fourier (DFT) 12


5 Curso-Tratamiento Digital de Seal

Transformada Discreta de Fourier


DFT de seales peridicas
Siendo x(t)=sin(2ft), con f=1KHz, D=1ms y N=8 tenemos la siguien-
te secuencia de muestreos :
x[n]={0,0.7071,1,0.7071,0,-0.7071,-1,-0.7071}
Sinusoide 1KHz, D=1ms, N=8
1

0.5
Amplitud
0

-0.5

-1
0 0.2 0.4 0.6 0.8 -3 1
Tiempo (s) x 10

El resultado de hacer el DFT es XT[k]={0,-4j,0,0,0,0,0,4j}.


XS[k]=1/8{0,-4j,0,0,0,0,0,4j}={0,-j/2,0,0,0,0,0,j/2}

17/11/99 Captulo 6: Transformada Discreta de Fourier (DFT) 13


5 Curso-Tratamiento Digital de Seal

Transformada Discreta de Fourier


DFT DFT
5 5

4 4
Magnitud DFT

Magnitud DFT
3 3

2 2

1 1
00 0
2 4 6 8
-4000 -2000 0 2000
Indice k
Frecuencia (Hz)

x(t)=sin(2ft), con f=1KHz, D=0.5ms y N=8, tenemos la secuencia de


muestreos: x[n]={0,0.3827,0.7071,0.9239,1,0.9239,0.7071, 0.3827}.
Los coeficientes del DFT son
{5.0273,-1.7654,0.4142,-0.2346,-0.1989,-0.2346,-0.4142,-1.7654}
Y los coeficientes del DFS son
X[k]=1/8{5.0273,-1.7654,0.4142,-0.2346,-0.1989,-0.2346,-0.4142,-1.7654}

17/11/99 Captulo 6: Transformada Discreta de Fourier (DFT) 14


5 Curso-Tratamiento Digital de Seal

Transformada Discreta de Fourier


Sinusoide 1KHz, D=1ms, N=8 DFT
8 0.7
1
0.8 7 0.6
0.6 6
0.5
0.4
5

Magnitud DFT
0.2 0.4
Amplitud

0 4
0.3
-0.2 3
-0.4 0.2
2
-0.6
-0.8 1 0.1

-1 0
0 1 2 3 4 5 6 7 8 0
0 1 2 3 4 5 -8000 -6000 -4000 -2000 0 2000 4000 6000
Tiempo (s) -4 Indice k
x 10

En este nuevo ejemplo, la frecuencia de muestreo es 16KHz. Los X[k]


son reales, por lo que la funcin tiene simetra par. Para la onda dada,
los coeficientes exactos de Fourier son :
XS[0]=1/ XS[k]=2/(1-4k2)
Comparando XS[0]X[0]
XS[1]X[1] dentro del 5% de precisin
Para los trminos con k=2,3..., X[k] se desva bastante del trmino exacto
debido a que la seal no tiene un espectro limitado, producindose aliasing.
17/11/99 Captulo 6: Transformada Discreta de Fourier (DFT) 15
5 Curso-Tratamiento Digital de Seal

Transformada Discreta de Fourier


x(t)=sin(2ft), con f=1KHz, D=1.5ms y N=24.
Sinusoide 1KHz, D=1ms, N=8 DFT

1
0.8
20
0.6
0.4
15

Magnitud DFT
0.2
Amplitud

0
-0.2 10

-0.4
-0.6 5
-0.8
-1
0
0 0.5 1 1.5 0 5 10 15 20
Tiempo (s) -3 Indice k
x 10

DFT

20
Magnitud DFT

15

10

0
-5000 0 5000
Frecuencia (Hz)

17/11/99 Captulo 6: Transformada Discreta de Fourier (DFT) 16


5 Curso-Tratamiento Digital de Seal

Transformada Discreta de Fourier


En este ejemplo se ha producido el denominado leakage, que consiste
en que las componentes originales de la seal se derraman hacia las
nuevas componentes de la seal. Para evitarlo, se debe muestrear un
nmero entero de periodos, o bien utilizar alguna de las ventanas
espectrales (ventana de Hamming, etc).
Podra ocurrir que no conocieramos el periodo de la seal de la cual
queremos calcular el DFT. En ese caso se muestrea una seal de
duracin lo ms larga posible. De esta forma, se reduce el leakage y
el espacio entre frecuencias obtenindose una buena estimacin del
espectro original. Sinusoide 1KHz
1

0.5
Amplitud

-0.5

-1
0 0.001 0.002 0.003 0.004 0.005 0.006 0.007 0.008 0.009 0.01
Tiempo (s)

17/11/99 Captulo 6: Transformada Discreta de Fourier (DFT) 17


5 Curso-Tratamiento Digital de Seal

Transformada Discreta de Fourier


DFT
80

60
Magnitud DFT
40

20

0
-4000 -3000 -2000 -1000 0 1000 2000 3000
Frecuencia (Hz)

DFT de seales aperidicas


La seal aperidica x(t) debe ser muestreada durante un tiempo D. El
DFT produce los coeficientes espectrales correspondientes a la
extensin peridica de x(t) con periodo D. El espacio entre frecuencias
es f0=1/D. A f0 se le denomina resolucin frecuencial. Esta depende
slo de la duracin. Si la seal est limitada en el tiempo, la forma de
aumentar la duracin es aadir ceros.

17/11/99 Captulo 6: Transformada Discreta de Fourier (DFT) 18


5 Curso-Tratamiento Digital de Seal

Transformada Discreta de Fourier


Seal x(t)=exp(-t) Seal x(t)=exp(-t)
1.5 5

4.5

3.5
1
3
Magnitud

Magnitud
2.5

2
0.5
1.5

0.5

0 0
0 0.5 1 1.5 2 -4 -3 -2 -1 0 1 2 3 4
Tiempo (s) Frecuencia (Hz)

Seal x(t)=exp(-t) Seal x(t)=exp(-t)


1.5 2.5

1
1.5
Magnitud

Magnitud
1
0.5

0.5

0 0
0 0.5 1 1.5 2 2.5 3 3.5 4 -2 -1.5 -1 -0.5 0 0.5 1 1.5 2
Tiempo (s) Frecuencia (Hz)

17/11/99 Captulo 6: Transformada Discreta de Fourier (DFT) 19


5 Curso-Tratamiento Digital de Seal

Transformada Discreta de Fourier


Tal y como se observa en las figuras de la pginas anteriores
hay varias formas de dibujar la grfica de la DFT de una
secuencia de datos.
Una de ellas es indicarlo directamente mediante el ndice k. Se
puede observar que |XT[k]| es simtrico respecto a N/2.
Otra forma es reordenando los datos en funcin de la frecuen-
cia. De la definicin de DFT sabemos que cada intervalo de la
DFT es 1/(Nts). La DFT nos da la Transformada de Fourier
para las frecuencias
f -(N/2)/(Nts),...,-1/(Nts),0, 1/(Nts), 2/(Nts)...(N/2-1)/(Nts)
k (N/2) ,..., N-1 ,0, 1 , 2 ... (N/2-1)
La mxima frecuencia detectable por la DFT es lgicamente
fs/2, de acuerdo con el Teorema del Muestreo.
17/11/99 Captulo 6: Transformada Discreta de Fourier (DFT) 20
5 Curso-Tratamiento Digital de Seal

Transformada Discreta de Fourier


En general, el DFT es una aproximacin a las series o a la
transformada de Fourier. Es muy importante elegir
correctamente los parmetros del DFT (frecuencia de
muestreo fs=1/ts, resolucin de frecuencia f0=1/D).
La frecuencia de muestreo se determina a partir del teorema
de muestreo. Si queremos detectar el espectro de una seal
hasta una mxima frecuencia B , la frecuencia de muestreo
deber ser 2B.
La duracin del muestreo se elige para una determinada
resolucin de frecuencia.
Una regla de diseo muy til es: Si queremos los M primeros
armnicos de una seal con un error mximo del 5%, el
nmero de muestreos N=8M.
17/11/99 Captulo 6: Transformada Discreta de Fourier (DFT) 21
5 Curso-Tratamiento Digital de Seal

Transformada Discreta de Fourier


Ejemplo: Queremos determinar mediante un algoritmo digital
el espectro de la seal x(t)=exp(-t). La mxima frecuencia de
la que pide su coeficiente es fB=1Hz. Adems el armnico
correspondiente a f=0.3Hz debe tener un error menor que el
5%. Calcular fs,D y N.
De acuerdo con el Teorema del Muestreo fs=2fB=2Hz.
Escogemos una resolucin frecuencial de f0=0.1Hz, de forma que
D=1/0.1=10s.
La frecuencia 0.3Hz se corresponde con el ndice k=3, por lo que
N=3 8=24 muestreos. Esto me indica que fs=N/D=24/10=2.4 > 2.
Si el objetivo es hacer que N sea lo menor posible (para facilitar los
clculos del DFT), se puede elegir f0=0.3Hz, D=1/0.3=3.33s, k=1 y
N=1 8=8.

17/11/99 Captulo 6: Transformada Discreta de Fourier (DFT) 22


5 Curso-Tratamiento Digital de Seal

Transformada Discreta de Fourier


Seal x(t)=exp(-t) Seal x(t)=exp(-t)
1.5 1.2

1 0.8
Magnitud

Magnitud
0.6

0.5 0.4

0.2

0 0
0 2 4 6 8 10 -1.5 -1 -0.5 0 0.5 1 1.5
Tiempo (s) Frecuencia (Hz)

Seal x(t)=exp(-t) Seal x(t)=exp(-t)


1.5 1

0.9

0.8

0.7
1
0.6
Magnitud

Magnitud
0.5

0.4
0.5
0.3

0.2

0.1

0 0
0 0.5 1 1.5 2 2.5 3 -1.5 -1 -0.5 0 0.5 1
Tiempo (s) Frecuencia (Hz)

17/11/99 Captulo 6: Transformada Discreta de Fourier (DFT) 23


5 Curso-Tratamiento Digital de Seal

Transformada Discreta de Fourier


Ventanas espectrales: Si tenemos seales truncadas, el
espectro de la seal muestra unos picos que no decaen lo
suficientemente rpido con la frecuencia. Para ello podemos
utilizar ventanas en el dominio temporal para suavizar esas
discontinuidades. Los picos sern menores aunque el ancho de
banda de cada lbulo aumentar.

17/11/99 Captulo 6: Transformada Discreta de Fourier (DFT) 24


5 Curso-Tratamiento Digital de Seal

Resumen de Series y Transformadas de Fourier

Series de Fourier
Seal Continua Peridica (periodo T), Espectro Discreto Aperidico
(intervalo de discretizacin 1/T)
Transformada de Fourier
Seal Continua Aperidica, Espectro Continuo Aperidico.
Transformada de Fourier Discreta en el Tiempo
Seal Discreta Aperidica (intervalo de discretizacin ts), Espectro
Continuo Peridico (periodo 1/ ts)
Transformada Discreta de Fourier
Seal Discreta Peridica (intervalo de discretizacin ts, periodo T),
Espectro Discreto (intervalo de discretizacin 1/T)

17/11/99 Captulo 6: Transformada Discreta de Fourier (DFT) 25


5 Curso-Tratamiento Digital de Seal

FFT (Fast Fourier Transform)


La importancia de DFT estriba en que es posible utilizar un
algoritmo, llamado FFT, que lo realiza de forma eficiente y
rpida.
El DFT de una secuencia
N 1
x[n] es :
X[ k ] = x[n]WNnk k = 0,1, , N 1
n=0

donde WN = e j 2 / N
Una primera aproximacin al clculo del DFT requerira la suma
compleja de N multiplicaciones complejas para cada uno de las
salidas. En total, N2 multiplicaciones complejas y N2 sumas complejas
para realizar un DFT de N puntos.

Lo que consigue el algoritmo FFT es simplicar enormemente el


clculo del DFT introduciendo atajos matemticos para reducir
drasticamente el nmero de operaciones.
17/11/99 Captulo 6: Transformada Discreta de Fourier (DFT) 26
5 Curso-Tratamiento Digital de Seal

FFT (Fast Fourier Transform)


La optimizacin del proceso de clculo del DFT est basado
en las siguientes ideas :
Simetra y Periodicidad de los trminos WN.
WNn + N = WNn WNNk = 1
WNn + N / 2 = WNn WN2 = WN / 2
Elegimos el valor de N de forma que N=rm. Al factor r se le denomina
radix y su valor ms habitual es 2, de forma que N=2m y algoritmo se
denomina FFT radix-2.
Radix-2 FFT-Decimacin en el Tiempo.
Dividimos la secuencia de datos de entrada x[n] en dos grupos, uno de
ndices par y el otro de ndices impar. Con estas sub-secuencias se
realiza el DFT de N/2 puntos y sus resultados se combinan para formar
el DFT de N puntos.

17/11/99 Captulo 6: Transformada Discreta de Fourier (DFT) 27


5 Curso-Tratamiento Digital de Seal

FFT (Fast Fourier Transform)


N / 2 1 N / 2 1 N / 2 1 N / 2 1
X[k ] = x[2n]W 2 nk
N + x[2n + 1]W ( 2 n +1) k
N = x[2n]W 2 nk
N +Wk
N x[2n + 1]WN2 nk
n=0 n=0 n=0 n=0

Sustituimos x1 [n] = x[2 n]


x 2 [n] = x[2 n + 1]
WN2 nk = WNnk/ 2
N / 2 1 N / 2 1
X[k ] = x1 [n]W nk
N /2 +W k
N x 2 [n]WNnk/ 2 = Y[k ] + WNk Z[k ] k = 0,1,2,, N 1
n=0 n=0

Esta ltima ecuacin muestra que el DFT de N puntos es la suma de dos


DFTs de N/2 puntos (Y[k], Z[k]) realizadas con las secuencias par e impar
de la secuencia original x[n]. Cada trmino Z[k] es multiplicado por un
factor WNk, llamado twiddle factor. Ya que WNk+N/2=-WNk y debido a la
periodicidad de Y[k] y Z[k] (periodo N/2) podemos poner X[k] como
X [ k ] = Y [ k ] + WNk [ k ] Z [ k ]
X [ k + N / 2] = Y [ k ] WNk [ k ] Z [ k ]
Para k = 0,1, , N / 2 1

17/11/99 Captulo 6: Transformada Discreta de Fourier (DFT) 28


5 Curso-Tratamiento Digital de Seal

FFT (Fast Fourier Transform)


Y[0]

x[0]
+ X[0]

Y[1]

x[2]
+ X[1]

DFT
N/2 Puntos
Y[N/2-1]

x[N-2]
+ X[N/2-1]

W0
x[1]
Z[0]

x -1 + X[N/2]

W1
x[3]
Z[1]

x -1 + X[N/2+1]

DFT
N/2 Puntos
WN / 2 - 1
x[N-1]
Z[N/2-1]

x -1 + X[N-1]

Los dos DFT de N/2 puntos se puede a su vez dividir para formar 4 DFTs
de N/4 puntos, lo que produce las siguientes ecuaciones
Y [k ] = U[k ] + WN2 k V [k ] Z[k ] = R[k ] + WN2 k S[k ]
Y [k + N / 4] = U[k ] WN2 k V [k ] Z[k + N / 4] = R[k ] WN2 k S[k ]
Para k = 0,1,, N / 4 1 Para k = 0,1,, N / 4 1
17/11/99 Captulo 6: Transformada Discreta de Fourier (DFT) 29
5 Curso-Tratamiento Digital de Seal

FFT (Fast Fourier Transform)


El proceso puede repetirse sucesivamente hasta llegar a computar el
DFT de dos valores x[n], en concreto x[k] y x[k+N/2], para
k=0,1,...,N/2-1. Para una DFT de N=8 puntos tenemos el siguiente
esquema Butterfly
x[0] + + + X[0]
0
W

x[4] x -1
+ + + X[1]
0
W

x[2] + x -1
+ + X[2]
0 2
W W

x[6] x -1
+ x -1
+ + X[3]

0
W

x[1] + + x -1
+ X[4]
0 1
W W

x[5] x -1
+ + x -1
+ X[5]
0 2
W W

x[3] + x -1
+ x -1
+ X[6]
0 2 3
W W W

x[7] x -1
+ x -1
+ x -1
+ X[7]

Etapa 1 Etapa 2 Etapa 3

17/11/99 Captulo 6: Transformada Discreta de Fourier (DFT) 30


5 Curso-Tratamiento Digital de Seal

FFT (Fast Fourier Transform)


Las caractersticas de una FFT de N puntos decimada en el tiempo se
sumarizan en la siguiente tabla :
Etapa 1 Etapa 2 Etapa 3 Etapa log2N
Nmero de N/2 N/4 N/8 1
Grupos
Butterflies por 1 2 4 N/2
Grupo
Exponentes (N/2)k, (N/4)k, (N/8)k, k,
Twiddle Factors k=0 k=0,1 k=0,1,2,3 k=0,1,...,N/2-1

Por cada butterfly tenemos una multiplicacin y dos sumas complejas.


Hay N/2 butterflies por etapa y log2N etapas.
El nmero total de multiplicaciones es Nlog2N .
El nmero total de sumas es Nlog2N .

17/11/99 Captulo 6: Transformada Discreta de Fourier (DFT) 31


5 Curso-Tratamiento Digital de Seal

FFT (Fast Fourier Transform)


Para pequeos valores de N, la diferencia puede parecer pequea, pero
para valores grandes la diferencia es enorme. Para un DFT de 1024
puntos, el nmero de multiplicaciones en un FFT es aprox. 5000
mientras que para un DFT normal es de aprox. 106.
Radix-2 FFT-Decimacin en Frecuencia
Expresaremos el FFT como suma de los FFT de dos secuencias, la
primera con los N/2 primeros datos y la segunda con los N/2 ltimos.
N 1 N / 2 1 N 1
X[k ] = x[n]W nk
N = x[n]W nk
N + x[n]WNnk
n=0 n=0 n= N / 2
N / 2 1 N / 2 1
= x[n]W nk
N + x[n + N / 2]WN( n+ N / 2 )k
n=0 n=0
N / 2 1 N / 2 1
= x[n]W nk
N + (1) k
x[n + N / 2]WNnk
n=0 n=0
N / 2 1
= [x[n] + (1)k x[n + N / 2]]WNnk k = 0,1,2, , N 1
n=0

17/11/99 Captulo 6: Transformada Discreta de Fourier (DFT) 32


5 Curso-Tratamiento Digital de Seal

FFT (Fast Fourier Transform)


La decimacin en frecuencia se obtiene dividiendo la secuencia de
salida (X[k]) en dos ecuaciones, una para los ndices pares y otro para
los impares.
N / 2 1
X[2 k ] = [ x [n ] + x [n + N / 2 ]]WN
2 nk

n=0
N / 2 1
= [ x[n] + x[n + N / 2]]WNnk/ 2 k = 0,1, , N / 2 1
n=0

N / 2 1
X[2 k + 1] = [ x[n] x[n + N / 2]]WNn(2 k +1)
n=0
N / 2 1
= [[ x[n] x[n + N / 2]]WNn ]WNnk/ 2 k = 0,1, , N / 2 1
n=0

X[2k] y X[2k+1] son los resultados del DFT de N/2 puntos realizado
con las suma y la diferencia entre la primera y segunda mitades de la
secuencia de entrada.

17/11/99 Captulo 6: Transformada Discreta de Fourier (DFT) 33


5 Curso-Tratamiento Digital de Seal

FFT (Fast Fourier Transform)


x[0] + X[0]

x[1] + X[2]
DFT
N/2 Puntos

x[N/2-1] + X[N-2]

0
W

x[N/2] -1
+ x X[1]
1
W

x[N/2+1] -1
+ x X[3]
DFT
N/2 Puntos
N/2-1
W

x[N-1] -1
+ x X[N-1]

17/11/99 Captulo 6: Transformada Discreta de Fourier (DFT) 34


5 Curso-Tratamiento Digital de Seal

FFT (Fast Fourier Transform)


Butterfly

x[0] + + + X[0]
W0
x[1] + + -1 + x X[4]
W0
-1
x[2] + + x + X[2]
W2 W0
x[3] + -1 + x -1 + x X[6]

W0
x[4] -1 + x + + X[1]
W1 W0
x[5] -1 + x +
-1 + x X[5]
W2 W0
-1 + x -1 + x + X[3]
x[6]
W3 W2 W0
x[7] -1 + x -1 + x -1 + x X[7]

Etapa 1 Etapa 2 Etapa 3

17/11/99 Captulo 6: Transformada Discreta de Fourier (DFT) 35


5 Curso-Tratamiento Digital de Seal

FFT (Fast Fourier Transform)


Las caracterstica del FFT decimado en frecuencia son
Etapa 1 Etapa 2 Etapa 3 Etapa log2N
Nmero de
1 2 4 N/2
Grupos
Butterflies por
N/2 N/4 N/8 1
Grupo
Exponentes n, 2n, 4n, (N/2)n,
Twiddle Factors n=0,...,N/2-1 n=0,...,N/4-1 k=0,...,N/8-1 n=0

Se puede observar que en el caso de decimacin en el tiempo, la secuencia


de entrada debe ser reordenada mientras que la salida aparece en el orden
correcto.
Para la decimacin en frecuencia, la secuencia est en orden mientras que
la salida habr que reordenarla.
Se da la circunstancia que esa reordenacin es simplemente invertir el
ndice en binario. Por ejemplo, en la misma posicin que x[1] aparece
X[4], y 001 invertido es 100.
17/11/99 Captulo 6: Transformada Discreta de Fourier (DFT) 36
5 Curso-Tratamiento Digital de Seal

FFT (Fast Fourier Transform)


DFT en 2 dimensiones
En aplicaciones como procesamiento de imagen, las seales dependen
de dos variables n1 y n2 (el eje x y el eje y en una imagen bidimensio-
nal). Por tanto necesitamos extender el concepto de DFT a dos dimen-
siones.
Dada una secuencia x(n1,n2), se define la DFT como
N1 1N 2 1 j (2 ) ( )
= =
(
x n1 , n2 e ) N1 k1 n1
e
j 2 N 2 k 2 n2
0 n1 N 1 1, 0 n2 N 2 1
(
X k1 , k 2 ) = n1 0 n2 0
0 , en otro caso

La IDFT de X(k1,k2) se define como


1 N1 1N1 1 j (2 ) ( )
1 2 X (
k , k e) N1 k1 n1
e
j 2 N 2 k2 n2
0 n1 N 1 1, 0 n2 N 2 1
N 1 N 2 k1 = 0 k2 = 0
(
x n1 , n2 ) =
0 , en otro caso

17/11/99 Captulo 6: Transformada Discreta de Fourier (DFT) 37


5 Curso-Tratamiento Digital de Seal

FFT (Fast Fourier Transform)


FFT-2D
Al igual que en el caso de seales unidimensionales, disponemos de un
eficiente algoritmo para realizar el DFT.
Descomposicin Fila-Columna
Reescribimos la ecuacin anterior
N 1N 1
j ( 2 N ) k n j (2 N )k n
( ) ( )
1 2

X k ,k =
1 2 x n ,n e 1 2 e 1 1 1 2 2 2

n1 = 0 n2 = 0

N1 1 N 2 1
= f (k1 , n2 )e
( ) ( )
j 2 N 2 k 2 n2
(
, donde f k1 , n2 = ) x (n )
1 , n2 e
j 2 N1 k1 n1

n1 = 0 n2 = 0

Si consideramos n2 fijo (pe, n2 =0), f(k1,n2) es el DFT unidimensional de


x(n1,n2)|n2=0 con respecto a la variable n1. De esta forma obtenemos una
matriz f(k1,n2) para todos los posibles valores de n2 (Figura).
Ahora podemos calcular X(k1,k2) a partir de f(k1,n2),
N 2 1
( )
(
X k1 , k 2 =) f (k 1 , n2 e) j 2 N 2 k2 n2

n2 = 0

17/11/99 Captulo 6: Transformada Discreta de Fourier (DFT) 38


5 Curso-Tratamiento Digital de Seal

FFT (Fast Fourier Transform)


Fijamos k1 (pe, k1=0), por lo que f(k1,n2)|k1=0 es una columna de f(k1,n2) y
X(0,k2) es la DFT unidimensional de f(k1,n2)|k1=0 con respecto a la variable
n2. Obtendremos X(k1,k2) haciendo N1 DFT 1D para cada valor de k1
(Figura).

n2 x(n 1,n 2) n2 f(k 1,n 2)


N 2-1 N 2-1

FFT 1D
N 1 puntos

n1 k1
N 1-1 N 1-1

17/11/99 Captulo 6: Transformada Discreta de Fourier (DFT) 39


5 Curso-Tratamiento Digital de Seal

FFT (Fast Fourier Transform)


n2 f(k 1 ,n 2 ) k2 X(k 1 ,k 2 )
N 2 -1 N 2 -1

FFT 1D
N 2 puntos

k1 k1
N 1 -1 N 1 -1

Nmero de Nmero de
Multiplicaciones Sumas
Calculo Directo N12 N 22 N12 N 22
Descomposicin
Fila-Columna con
N1 N 2
(
log2 N1 N 2 ) (
N1 N 2 log2 N1 N 2 )
2
FFT 1D

17/11/99 Captulo 6: Transformada Discreta de Fourier (DFT) 40


5 Curso-Tratamiento Digital de Seal

FFT con MATLAB


>> X = fft(x)
Hace la FFT del vector x. X es un vector de nmeros complejos
ordenados desde k=0...N-1. Se recomienda que la longitud del vector
x sea una potencia de 2. Lo que no se recomienda es que la longitud
de x sea un nmero primo.
Otra opcin del la FFT es especificar el nmero de puntos con el
que se quiere hacer la FFT.
>> X = fft(x,N)
Si la longitud de x es menor que N, el vector se rellena con
ceros. Si es mayor, el vector es truncado.
>> x = ifft(X)
Hace la FFT inversa del vector X. Tambin se puede especificar el
nmero de puntos N con el que quiero hacer la IFFT.
>> x = ifft(X,N)

>> X = fftshift(X)
Reordena el vector X en orden creciente de frecuencia. Si X es el
vector resultante de hacer una FFT, utilizando esta funcin
reordenamos los puntos en funcin de la frecuencia.

A continuacin tienen unos ejemplos del uso de las FFT. Los programas de
MATLAB utilizados los pueden conseguir en el Web de la asignatura.

17/11/99 Captulo 6: Transformada Discreta de Fourier (DFT) 41


5 Curso-Tratamiento Digital de Seal

FFT con MATLAB: fftej1.m x(t)=sin(2 20t)+chirp(5-40)


N=128 D=1 s
x(t)
2
1.5
1
0.5
0
x(t)

-0.5
-1
-1.5
-2
0 0.2 0.4 0.6 0.8 1
Tiempo (s)

Mdulo de Coeficientes Espectrales |X[k]|


0.6

0.5

0.4
|X[k]|

0.3
0.2

0.1
0
-80 -60 -40 -20 0 20 40 60 80
Frecuencia (Hz)

17/11/99 Captulo 6: Transformada Discreta de Fourier (DFT) 42


5 Curso-Tratamiento Digital de Seal
FFT con MATLAB: fftej1.m x(t)=sin(2 20t)+chirp(5-40)
N=128 D=1 s
Fase de Coeficientes Espectrales X[k]
2000

1500
Fase () 1000

500

-500

-1000-80 -60 -40 -20 0 20 40 60 80


Frecuencia (Hz)

Comparacin entre x(t) y su reconstruccin a partir de X[k]


2.5
2
1.5
1
0.5
x(t)

0
-0.5
-1
-1.5
-2 0 0.2 0.4 0.6 0.8 1
Tiempo (t)

17/11/99 Captulo 6: Transformada Discreta de Fourier (DFT) 43


5 Curso-Tratamiento Digital de Seal

FFT con MATLAB: fftej1.m x(t)=sin(2 20t)+chirp(5-40)


N=128 D=1 s

Comparacin entre x(t) y su reconstruccin a partir de X[k]

1.5

0.5
x(t)

-0.5

-1

-1.5
0.91 0.92 0.93 0.94 0.95 0.96 0.97 0.98 0.99
Tiempo (t)

17/11/99 Captulo 6: Transformada Discreta de Fourier (DFT) 44


5 Curso-Tratamiento Digital de Seal
FFT con MATLAB: fftej1.m x(t)=sin(2 20t)+chirp(5-40)
N=32 D=1 s
Mdulo de Coeficientes Espectrales |X[k]|
0.6
Aliasing 32-20=12 Hz
0.5

|X[k]| 0.4

0.3

0.2

0.1

0
-20 -15 -10 -5 0 5 10 15
Frecuencia (Hz)
Comparacin entre x(t) y su reconstruccin a partir de X[k]
2.5
2
1.5
1
0.5
x(t)

0
-0.5
-1
-1.5
-2
-2.5 0 0.2 0.4 0.6 0.8 1
Tiempo (t)

17/11/99 Captulo 6: Transformada Discreta de Fourier (DFT) 45


5 Curso-Tratamiento Digital de Seal
FFT con MATLAB: fftej2.m x(t)=exp(-2t)+0.2chirp(60-100)
N=256 D=1 s
x(t)=exp(-2t)+0.2chirp(60-100)
1.2
1
0.8
0.6
x(t)
0.4
0.2
0
-0.2 0 0.2 0.4 0.6 0.8 1
Tiempo (s)

Mdulo de los coeficientes espectrales |X[k]|


0.45
0.4
0.35
0.3
0.25
|X[k]|

0.2
0.15
0.1
0.05
0
-150 -100 -50 0 50 100 150
Frecuencia (Hz)

17/11/99 Captulo 6: Transformada Discreta de Fourier (DFT) 46


5 Curso-Tratamiento Digital de Seal
FFT con MATLAB: fftej2.m x(t)=exp(-2t)+0.2chirp(60-100)
N=256 D=1 s
Fase de los coeficientes espectrales X[k]
1500

1000

Fase(X[k]) ()
500

-500

-1000

-1500
-150 -100 -50 0 50 100 150
Frecuencia (Hz)

Comparacin entre x(t) y su reconstruccin a partir de X[k]


1.4
1.2
1
0.8
x(t)

0.6
0.4
0.2
0
-0.2 0 0.2 0.4 0.6 0.8 1
Tiempo (t)

17/11/99 Captulo 6: Transformada Discreta de Fourier (DFT) 47


5 Curso-Tratamiento Digital de Seal

FFT con MATLAB: fftej2.m x(t)=exp(-2t)+0.2chirp(60-100)


N=256 D=1 s

Comparacin entre x(t) y su reconstruccin a partir de X[k]


1

0.8

0.6
x(t)

0.4

0.2

0.96 0.97 0.98 0.99 1


Tiempo (t)

17/11/99 Captulo 6: Transformada Discreta de Fourier (DFT) 48


5 Curso-Tratamiento Digital de Seal
FFT con MATLAB: fftej2.m x(t)=exp(-2t)+0.2chirp(60-100)
N=64 D=0.1 s
Mdulo de los coeficientes espectrales |X[k]|
0.1
0.09
0.08
0.07
0.06
|X[k]|

0.05
0.04
0.03
0.02
0.01
0
-400 -300 -200 -100 0 100 200 300 400
Frecuencia (Hz)
Comparacin entre x(t) y su reconstruccin a partir de X[k]
1.2

1.1

1
x(t)

0.9

0.8

0.7

0.6
0 0.02 0.04 0.06 0.08 0.1
Tiempo (t)

17/11/99 Captulo 6: Transformada Discreta de Fourier (DFT) 49


5 Curso-Tratamiento Digital de Seal
FFT con MATLAB: fftej3.m x(t)=exp(-2t)sin(2 200t)
N=128 D=0.2 s
x(t)=exp(-2t)sin(2 p200 t)
1
0.8
0.6
0.4
0.2

x(t)
0
-0.2
-0.4
-0.6
-0.8
-1 0 0.05 0.1 0.15 0.2
Tiempo (t)

Mdulo de los coeficientes espectrales de x(t)


0.09
0.08
0.07
0.06
0.05
|X[k]|

0.04
0.03
0.02
0.01
0
-400 -300 -200 -100 0 100 200 300 400
Frecuencia (Hz)

17/11/99 Captulo 6: Transformada Discreta de Fourier (DFT) 50


5 Curso-Tratamiento Digital de Seal
FFT con MATLAB: fftej3.m x(t)=exp(-2t)sin(2 200t)
N=128 D=0.2 s

Fase de los coeficientes espectrales X[k]


200

150
100

50
Fase X[k]

0
-50

-100
-150

-200
-400 -300 -200 -100 0 100 200 300 400
Frecuencia (Hz)

17/11/99 Captulo 6: Transformada Discreta de Fourier (DFT) 51


5 Curso-Tratamiento Digital de Seal
FFT con MATLAB: fftej4.m x(t)=sin(2 200t+5sin(2 2 t))
N=256 D=0.5 s
x(t)=sin(2pi200t+5sin(2 pi2 t)
1
0.8
0.6
0.4
0.2

x(t)
0
-0.2
-0.4
-0.6
-0.8
-1 0 0.1 0.2 0.3 0.4 0.5
Tiempo (t)

Mdulo de los coeficientes espectrales de x(t)


0.1
0.09
0.08
0.07
0.06
|X[k]|

0.05
0.04
0.03
0.02
0.01
0
-300 -200 -100 0 100 200 300
Frecuencia (Hz)

17/11/99 Captulo 6: Transformada Discreta de Fourier (DFT) 52


5 Curso-Tratamiento Digital de Seal
FFT con MATLAB: fftej4.m x(t)=sin(2 200t+5sin(2 2 t))
N=256 D=0.5 s

Fase de los coeficientes espectrales X[k]


7000

6000
5000

4000
Fase X[k]

3000
2000

1000
0

-1000
-300 -200 -100 0 100 200 300
Frecuencia (Hz)

17/11/99 Captulo 6: Transformada Discreta de Fourier (DFT) 53


5 Curso-Tratamiento Digital de Seal
FFT con MATLAB: fftej4.m x(t)=sin(2 200t+5sin(2 2 t))
N=128 D=0.2 s
x(t)=sin(2pi200t+5sin(2 pi2 t)
1
0.8
0.6
0.4
0.2
x(t) 0
-0.2
-0.4
-0.6
-0.8
-1 0 0.05 0.1 0.15 0.2
Tiempo (t)
Mdulo de los coeficientes espectrales de x(t)
0.06

0.05

0.04
|X[k]|

0.03

0.02

0.01

0
-400 -300 -200 -100 0 100 200 300 400
Frecuencia (Hz)

17/11/99 Captulo 6: Transformada Discreta de Fourier (DFT) 54


5 Curso-Tratamiento Digital de Seal
FFT con MATLAB: fftej4.m x(t)=sin(2 200t+5sin(2 2 t))
N=128 D=0.2 s

Fase de los coeficientes espectrales X[k]


700

600

500

400
Fase X[k]

300

200

100

0
-400 -300 -200 -100 0 100 200 300 400
Frecuencia (Hz)

17/11/99 Captulo 6: Transformada Discreta de Fourier (DFT) 55


5 Curso-Tratamiento Digital de Seal
FFT con MATLAB: fftej5.m x(t)=sin(2 200t-5 exp(-2t))
N=256 D=0.5 s
x(t)=sin(2pi200t-5exp(-2t))
1
0.8
0.6
0.4
0.2
x(t) 0
-0.2
-0.4
-0.6
-0.8
-1
0 0.1 0.2 0.3 0.4 0.5
Tiempo (t)
Mdulo de los coeficientes espectrales de x(t)
0.18
0.16
0.14
0.12
|X[k]|

0.1
0.08
0.06
0.04
0.02
0
-300 -200 -100 0 100 200 300
Frecuencia (Hz)

17/11/99 Captulo 6: Transformada Discreta de Fourier (DFT) 56


5 Curso-Tratamiento Digital de Seal
FFT con MATLAB: fftej5.m x(t)=sin(2 200t-5 exp(-2t))
N=256 D=0.5 s
150 Fase de los coeficientes espectrales X[k]

100

50

Fase X[k]
0

-50

-100

-150
-300 -200 -100 0 100 200 300
Frecuencia (Hz)
Comparacin entre el espectro de seales moduladas
en amplitud (x) y moduladas en frecuencia (o)
80
70
60
50
40
30
20
10
0
160 170 180 190 200 210 220 230 240

17/11/99 Captulo 6: Transformada Discreta de Fourier (DFT) 57


5 Curso-Tratamiento Digital de Seal
FFT con MATLAB: fftej7.m x(t)=exp(-2t)sin(2 3t)
N=16 D=1 s
1 Puntos de muestreo (--) y Reconstruccin a partir de X[k] (o)
0.8
0.6
0.4
0.2

x(t)
0
-0.2
-0.4
-0.6
-0.8 0 0.2 0.4 0.6 0.8 1
Tiempo (s)

0.25 Mdulo de los coeficientes espectrales de x(t)

0.2

0.15
|X[k]|

0.1

0.05

0
-8 -6 -4 -2 0 2 4 6 8
Frecuencia (Hz)

17/11/99 Captulo 6: Transformada Discreta de Fourier (DFT) 58


5 Curso-Tratamiento Digital de Seal
FFT con MATLAB: fftej7.m x(t)=exp(-2t)sin(2 3t)
N=16 D=1 s
Fase de los coeficientes espectrales X[k]
200
150
100
50

Fase X[k]
0
-50
-100
-150
-200-8 -6 -4 -2 0 2 4 6 8
Frecuencia (Hz)

Comparacin entre x(t) y su reconstruccin a partir de X[k]


1
0.8
0.6
0.4
0.2
x(t)

0
-0.2
-0.4
-0.6
-0.8 0 0.5 1 1.5 2
Tiempo (t)

17/11/99 Captulo 6: Transformada Discreta de Fourier (DFT) 59


5 Curso-Tratamiento Digital de Seal
FFT con MATLAB: fftej7.m x(t)= (1+t2/2)sin(2 5t)+ 0.2chirp(20-60)
N=128 D=1 s
Mdulo de los coeficientes espectrales de x(t) |X[k]|
0.6

0.5

0.4

|X[k]|
0.3

0.2

0.1

0-80 -60 -40 -20 0 20 40 60 80


Frecuencia (Hz)

Fase de los coeficientes espectrales X[k]


2000
1500
1000
Fase X[k]

500
0
-500
-1000
-1500
-80 -60 -40 -20 0 20 40 60 80
Frecuencia (Hz)

17/11/99 Captulo 6: Transformada Discreta de Fourier (DFT) 60


5 Curso-Tratamiento Digital de Seal
FFT con MATLAB: fftej8.m x(t)= (1+t2/2)sin(2 5t)+ 0.2chirp(20-60)
N=128 D=1 s

Comparacin entre x(t) y su reconstruccin a partir de X[k]


2.5
2
1.5
1
0.5
x(t)

0
-0.5
-1
-1.5
-2
-2.5
0 0.5 1 1.5
Tiempo (t)

17/11/99 Captulo 6: Transformada Discreta de Fourier (DFT) 61


5 Curso-Tratamiento Digital de Seal
FFT con MATLAB: goodbye.m
N=4096 Fs=22050 Hz Nh=1000
goodbye.au
0.25
0.2
0.15
0.1
0.05
0
-0.05
-0.1
-0.15
-0.2
-0.25 0 0.05 0.1 0.15 0.2
Tiempo (s)
-4
9 x 10 Espectro de goodbye.au
8
7
|X[k]|

6
5
4
3
2
1
0
-1.5 -1 -0.5 0 0.5 1 1.5
4
Frecuencia (Hz) x 10

17/11/99 Captulo 6: Transformada Discreta de Fourier (DFT) 62


5 Curso-Tratamiento Digital de Seal
FFT con MATLAB: goodbye.m
N=4096 Fs=22050 Hz Nh=1000
-4
x 10 Espectro de goodbye.au filtrado
9
8
7
6

|X[k] 5
4
3
2
1
0
-1.5 -1 -0.5 0 0.5 1 1.5
4
x 10

17/11/99 Captulo 6: Transformada Discreta de Fourier (DFT) 63


5 Curso-Tratamiento Digital de Seal
FFT con MATLAB: good_wnd.m
Ni=1245 Nw=128 Nh=10 Fs=22050 Hz
Seal (--) y Recontruccin con 10 armnicos (--)
0.03
0.02
0.01

Amplitud y(t)
0
-0.01
-0.02
-0.03
-0.04
0.056 0.057 0.058 0.059 0.06 0.061 0.062 0.063
Tiempo (s)

Espectro de la seal (--) y filtrado (--)


0.9
0.8
0.7
0.6
0.5
|Y[k]|

0.4
0.3
0.2
0.1
0
-1.5 -1 -0.5 0 0.5 1 1.5
Frecuencia (Hz) 4
x 10

17/11/99 Captulo 6: Transformada Discreta de Fourier (DFT) 64

También podría gustarte