Story Transcript
5º Curso-Tratamiento Digital de Señal
Transformada Discreta de Fourier (DFT) ❒ ❒
17/11/99
Transformada Discreta de Fourier FFT (Fast Fourier Transform)
Capítulo 6: Transformada Discreta de Fourier (DFT)
1
5º Curso-Tratamiento Digital de Señal
Transformada Discreta de Fourier ❒
❒
❒
Antes de definir la DFT, analizaremos primero la Transformada de Fourier en tiempo discreto (DTFT). La DTFT describe el espectro de señales discretas. Deduciremos la DFT a partir de la convolución discreta explicada en el Capítulo 2. Allí se definió la convolución∞ discreta como y[n] = x[n]∗ h[n] =
◆
∑ x [k ]h [n − k ]
k =−∞
s
s
Si tenemos una señal de entrada armónica x[n]=exp(j2πnfts), la respuesta y[n] es ∞ y[n] = ∑ exp[ j 2π (n − k ) ft s ] ⋅ h[k ] k =−∞
∞
= exp( j 2πnft s ) ∑ exp( − j 2πkft s ) ⋅ h[k ] = x[n]⋅ H ( f ) k =−∞
◆
17/11/99
H(f) es la DTFT de la señal discreta h[n]. Nótese que la función H(f) es periódica, debido a que h[n] es una función discreta. Capítulo 6: Transformada Discreta de Fourier (DFT)
2
5º Curso-Tratamiento Digital de Señal
Transformada Discreta de Fourier ❒
Se define la DTFT de∞ una señal discreta x[n] como X( f ) =
❒
∑ x[k ]exp(− j 2πkfts )
k =−∞
Dualidad entre las series de Fourier y la DTFT ◆
Tenemos una señal periódica continua xp(t). Mediante las series de Fourier transformamos esa señal periódica continua en una función XS[k]). aperiódica y discreta (los coeficientes espectrales ∞ 1 X S [k ] = ∫ x p (t ) exp(− j 2πkf0 t )dt x p (t ) = ∑ X S [k ]exp( j 2πkf0 t ) T T
◆
k =−∞
De una manera dual, podemos intercambiar tiempo y frecuencia de forma ∞ 1 xS [k] =
SF
∫
SF
X P ( f )exp( j2πkfts )df
XP ( f ) =
∑x [n]exp(− j2πkft )
k =−∞
S
s
donde SF=1/ts . Ahora tenemos una señal aperiódica discreta xs[k] y la transformamos en una señal periódica continua (Xp(f)) mediante la DTFT.
17/11/99
Capítulo 6: Transformada Discreta de Fourier (DFT)
3
5º Curso-Tratamiento Digital de Señal
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 señal x(t), temporal, continua y periódica (periodo T) y obtengo los coeficientes X[k], que es una función de la frecuencia, aperiódica y discreta con una distancia entre dos valores consecutivos de f0=1/T. En la DTFT parto de una señal discreta en el tiempo x[n], con periodo de muestreo ts=1/fs y aperiódica y obtengo una función X(f), que es función continua de la frecuencia y periódica 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 2πkft s ) = 1 k =−∞ Si tenemos una secuencia x[n]={1,0,3,-2}, a partir de la anterior ecuación y aplicando la propiedad del desplazamiento, X ( f ) = 1 + 3 exp(− j 4πft s ) − 2 exp(− j 6πft s )
17/11/99
Capítulo 6: Transformada Discreta de Fourier (DFT)
4
5º Curso-Tratamiento Digital de Señal
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 señales continuas o con series de datos de longitud infinita. La electrónica nos obliga a trabajar con un número finito de datos discretos que además tienen una precisión finita. De lo que se trata es de conseguir discretizar las variables continuas y de limitar el números 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
Capítulo 6: Transformada Discreta de Fourier (DFT)
5
5º Curso-Tratamiento Digital de Señal
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) ∞ 1 xP (t ) = ∑ X S [k ]exp( j 2πkf0t ) X S [k ] = ∫ xP (t )⋅ exp(− j2πkf0t )⋅ dt T T k =−∞ Para limitar xp(t), tomamos N muestras de xp(t) durante un periodo a intervalos ts, de forma que N·ts=T. Al calcular los coeficientes X[k] me queda, 1 N −1 X [k ] =
Nt s
1 = N ◆
17/11/99
∑ x [n]⋅ exp(− j 2πkf nt )⋅ t P
n =0
N −1
0
s
∑ x [n]⋅ exp(− j 2πkn / N ) n =0
P
s
k = 0,1,2 , N − 1
La cantidad X[k] es la serie de Fourier Discreta de la señal periódica muestreada xP[n].
Capítulo 6: Transformada Discreta de Fourier (DFT)
6
5º Curso-Tratamiento Digital de Señal
Transformada Discreta de Fourier ❒
De la DTFT a la DFT ◆
◆ ◆
Tenemos una señal x[n] limitado a N muestras con un periodo de N −1 muestreo ts. x[ n ] ⋅ exp(− j 2πnft s ) La DTFT se define como X P ( f ) = ∑ n=0 XP(f) es periódica con periodo 1/ts. Muestreamos esta señal N veces sobre un periodo, por tanto XT[k] será sustituir f por k/(Nts) : N −1
[
]
X T [ k ] = ∑ x[n] ⋅ exp − j 2πnkt s / ( Nt s ) n=0
N −1
= ∑ x[n] ⋅ exp[− j 2πnk / N ] n=0
◆
17/11/99
k = 0,1,2, , N − 1
Esta última expresión resultante es la Transformada Discreta de Fourier de una señal x[n]. Excepto por el término 1/N es idéntica a la Serie Discreta de Fourier.
Capítulo 6: Transformada Discreta de Fourier (DFT)
7
5º Curso-Tratamiento Digital de Señal
Transformada Discreta de Fourier ❒
Transformada Discreta inversa (IDFT), 1 N −1 x[n] = ∑ X T [k ]exp( j 2πnk / N ) N k =0
❒
n = 0,1,2,, N − 1
Convolución Circular o Cíclica ◆
◆
17/11/99
La convolución normal entre dos señales periódicas es cero o infinito. Para este tipo de señales se define la convolución 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 convolución circular requiere que las dos secuencias sean del mismo tamaño. Si no fuera así habría que llenar de ceros la secuencia más corta.
Capítulo 6: Transformada Discreta de Fourier (DFT)
8
5º Curso-Tratamiento Digital de Señal
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 2πkm / N ) = X T [k ] ⋅ WNkm
Modulacion
WN− nm ⋅ x[n] ↔ X T [k − m]
Simetria
1 X T [k ] • YT [k ] N x[− n] ↔ X T [− k ] = X T∗ [k ]
Conjugado
x ∗ [n] ↔ X T∗ [− k ]
Producto
x[n]y[n] ↔
Convolucion Circular x[n] • y[n] ↔ X T [k ]YT [k ]
17/11/99
Correlacion
x[n] • y ∗ [− n] ↔ X T [k ]YT∗ [k ]
Ecuacion de Parseval
∑
x[n] = 2
1 2 X k [ ] ∑ T N
Capítulo 6: Transformada Discreta de Fourier (DFT)
9
5º Curso-Tratamiento Digital de Señal
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 k=3
X T [2] = ∑ x[n]exp(− j 2π 2 / 4) = 1 + 2 exp(− jπ ) + exp(− j 2π ) = 0
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
Capítulo 6: Transformada Discreta de Fourier (DFT)
10
5º Curso-Tratamiento Digital de Señal
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 señal periódica discreta cuyos muestreos coinciden con la secuencia xs[n]. Como el espectro de una señal aperiódica discreta cuyos muestreos corresponden a la secuencia xs[n].
EL DFT es una aproximación al espectro de la señal analógica original. Su magnitud se ve influenciada por el intervalo de muestreo, mientras que su fase depende de los instantes de muestreo.
17/11/99
Capítulo 6: Transformada Discreta de Fourier (DFT)
11
5º Curso-Tratamiento Digital de Señal
Transformada Discreta de Fourier ❒
Como hacer la DFT a partir de una señal 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 expensión 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 señal. x(t)
-3
17/11/99
-2
-1
x p (t)
0
1
2
3
T
-3
-2
-1
0
1
2
3
T
Capítulo 6: Transformada Discreta de Fourier (DFT)
12
5º Curso-Tratamiento Digital de Señal
Transformada Discreta de Fourier ❒
DFT de señales periódicas ◆
Siendo x(t)=sin(2πft), con f=1KHz, D=1ms y N=8 tenemos la siguiente secuencia de muestreos : x[n]={0,0.7071,1,0.7071,0,-0.7071,-1,-0.7071} Sinusoide 1KHz, D=1ms, N=8 1
Amplitud
0.5 0 -0.5 -1 0
0.2
0.4 0.6 Tiempo (s)
0.8
-3 1
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
Capítulo 6: Transformada Discreta de Fourier (DFT)
13
5º Curso-Tratamiento Digital de Señal
Transformada Discreta de Fourier DFT
5
5
4
4 Magnitud DFT
Magnitud DFT
DFT
3 2 1 00
◆
2
4 Indice k
6
3 2 1 0 -4000
8
-2000 0 Frecuencia (Hz)
2000
x(t)=sin(2πft), 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
Capítulo 6: Transformada Discreta de Fourier (DFT)
14
5º Curso-Tratamiento Digital de Señal
Transformada Discreta de Fourier DFT
Sinusoide 1KHz, D=1ms, N=8 8
0.7
0.8
7
0.6
0.6
6
1
0.5
Magnitud DFT
0.4 Amplitud
0.2 0 -0.2 -0.4
5 0.4 4 0.3 3 0.2
2
-0.6
0.1
1
-0.8 -1 0
1
◆
2
4
5 -4
x 10
0 0
1
2
3
4 Indice k
5
6
7
8
0 -8000
-6000
-4000
-2000
0
2000
4000
6000
En este nuevo ejemplo, la frecuencia de muestreo es 16KHz. Los X[k] son reales, por lo que la función tiene simetría par. Para la onda dada, los coeficientes exactos de Fourier son : ✦ ✦
✦
17/11/99
3 Tiempo (s)
XS[0]=1/π XS[k]=2/π(1-4k2) Comparando XS[0]≈X[0] XS[1]≈X[1] dentro del 5% de precisión Para los términos con k=2,3..., X[k] se desvía bastante del término exacto debido a que la señal no tiene un espectro limitado, produciéndose aliasing. Capítulo 6: Transformada Discreta de Fourier (DFT)
15
5º Curso-Tratamiento Digital de Señal
Transformada Discreta de Fourier x(t)=sin(2πft), con f=1KHz, D=1.5ms y N=24.
◆
DFT
Sinusoide 1KHz, D=1ms, N=8 1 0.8
20
0.6 Magnitud DFT
0.4 Amplitud
0.2 0 -0.2 -0.4 -0.6
15
10
5
-0.8 -1
0 0
0.5
1
1.5
Tiempo (s)
x 10
0
5
10
15
20
Indice k
-3
DFT
Magnitud DFT
20 15 10 5 0
17/11/99
-5000
0 Frecuencia (Hz)
5000
Capítulo 6: Transformada Discreta de Fourier (DFT)
16
5º Curso-Tratamiento Digital de Señal
Transformada Discreta de Fourier ✦
◆
En este ejemplo se ha producido el denominado “leakage”, que consiste en que las componentes originales de la señal se derraman hacia las nuevas componentes de la señal. Para evitarlo, se debe muestrear un número entero de periodos, o bien utilizar alguna de las ventanas espectrales (ventana de Hamming, etc).
Podría ocurrir que no conocieramos el periodo de la señal de la cual queremos calcular el DFT. En ese caso se muestrea una señal de duración lo más larga posible. De esta forma, se reduce el “leakage” y el espacio entre frecuencias obteniéndose una buena estimación del Sinusoide 1KHz espectro original. 1
Amplitud
0.5 0 -0.5 -1 0
17/11/99
0.001
0.002
0.003
0.004
0.005 0.006 Tiempo (s)
0.007
0.008
0.009
0.01
Capítulo 6: Transformada Discreta de Fourier (DFT)
17
5º Curso-Tratamiento Digital de Señal
Transformada Discreta de Fourier DFT
Magnitud DFT
80 60 40 20 0 -4000 -3000 -2000 -1000 0 1000 Frecuencia (Hz)
❒
2000
3000
DFT de señales aperiódicas ◆
17/11/99
La señal aperiódica x(t) debe ser muestreada durante un tiempo D. El DFT produce los coeficientes espectrales correspondientes a la extensión periódica de x(t) con periodo D. El espacio entre frecuencias es f0=1/D. A f0 se le denomina resolución frecuencial. Esta depende sólo de la duración. Si la señal está limitada en el tiempo, la forma de aumentar la duración es añadir ceros. Capítulo 6: Transformada Discreta de Fourier (DFT)
18
5º Curso-Tratamiento Digital de Señal
Transformada Discreta de Fourier Señal x(t)=exp(-t)
Señal x(t)=exp(-t)
1.5
5 4.5 4 3.5
1 Magnitud
Magnitud
3
0.5
2.5 2 1.5 1 0.5
0
0
0.5
1 Tiempo (s)
1.5
0 -4
2
-3
-2
Señal x(t)=exp(-t)
-1 0 1 Frecuencia (Hz)
2
3
4
1
1.5
2
Señal x(t)=exp(-t)
1.5
2.5
2 1 Magnitud
Magnitud
1.5
1
0.5 0.5
0
17/11/99
0
0.5
1
1.5
2 Tiempo (s)
2.5
3
3.5
4
0 -2
-1.5
-1
-0.5 0 0.5 Frecuencia (Hz)
Capítulo 6: Transformada Discreta de Fourier (DFT)
19
5º Curso-Tratamiento Digital de Señal
Transformada Discreta de Fourier ❒
❒
❒
Tal y como se observa en las figuras de la páginas anteriores hay varias formas de dibujar la gráfica 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 simétrico respecto a N/2. Otra forma es reordenando los datos en función de la frecuencia. De la definición de DFT sabemos que cada intervalo de la DFT es 1/(Nts). La DFT nos da la Transformada de Fourier para las frecuencias -(N/2)/(Nts),...,-1/(Nts),0, 1/(Nts), 2/(Nts)...(N/2-1)/(Nts) f k
❒
(N/2) ,..., N-1 ,0,
1
,
2 ...
(N/2-1)
La máxima frecuencia detectable por la DFT es lógicamente fs/2, de acuerdo con el Teorema del Muestreo.
17/11/99
Capítulo 6: Transformada Discreta de Fourier (DFT)
20
5º Curso-Tratamiento Digital de Señal
Transformada Discreta de Fourier ❒
❒
❒
❒
En general, el DFT es una aproximación a las series o a la transformada de Fourier. Es muy importante elegir correctamente los parámetros del DFT (frecuencia de muestreo fs=1/ts, resolución de frecuencia f0=1/D). La frecuencia de muestreo se determina a partir del teorema de muestreo. Si queremos detectar el espectro de una señal hasta una máxima frecuencia B , la frecuencia de muestreo deberá ser 2B. La duración del muestreo se elige para una determinada resolución de frecuencia. Una regla de diseño muy útil es: Si queremos los M primeros armónicos de una señal con un error máximo del 5%, el número de muestreos N=8M.
17/11/99
Capítulo 6: Transformada Discreta de Fourier (DFT)
21
5º Curso-Tratamiento Digital de Señal
Transformada Discreta de Fourier ❒
Ejemplo: Queremos determinar mediante un algoritmo digital el espectro de la señal x(t)=exp(-t). La máxima frecuencia de la que pide su coeficiente es fB=1Hz. Además el armónico correspondiente a f=0.3Hz debe tener un error menor que el 5%. Calcular fs,D y N. ◆ ◆
◆
◆
17/11/99
De acuerdo con el Teorema del Muestreo fs=2fB=2Hz. Escogemos una resolución 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 cálculos del DFT), se puede elegir f0=0.3Hz, D=1/0.3=3.33s, k=1 y N=1· 8=8.
Capítulo 6: Transformada Discreta de Fourier (DFT)
22
5º Curso-Tratamiento Digital de Señal
Transformada Discreta de Fourier Señal x(t)=exp(-t)
Señal x(t)=exp(-t)
1.5
1.2
1
0.8 Magnitud
Magnitud
1
0.6
0.5
0.4
0.2
0
0
2
4
6 Tiempo (s)
8
0 -1.5
10
-1
-0.5
Señal x(t)=exp(-t)
0 Frecuencia (Hz)
0.5
1
1.5
Señal x(t)=exp(-t)
1.5
1 0.9 0.8 0.7
1 Magnitud
Magnitud
0.6
0.5
0.5 0.4 0.3 0.2 0.1
0
0
17/11/99
0.5
1
1.5 2 Tiempo (s)
2.5
3
0 -1.5
-1
-0.5 0 Frecuencia (Hz)
0.5
1
Capítulo 6: Transformada Discreta de Fourier (DFT)
23
5º Curso-Tratamiento Digital de Señal
Transformada Discreta de Fourier ❒
Ventanas espectrales: Si tenemos señales truncadas, el espectro de la señal muestra unos picos que no decaen lo suficientemente rápido con la frecuencia. Para ello podemos utilizar ventanas en el dominio temporal para suavizar esas discontinuidades. Los picos serán menores aunque el ancho de banda de cada lóbulo aumentará.
17/11/99
Capítulo 6: Transformada Discreta de Fourier (DFT)
24
5º Curso-Tratamiento Digital de Señal
Resumen de Series y Transformadas de Fourier ❒
Series de Fourier ◆
❒
Transformada de Fourier ◆
❒
Señal Continua Aperiódica, Espectro Continuo Aperiódico.
Transformada de Fourier Discreta en el Tiempo ◆
❒
Señal Continua Periódica (periodo T), Espectro Discreto Aperiódico (intervalo de discretización 1/T)
Señal Discreta Aperiódica (intervalo de discretización ts), Espectro Continuo Periódico (periodo 1/ ts)
Transformada Discreta de Fourier ◆
17/11/99
Señal Discreta Periódica (intervalo de discretización ts, periodo T), Espectro Discreto (intervalo de discretización 1/T)
Capítulo 6: Transformada Discreta de Fourier (DFT)
25
5º Curso-Tratamiento Digital de Señal
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 rápida. El DFT de una secuencia x[n] es : N −1 X[ k ] =
∑ x[n]WNnk
k = 0,1, , N − 1
n=0
donde
WN = e − j 2π / N
Una primera aproximación al cálculo del DFT requeriría 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 cálculo del DFT introduciendo “atajos” matemáticos para reducir drasticamente el número de operaciones. 17/11/99
Capítulo 6: Transformada Discreta de Fourier (DFT)
26
5º Curso-Tratamiento Digital de Señal
FFT (Fast Fourier Transform) ❒
La optimización del proceso de cálculo del DFT está basado en las siguientes ideas : ◆
◆
❒
Simetría y Periodicidad de los términos 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 más habitual es 2, de forma que N=2m y algoritmo se denomina FFT radix-2.
Radix-2 FFT-Decimación en el Tiempo. ◆
17/11/99
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.
Capítulo 6: Transformada Discreta de Fourier (DFT)
27
5º Curso-Tratamiento Digital de Señal
FFT (Fast Fourier Transform) X[k ] =
N / 2 −1
∑ x[2n]W
2 nk N
n=0
Sustituimos
+
N / 2 −1
∑ x[2n + 1]W n=0
( 2 n +1) k N
=
N / 2 −1
∑ x[2n]W
2 nk N
+W
n=0
k N
N / 2 −1
∑ x[2n + 1]WN2 nk n=0
x1 [n] = x[2 n] x 2 [n] = x[2 n + 1] WN2 nk = WNnk/ 2
X[k ] = ◆
N / 2 −1
∑ x1 [n]W n=0
nk N /2
+W
k N
N / 2 −1
∑ x 2 [n]WNnk/ 2 = Y[k ] + WNk Z[k ]
k = 0,1,2,, N − 1
n=0
Esta última ecuación 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 término 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
17/11/99
k = 0,1, , N / 2 − 1 Capítulo 6: Transformada Discreta de Fourier (DFT)
28
5º Curso-Tratamiento Digital de Señal
FFT (Fast Fourier Transform) Y[0] x[0]
Y[1] x[2]
+
X[0]
+
X[1]
+
X[N/2-1]
+
X[N/2]
+
X[N/2+1]
+
X[N-1]
DFT N/2 Puntos Y[N/2-1] x[N-2]
W0 Z[0] x[1]
x
-1
W1 Z[1] x[3]
-1
x
DFT N/2 Puntos WN / 2 - 1 Z[N/2-1] x[N-1]
◆
-1
x
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 ] Para
17/11/99
k = 0,1,, N / 4 − 1
Z[k + N / 4] = R[k ] − WN2 k S[k ] Para
k = 0,1,, N / 4 − 1
Capítulo 6: Transformada Discreta de Fourier (DFT)
29
5º Curso-Tratamiento Digital de Señal
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]
+
+
X[1]
-1
+
+
X[2]
-1
+
+
X[3]
-1
+
X[4]
-1
+
X[5]
-1
+
X[6]
-1
+
X[7]
+ 0 W
x[4]
x
-1
+ 0 W
x[2]
+
x
0
2
W
x[6]
W
x
-1
+
x
0 W
x[1]
+
+
x
0
1
W
x[5]
W
x
-1
+
+
x
0
2
W
x[3]
+
W
x
0
x
x 3
W -1
+
Etapa 1
17/11/99
+
2
W
x[7]
-1
W
x
-1
Etapa 2
+
x
Etapa 3
Capítulo 6: Transformada Discreta de Fourier (DFT)
30
5º Curso-Tratamiento Digital de Señal
FFT (Fast Fourier Transform) ◆
Las características de una FFT de N puntos decimada en el tiempo se sumarizan en la siguiente tabla :
Número de Grupos Butterflies por Grupo Exponentes Twiddle Factors ◆
17/11/99
Etapa 1
Etapa 2
Etapa 3
Etapa log2N
N/2
N/4
N/8
1
1
2
4
N/2
(N/2)k, k=0
(N/4)k, k=0,1
(N/8)k, k, k=0,1,2,3 k=0,1,...,N/2-1
Por cada butterfly tenemos una multiplicación y dos sumas complejas. Hay N/2 butterflies por etapa y log2N etapas. ✦
El número total de multiplicaciones es ½N·log2N .
✦
El número total de sumas es N·log2N .
Capítulo 6: Transformada Discreta de Fourier (DFT)
31
5º Curso-Tratamiento Digital de Señal
FFT (Fast Fourier Transform) ◆
❒
Para pequeños valores de N, la diferencia puede parecer pequeña, pero para valores grandes la diferencia es enorme. Para un DFT de 1024 puntos, el número de multiplicaciones en un FFT es aprox. 5000 mientras que para un DFT normal es de aprox. 106.
Radix-2 FFT-Decimación 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. X[k ] = =
N −1
∑ x[n]W n=0
N / 2 −1
∑ x[n]W n=0
=
nk N
N / 2 −1
∑ x[n]W n=0
=
nk N
N / 2 −1
nk N
=
N / 2 −1
∑ x[n]W
nk N
n=0
+
+
N −1
∑ x[n]WNnk
n= N / 2
N / 2 −1
∑ x[n + N / 2]WN( n+ N / 2 )k n=0
+ (−1)
k
N / 2 −1
∑ x[n + N / 2]WNnk n=0
∑ [x[n] + (−1)k x[n + N / 2]]WNnk
k = 0,1,2, , N − 1
n=0
17/11/99
Capítulo 6: Transformada Discreta de Fourier (DFT)
32
5º Curso-Tratamiento Digital de Señal
FFT (Fast Fourier Transform) ◆
La decimación en frecuencia se obtiene dividiendo la secuencia de salida (X[k]) en dos ecuaciones, una para los índices pares y otro para los impares. X[2 k ] =
N / 2 −1
2 nk x n x n N W / 2 + + [ ] [ ] [ ] ∑ N n=0
=
N / 2 −1
∑ [ x[n] + x[n + N / 2]]WNnk/ 2
k = 0,1, , N / 2 − 1
n=0
X[2 k + 1] =
N / 2 −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
◆
17/11/99
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. Capítulo 6: Transformada Discreta de Fourier (DFT)
33
5º Curso-Tratamiento Digital de Señal
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[1]
x 1 W
x[N/2+1]
-1
+
X[3]
x
DFT N/2 Puntos N/2-1 W
x[N-1]
17/11/99
-1
+
x
X[N-1]
Capítulo 6: Transformada Discreta de Fourier (DFT)
34
5º Curso-Tratamiento Digital de Señal
FFT (Fast Fourier Transform) Butterfly
x[0]
+
x[1]
+
x[2]
x[5] x[6] x[7]
-1
+
-1 -1 -1 -1
Etapa 1 17/11/99
-1
+ + +
+ +
x
+
x x
-1 -1
x W2
+
W3 +
-1
W0 +
x
X[4]
W0
W0 x W1 W2
X[0]
+
+
+
x[3]
x[4]
+
+ +
Etapa 2
x
X[2]
+
-1
W0 +
x
X[1]
+
-1 W0 x W2 x
W0 +
x
X[5] X[3]
+
-1
X[6]
W0 +
x
X[7]
Etapa 3
Capítulo 6: Transformada Discreta de Fourier (DFT)
35
5º Curso-Tratamiento Digital de Señal
FFT (Fast Fourier Transform) ◆
Las característica del FFT decimado en frecuencia son Etapa 1
Etapa 2
Etapa 3
Número de 1 2 4 Grupos Butterflies por N/2 N/4 N/8 Grupo n, 2n, 4n, Exponentes Twiddle Factors n=0,...,N/2-1 n=0,...,N/4-1 k=0,...,N/8-1 ❒
❒
❒
Etapa log2N N/2 1 (N/2)n, n=0
Se puede observar que en el caso de decimación en el tiempo, la secuencia de entrada debe ser reordenada mientras que la salida aparece en el orden correcto. Para la decimación en frecuencia, la secuencia está en orden mientras que la salida habrá que reordenarla. Se da la circunstancia que esa reordenación es simplemente invertir el índice en binario. Por ejemplo, en la misma posición que x[1] aparece X[4], y 001 invertido es 100.
17/11/99
Capítulo 6: Transformada Discreta de Fourier (DFT)
36
5º Curso-Tratamiento Digital de Señal
FFT (Fast Fourier Transform) ❒
DFT en 2 dimensiones En aplicaciones como procesamiento de imagen, las señales dependen de dos variables n1 y n2 (el eje x y el eje y en una imagen bidimensional). Por tanto necesitamos extender el concepto de DFT a dos dimensiones. Dada una secuencia x(n1,n2), se define la DFT como
◆
◆
(
X k1 , k 2
(
)
)
N1 k1 n1
e
(
)
− j 2 π N 2 k 2 n2
La IDFT de X(k1,k2) se define como
◆
(
x n1 , n2
17/11/99
)
N1 −1N 2 −1 − j (2 π ∑ ∑ x n1 , n2 e = = = n1 0 n2 0 0 , en otro caso
)
1 N1 −1N1 −1 j (2 π X k , k e ∑∑ 1 2 N 1 N 2 k1 = 0 k2 = 0 = 0 , en otro caso
(
)
)
N1 k1 n1
e
(
0 ≤ n1 ≤ N 1 − 1, 0 ≤ n2 ≤ N 2 − 1
)
j 2 π N 2 k2 n2
0 ≤ n1 ≤ N 1 − 1, 0 ≤ n2 ≤ N 2 − 1
Capítulo 6: Transformada Discreta de Fourier (DFT)
37
5º Curso-Tratamiento Digital de Señal
FFT (Fast Fourier Transform) ❒
FFT-2D ◆
◆
Al igual que en el caso de señales unidimensionales, disponemos de un eficiente algoritmo para realizar el DFT. Descomposición Fila-Columna ✦
Reescribimos la ecuación anterior N −1N −1 − j ( 2 π N ) k n − j (2 π N )k n X k ,k = x n ,n e e
(
) ∑∑ ( 1
1
2
2
n1 = 0 n2 = 0
N1 −1
1
2
)
1
( = ∑ f (k1 , n2 )e
)
− j 2 π N 2 k 2 n2
1 1
2
✦
(
) ∑ x (n
)
1 , n2 e
n2 = 0
(
)
− j 2 π N1 k1 n1
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
) ∑ f (k
X k1 , k 2 =
17/11/99
N 2 −1
, donde f k1 , n2 =
n1 = 0
✦
2 2
1
n2 = 0
)
, n2 e
(
)
− j 2 π N 2 k2 n2
Capítulo 6: Transformada Discreta de Fourier (DFT)
38
5º Curso-Tratamiento Digital de Señal
FFT (Fast Fourier Transform) ✦
n2
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)
N 2-1
f(k 1,n 2)
N 2-1
FFT 1D N 1 puntos
n1 N 1-1
17/11/99
k1 N 1-1
Capítulo 6: Transformada Discreta de Fourier (DFT)
39
5º Curso-Tratamiento Digital de Señal
FFT (Fast Fourier Transform) n2
k2
f(k 1 ,n 2 )
N 2 -1
X(k 1 ,k 2 )
N 2 -1
FFT 1D N 2 puntos
k1
k1
N 1 -1
17/11/99
N 1 -1
Número de Multiplicaciones
Número de Sumas
Calculo Directo
N12 N 22
N12 N 22
Descomposición Fila-Columna con FFT 1D
N1 N 2 log2 N1 N 2 2
(
)
(
N1 N 2 log2 N1 N 2
)
Capítulo 6: Transformada Discreta de Fourier (DFT)
40
5º Curso-Tratamiento Digital de Señal
FFT con MATLAB >> X = fft(x) Hace la FFT del vector x. “X” es un vector de números 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 número primo. Otra opción del la FFT es especificar el número 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. También se puede especificar el número 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 función reordenamos los puntos en función de la frecuencia. ❒
A continuación 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
Capítulo 6: Transformada Discreta de Fourier (DFT)
41
5º Curso-Tratamiento Digital de Señal
FFT con MATLAB: fftej1.m → x(t)=sin(2· π·20·t)+chirp(5-40) N=128 D=1 s x(t) 2 1.5 1
x(t)
0.5 0 -0.5 -1 -1.5 -2
0
0.2
0.4 0.6 Tiempo (s)
0.8
1
Módulo de Coeficientes Espectrales |X[k]| 0.6 0.5
|X[k]|
0.4 0.3 0.2 0.1 0 -80
17/11/99
-60
-40
-20 0 20 Frecuencia (Hz)
40
60
80
Capítulo 6: Transformada Discreta de Fourier (DFT)
42
5º Curso-Tratamiento Digital de Señal
FFT con MATLAB: fftej1.m → x(t)=sin(2· π·20·t)+chirp(5-40) N=128 D=1 s Fase de Coeficientes Espectrales X[k] 2000 1500 Fase (º)
1000 500 0 -500 -1000-80
-60
-40
-20 0 20 Frecuencia (Hz)
40
60
80
x(t)
Comparación entre x(t) y su reconstrucción a partir de X[k]
17/11/99
2.5 2 1.5 1 0.5 0 -0.5 -1 -1.5 -2 0
0.2
0.4
Tiempo (t)
0.6
0.8
1
Capítulo 6: Transformada Discreta de Fourier (DFT)
43
5º Curso-Tratamiento Digital de Señal
FFT con MATLAB: fftej1.m → x(t)=sin(2· π·20·t)+chirp(5-40) N=128 D=1 s Comparación entre x(t) y su reconstrucción a partir de X[k] 2 1.5 1
x(t)
0.5 0 -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
Capítulo 6: Transformada Discreta de Fourier (DFT)
44
5º Curso-Tratamiento Digital de Señal
FFT con MATLAB: fftej1.m → x(t)=sin(2· π·20·t)+chirp(5-40) N=32 D=1 s Módulo 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 Frecuencia (Hz)
5
10
15
x(t)
Comparación entre x(t) y su reconstrucción a partir de X[k]
17/11/99
2.5 2 1.5 1 0.5 0 -0.5 -1 -1.5 -2 -2.5 0
0.2
0.4 0.6 Tiempo (t)
0.8
1
Capítulo 6: Transformada Discreta de Fourier (DFT)
45
5º Curso-Tratamiento Digital de Señal
FFT con MATLAB: fftej2.m → x(t)=exp(-2·t)+0.2·chirp(60-100) N=256 D=1 s x(t)=exp(-2t)+0.2·chirp(60-100)
1.2 1
x(t)
0.8 0.6 0.4 0.2 0
|X[k]|
-0.2 0
17/11/99
0.45 0.4 0.35 0.3 0.25 0.2 0.15 0.1 0.05 0 -150
0.2
0.4 0.6 Tiempo (s)
0.8
1
Módulo de los coeficientes espectrales |X[k]|
-100
-50
0 Frecuencia (Hz)
50
100
150
Capítulo 6: Transformada Discreta de Fourier (DFT)
46
5º Curso-Tratamiento Digital de Señal
FFT con MATLAB: fftej2.m → x(t)=exp(-2·t)+0.2·chirp(60-100) N=256 D=1 s 1500
Fase de los coeficientes espectrales X[k]
Fase(X[k]) (º)
1000 500 0 -500
-1000 -1500 -150
1.4
-100
-50
0 Frecuencia (Hz)
50
100
150
Comparación entre x(t) y su reconstrucción a partir de X[k]
1.2 1 x(t)
0.8 0.6 0.4 0.2 0 -0.2 0
17/11/99
0.2
0.4
Tiempo (t)
0.6
0.8
1
Capítulo 6: Transformada Discreta de Fourier (DFT)
47
5º Curso-Tratamiento Digital de Señal
FFT con MATLAB: fftej2.m → x(t)=exp(-2·t)+0.2·chirp(60-100) N=256 D=1 s
Comparación entre x(t) y su reconstrucción a partir de X[k] 1 0.8
x(t)
0.6 0.4 0.2 0 0.96
17/11/99
0.97
0.98 Tiempo (t)
0.99
1
Capítulo 6: Transformada Discreta de Fourier (DFT)
48
5º Curso-Tratamiento Digital de Señal
FFT con MATLAB: fftej2.m → x(t)=exp(-2·t)+0.2·chirp(60-100) N=64 D=0.1 s
|X[k]|
0.1 0.09 0.08 0.07 0.06 0.05 0.04 0.03 0.02 0.01 0 -400
Módulo de los coeficientes espectrales |X[k]|
-300
-200
-100 0 100 Frecuencia (Hz)
200
300
400
Comparación entre x(t) y su reconstrucción a partir de X[k]
1.2 1.1
x(t)
1 0.9 0.8 0.7 0.6
17/11/99
0
0.02
0.04 0.06 Tiempo (t)
0.08
0.1
Capítulo 6: Transformada Discreta de Fourier (DFT)
49
5º Curso-Tratamiento Digital de Señal
FFT con MATLAB: fftej3.m → x(t)=exp(-2·t)·sin(2· π·200·t)
|X[k]|
x(t)
N=128 D=0.2 s
17/11/99
x(t)=exp(-2t)·sin(2· p·200· t)
1 0.8 0.6 0.4 0.2 0 -0.2 -0.4 -0.6 -0.8 -1 0
0.09 0.08 0.07 0.06 0.05 0.04 0.03 0.02 0.01 0 -400
0.05
0.1 Tiempo (t)
0.15
0.2
Módulo de los coeficientes espectrales de x(t)
-300
-200
-100 0 100 Frecuencia (Hz)
200
300
400
Capítulo 6: Transformada Discreta de Fourier (DFT)
50
5º Curso-Tratamiento Digital de Señal
FFT con MATLAB: fftej3.m → x(t)=exp(-2·t)·sin(2· π·200·t) N=128 D=0.2 s
Fase de los coeficientes espectrales X[k]
200 150 100
Fase X[k]
50 0 -50 -100 -150 -200 -400
17/11/99
-300
-200
-100 0 100 Frecuencia (Hz)
200
300
400
Capítulo 6: Transformada Discreta de Fourier (DFT)
51
5º Curso-Tratamiento Digital de Señal
FFT con MATLAB: fftej4.m → x(t)=sin(2· π·200·t+5·sin(2· π·2· t))
|X[k]|
x(t)
N=256 D=0.5 s
17/11/99
1 0.8 0.6 0.4 0.2 0 -0.2 -0.4 -0.6 -0.8 -1 0
0.1 0.09 0.08 0.07 0.06 0.05 0.04 0.03 0.02 0.01 0 -300
x(t)=sin(2·pi·200·t+5·sin(2· pi·2· t)
0.1
0.2
Tiempo (t)
0.3
0.4
0.5
Módulo de los coeficientes espectrales de x(t)
-200
-100
0 Frecuencia (Hz)
100
200
300
Capítulo 6: Transformada Discreta de Fourier (DFT)
52
5º Curso-Tratamiento Digital de Señal
FFT con MATLAB: fftej4.m → x(t)=sin(2· π·200·t+5·sin(2· π·2· t)) N=256 D=0.5 s
Fase de los coeficientes espectrales X[k]
7000 6000 5000
Fase X[k]
4000 3000 2000 1000 0 -1000 -300
17/11/99
-200
-100
0 Frecuencia (Hz)
100
200
300
Capítulo 6: Transformada Discreta de Fourier (DFT)
53
5º Curso-Tratamiento Digital de Señal
FFT con MATLAB: fftej4.m → x(t)=sin(2· π·200·t+5·sin(2· π·2· t))
x(t)
N=128 D=0.2 s x(t)=sin(2·pi·200·t+5·sin(2· pi·2· t)
1 0.8 0.6 0.4 0.2 0 -0.2 -0.4 -0.6 -0.8 -1 0
0.05
0.1 Tiempo (t)
0.15
0.2
Módulo de los coeficientes espectrales de x(t) 0.06 0.05
|X[k]|
0.04 0.03 0.02 0.01 0 -400
17/11/99
-300
-200
-100 0 100 Frecuencia (Hz)
200
300
400
Capítulo 6: Transformada Discreta de Fourier (DFT)
54
5º Curso-Tratamiento Digital de Señal
FFT con MATLAB: fftej4.m → x(t)=sin(2· π·200·t+5·sin(2· π·2· t)) N=128 D=0.2 s Fase de los coeficientes espectrales X[k]
700 600
Fase X[k]
500 400 300 200 100 0 -400
17/11/99
-300
-200
-100 0 100 Frecuencia (Hz)
200
300
400
Capítulo 6: Transformada Discreta de Fourier (DFT)
55
5º Curso-Tratamiento Digital de Señal
FFT con MATLAB: fftej5.m → x(t)=sin(2· π·200·t-5· exp(-2·t))
x(t)
N=256 D=0.5 s 1 0.8 0.6 0.4 0.2 0 -0.2 -0.4 -0.6 -0.8 -1
x(t)=sin(2·pi·200·t-5·exp(-2t))
0
0.18
0.1
0.2
Tiempo (t)
0.3
0.4
0.5
Módulo de los coeficientes espectrales de x(t)
0.16
|X[k]|
0.14 0.12 0.1 0.08 0.06 0.04 0.02 0 -300
17/11/99
-200
-100
0 Frecuencia (Hz)
100
200
300
Capítulo 6: Transformada Discreta de Fourier (DFT)
56
5º Curso-Tratamiento Digital de Señal
FFT con MATLAB: fftej5.m → x(t)=sin(2· π·200·t-5· exp(-2·t)) N=256 D=0.5 s Fase de los coeficientes espectrales X[k]
150 100 Fase X[k]
50 0 -50
-100 -150 -300
-200
-100
0 Frecuencia (Hz)
100
200
300
Comparación entre el espectro de señales moduladas en amplitud (x) y moduladas en frecuencia (o) 80 70 60 50 40 30 20 10 0 160
17/11/99
170
180
190
200
210
220
230
240
Capítulo 6: Transformada Discreta de Fourier (DFT)
57
5º Curso-Tratamiento Digital de Señal
FFT con MATLAB: fftej7.m → x(t)=exp(-2·t)·sin(2· π·3·t)
x(t)
N=16 D=1 s 1 0.8 0.6 0.4 0.2 0 -0.2 -0.4 -0.6 -0.8 0
Puntos de muestreo (--) y Reconstrucción a partir de X[k] (o)
0.2
0.4 0.6 Tiempo (s)
0.8
1
Módulo de los coeficientes espectrales de x(t)
0.25
|X[k]|
0.2 0.15 0.1 0.05 0 -8
17/11/99
-6
-4
-2 0 2 Frecuencia (Hz)
4
6
8
Capítulo 6: Transformada Discreta de Fourier (DFT)
58
5º Curso-Tratamiento Digital de Señal
FFT con MATLAB: fftej7.m → x(t)=exp(-2·t)·sin(2· π·3·t) N=16 D=1 s Fase de los coeficientes espectrales X[k]
200 150 100 Fase X[k]
50 0 -50
-100 -150 -200-8
-4
-2 0 2 Frecuencia (Hz)
4
6
8
Comparación entre x(t) y su reconstrucción a partir de X[k]
x(t)
1 0.8 0.6 0.4 0.2 0 -0.2 -0.4 -0.6 -0.8 0
-6
17/11/99
0.5
1 Tiempo (t)
1.5
2
Capítulo 6: Transformada Discreta de Fourier (DFT)
59
5º Curso-Tratamiento Digital de Señal
FFT con MATLAB: fftej7.m → x(t)= (1+t2/2)·sin(2· π·5·t)+ 0.2·chirp(20-60) N=128 D=1 s Módulo de los coeficientes espectrales de x(t) |X[k]|
0.6 0.5
|X[k]|
0.4 0.3 0.2 0.1 0-80
-60
-40
-20 0 20 Frecuencia (Hz)
40
60
80
60
80
Fase de los coeficientes espectrales X[k]
2000 1500
Fase X[k]
1000 500 0 -500 -1000 -1500 -80
17/11/99
-60
-40
-20 0 20 Frecuencia (Hz)
40
Capítulo 6: Transformada Discreta de Fourier (DFT)
60
5º Curso-Tratamiento Digital de Señal
FFT con MATLAB: fftej8.m → x(t)= (1+t2/2)·sin(2· π·5·t)+ 0.2·chirp(20-60) N=128 D=1 s Comparación entre x(t) y su reconstrucción a partir de X[k]
2.5 2 1.5 1 x(t)
0.5 0 -0.5 -1 -1.5 -2 -2.5
17/11/99
0
0.5
Tiempo (t)
1
1.5
Capítulo 6: Transformada Discreta de Fourier (DFT)
61
5º Curso-Tratamiento Digital de Señal
FFT con MATLAB: goodbye.m N=4096 Fs=22050 Hz Nh=1000 goodbye.au
|X[k]|
0.25 0.2 0.15 0.1 0.05 0 -0.05 -0.1 -0.15 -0.2 -0.25 0
17/11/99
9 x 10 8 7 6 5 4 3 2 1 0 -1.5
0.05 -4
0.1
0.15
Tiempo (s)
0.2
Espectro de goodbye.au
-1
-0.5
0
Frecuencia (Hz)
0.5
1
1.5 4 x 10
Capítulo 6: Transformada Discreta de Fourier (DFT)
62
5º Curso-Tratamiento Digital de Señal
FFT con MATLAB: goodbye.m N=4096 Fs=22050 Hz Nh=1000 9
x 10
-4
Espectro de goodbye.au filtrado
8 7 6
|X[k]
5 4 3 2 1 0 -1.5
-1
-0.5
0
0.5
1
1.5 x 10
17/11/99
4
Capítulo 6: Transformada Discreta de Fourier (DFT)
63
5º Curso-Tratamiento Digital de Señal
FFT con MATLAB: good_wnd.m Ni=1245 Nw=128 Nh=10 Fs=22050 Hz 0.03
Señal (--) y Recontrucción con 10 armónicos (--)
Amplitud y(t)
0.02 0.01 0 -0.01 -0.02 -0.03 -0.04 0.056
0.058
0.059 0.06 Tiempo (s)
0.061
0.062
0.063
Espectro de la señal (--) y filtrado (--)
|Y[k]|
0.9 0.8 0.7 0.6 0.5 0.4 0.3 0.2 0.1 0 -1.5
0.057
17/11/99
-1
-0.5
0 Frecuencia (Hz)
0.5
1
1.5 4 x 10
Capítulo 6: Transformada Discreta de Fourier (DFT)
64