Transformada Discreta de Fourier (DFT) - Tecnun
Transformada Discreta de Fourier (DFT) - Tecnun
Transformada Discreta de Fourier (DFT) - Tecnun
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
17/11/99<br />
5º Curso-Tratamiento Digital <strong>de</strong> Señal<br />
<strong>Transformada</strong> <strong>Discreta</strong> <strong>de</strong> <strong>Fourier</strong><br />
(<strong>DFT</strong>)<br />
❒ <strong>Transformada</strong> <strong>Discreta</strong> <strong>de</strong> <strong>Fourier</strong><br />
❒ FFT (Fast <strong>Fourier</strong> Transform)<br />
Capítulo 6: <strong>Transformada</strong> <strong>Discreta</strong> <strong>de</strong> <strong>Fourier</strong> (<strong>DFT</strong>)<br />
1
17/11/99<br />
<strong>Transformada</strong> <strong>Discreta</strong> <strong>de</strong> <strong>Fourier</strong><br />
5º Curso-Tratamiento Digital <strong>de</strong> Señal<br />
❒ Antes <strong>de</strong> <strong>de</strong>finir la <strong>DFT</strong>, analizaremos primero la <strong>Transformada</strong><br />
<strong>de</strong> <strong>Fourier</strong> en tiempo discreto (DTFT).<br />
❒ La DTFT <strong>de</strong>scribe el espectro <strong>de</strong> señales discretas. Deduciremos<br />
la <strong>DFT</strong> a partir <strong>de</strong> la convolución discreta explicada en el<br />
Capítulo 2.<br />
❒ Allí se <strong>de</strong>finió la convolución discreta como<br />
◆ Si tenemos una señal <strong>de</strong> entrada armónica x[n]=exp(j2πnft s ), la<br />
respuesta y[n] es<br />
[] = [] ∗ [] = [] [ − ]<br />
yn xn hn x kh n k<br />
∞<br />
∑<br />
∞<br />
∑<br />
k=−∞<br />
s s<br />
[] = exp [ 2π(<br />
− ) ] ⋅ []<br />
yn j n k ft hk<br />
k=−∞<br />
∞<br />
∑<br />
[] [] ( )<br />
= exp( j2πnft ) exp( −j2πkft ) ⋅ h k = x n ⋅Hf<br />
s s<br />
k=−∞<br />
◆ H(f) es la DTFT <strong>de</strong> la señal discreta h[n]. Nótese que la función H(f)<br />
es periódica, <strong>de</strong>bido a que h[n] es una función discreta.<br />
s<br />
Capítulo 6: <strong>Transformada</strong> <strong>Discreta</strong> <strong>de</strong> <strong>Fourier</strong> (<strong>DFT</strong>)<br />
2
17/11/99<br />
<strong>Transformada</strong> <strong>Discreta</strong> <strong>de</strong> <strong>Fourier</strong><br />
❒ Se <strong>de</strong>fine la DTFT <strong>de</strong> una señal discreta x[n] como<br />
∞<br />
X( f) = ∑x[] k exp( −j2πkfts)<br />
k=−∞<br />
❒ Dualidad entre las series <strong>de</strong> <strong>Fourier</strong> y la DTFT<br />
5º Curso-Tratamiento Digital <strong>de</strong> Señal<br />
◆ Tenemos una señal periódica continua x p (t). Mediante las series <strong>de</strong><br />
<strong>Fourier</strong> transformamos esa señal periódica continua en una función<br />
aperiódica y discreta (los coeficientes espectrales X S [k]).<br />
X k<br />
1<br />
T<br />
[] = x () t exp( − j2πkf t) dt x () t = X [] k exp(<br />
j2πkf t)<br />
S p<br />
T<br />
∫ ∑ =−∞<br />
0 p S<br />
0<br />
k<br />
◆ De una manera dual, po<strong>de</strong>mos intercambiar tiempo y frecuencia <strong>de</strong><br />
forma 1<br />
x [] k = X ( f ) exp(<br />
j2πkft<br />
) df X ( f ) =<br />
∞<br />
x [] n exp(<br />
− j2πkft<br />
)<br />
S<br />
S<br />
F<br />
∫<br />
S<br />
F<br />
P<br />
s<br />
don<strong>de</strong> S F =1/t s . Ahora tenemos una señal aperiódica discreta x s [k] y la<br />
transformamos en una señal periódica continua (X p (f)) mediante la<br />
DTFT.<br />
P<br />
∞<br />
∑<br />
S<br />
k=<br />
−∞<br />
Capítulo 6: <strong>Transformada</strong> <strong>Discreta</strong> <strong>de</strong> <strong>Fourier</strong> (<strong>DFT</strong>)<br />
s<br />
3
17/11/99<br />
<strong>Transformada</strong> <strong>Discreta</strong> <strong>de</strong> <strong>Fourier</strong><br />
5º Curso-Tratamiento Digital <strong>de</strong> Señal<br />
◆ El comportamiento dual entre las series <strong>de</strong> <strong>Fourier</strong> y la DTFT se<br />
manifiesta en lo siguiente :<br />
✦ En las series <strong>de</strong> <strong>Fourier</strong> parto <strong>de</strong> una señal x(t), temporal, continua y periódica<br />
(periodo T) y obtengo los coeficientes X[k], que es una función <strong>de</strong> la<br />
frecuencia, aperiódica y discreta con una distancia entre dos valores<br />
consecutivos <strong>de</strong> f 0 =1/T.<br />
✦ En la DTFT parto <strong>de</strong> una señal discreta en el tiempo x[n], con periodo <strong>de</strong><br />
muestreo t s =1/f s y aperiódica y obtengo una función X(f), que es función<br />
continua <strong>de</strong> la frecuencia y periódica con periodo f s .<br />
◆ Todas las propieda<strong>de</strong>s que se vieron para las series <strong>de</strong> <strong>Fourier</strong> tienen su<br />
correspondientes equivalencias en la DTFT.<br />
◆ Ejemplo : DTFT <strong>de</strong> la secuencia x[n]=δ[n] :<br />
∞<br />
X( f ) = ∑δ[] k exp(<br />
− j2πkfts ) = 1<br />
k=−∞<br />
Si tenemos una secuencia x[n]={1,0,3,-2}, a partir <strong>de</strong> la anterior ecuación<br />
y aplicando la propiedad <strong>de</strong>l <strong>de</strong>splazamiento,<br />
( π ) ( π<br />
)<br />
X( f) = 1+ 3exp −j4 ft −2exp −j6<br />
ft<br />
s s<br />
Capítulo 6: <strong>Transformada</strong> <strong>Discreta</strong> <strong>de</strong> <strong>Fourier</strong> (<strong>DFT</strong>)<br />
4
17/11/99<br />
<strong>Transformada</strong> <strong>Discreta</strong> <strong>de</strong> <strong>Fourier</strong><br />
5º Curso-Tratamiento Digital <strong>de</strong> Señal<br />
❒ Sin embargo, a la hora <strong>de</strong> realizar operaciones tenemos los<br />
mismos problemas que en las series <strong>de</strong> <strong>Fourier</strong> ya que<br />
seguimos tratanto con señales continuas o con series <strong>de</strong> datos<br />
<strong>de</strong> longitud infinita. La electrónica nos obliga a trabajar con<br />
un número finito <strong>de</strong> datos discretos que a<strong>de</strong>más tienen una<br />
precisión finita.<br />
❒ De lo que se trata es <strong>de</strong> conseguir discretizar las variables<br />
continuas y <strong>de</strong> limitar el números <strong>de</strong> muestras en los dos<br />
dominios (temporal y frecuencial).<br />
❒ Esto nos lleva a <strong>de</strong>finir las series discretas <strong>de</strong> <strong>Fourier</strong> y la<br />
<strong>Transformada</strong> <strong>Discreta</strong> <strong>de</strong> <strong>Fourier</strong> (<strong>DFT</strong>).<br />
Capítulo 6: <strong>Transformada</strong> <strong>Discreta</strong> <strong>de</strong> <strong>Fourier</strong> (<strong>DFT</strong>)<br />
5
17/11/99<br />
<strong>Transformada</strong> <strong>Discreta</strong> <strong>de</strong> <strong>Fourier</strong><br />
5º Curso-Tratamiento Digital <strong>de</strong> Señal<br />
❒ De las Series <strong>de</strong> <strong>Fourier</strong> a las Series <strong>Discreta</strong>s <strong>de</strong> <strong>Fourier</strong><br />
◆ Para las Series <strong>de</strong> <strong>Fourier</strong> se cumple (f 0 =1/T)<br />
◆ Para limitar x p (t), tomamos N muestras <strong>de</strong> x p (t) durante un periodo a<br />
intervalos t s , <strong>de</strong> forma que N·t s =T. Al calcular los coeficientes X[k] me<br />
queda,<br />
∞<br />
= ∑ ∫T<br />
k=<br />
−∞<br />
P<br />
S<br />
S<br />
P x 0<br />
0<br />
T<br />
() t X [] k exp( j2πkf<br />
t)<br />
X [] k = x () t ⋅exp(<br />
− j2πkf<br />
t)<br />
X<br />
1<br />
Nt<br />
[] k = x [] n ⋅exp(<br />
− j2πkf<br />
nt )<br />
=<br />
1<br />
N<br />
s<br />
N −1<br />
n=<br />
0<br />
N −1<br />
∑<br />
∑<br />
n=<br />
0<br />
x<br />
P<br />
P<br />
◆ La cantidad X[k] es la serie <strong>de</strong> <strong>Fourier</strong> <strong>Discreta</strong> <strong>de</strong> la señal periódica<br />
muestreada x P [n].<br />
0<br />
1<br />
s<br />
⋅t<br />
⋅dt<br />
[] n ⋅exp(<br />
− j2πkn<br />
/ N ) k = 0,<br />
1,<br />
2 , N −1<br />
s<br />
Capítulo 6: <strong>Transformada</strong> <strong>Discreta</strong> <strong>de</strong> <strong>Fourier</strong> (<strong>DFT</strong>)<br />
6
17/11/99<br />
<strong>Transformada</strong> <strong>Discreta</strong> <strong>de</strong> <strong>Fourier</strong><br />
❒ De la DTFT a la <strong>DFT</strong><br />
5º Curso-Tratamiento Digital <strong>de</strong> Señal<br />
◆ Tenemos una señal x[n] limitado a N muestras con un periodo <strong>de</strong><br />
◆<br />
muestreo ts .<br />
La DTFT se <strong>de</strong>fine como<br />
N−1<br />
X P( f ) = ∑x[ n] ⋅exp( − j2πnfts) ◆ X P (f) es periódica con periodo 1/t s . Muestreamos esta señal N veces<br />
sobre un periodo, por tanto X T [k] será sustituir f por k/(Nt s ) :<br />
◆ Esta última expresión resultante es la <strong>Transformada</strong> <strong>Discreta</strong> <strong>de</strong><br />
<strong>Fourier</strong> <strong>de</strong> una señal x[n]. Excepto por el término 1/N es idéntica a la<br />
Serie <strong>Discreta</strong> <strong>de</strong> <strong>Fourier</strong>.<br />
n=<br />
0<br />
[ ]<br />
N−1<br />
[ ] = ∑ [ ] ⋅exp − 2π<br />
/ ( )<br />
X k x n j nkt Nt<br />
T s s<br />
n=<br />
0<br />
N−1<br />
∑<br />
[ ] [ π<br />
]<br />
= xn⋅exp − j2 nk/ N k= 012 , , , , N−1<br />
n=<br />
0<br />
Capítulo 6: <strong>Transformada</strong> <strong>Discreta</strong> <strong>de</strong> <strong>Fourier</strong> (<strong>DFT</strong>)<br />
7
17/11/99<br />
<strong>Transformada</strong> <strong>Discreta</strong> <strong>de</strong> <strong>Fourier</strong><br />
❒ <strong>Transformada</strong> <strong>Discreta</strong> inversa (I<strong>DFT</strong>),<br />
[] [] ( π )<br />
xn<br />
N−1<br />
1<br />
= ∑XT<br />
k exp j2 nk / N n = 012 , , , , N −1<br />
N<br />
k=<br />
0<br />
❒ Convolución Circular o Cíclica<br />
5º Curso-Tratamiento Digital <strong>de</strong> Señal<br />
◆ La convolución normal entre dos señales periódicas es cero o infinito. Para<br />
este tipo <strong>de</strong> señales se <strong>de</strong>fine la convolución circular <strong>de</strong> dos secuencias x p [n] y<br />
h p [n] con periodo N :<br />
[] = [] • [] = x [] k h [ n−k] y n x n h n<br />
1<br />
N<br />
p p p p p<br />
k=<br />
0<br />
◆ La convolución circular requiere que las dos secuencias sean <strong>de</strong>l mismo<br />
tamaño. Si no fuera así habría que llenar <strong>de</strong> ceros la secuencia más corta.<br />
N−1<br />
∑<br />
Capítulo 6: <strong>Transformada</strong> <strong>Discreta</strong> <strong>de</strong> <strong>Fourier</strong> (<strong>DFT</strong>)<br />
8
17/11/99<br />
<strong>Transformada</strong> <strong>Discreta</strong> <strong>de</strong> <strong>Fourier</strong><br />
❒ Propieda<strong>de</strong>s <strong>de</strong> la <strong>DFT</strong><br />
Simetria Conjugada<br />
Linealidad<br />
Desplazamiento<br />
Modulacion<br />
Producto<br />
Simetria<br />
Conjugado<br />
Convolucion Circular<br />
Correlacion<br />
Ecuacion <strong>de</strong> Parseval<br />
[ − ] =<br />
∗<br />
[ ] = [ − ]<br />
[] + [] ↔ [] + []<br />
XT k XT k XT N k<br />
αxn βynαXkβYk [ ] [] exp ( 2π<br />
/ ) []<br />
[] [ ]<br />
[][] ↔ X [] k •Y<br />
[] k<br />
∗<br />
[ − ] ↔ [ − ] = [ ]<br />
∗<br />
[] ↔<br />
∗<br />
T[<br />
− ]<br />
[] • [] ↔ [] []<br />
∗<br />
[] • [ − ] ↔ []<br />
5º Curso-Tratamiento Digital <strong>de</strong> Señal<br />
xn−m↔ X k ⋅ − j km N = X k ⋅W<br />
−nm<br />
W ⋅x n ↔ X k −m<br />
N<br />
xnyn<br />
1<br />
T<br />
N<br />
T<br />
x n X k X k<br />
x n X k<br />
xn yn X kY k<br />
T T<br />
T T<br />
km<br />
N<br />
T<br />
T T<br />
T T<br />
[]<br />
xn y n XT ∗<br />
kYT<br />
k<br />
2<br />
∑ xn []<br />
1<br />
2<br />
= ∑ XT[] k<br />
N<br />
Capítulo 6: <strong>Transformada</strong> <strong>Discreta</strong> <strong>de</strong> <strong>Fourier</strong> (<strong>DFT</strong>)<br />
9
❒ Ejemplos<br />
17/11/99<br />
<strong>Transformada</strong> <strong>Discreta</strong> <strong>de</strong> <strong>Fourier</strong><br />
◆ x[n]={1,2,1,0}<br />
[] []<br />
k = 0 X 0 = x n = 1+ 2+ 1+ 0= 4<br />
T<br />
5º Curso-Tratamiento Digital <strong>de</strong> Señal<br />
[] [ ] exp ( π / ) exp ( π / ) exp(<br />
π)<br />
[] [] exp ( π / ) exp( π) exp(<br />
π)<br />
k = 1 X 1 = x n − j2 4 = 1+ 2 − j 2 + − j = −j2<br />
T<br />
k = 2 X 2 = x n − j2 2 4 = 1+ 2 − j + − j2<br />
= 0<br />
T<br />
[] [] exp ( π / ) exp ( π / ) exp(<br />
π)<br />
k = 3 X 3 = x n − j2 3 4 = 1+ 2 − j3 2 + − j3 = j2<br />
T<br />
∑<br />
∑<br />
∑<br />
∑<br />
por tanto la <strong>DFT</strong> <strong>de</strong> x[n] es X T [k]={4,-j2,0,j2} para k=0,1,2,3<br />
Capítulo 6: <strong>Transformada</strong> <strong>Discreta</strong> <strong>de</strong> <strong>Fourier</strong> (<strong>DFT</strong>)<br />
10
17/11/99<br />
<strong>Transformada</strong> <strong>Discreta</strong> <strong>de</strong> <strong>Fourier</strong><br />
5º Curso-Tratamiento Digital <strong>de</strong> Señal<br />
❒ Po<strong>de</strong>mos interpretar los resultados <strong>de</strong>l <strong>DFT</strong> <strong>de</strong> una secuencia<br />
x s [n] <strong>de</strong>s<strong>de</strong> dos puntos <strong>de</strong> vista:<br />
◆ Como los coeficientes espectrales (series <strong>de</strong> <strong>Fourier</strong>) <strong>de</strong> una señal<br />
periódica discreta cuyos muestreos coinci<strong>de</strong>n con la secuencia x s [n].<br />
◆ Como el espectro <strong>de</strong> una señal aperiódica discreta cuyos muestreos<br />
correspon<strong>de</strong>n a la secuencia x s [n].<br />
❒ EL <strong>DFT</strong> es una aproximación al espectro <strong>de</strong> la señal analógica<br />
original. Su magnitud se ve influenciada por el intervalo <strong>de</strong><br />
muestreo, mientras que su fase <strong>de</strong>pen<strong>de</strong> <strong>de</strong> los instantes <strong>de</strong><br />
muestreo.<br />
Capítulo 6: <strong>Transformada</strong> <strong>Discreta</strong> <strong>de</strong> <strong>Fourier</strong> (<strong>DFT</strong>)<br />
11
17/11/99<br />
<strong>Transformada</strong> <strong>Discreta</strong> <strong>de</strong> <strong>Fourier</strong><br />
5º Curso-Tratamiento Digital <strong>de</strong> Señal<br />
❒ Como hacer la <strong>DFT</strong> a partir <strong>de</strong> una señal x(t), muestreada<br />
durante D segundos, con periodo <strong>de</strong> muestreo t s :<br />
◆ Elegir el intervalo <strong>de</strong> muestreo ts <strong>de</strong> forma que se cumpla el Teorema<br />
<strong>de</strong>l muestreo.<br />
◆ Crear la expensión periodica (xp (t)) <strong>de</strong> x(t) con periodo D.<br />
◆ Tomar N muestras <strong>de</strong> x p (t) empezando en t=0.<br />
◆ Si hay discontinuida<strong>de</strong>s, los valores <strong>de</strong> muestreo los tomaremos en el<br />
punto medio <strong>de</strong> la señal.<br />
x(t)<br />
x p (t)<br />
-3 -2 -1 0 1 2 3<br />
T<br />
-3 -2 -1 0 1 2 3<br />
Capítulo 6: <strong>Transformada</strong> <strong>Discreta</strong> <strong>de</strong> <strong>Fourier</strong> (<strong>DFT</strong>)<br />
T<br />
12
17/11/99<br />
<strong>Transformada</strong> <strong>Discreta</strong> <strong>de</strong> <strong>Fourier</strong><br />
❒ <strong>DFT</strong> <strong>de</strong> señales periódicas<br />
5º Curso-Tratamiento Digital <strong>de</strong> Señal<br />
◆ Siendo x(t)=sin(2πft), con f=1KHz, D=1ms y N=8 tenemos la siguiente<br />
secuencia <strong>de</strong> muestreos :<br />
x[n]={0,0.7071,1,0.7071,0,-0.7071,-1,-0.7071}<br />
Amplitud<br />
1<br />
0.5<br />
0<br />
-0.5<br />
Sinusoi<strong>de</strong> 1KHz, D=1ms, N=8<br />
0 0.2 0.4 0.6 0.8 1<br />
x 10 -3<br />
-1<br />
Tiempo (s)<br />
El resultado <strong>de</strong> hacer el <strong>DFT</strong> es XT [k]={0,-4j,0,0,0,0,0,4j}.<br />
XS [k]=1/8{0,-4j,0,0,0,0,0,4j}={0,-j/2,0,0,0,0,0,j/2}<br />
Capítulo 6: <strong>Transformada</strong> <strong>Discreta</strong> <strong>de</strong> <strong>Fourier</strong> (<strong>DFT</strong>)<br />
13
Magnitud <strong>DFT</strong><br />
17/11/99<br />
5<br />
4<br />
3<br />
2<br />
1<br />
<strong>Transformada</strong> <strong>Discreta</strong> <strong>de</strong> <strong>Fourier</strong><br />
<strong>DFT</strong><br />
0<br />
0 2 4<br />
Indice k<br />
6 8<br />
Magnitud <strong>DFT</strong><br />
5<br />
4<br />
3<br />
2<br />
1<br />
5º Curso-Tratamiento Digital <strong>de</strong> Señal<br />
<strong>DFT</strong><br />
0<br />
-4000 -2000 0 2000<br />
Frecuencia (Hz)<br />
◆ x(t)=sin(2πft), con f=1KHz, D=0.5ms y N=8, tenemos la secuencia <strong>de</strong><br />
muestreos: x[n]={0,0.3827,0.7071,0.9239,1,0.9239,0.7071, 0.3827}.<br />
Los coeficientes <strong>de</strong>l <strong>DFT</strong> son<br />
{5.0273,-1.7654,0.4142,-0.2346,-0.1989,-0.2346,-0.4142,-1.7654}<br />
Y los coeficientes <strong>de</strong>l DFS son<br />
X[k]=1/8{5.0273,-1.7654,0.4142,-0.2346,-0.1989,-0.2346,-0.4142,-1.7654}<br />
Capítulo 6: <strong>Transformada</strong> <strong>Discreta</strong> <strong>de</strong> <strong>Fourier</strong> (<strong>DFT</strong>)<br />
14
Amplitud<br />
1<br />
0.8<br />
0.6<br />
0.4<br />
0.2<br />
0<br />
-0.2<br />
-0.4<br />
-0.6<br />
-0.8<br />
17/11/99<br />
<strong>Transformada</strong> <strong>Discreta</strong> <strong>de</strong> <strong>Fourier</strong><br />
Sinusoi<strong>de</strong> 1KHz, D=1ms, N=8<br />
0 1 2 3 4 5<br />
x 10 -4<br />
-1<br />
Tiempo (s)<br />
5º Curso-Tratamiento Digital <strong>de</strong> Señal<br />
◆ En este nuevo ejemplo, la frecuencia <strong>de</strong> muestreo es 16KHz. Los X[k]<br />
son reales, por lo que la función tiene simetría par. Para la onda dada,<br />
los coeficientes exactos <strong>de</strong> <strong>Fourier</strong> son :<br />
✦ XS [0]=1/π XS [k]=2/π(1-4k2 )<br />
✦ Comparando XS [0]≈X[0]<br />
Magnitud <strong>DFT</strong><br />
8<br />
7<br />
6<br />
5<br />
4<br />
3<br />
2<br />
1<br />
0<br />
0 1 2 3 4<br />
Indice k<br />
5 6 7 8<br />
X S [1]≈X[1] <strong>de</strong>ntro <strong>de</strong>l 5% <strong>de</strong> precisión<br />
<strong>DFT</strong><br />
✦ Para los términos con k=2,3..., X[k] se <strong>de</strong>svía bastante <strong>de</strong>l término exacto<br />
<strong>de</strong>bido a que la señal no tiene un espectro limitado, produciéndose aliasing.<br />
0.7<br />
0.6<br />
0.5<br />
0.4<br />
0.3<br />
0.2<br />
0.1<br />
0<br />
-8000 -6000 -4000 -2000 0 2000 4000 6000<br />
Capítulo 6: <strong>Transformada</strong> <strong>Discreta</strong> <strong>de</strong> <strong>Fourier</strong> (<strong>DFT</strong>)<br />
15
17/11/99<br />
<strong>Transformada</strong> <strong>Discreta</strong> <strong>de</strong> <strong>Fourier</strong><br />
◆ x(t)=sin(2πft), con f=1KHz, D=1.5ms y N=24.<br />
Amplitud<br />
1<br />
0.8<br />
0.6<br />
0.4<br />
0.2<br />
0<br />
-0.2<br />
-0.4<br />
-0.6<br />
-0.8<br />
-1<br />
Sinusoi<strong>de</strong> 1KHz, D=1ms, N=8<br />
0 0.5 1 1.5<br />
x 10 -3<br />
Tiempo (s)<br />
Magnitud <strong>DFT</strong><br />
20<br />
15<br />
10<br />
5<br />
0<br />
<strong>DFT</strong><br />
Magnitud <strong>DFT</strong><br />
-5000 0<br />
Frecuencia (Hz)<br />
5000<br />
20<br />
15<br />
10<br />
5<br />
5º Curso-Tratamiento Digital <strong>de</strong> Señal<br />
0<br />
0 5 10 15 20<br />
Indice k<br />
Capítulo 6: <strong>Transformada</strong> <strong>Discreta</strong> <strong>de</strong> <strong>Fourier</strong> (<strong>DFT</strong>)<br />
<strong>DFT</strong><br />
16
17/11/99<br />
<strong>Transformada</strong> <strong>Discreta</strong> <strong>de</strong> <strong>Fourier</strong><br />
5º Curso-Tratamiento Digital <strong>de</strong> Señal<br />
✦ En este ejemplo se ha producido el <strong>de</strong>nominado “leakage”, que consiste<br />
en que las componentes originales <strong>de</strong> la señal se <strong>de</strong>rraman hacia las<br />
nuevas componentes <strong>de</strong> la señal. Para evitarlo, se <strong>de</strong>be muestrear un<br />
número entero <strong>de</strong> periodos, o bien utilizar alguna <strong>de</strong> las ventanas<br />
espectrales (ventana <strong>de</strong> Hamming, etc).<br />
◆ Podría ocurrir que no conocieramos el periodo <strong>de</strong> la señal <strong>de</strong> la cual<br />
queremos calcular el <strong>DFT</strong>. En ese caso se muestrea una señal <strong>de</strong><br />
duración lo más larga posible. De esta forma, se reduce el “leakage” y<br />
el espacio entre frecuencias obteniéndose una buena estimación <strong>de</strong>l<br />
espectro original.<br />
Amplitud<br />
1<br />
0.5<br />
0<br />
-0.5<br />
Sinusoi<strong>de</strong> 1KHz<br />
-1<br />
0 0.001 0.002 0.003 0.004 0.005 0.006 0.007 0.008 0.009 0.01<br />
Tiempo (s)<br />
Capítulo 6: <strong>Transformada</strong> <strong>Discreta</strong> <strong>de</strong> <strong>Fourier</strong> (<strong>DFT</strong>)<br />
17
17/11/99<br />
Magnitud <strong>DFT</strong><br />
<strong>Transformada</strong> <strong>Discreta</strong> <strong>de</strong> <strong>Fourier</strong><br />
80<br />
60<br />
40<br />
20<br />
0<br />
-4000 -3000 -2000 -1000 0 1000 2000 3000<br />
Frecuencia (Hz)<br />
❒ <strong>DFT</strong> <strong>de</strong> señales aperiódicas<br />
<strong>DFT</strong><br />
5º Curso-Tratamiento Digital <strong>de</strong> Señal<br />
◆ La señal aperiódica x(t) <strong>de</strong>be ser muestreada durante un tiempo D. El<br />
<strong>DFT</strong> produce los coeficientes espectrales correspondientes a la<br />
extensión periódica <strong>de</strong> x(t) con periodo D. El espacio entre frecuencias<br />
es f 0 =1/D. A f 0 se le <strong>de</strong>nomina resolución frecuencial. Esta <strong>de</strong>pen<strong>de</strong><br />
sólo <strong>de</strong> la duración. Si la señal está limitada en el tiempo, la forma <strong>de</strong><br />
aumentar la duración es añadir ceros.<br />
Capítulo 6: <strong>Transformada</strong> <strong>Discreta</strong> <strong>de</strong> <strong>Fourier</strong> (<strong>DFT</strong>)<br />
18
Magnitud<br />
Magnitud<br />
1.5<br />
0.5<br />
17/11/99<br />
1<br />
<strong>Transformada</strong> <strong>Discreta</strong> <strong>de</strong> <strong>Fourier</strong><br />
Señal x(t)=exp(-t)<br />
0<br />
0 0.5 1<br />
Tiempo (s)<br />
1.5 2<br />
1.5<br />
1<br />
0.5<br />
Señal x(t)=exp(-t)<br />
0<br />
0 0.5 1 1.5 2<br />
Tiempo (s)<br />
2.5 3 3.5 4<br />
Magnitud<br />
Magnitud<br />
5<br />
4.5<br />
4<br />
3.5<br />
3<br />
2.5<br />
2<br />
1.5<br />
1<br />
0.5<br />
5º Curso-Tratamiento Digital <strong>de</strong> Señal<br />
Señal x(t)=exp(-t)<br />
0<br />
-4 -3 -2 -1 0 1 2 3 4<br />
Frecuencia (Hz)<br />
2.5<br />
2<br />
1.5<br />
1<br />
0.5<br />
Señal x(t)=exp(-t)<br />
0<br />
-2 -1.5 -1 -0.5 0 0.5 1 1.5 2<br />
Frecuencia (Hz)<br />
Capítulo 6: <strong>Transformada</strong> <strong>Discreta</strong> <strong>de</strong> <strong>Fourier</strong> (<strong>DFT</strong>)<br />
19
17/11/99<br />
<strong>Transformada</strong> <strong>Discreta</strong> <strong>de</strong> <strong>Fourier</strong><br />
5º Curso-Tratamiento Digital <strong>de</strong> Señal<br />
❒ Tal y como se observa en las figuras <strong>de</strong> la páginas anteriores<br />
hay varias formas <strong>de</strong> dibujar la gráfica <strong>de</strong> la <strong>DFT</strong> <strong>de</strong> una<br />
secuencia <strong>de</strong> datos.<br />
❒ Una <strong>de</strong> ellas es indicarlo directamente mediante el índice k. Se<br />
pue<strong>de</strong> observar que |X T [k]| es simétrico respecto a N/2.<br />
❒ Otra forma es reor<strong>de</strong>nando los datos en función <strong>de</strong> la frecuencia.<br />
De la <strong>de</strong>finición <strong>de</strong> <strong>DFT</strong> sabemos que cada intervalo <strong>de</strong> la<br />
<strong>DFT</strong> es 1/(Nt s ). La <strong>DFT</strong> nos da la <strong>Transformada</strong> <strong>de</strong> <strong>Fourier</strong><br />
para las frecuencias<br />
f -(N/2)/(Nt s ),...,-1/(Nt s ),0, 1/(Nt s ), 2/(Nt s )...(N/2-1)/(Nt s )<br />
k (N/2) ,..., N-1 ,0, 1 , 2 ... (N/2-1)<br />
❒ La máxima frecuencia <strong>de</strong>tectable por la <strong>DFT</strong> es lógicamente<br />
f s /2, <strong>de</strong> acuerdo con el Teorema <strong>de</strong>l Muestreo.<br />
Capítulo 6: <strong>Transformada</strong> <strong>Discreta</strong> <strong>de</strong> <strong>Fourier</strong> (<strong>DFT</strong>)<br />
20
17/11/99<br />
<strong>Transformada</strong> <strong>Discreta</strong> <strong>de</strong> <strong>Fourier</strong><br />
5º Curso-Tratamiento Digital <strong>de</strong> Señal<br />
❒ En general, el <strong>DFT</strong> es una aproximación a las series o a la<br />
transformada <strong>de</strong> <strong>Fourier</strong>. Es muy importante elegir<br />
correctamente los parámetros <strong>de</strong>l <strong>DFT</strong> (frecuencia <strong>de</strong><br />
muestreo f s =1/t s , resolución <strong>de</strong> frecuencia f 0 =1/D).<br />
❒ La frecuencia <strong>de</strong> muestreo se <strong>de</strong>termina a partir <strong>de</strong>l teorema<br />
<strong>de</strong> muestreo. Si queremos <strong>de</strong>tectar el espectro <strong>de</strong> una señal<br />
hasta una máxima frecuencia B , la frecuencia <strong>de</strong> muestreo<br />
<strong>de</strong>berá ser 2B.<br />
❒ La duración <strong>de</strong>l muestreo se elige para una <strong>de</strong>terminada<br />
resolución <strong>de</strong> frecuencia.<br />
❒ Una regla <strong>de</strong> diseño muy útil es: Si queremos los M primeros<br />
armónicos <strong>de</strong> una señal con un error máximo <strong>de</strong>l 5%, el<br />
número <strong>de</strong> muestreos N=8M.<br />
Capítulo 6: <strong>Transformada</strong> <strong>Discreta</strong> <strong>de</strong> <strong>Fourier</strong> (<strong>DFT</strong>)<br />
21
17/11/99<br />
<strong>Transformada</strong> <strong>Discreta</strong> <strong>de</strong> <strong>Fourier</strong><br />
5º Curso-Tratamiento Digital <strong>de</strong> Señal<br />
❒ Ejemplo: Queremos <strong>de</strong>terminar mediante un algoritmo digital<br />
el espectro <strong>de</strong> la señal x(t)=exp(-t). La máxima frecuencia <strong>de</strong><br />
la que pi<strong>de</strong> su coeficiente es f B =1Hz. A<strong>de</strong>más el armónico<br />
correspondiente a f=0.3Hz <strong>de</strong>be tener un error menor que el<br />
5%. Calcular f s ,D y N.<br />
◆ De acuerdo con el Teorema <strong>de</strong>l Muestreo f s =2f B =2Hz.<br />
◆ Escogemos una resolución frecuencial <strong>de</strong> f 0 =0.1Hz, <strong>de</strong> forma que<br />
D=1/0.1=10s.<br />
◆ La frecuencia 0.3Hz se correspon<strong>de</strong> con el índice k=3, por lo que<br />
N=3·8=24 muestreos. Esto me indica que fs =N/D=24/10=2.4 > 2.<br />
◆ Si el objetivo es hacer que N sea lo menor posible (para facilitar los<br />
cálculos <strong>de</strong>l <strong>DFT</strong>), se pue<strong>de</strong> elegir f0 =0.3Hz, D=1/0.3=3.33s, k=1 y<br />
N=1·8=8.<br />
Capítulo 6: <strong>Transformada</strong> <strong>Discreta</strong> <strong>de</strong> <strong>Fourier</strong> (<strong>DFT</strong>)<br />
22
Magnitud<br />
Magnitud<br />
1.5<br />
1<br />
0.5<br />
17/11/99<br />
<strong>Transformada</strong> <strong>Discreta</strong> <strong>de</strong> <strong>Fourier</strong><br />
Señal x(t)=exp(-t)<br />
0<br />
0 2 4 6<br />
Tiempo (s)<br />
8 10<br />
1.5<br />
1<br />
0.5<br />
Señal x(t)=exp(-t)<br />
0<br />
0 0.5 1 1.5<br />
Tiempo (s)<br />
2 2.5 3<br />
Magnitud<br />
Magnitud<br />
1.2<br />
1<br />
0.8<br />
0.6<br />
0.4<br />
0.2<br />
5º Curso-Tratamiento Digital <strong>de</strong> Señal<br />
Señal x(t)=exp(-t)<br />
0<br />
-1.5 -1 -0.5 0<br />
Frecuencia (Hz)<br />
0.5 1 1.5<br />
1<br />
0.9<br />
0.8<br />
0.7<br />
0.6<br />
0.5<br />
0.4<br />
0.3<br />
0.2<br />
0.1<br />
Señal x(t)=exp(-t)<br />
0<br />
-1.5 -1 -0.5<br />
Frecuencia (Hz)<br />
0 0.5 1<br />
Capítulo 6: <strong>Transformada</strong> <strong>Discreta</strong> <strong>de</strong> <strong>Fourier</strong> (<strong>DFT</strong>)<br />
23
17/11/99<br />
<strong>Transformada</strong> <strong>Discreta</strong> <strong>de</strong> <strong>Fourier</strong><br />
5º Curso-Tratamiento Digital <strong>de</strong> Señal<br />
❒ Ventanas espectrales: Si tenemos señales truncadas, el<br />
espectro <strong>de</strong> la señal muestra unos picos que no <strong>de</strong>caen lo<br />
suficientemente rápido con la frecuencia. Para ello po<strong>de</strong>mos<br />
utilizar ventanas en el dominio temporal para suavizar esas<br />
discontinuida<strong>de</strong>s. Los picos serán menores aunque el ancho <strong>de</strong><br />
banda <strong>de</strong> cada lóbulo aumentará.<br />
Capítulo 6: <strong>Transformada</strong> <strong>Discreta</strong> <strong>de</strong> <strong>Fourier</strong> (<strong>DFT</strong>)<br />
24
5º Curso-Tratamiento Digital <strong>de</strong> Señal<br />
Resumen <strong>de</strong> Series y <strong>Transformada</strong>s <strong>de</strong> <strong>Fourier</strong><br />
❒ Series <strong>de</strong> <strong>Fourier</strong><br />
17/11/99<br />
◆ Señal Continua Periódica (periodo T), Espectro Discreto Aperiódico<br />
(intervalo <strong>de</strong> discretización 1/T)<br />
❒ <strong>Transformada</strong> <strong>de</strong> <strong>Fourier</strong><br />
◆ Señal Continua Aperiódica, Espectro Continuo Aperiódico.<br />
❒ <strong>Transformada</strong> <strong>de</strong> <strong>Fourier</strong> <strong>Discreta</strong> en el Tiempo<br />
◆ Señal <strong>Discreta</strong> Aperiódica (intervalo <strong>de</strong> discretización t s ), Espectro<br />
Continuo Periódico (periodo 1/ t s )<br />
❒ <strong>Transformada</strong> <strong>Discreta</strong> <strong>de</strong> <strong>Fourier</strong><br />
◆ Señal <strong>Discreta</strong> Periódica (intervalo <strong>de</strong> discretización t s , periodo T),<br />
Espectro Discreto (intervalo <strong>de</strong> discretización 1/T)<br />
Capítulo 6: <strong>Transformada</strong> <strong>Discreta</strong> <strong>de</strong> <strong>Fourier</strong> (<strong>DFT</strong>)<br />
25
17/11/99<br />
FFT (Fast <strong>Fourier</strong> Transform)<br />
5º Curso-Tratamiento Digital <strong>de</strong> Señal<br />
❒ La importancia <strong>de</strong> <strong>DFT</strong> estriba en que es posible utilizar un<br />
algoritmo, llamado FFT, que lo realiza <strong>de</strong> forma eficiente y<br />
rápida.<br />
❒ El <strong>DFT</strong> <strong>de</strong> una secuencia x[n] es :<br />
N −1<br />
∑<br />
n=<br />
0<br />
[]<br />
nk<br />
Xk [ ] = xnW k= 01 , , , N−1<br />
don<strong>de</strong><br />
N<br />
W = e<br />
N<br />
−j2π/<br />
N<br />
Una primera aproximación al cálculo <strong>de</strong>l <strong>DFT</strong> requeriría la suma<br />
compleja <strong>de</strong> N multiplicaciones complejas para cada uno <strong>de</strong> las<br />
salidas. En total, N 2 multiplicaciones complejas y N 2 sumas complejas<br />
para realizar un <strong>DFT</strong> <strong>de</strong> N puntos.<br />
Lo que consigue el algoritmo FFT es simplicar enormemente el<br />
cálculo <strong>de</strong>l <strong>DFT</strong> introduciendo “atajos” matemáticos para reducir<br />
drasticamente el número <strong>de</strong> operaciones.<br />
Capítulo 6: <strong>Transformada</strong> <strong>Discreta</strong> <strong>de</strong> <strong>Fourier</strong> (<strong>DFT</strong>)<br />
26
17/11/99<br />
FFT (Fast <strong>Fourier</strong> Transform)<br />
5º Curso-Tratamiento Digital <strong>de</strong> Señal<br />
❒ La optimización <strong>de</strong>l proceso <strong>de</strong> cálculo <strong>de</strong>l <strong>DFT</strong> está basado<br />
en las siguientes i<strong>de</strong>as :<br />
◆ Simetría y Periodicidad <strong>de</strong> los términos W N .<br />
n+ N<br />
W = W<br />
N<br />
n+ N/2<br />
W =−W<br />
N<br />
◆ Elegimos el valor <strong>de</strong> N <strong>de</strong> forma que N=r m . Al factor r se le <strong>de</strong>nomina<br />
radix y su valor más habitual es 2, <strong>de</strong> forma que N=2 m y algoritmo se<br />
<strong>de</strong>nomina FFT radix-2.<br />
❒ Radix-2 FFT-Decimación en el Tiempo.<br />
n<br />
N<br />
n<br />
N<br />
◆ Dividimos la secuencia <strong>de</strong> datos <strong>de</strong> entrada x[n] en dos grupos, uno <strong>de</strong><br />
índices par y el otro <strong>de</strong> índices impar. Con estas sub-secuencias se<br />
realiza el <strong>DFT</strong> <strong>de</strong> N/2 puntos y sus resultados se combinan para formar<br />
el <strong>DFT</strong> <strong>de</strong> N puntos.<br />
W<br />
Nk<br />
N<br />
= 1<br />
2<br />
W = W<br />
N N/<br />
2<br />
Capítulo 6: <strong>Transformada</strong> <strong>Discreta</strong> <strong>de</strong> <strong>Fourier</strong> (<strong>DFT</strong>)<br />
27
17/11/99<br />
FFT (Fast <strong>Fourier</strong> Transform)<br />
N / 2−1 ∑ N<br />
N/<br />
2−1 ∑ N<br />
N / 2−1 ∑ N<br />
N / 2−1 N ∑<br />
n=<br />
0<br />
n=<br />
0<br />
n=<br />
0<br />
n=<br />
0<br />
5º Curso-Tratamiento Digital <strong>de</strong> Señal<br />
2nk<br />
( 2n+ 1)<br />
k<br />
2nk<br />
k<br />
[] = [ 2 ] + [ 2 + 1] = [ 2 ] + [ 2 + 1]<br />
X k x n W x n W x n W W x n W<br />
[] = [ 2 ]<br />
[] = [ 2 + 1]<br />
Sustituimos x n x n<br />
1<br />
x n x n<br />
2<br />
2nk<br />
W = W<br />
N<br />
nk<br />
N / 2<br />
N / 2−1 ∑ 1 N / 2<br />
N / 2−1 N ∑ 2 N / 2<br />
n=<br />
0<br />
n=<br />
0<br />
nk k<br />
nk<br />
k<br />
[] [] [] [] []<br />
Xk = x nW + W x nW = Yk + W Zk k=<br />
012 ,, , , N − 1<br />
◆ Esta última ecuación muestra que el <strong>DFT</strong> <strong>de</strong> N puntos es la suma <strong>de</strong> dos<br />
<strong>DFT</strong>s <strong>de</strong> N/2 puntos (Y[k], Z[k]) realizadas con las secuencias par e impar<br />
<strong>de</strong> la secuencia original x[n]. Cada término Z[k] es multiplicado por un<br />
factor W N k , llamado “twiddle factor”. Ya que WN k+N/2 =-WN k y <strong>de</strong>bido a la<br />
periodicidad <strong>de</strong> Y[k] y Z[k] (periodo N/2) po<strong>de</strong>mos poner X[k] como<br />
[ ] = [ ] +<br />
k<br />
N [ ] ⋅ [ ]<br />
[ / 2]<br />
[ ] k[<br />
] [ ]<br />
Xk Yk W k Zk<br />
X k + N = Y k −WNk ⋅Z<br />
k<br />
Para k = 01 ,, , N / 2−1 N<br />
2nk<br />
N<br />
Capítulo 6: <strong>Transformada</strong> <strong>Discreta</strong> <strong>de</strong> <strong>Fourier</strong> (<strong>DFT</strong>)<br />
28
17/11/99<br />
x[N-2]<br />
x[N-1]<br />
x[0]<br />
x[2]<br />
x[1]<br />
x[3]<br />
FFT (Fast <strong>Fourier</strong> Transform)<br />
<strong>DFT</strong><br />
N/2 Puntos<br />
<strong>DFT</strong><br />
N/2 Puntos<br />
Y[0]<br />
Y[1]<br />
Y[N/2-1]<br />
Z[0]<br />
Z[1]<br />
Z[N/2-1]<br />
W0<br />
x<br />
W1<br />
5º Curso-Tratamiento Digital <strong>de</strong> Señal<br />
◆ Los dos <strong>DFT</strong> <strong>de</strong> N/2 puntos se pue<strong>de</strong> a su vez dividir para formar 4 <strong>DFT</strong>s<br />
<strong>de</strong> N/4 puntos, lo que produce las siguientes ecuaciones<br />
2k<br />
2k<br />
Yk [] = Uk [] + WN Vk []<br />
Zk [] = Rk [] + WN Sk []<br />
2k<br />
2k<br />
Yk [ + N/ 4]<br />
= Uk [] −WVk<br />
[] Zk [ + N/ 4]<br />
= Rk [] −WSk<br />
[]<br />
Para k = 01 ,, , N / 4−1 N<br />
x<br />
WN/2-1<br />
x<br />
-1<br />
-1<br />
-1<br />
+<br />
+<br />
+<br />
+<br />
+<br />
+<br />
Para k = 01 ,, , N /<br />
4−1 X[0]<br />
X[1]<br />
X[N/2-1]<br />
X[N/2]<br />
X[N/2+1]<br />
X[N-1]<br />
Capítulo 6: <strong>Transformada</strong> <strong>Discreta</strong> <strong>de</strong> <strong>Fourier</strong> (<strong>DFT</strong>)<br />
N<br />
29
17/11/99<br />
FFT (Fast <strong>Fourier</strong> Transform)<br />
5º Curso-Tratamiento Digital <strong>de</strong> Señal<br />
◆ El proceso pue<strong>de</strong> repetirse sucesivamente hasta llegar a computar el<br />
<strong>DFT</strong> <strong>de</strong> dos valores x[n], en concreto x[k] y x[k+N/2], para<br />
k=0,1,...,N/2-1. Para una <strong>DFT</strong> <strong>de</strong> N=8 puntos tenemos el siguiente<br />
esquema Butterfly<br />
x[0]<br />
x[4]<br />
x[2]<br />
x[6]<br />
x[1]<br />
x[5]<br />
x[3]<br />
x[7]<br />
0<br />
W<br />
x<br />
0<br />
W<br />
x<br />
0<br />
W<br />
x<br />
0<br />
W<br />
x<br />
-1<br />
-1<br />
-1<br />
-1<br />
+<br />
+<br />
+<br />
+<br />
+<br />
+<br />
+<br />
+<br />
0<br />
W<br />
x<br />
2<br />
W<br />
x<br />
0<br />
W<br />
x<br />
2<br />
W<br />
x<br />
-1<br />
-1<br />
-1<br />
-1<br />
Etapa 1 Etapa 2 Etapa 3<br />
+<br />
+<br />
+<br />
+<br />
+<br />
+<br />
+<br />
+<br />
0<br />
W<br />
x<br />
1<br />
W<br />
x<br />
2<br />
W<br />
x<br />
3<br />
W<br />
x<br />
-1<br />
-1<br />
-1<br />
-1<br />
+ X[0]<br />
+ X[1]<br />
+ X[2]<br />
+ X[3]<br />
Capítulo 6: <strong>Transformada</strong> <strong>Discreta</strong> <strong>de</strong> <strong>Fourier</strong> (<strong>DFT</strong>)<br />
+<br />
+<br />
+<br />
+<br />
X[4]<br />
X[5]<br />
X[6]<br />
X[7]<br />
30
17/11/99<br />
FFT (Fast <strong>Fourier</strong> Transform)<br />
5º Curso-Tratamiento Digital <strong>de</strong> Señal<br />
◆ Las características <strong>de</strong> una FFT <strong>de</strong> N puntos <strong>de</strong>cimada en el tiempo se<br />
sumarizan en la siguiente tabla :<br />
Número <strong>de</strong><br />
Grupos<br />
Butterflies por<br />
Grupo<br />
Exponentes<br />
Twiddle Factors<br />
Etapa 1 Etapa 2 Etapa 3 Etapa log2N<br />
N/2 N/4 N/8 1<br />
◆ Por cada butterfly tenemos una multiplicación y dos sumas complejas.<br />
Hay N/2 butterflies por etapa y log 2 N etapas.<br />
✦ El número total <strong>de</strong> multiplicaciones es ½N·log 2 N .<br />
✦ El número total <strong>de</strong> sumas es N·log 2 N .<br />
1 2 4 N/2<br />
(N/2)k,<br />
k=0<br />
(N/4)k,<br />
k=0,1<br />
(N/8)k,<br />
k=0,1,2,3<br />
k,<br />
k=0,1,...,N/2-1<br />
Capítulo 6: <strong>Transformada</strong> <strong>Discreta</strong> <strong>de</strong> <strong>Fourier</strong> (<strong>DFT</strong>)<br />
31
17/11/99<br />
FFT (Fast <strong>Fourier</strong> Transform)<br />
5º Curso-Tratamiento Digital <strong>de</strong> Señal<br />
◆ Para pequeños valores <strong>de</strong> N, la diferencia pue<strong>de</strong> parecer pequeña, pero<br />
para valores gran<strong>de</strong>s la diferencia es enorme. Para un <strong>DFT</strong> <strong>de</strong> 1024<br />
puntos, el número <strong>de</strong> multiplicaciones en un FFT es aprox. 5000<br />
mientras que para un <strong>DFT</strong> normal es <strong>de</strong> aprox. 10 6 .<br />
❒ Radix-2 FFT-Decimación en Frecuencia<br />
◆ Expresaremos el FFT como suma <strong>de</strong> los FFT <strong>de</strong> dos secuencias, la<br />
primera con los N/2 primeros datos y la segunda con los N/2 últimos.<br />
N−1<br />
∑ N<br />
N / 2−1 ∑ N<br />
N−1<br />
∑<br />
nk<br />
N<br />
n=<br />
0<br />
n=<br />
0<br />
n= N/<br />
2<br />
N / 2−1 ∑ []<br />
nk<br />
N<br />
N/<br />
2−1 ∑ [ / 2]<br />
( n+ N/ 2)<br />
k<br />
N<br />
n=<br />
0<br />
n=<br />
0<br />
nk<br />
nk<br />
[] = [] = [] + []<br />
Xk xnW xnW xnW<br />
= xnW + xn+ N W<br />
N / 2−1 ∑ N<br />
N / 2−1 ∑<br />
n=<br />
0<br />
n=<br />
0<br />
nk k<br />
[] ( 1) [ / 2]<br />
= xnW + − xn+ N W<br />
N / 2−1 ∑<br />
k [ [] ( ) [ ]<br />
nk<br />
= xn + − 1 xn+ N/ 2 W k= 012 , , , ,<br />
N−1<br />
n=<br />
0<br />
N<br />
nk<br />
N<br />
Capítulo 6: <strong>Transformada</strong> <strong>Discreta</strong> <strong>de</strong> <strong>Fourier</strong> (<strong>DFT</strong>)<br />
32
17/11/99<br />
FFT (Fast <strong>Fourier</strong> Transform)<br />
5º Curso-Tratamiento Digital <strong>de</strong> Señal<br />
◆ La <strong>de</strong>cimación en frecuencia se obtiene dividiendo la secuencia <strong>de</strong><br />
salida (X[k]) en dos ecuaciones, una para los índices pares y otro para<br />
los impares.<br />
N / 2−1 ∑<br />
[ ]<br />
[ 2 ] = [] + [ + / 2]<br />
X k xn xn N W<br />
n=<br />
0<br />
N / 2−1 ∑<br />
[ [] [ ]<br />
2nk<br />
N<br />
nk<br />
= xn + xn+ N/ 2 W k= 01 , , , N/<br />
2−1 n=<br />
0<br />
N/<br />
2−1 ∑<br />
[ ]<br />
[ 2 + 1] = [] − [ + / 2]<br />
N / 2<br />
X k xn xn N W<br />
n=<br />
0<br />
N / 2−1 ∑<br />
n( 2k+ 1)<br />
N<br />
n<br />
[ [ [] [ ] N]<br />
nk<br />
= xn − xn+ N/ 2 W W k= 01 , , , N/<br />
2−1 n=<br />
0<br />
◆ X[2k] y X[2k+1] son los resultados <strong>de</strong>l <strong>DFT</strong> <strong>de</strong> N/2 puntos realizado<br />
con las suma y la diferencia entre la primera y segunda mita<strong>de</strong>s <strong>de</strong> la<br />
secuencia <strong>de</strong> entrada.<br />
N/<br />
2<br />
Capítulo 6: <strong>Transformada</strong> <strong>Discreta</strong> <strong>de</strong> <strong>Fourier</strong> (<strong>DFT</strong>)<br />
33
17/11/99<br />
x[0]<br />
x[1]<br />
x[N/2-1]<br />
x[N/2]<br />
x[N/2+1]<br />
x[N-1]<br />
FFT (Fast <strong>Fourier</strong> Transform)<br />
-1<br />
-1<br />
-1<br />
+<br />
+<br />
+<br />
+<br />
+<br />
+<br />
0<br />
W<br />
x<br />
1<br />
W<br />
x<br />
W<br />
x<br />
N/2-1<br />
<strong>DFT</strong><br />
N/2 Puntos<br />
<strong>DFT</strong><br />
N/2 Puntos<br />
5º Curso-Tratamiento Digital <strong>de</strong> Señal<br />
X[0]<br />
X[2]<br />
X[N-2]<br />
X[1]<br />
X[3]<br />
X[N-1]<br />
Capítulo 6: <strong>Transformada</strong> <strong>Discreta</strong> <strong>de</strong> <strong>Fourier</strong> (<strong>DFT</strong>)<br />
34
17/11/99<br />
x[0]<br />
x[1]<br />
x[2]<br />
x[3]<br />
x[4]<br />
x[5]<br />
x[6]<br />
x[7]<br />
FFT (Fast <strong>Fourier</strong> Transform)<br />
W<br />
x<br />
0<br />
-1<br />
+<br />
-1 +<br />
W<br />
x<br />
-1<br />
+<br />
1<br />
W<br />
x<br />
2<br />
-1<br />
+<br />
W<br />
x<br />
3<br />
+<br />
+<br />
+<br />
+<br />
-1<br />
-1<br />
-1<br />
-1<br />
+<br />
+<br />
+<br />
W<br />
+ x<br />
2<br />
W<br />
x<br />
0<br />
+<br />
+<br />
+<br />
W<br />
+ x<br />
2<br />
W<br />
x<br />
0<br />
Butterfly<br />
5º Curso-Tratamiento Digital <strong>de</strong> Señal<br />
+<br />
W<br />
+ x<br />
0<br />
X[0]<br />
X[4]<br />
X[2]<br />
X[1]<br />
X[5]<br />
X[3]<br />
Capítulo 6: <strong>Transformada</strong> <strong>Discreta</strong> <strong>de</strong> <strong>Fourier</strong> (<strong>DFT</strong>)<br />
+<br />
W<br />
+ x<br />
0<br />
+<br />
W<br />
+ x<br />
0<br />
+<br />
W<br />
+ x<br />
0<br />
Etapa 1 Etapa 2 Etapa 3<br />
-1<br />
-1<br />
-1<br />
-1<br />
X[6]<br />
X[7]<br />
35
17/11/99<br />
FFT (Fast <strong>Fourier</strong> Transform)<br />
◆ Las característica <strong>de</strong>l FFT <strong>de</strong>cimado en frecuencia son<br />
Número <strong>de</strong><br />
Grupos<br />
Butterflies por<br />
Grupo<br />
Exponentes<br />
Twiddle Factors<br />
5º Curso-Tratamiento Digital <strong>de</strong> Señal<br />
Etapa 1 Etapa 2 Etapa 3 Etapa log2N<br />
1 2 4 N/2<br />
N/2 N/4 N/8 1<br />
n,<br />
n=0,...,N/2-1<br />
2n,<br />
n=0,...,N/4-1<br />
4n,<br />
k=0,...,N/8-1<br />
(N/2)n,<br />
n=0<br />
❒ Se pue<strong>de</strong> observar que en el caso <strong>de</strong> <strong>de</strong>cimación en el tiempo, la secuencia<br />
<strong>de</strong> entrada <strong>de</strong>be ser reor<strong>de</strong>nada mientras que la salida aparece en el or<strong>de</strong>n<br />
correcto.<br />
❒ Para la <strong>de</strong>cimación en frecuencia, la secuencia está en or<strong>de</strong>n mientras que<br />
la salida habrá que reor<strong>de</strong>narla.<br />
❒ Se da la circunstancia que esa reor<strong>de</strong>nación es simplemente invertir el<br />
índice en binario. Por ejemplo, en la misma posición que x[1] aparece<br />
X[4], y 001 invertido es 100.<br />
Capítulo 6: <strong>Transformada</strong> <strong>Discreta</strong> <strong>de</strong> <strong>Fourier</strong> (<strong>DFT</strong>)<br />
36
17/11/99<br />
FFT (Fast <strong>Fourier</strong> Transform)<br />
❒ <strong>DFT</strong> en 2 dimensiones<br />
5º Curso-Tratamiento Digital <strong>de</strong> Señal<br />
◆ En aplicaciones como procesamiento <strong>de</strong> imagen, las señales <strong>de</strong>pen<strong>de</strong>n<br />
<strong>de</strong> dos variables n1 y n2 (el eje x y el eje y en una imagen bidimensional).<br />
Por tanto necesitamos exten<strong>de</strong>r el concepto <strong>de</strong> <strong>DFT</strong> a dos dimensiones.<br />
◆ Dada una secuencia x(n1 ,n2 ), se <strong>de</strong>fine la <strong>DFT</strong> como<br />
( 1 , 2)<br />
Xk k<br />
⎧N1<br />
−1N2−1<br />
− j( 2π N1 ) k1n1 − j( 2π<br />
N2) k2n2 ⎪∑∑xn<br />
( 1 , n2) e e 0≤ n1 ≤ N1 −1, 0≤ n2 ≤ N2<br />
−1<br />
⎪n1=<br />
0n2=<br />
0<br />
= ⎨<br />
⎪<br />
0,<br />
en otro caso<br />
⎪<br />
⎩<br />
◆ La I<strong>DFT</strong> <strong>de</strong> X(k 1 ,k 2 ) se <strong>de</strong>fine como<br />
( 1 , 2)<br />
xn n<br />
⎧ N1<br />
−1N1<br />
−1<br />
1<br />
j( 2π N1 ) k1n1 j( 2π<br />
N2) k2n2 ⎪ ∑∑<br />
X( k1 , k2) e e 0≤ n1 ≤ N1 −1, 0≤ n2 ≤ N2<br />
−1<br />
⎪N1N2<br />
k1<br />
= 0k2=<br />
0<br />
= ⎨<br />
⎪<br />
0,<br />
en otro caso<br />
⎪<br />
⎩<br />
Capítulo 6: <strong>Transformada</strong> <strong>Discreta</strong> <strong>de</strong> <strong>Fourier</strong> (<strong>DFT</strong>)<br />
37
❒ FFT-2D<br />
17/11/99<br />
FFT (Fast <strong>Fourier</strong> Transform)<br />
5º Curso-Tratamiento Digital <strong>de</strong> Señal<br />
◆ Al igual que en el caso <strong>de</strong> señales unidimensionales, disponemos <strong>de</strong> un<br />
eficiente algoritmo para realizar el <strong>DFT</strong>.<br />
◆ Descomposición Fila-Columna<br />
✦ Reescribimos la ecuación anterior<br />
N1<br />
−1N2−1<br />
− ( 2π ) − ( 2π<br />
)<br />
( 1 , 2) = ( 1 , 2)<br />
X k k x n n e e<br />
=<br />
∑<br />
n = 0n<br />
= 0<br />
N<br />
n<br />
1<br />
1<br />
−1<br />
= 0<br />
∑<br />
2<br />
( 1 2)<br />
j N k n j N k n<br />
( 2 )<br />
1 1 1 2 2 2<br />
2<br />
( 1 2) ( 1 2)<br />
✦ Si consi<strong>de</strong>ramos n 2 fijo (pe, n 2 =0), f(k 1 ,n 2 ) es el <strong>DFT</strong> unidimensional <strong>de</strong><br />
x(n 1 ,n 2 )| n2=0 con respecto a la variable n 1 . De esta forma obtenemos una<br />
matriz f(k 1 ,n 2 ) para todos los posibles valores <strong>de</strong> n 2 (Figura).<br />
✦ Ahora po<strong>de</strong>mos calcular X(k 1 ,k 2 ) a partir <strong>de</strong> f(k 1 ,n 2 ),<br />
( 2 )<br />
N −1<br />
− j π N k n − j π N k n<br />
1<br />
2 2 2 1 1 1<br />
∑ f k , n e , don<strong>de</strong> f k , n = ∑x<br />
n , n e<br />
N<br />
−1<br />
2<br />
( 1 , 2) = ( 1 , 2)<br />
∑<br />
Xk k fk n e<br />
n = 0<br />
2<br />
( 2π<br />
)<br />
− j N k n<br />
2 2 2<br />
n<br />
2<br />
= 0<br />
Capítulo 6: <strong>Transformada</strong> <strong>Discreta</strong> <strong>de</strong> <strong>Fourier</strong> (<strong>DFT</strong>)<br />
38
N 2 -1<br />
17/11/99<br />
n 2<br />
FFT (Fast <strong>Fourier</strong> Transform)<br />
5º Curso-Tratamiento Digital <strong>de</strong> Señal<br />
✦ Fijamos k 1 (pe, k 1 =0), por lo que f(k 1 ,n 2 )| k1=0 es una columna <strong>de</strong> f(k 1 ,n 2 ) y<br />
X(0,k 2 ) es la <strong>DFT</strong> unidimensional <strong>de</strong> f(k 1 ,n 2 )| k1=0 con respecto a la variable<br />
n 2 . Obtendremos X(k 1 ,k 2 ) haciendo N 1 <strong>DFT</strong> 1D para cada valor <strong>de</strong> k 1<br />
(Figura).<br />
x(n<br />
n2 1 ,n2 ) f(k1 ,n2 )<br />
N 1 -1<br />
n 1<br />
FFT 1D<br />
N 1 puntos<br />
N 2 -1<br />
N 1 -1<br />
Capítulo 6: <strong>Transformada</strong> <strong>Discreta</strong> <strong>de</strong> <strong>Fourier</strong> (<strong>DFT</strong>)<br />
k 1<br />
39
N 2 -1<br />
17/11/99<br />
n 2<br />
FFT (Fast <strong>Fourier</strong> Transform)<br />
f(k 1 ,n 2 )<br />
N 1 -1<br />
k 1<br />
FFT 1D<br />
N 2 puntos<br />
N 2 -1<br />
Número <strong>de</strong><br />
Multiplicaciones<br />
2 2<br />
Calculo Directo N1N2 Descomposición<br />
Fila-Columna con<br />
FFT 1D<br />
NN<br />
2<br />
1 2<br />
k 2<br />
5º Curso-Tratamiento Digital <strong>de</strong> Señal<br />
Número <strong>de</strong><br />
Sumas<br />
2 2<br />
N1N2 X(k 1 ,k 2 )<br />
log 2( NN 1 2)<br />
NN 1 2log2( NN 1 2)<br />
N 1 -1<br />
Capítulo 6: <strong>Transformada</strong> <strong>Discreta</strong> <strong>de</strong> <strong>Fourier</strong> (<strong>DFT</strong>)<br />
k 1<br />
40
17/11/99<br />
>> X = fft(x)<br />
FFT con MATLAB<br />
5º Curso-Tratamiento Digital <strong>de</strong> Señal<br />
Hace la FFT <strong>de</strong>l vector x. “X” es un vector <strong>de</strong> números complejos<br />
or<strong>de</strong>nados <strong>de</strong>s<strong>de</strong> k=0...N-1. Se recomienda que la longitud <strong>de</strong>l vector<br />
x sea una potencia <strong>de</strong> 2. Lo que no se recomienda es que la longitud<br />
<strong>de</strong> x sea un número primo.<br />
Otra opción <strong>de</strong>l la FFT es especificar el número <strong>de</strong> puntos con el<br />
que se quiere hacer la FFT.<br />
>> X = fft(x,N)<br />
Si la longitud <strong>de</strong> x es menor que N, el vector se rellena con<br />
ceros. Si es mayor, el vector es truncado.<br />
>> x = ifft(X)<br />
Hace la FFT inversa <strong>de</strong>l vector X. También se pue<strong>de</strong> especificar el<br />
número <strong>de</strong> puntos N con el que quiero hacer la IFFT.<br />
>> x = ifft(X,N)<br />
>> X = fftshift(X)<br />
Reor<strong>de</strong>na el vector X en or<strong>de</strong>n creciente <strong>de</strong> frecuencia. Si “X” es el<br />
vector resultante <strong>de</strong> hacer una FFT, utilizando esta función<br />
reor<strong>de</strong>namos los puntos en función <strong>de</strong> la frecuencia.<br />
❒ A continuación tienen unos ejemplos <strong>de</strong>l uso <strong>de</strong> las FFT. Los programas <strong>de</strong><br />
MATLAB utilizados los pue<strong>de</strong>n conseguir en el Web <strong>de</strong> la asignatura.<br />
Capítulo 6: <strong>Transformada</strong> <strong>Discreta</strong> <strong>de</strong> <strong>Fourier</strong> (<strong>DFT</strong>)<br />
41
17/11/99<br />
5º Curso-Tratamiento Digital <strong>de</strong> Señal<br />
FFT con MATLAB: fftej1.m → x(t)=sin(2·π·20·t)+chirp(5-40)<br />
x(t)=sin(2· ·20·t)+chirp(5-40)<br />
N=128 D=1 s<br />
x(t)<br />
|X[k]|<br />
2<br />
1.5<br />
1<br />
0.5<br />
0<br />
-0.5<br />
-1<br />
-1.5<br />
x(t)<br />
-2<br />
0 0.2 0.4 0.6 0.8 1<br />
Tiempo (s)<br />
0.6<br />
0.5<br />
0.4<br />
0.3<br />
0.2<br />
0.1<br />
Módulo <strong>de</strong> Coeficientes Espectrales |X[k]|<br />
-80<br />
0<br />
-60 -40 -20 0 20 40 60 80<br />
Frecuencia (Hz)<br />
Capítulo 6: <strong>Transformada</strong> <strong>Discreta</strong> <strong>de</strong> <strong>Fourier</strong> (<strong>DFT</strong>)<br />
42
17/11/99<br />
FFT con MATLAB: fftej1.m →<br />
Fase (º)<br />
x(t)<br />
2000<br />
1500<br />
1000<br />
500<br />
-500<br />
0<br />
5º Curso-Tratamiento Digital <strong>de</strong> Señal<br />
→ x(t)=sin(2·π·20·t)+chirp(5-40)<br />
x(t)=sin(2· ·20·t)+chirp(5-40)<br />
N=128 D=1 s<br />
Fase <strong>de</strong> Coeficientes Espectrales X[k]<br />
-1000<br />
-80 -60 -40 -20 0 20 40 60 80<br />
Frecuencia (Hz)<br />
Comparación entre x(t) y su reconstrucción a partir <strong>de</strong> X[k]<br />
2.5<br />
2<br />
1.5<br />
1<br />
0.5<br />
0<br />
-0.5<br />
-1<br />
-1.5<br />
-2<br />
0 0.2 0.4 0.6<br />
Tiempo (t)<br />
0.8 1<br />
Capítulo 6: <strong>Transformada</strong> <strong>Discreta</strong> <strong>de</strong> <strong>Fourier</strong> (<strong>DFT</strong>)<br />
43
x(t)<br />
17/11/99<br />
FFT con MATLAB: fftej1.m →<br />
-0.5<br />
2<br />
1.5<br />
1<br />
0.5<br />
0<br />
-1<br />
5º Curso-Tratamiento Digital <strong>de</strong> Señal<br />
→ x(t)=sin(2·π·20·t)+chirp(5-40)<br />
x(t)=sin(2· ·20·t)+chirp(5-40)<br />
N=128 D=1 s<br />
Comparación entre x(t) y su reconstrucción a partir <strong>de</strong> X[k]<br />
-1.5<br />
0.91 0.92 0.93 0.94 0.95 0.96 0.97 0.98 0.99<br />
Tiempo (t)<br />
Capítulo 6: <strong>Transformada</strong> <strong>Discreta</strong> <strong>de</strong> <strong>Fourier</strong> (<strong>DFT</strong>)<br />
44
17/11/99<br />
FFT con MATLAB: fftej1.m →<br />
|X[k]|<br />
x(t)<br />
0.6<br />
0.5<br />
0.4<br />
0.3<br />
0.2<br />
0.1<br />
5º Curso-Tratamiento Digital <strong>de</strong> Señal<br />
→ x(t)=sin(2·π·20·t)+chirp(5-40)<br />
x(t)=sin(2· ·20·t)+chirp(5-40)<br />
N=32 D=1 s<br />
Módulo <strong>de</strong> Coeficientes Espectrales |X[k]|<br />
Aliasing 32-20=12 Hz<br />
-20<br />
0<br />
-15 -10 -5 0 5 10 15<br />
Frecuencia (Hz)<br />
Comparación entre x(t) y su reconstrucción a partir <strong>de</strong> X[k]<br />
2.5<br />
2<br />
1.5<br />
1<br />
0.5<br />
0<br />
-0.5<br />
-1<br />
-1.5<br />
-2<br />
-2.5<br />
0 0.2 0.4 0.6<br />
Tiempo (t)<br />
0.8 1<br />
Capítulo 6: <strong>Transformada</strong> <strong>Discreta</strong> <strong>de</strong> <strong>Fourier</strong> (<strong>DFT</strong>)<br />
45
17/11/99<br />
FFT con MATLAB: fftej2.m →<br />
x(t)<br />
|X[k]|<br />
1.2<br />
1<br />
0.8<br />
0.6<br />
0.4<br />
0.2<br />
0<br />
5º Curso-Tratamiento Digital <strong>de</strong> Señal<br />
→ x(t)=exp x(t)= exp(-2·t)+0.2·chirp(60-100)<br />
(-2·t)+0.2·chirp(60-100)<br />
N=256 D=1 s<br />
x(t)=exp(-2t)+0.2·chirp(60-100)<br />
-0.2<br />
0 0.2 0.4 0.6 0.8 1<br />
Tiempo (s)<br />
0.45<br />
0.4<br />
0.35<br />
0.3<br />
0.25<br />
0.2<br />
0.15<br />
0.1<br />
0.05<br />
Módulo <strong>de</strong> los coeficientes espectrales |X[k]|<br />
-150<br />
0<br />
-100 -50 0 50 100 150<br />
Frecuencia (Hz)<br />
Capítulo 6: <strong>Transformada</strong> <strong>Discreta</strong> <strong>de</strong> <strong>Fourier</strong> (<strong>DFT</strong>)<br />
46
17/11/99<br />
FFT con MATLAB: fftej2.m →<br />
Fase(X[k]) (º)<br />
1500<br />
1000<br />
500<br />
-500<br />
-1000<br />
0<br />
5º Curso-Tratamiento Digital <strong>de</strong> Señal<br />
→ x(t)=exp x(t)= exp(-2·t)+0.2·chirp(60-100)<br />
(-2·t)+0.2·chirp(60-100)<br />
N=256 D=1 s<br />
Fase <strong>de</strong> los coeficientes espectrales X[k]<br />
-1500<br />
-150 -100 -50 0 50 100 150<br />
Frecuencia (Hz)<br />
x(t)<br />
1.4<br />
1.2<br />
1<br />
0.8<br />
0.6<br />
0.4<br />
0.2<br />
0<br />
Comparación entre x(t) y su reconstrucción a partir <strong>de</strong> X[k]<br />
-0.2<br />
0 0.2 0.4 0.6 0.8 1<br />
Tiempo (t)<br />
Capítulo 6: <strong>Transformada</strong> <strong>Discreta</strong> <strong>de</strong> <strong>Fourier</strong> (<strong>DFT</strong>)<br />
47
17/11/99<br />
x(t)<br />
FFT con MATLAB: fftej2.m →<br />
1<br />
0.8<br />
0.6<br />
0.4<br />
0.2<br />
0<br />
5º Curso-Tratamiento Digital <strong>de</strong> Señal<br />
→ x(t)=exp x(t)= exp(-2·t)+0.2·chirp(60-100)<br />
(-2·t)+0.2·chirp(60-100)<br />
N=256 D=1 s<br />
Comparación entre x(t) y su reconstrucción a partir <strong>de</strong> X[k]<br />
0.96 0.97 0.98 0.99 1<br />
Tiempo (t)<br />
Capítulo 6: <strong>Transformada</strong> <strong>Discreta</strong> <strong>de</strong> <strong>Fourier</strong> (<strong>DFT</strong>)<br />
48
17/11/99<br />
|X[k]|<br />
FFT con MATLAB: fftej2.m →<br />
x(t)<br />
5º Curso-Tratamiento Digital <strong>de</strong> Señal<br />
→ x(t)=exp x(t)= exp(-2·t)+0.2·chirp(60-100)<br />
(-2·t)+0.2·chirp(60-100)<br />
N=64 D=0.1 s<br />
0.1<br />
0.09<br />
0.08<br />
0.07<br />
0.06<br />
0.05<br />
0.04<br />
0.03<br />
0.02<br />
0.01<br />
Módulo <strong>de</strong> los coeficientes espectrales |X[k]|<br />
0<br />
-400 -300 -200 -100 0 100<br />
Frecuencia (Hz)<br />
200 300 400<br />
1.2<br />
1.1<br />
1<br />
0.9<br />
0.8<br />
0.7<br />
Comparación entre x(t) y su reconstrucción a partir <strong>de</strong> X[k]<br />
0.6<br />
0 0.02 0.04 0.06 0.08 0.1<br />
Tiempo (t)<br />
Capítulo 6: <strong>Transformada</strong> <strong>Discreta</strong> <strong>de</strong> <strong>Fourier</strong> (<strong>DFT</strong>)<br />
49
17/11/99<br />
FFT con MATLAB: fftej3.m →<br />
x(t)<br />
|X[k]|<br />
5º Curso-Tratamiento Digital <strong>de</strong> Señal<br />
→ x(t)=exp x(t)= exp(-2·t)·sin(2· (-2·t)·sin(2·π·200·t) ·200·t)<br />
N=128 D=0.2 s<br />
1<br />
0.8<br />
0.6<br />
0.4<br />
0.2<br />
0<br />
-0.2<br />
-0.4<br />
-0.6<br />
-0.8<br />
x(t)=exp(-2t)·sin(2·p·200·t)<br />
-1<br />
0 0.05 0.1<br />
Tiempo (t)<br />
0.15 0.2<br />
0.09<br />
0.08<br />
0.07<br />
0.06<br />
0.05<br />
0.04<br />
0.03<br />
0.02<br />
0.01<br />
Módulo <strong>de</strong> los coeficientes espectrales <strong>de</strong> x(t)<br />
-400<br />
0<br />
-300 -200 -100 0 100 200 300 400<br />
Frecuencia (Hz)<br />
Capítulo 6: <strong>Transformada</strong> <strong>Discreta</strong> <strong>de</strong> <strong>Fourier</strong> (<strong>DFT</strong>)<br />
50
17/11/99<br />
Fase X[k]<br />
FFT con MATLAB: fftej3.m →<br />
200<br />
150<br />
100<br />
50<br />
-50<br />
-100<br />
-150<br />
0<br />
5º Curso-Tratamiento Digital <strong>de</strong> Señal<br />
→ x(t)=exp x(t)= exp(-2·t)·sin(2· (-2·t)·sin(2·π·200·t) ·200·t)<br />
N=128 D=0.2 s<br />
Fase <strong>de</strong> los coeficientes espectrales X[k]<br />
-200<br />
-400 -300 -200 -100 0 100 200 300 400<br />
Frecuencia (Hz)<br />
Capítulo 6: <strong>Transformada</strong> <strong>Discreta</strong> <strong>de</strong> <strong>Fourier</strong> (<strong>DFT</strong>)<br />
51
17/11/99<br />
FFT con MATLAB: fftej4.m →<br />
|X[k]|<br />
x(t)<br />
5º Curso-Tratamiento Digital <strong>de</strong> Señal<br />
→ x(t)=sin(2·π·200·t+5·sin(2·<br />
x(t)=sin(2· ·200·t+5·sin(2·π·2·t)) ·2·t))<br />
N=256 D=0.5 s<br />
1<br />
0.8<br />
0.6<br />
0.4<br />
0.2<br />
0<br />
-0.2<br />
-0.4<br />
-0.6<br />
-0.8<br />
x(t)=sin(2·pi·200·t+5·sin(2·pi·2·t)<br />
-1<br />
0 0.1 0.2 0.3<br />
Tiempo (t)<br />
0.4 0.5<br />
0.1<br />
0.09<br />
0.08<br />
0.07<br />
0.06<br />
0.05<br />
0.04<br />
0.03<br />
0.02<br />
0.01<br />
Módulo <strong>de</strong> los coeficientes espectrales <strong>de</strong> x(t)<br />
0<br />
-300 -200 -100 0<br />
Frecuencia (Hz)<br />
100 200 300<br />
Capítulo 6: <strong>Transformada</strong> <strong>Discreta</strong> <strong>de</strong> <strong>Fourier</strong> (<strong>DFT</strong>)<br />
52
17/11/99<br />
FFT con MATLAB: fftej4.m →<br />
Fase X[k]<br />
7000<br />
6000<br />
5000<br />
4000<br />
3000<br />
2000<br />
1000<br />
0<br />
5º Curso-Tratamiento Digital <strong>de</strong> Señal<br />
→ x(t)=sin(2·π·200·t+5·sin(2·<br />
x(t)=sin(2· ·200·t+5·sin(2·π·2·t)) ·2·t))<br />
N=256 D=0.5 s<br />
Fase <strong>de</strong> los coeficientes espectrales X[k]<br />
-1000<br />
-300 -200 -100 0 100 200 300<br />
Frecuencia (Hz)<br />
Capítulo 6: <strong>Transformada</strong> <strong>Discreta</strong> <strong>de</strong> <strong>Fourier</strong> (<strong>DFT</strong>)<br />
53
17/11/99<br />
FFT con MATLAB: fftej4.m →<br />
x(t)<br />
|X[k]|<br />
5º Curso-Tratamiento Digital <strong>de</strong> Señal<br />
→ x(t)=sin(2·π·200·t+5·sin(2·<br />
x(t)=sin(2· ·200·t+5·sin(2·π·2·t)) ·2·t))<br />
N=128 D=0.2 s<br />
1<br />
0.8<br />
0.6<br />
0.4<br />
0.2<br />
0<br />
-0.2<br />
-0.4<br />
-0.6<br />
-0.8<br />
x(t)=sin(2·pi·200·t+5·sin(2·pi·2·t)<br />
-1<br />
0 0.05 0.1<br />
Tiempo (t)<br />
0.15 0.2<br />
0.06<br />
0.05<br />
0.04<br />
0.03<br />
0.02<br />
0.01<br />
Módulo <strong>de</strong> los coeficientes espectrales <strong>de</strong> x(t)<br />
-400<br />
0<br />
-300 -200 -100 0 100 200 300 400<br />
Frecuencia (Hz)<br />
Capítulo 6: <strong>Transformada</strong> <strong>Discreta</strong> <strong>de</strong> <strong>Fourier</strong> (<strong>DFT</strong>)<br />
54
17/11/99<br />
FFT con MATLAB: fftej4.m →<br />
Fase X[k]<br />
700<br />
600<br />
500<br />
400<br />
300<br />
200<br />
100<br />
5º Curso-Tratamiento Digital <strong>de</strong> Señal<br />
→ x(t)=sin(2·π·200·t+5·sin(2·<br />
x(t)=sin(2· ·200·t+5·sin(2·π·2·t)) ·2·t))<br />
N=128 D=0.2 s<br />
Fase <strong>de</strong> los coeficientes espectrales X[k]<br />
0<br />
-400 -300 -200 -100 0 100 200 300 400<br />
Frecuencia (Hz)<br />
Capítulo 6: <strong>Transformada</strong> <strong>Discreta</strong> <strong>de</strong> <strong>Fourier</strong> (<strong>DFT</strong>)<br />
55
17/11/99<br />
FFT con MATLAB: fftej5.m →<br />
x(t)<br />
|X[k]|<br />
5º Curso-Tratamiento Digital <strong>de</strong> Señal<br />
→ x(t)=sin(2·π·200·t-5·<br />
x(t)=sin(2· ·200·t-5· exp(-2·t)) exp(-2·t))<br />
N=256 D=0.5 s<br />
1<br />
0.8<br />
0.6<br />
0.4<br />
0.2<br />
0<br />
-0.2<br />
-0.4<br />
-0.6<br />
-0.8<br />
x(t)=sin(2·pi·200·t-5·exp(-2t))<br />
-1<br />
0 0.1 0.2<br />
Tiempo (t)<br />
0.3 0.4 0.5<br />
0.18<br />
0.16<br />
0.14<br />
0.12<br />
0.1<br />
0.08<br />
0.06<br />
0.04<br />
0.02<br />
Módulo <strong>de</strong> los coeficientes espectrales <strong>de</strong> x(t)<br />
0<br />
-300 -200 -100 0 100 200 300<br />
Frecuencia (Hz)<br />
Capítulo 6: <strong>Transformada</strong> <strong>Discreta</strong> <strong>de</strong> <strong>Fourier</strong> (<strong>DFT</strong>)<br />
56
17/11/99<br />
FFT con MATLAB: fftej5.m →<br />
Fase X[k]<br />
150<br />
100<br />
50<br />
-50<br />
-100<br />
0<br />
5º Curso-Tratamiento Digital <strong>de</strong> Señal<br />
→ x(t)=sin(2·π·200·t-5·<br />
x(t)=sin(2· ·200·t-5· exp(-2·t)) exp(-2·t))<br />
N=256 D=0.5 s<br />
-150<br />
-300 -200 -100 0 100 200 300<br />
Frecuencia (Hz)<br />
Comparación entre el espectro <strong>de</strong> señales moduladas<br />
en amplitud (x) y moduladas en frecuencia (o)<br />
80<br />
70<br />
60<br />
50<br />
40<br />
30<br />
20<br />
10<br />
Fase <strong>de</strong> los coeficientes espectrales X[k]<br />
0<br />
160 170 180 190 200 210 220 230 240<br />
Capítulo 6: <strong>Transformada</strong> <strong>Discreta</strong> <strong>de</strong> <strong>Fourier</strong> (<strong>DFT</strong>)<br />
57
17/11/99<br />
FFT con MATLAB: fftej7.m →<br />
x(t)<br />
|X[k]|<br />
1<br />
0.8<br />
0.6<br />
0.4<br />
0.2<br />
0<br />
-0.2<br />
-0.4<br />
-0.6<br />
→ x(t)=exp x(t)= exp(-2·t)·sin(2· (-2·t)·sin(2·π·3·t) ·3·t)<br />
N=16 D=1 s<br />
Puntos <strong>de</strong> muestreo (--) y Reconstrucción a partir <strong>de</strong> X[k] (o)<br />
-0.8<br />
0 0.2 0.4 0.6 0.8 1<br />
Tiempo (s)<br />
0.25<br />
0.2<br />
0.15<br />
0.1<br />
0.05<br />
Módulo <strong>de</strong> los coeficientes espectrales <strong>de</strong> x(t)<br />
0<br />
-8 -6 -4 -2 0 2 4 6 8<br />
Frecuencia (Hz)<br />
5º Curso-Tratamiento Digital <strong>de</strong> Señal<br />
Capítulo 6: <strong>Transformada</strong> <strong>Discreta</strong> <strong>de</strong> <strong>Fourier</strong> (<strong>DFT</strong>)<br />
58
17/11/99<br />
FFT con MATLAB: fftej7.m →<br />
Fase X[k]<br />
x(t)<br />
200<br />
150<br />
100<br />
50<br />
0<br />
-50<br />
-100<br />
-150<br />
→ x(t)=exp x(t)= exp(-2·t)·sin(2· (-2·t)·sin(2·π·3·t) ·3·t)<br />
N=16 D=1 s<br />
Fase <strong>de</strong> los coeficientes espectrales X[k]<br />
-200<br />
-8 -6 -4 -2 0 2 4 6 8<br />
Frecuencia (Hz)<br />
1<br />
0.8<br />
0.6<br />
0.4<br />
0.2<br />
0<br />
-0.2<br />
-0.4<br />
-0.6<br />
Comparación entre x(t) y su reconstrucción a partir <strong>de</strong> X[k]<br />
-0.8<br />
0 0.5 1<br />
Tiempo (t)<br />
1.5 2<br />
5º Curso-Tratamiento Digital <strong>de</strong> Señal<br />
Capítulo 6: <strong>Transformada</strong> <strong>Discreta</strong> <strong>de</strong> <strong>Fourier</strong> (<strong>DFT</strong>)<br />
59
17/11/99<br />
FFT con MATLAB: fftej7.m →<br />
Fase X[k]<br />
|X[k]|<br />
0.6<br />
0.5<br />
0.4<br />
0.3<br />
0.2<br />
0.1<br />
2000<br />
1500<br />
1000<br />
500<br />
-500<br />
-1000<br />
5º Curso-Tratamiento Digital <strong>de</strong> Señal<br />
→ x(t)= (1+t 2 /2)·sin(2·π·5·t)+ /2)·sin(2· ·5·t)+ 0.2·chirp(20-60)<br />
N=128 D=1 s<br />
Módulo <strong>de</strong> los coeficientes espectrales <strong>de</strong> x(t) |X[k]|<br />
-80<br />
0<br />
-60 -40 -20 0 20 40 60 80<br />
Frecuencia (Hz)<br />
0<br />
Fase <strong>de</strong> los coeficientes espectrales X[k]<br />
-1500<br />
-80 -60 -40 -20 0 20 40 60 80<br />
Frecuencia (Hz)<br />
Capítulo 6: <strong>Transformada</strong> <strong>Discreta</strong> <strong>de</strong> <strong>Fourier</strong> (<strong>DFT</strong>)<br />
60
17/11/99<br />
FFT con MATLAB: fftej8.m →<br />
x(t)<br />
2.5<br />
-0.5<br />
-1.5<br />
2<br />
1.5<br />
1<br />
0.5<br />
0<br />
-1<br />
-2<br />
5º Curso-Tratamiento Digital <strong>de</strong> Señal<br />
→ x(t)= (1+t 2 /2)·sin(2·π·5·t)+ /2)·sin(2· ·5·t)+ 0.2·chirp(20-60)<br />
N=128 D=1 s<br />
Comparación entre x(t) y su reconstrucción a partir <strong>de</strong> X[k]<br />
-2.5<br />
0 0.5 1 1.5<br />
Tiempo (t)<br />
Capítulo 6: <strong>Transformada</strong> <strong>Discreta</strong> <strong>de</strong> <strong>Fourier</strong> (<strong>DFT</strong>)<br />
61
17/11/99<br />
|X[k]|<br />
FFT con MATLAB: goodbye.m<br />
N=4096 Fs=22050 Hz Nh=1000 Nh=1000<br />
goodbye.au<br />
0.25<br />
0.2<br />
0.15<br />
0.1<br />
0.05<br />
0<br />
-0.05<br />
-0.1<br />
-0.15<br />
-0.2<br />
-0.25<br />
0 0.05 0.1 0.15 0.2<br />
Tiempo (s)<br />
-1.5 -1 -0.5 0 0.5 1 1.5<br />
x 10 4<br />
-4<br />
9<br />
x 10<br />
8<br />
7<br />
6<br />
5<br />
4<br />
3<br />
2<br />
1<br />
Espectro <strong>de</strong> goodbye.au<br />
0<br />
Frecuencia (Hz)<br />
5º Curso-Tratamiento Digital <strong>de</strong> Señal<br />
Capítulo 6: <strong>Transformada</strong> <strong>Discreta</strong> <strong>de</strong> <strong>Fourier</strong> (<strong>DFT</strong>)<br />
62
17/11/99<br />
|X[k]<br />
FFT con MATLAB: goodbye.m<br />
N=4096 Fs=22050 Hz Nh=1000 Nh=1000<br />
9 x 10 -4 Espectro <strong>de</strong> goodbye.au filtrado<br />
8<br />
7<br />
6<br />
5<br />
4<br />
3<br />
2<br />
1<br />
-1.5 -1 -0.5 0 0.5 1 1.5<br />
x 10 4<br />
0<br />
5º Curso-Tratamiento Digital <strong>de</strong> Señal<br />
Capítulo 6: <strong>Transformada</strong> <strong>Discreta</strong> <strong>de</strong> <strong>Fourier</strong> (<strong>DFT</strong>)<br />
63
17/11/99<br />
Amplitud y(t)<br />
0.03<br />
0.02<br />
0.01<br />
-0.01<br />
-0.02<br />
-0.03<br />
FFT con MATLAB: good_wnd good_wnd.m<br />
.m<br />
Ni=1245 Ni=1245<br />
Nw=128 Nw=128<br />
Nh=10 Nh=10<br />
Fs=22050 Hz<br />
0<br />
Señal (--) y Recontrucción con 10 armónicos (--)<br />
-0.04<br />
0.056 0.057 0.058 0.059 0.06 0.061 0.062 0.063<br />
Tiempo (s)<br />
|Y[k]|<br />
-1.5 -1 -0.5 0 0.5 1 1.5<br />
x 10 4<br />
0.9<br />
0.8<br />
0.7<br />
0.6<br />
0.5<br />
0.4<br />
0.3<br />
0.2<br />
0.1<br />
Espectro <strong>de</strong> la señal (--) y filtrado (--)<br />
0<br />
Frecuencia (Hz)<br />
5º Curso-Tratamiento Digital <strong>de</strong> Señal<br />
Capítulo 6: <strong>Transformada</strong> <strong>Discreta</strong> <strong>de</strong> <strong>Fourier</strong> (<strong>DFT</strong>)<br />
64