Este documento presenta los conceptos de la Transformada Discreta de Fourier (DFT) y la Transformada Rápida de Fourier (FFT). Explica cómo la DFT descompone una señal discreta en componentes de frecuencia y cómo la FFT puede usarse para calcular eficientemente la DFT. También muestra ejemplos prácticos de aplicar la FFT en Matlab para analizar señales, filtrar ruido y reconstruir señales. El documento concluye con ejercicios propuestos para que los estudiantes apliquen los conceptos.
1. Procesamiento Digital de Señales
(TC61)
Laboratorio: 5
Ing. José C. Benítez P.
La Transformada Discreta de Fourier (DFT) y
la Transformada Rápida de Fourier (FFT)
2. Procesamiento Digital de Señales - Prof. Ing. Jose C. Benitez P. 2
Índice
La Convolución, la Transformada
Discreta de Fourier (DFT) y la
Transformada Rápida de Fourier (FFT)
Objetivo
La DFT y la FFT
DFT
4. La transformada de Fourier y la FFT
4Procesamiento Digital de Señales - Prof. Ing. Jose C. Benitez P.
Una señal periódica puede representarse como
suma de ondas sinusoidales.
Las que nos interesarán especialmente serán las
que tienen unas frecuencias determinadas, y en
eso se basa el análisis de Fourier.
Las frecuencias elegidas son; la frecuencia que
caracteriza la señal que queremos analizar, y sus
múltiplos; el doble, el triple…: f, 2f, 3f, 4f, 5f…
5. La transformada de Fourier y la FFT
5Procesamiento Digital de Señales - Prof. Ing. Jose C. Benitez P.
Y así, cualquier señal podrá descomponerse en una suma
como la siguiente:
Esta forma de descomponer una señal en el dominio
de la frecuencia se llama la Transformación de Fourier.
6. La transformada de Fourier y la FFT
6Procesamiento Digital de Señales - Prof. Ing. Jose C. Benitez P.
La ventaja de elegir estas funciones, que se llamarán armónicos,
es que analizar una señal cualquiera para ver sus componentes
con esas frecuencias será una tarea sencilla.
La formulación matemática para señales discretas se ha
desarrollado en la clase teórica.
Veremos la capacidad de Matlab para obtener las componentes
no ya de una señal continua, sino de la señal discreta que la
representa en forma de muestreo.
Esto se llamará la Transformada Discreta de Fourier (DFT), y hay
muchas formas de calcularla. La más eficiente es la
Transformada Rápida de Fourier (FFT).
7. La transformada de Fourier y la FFT
7Procesamiento Digital de Señales - Prof. Ing. Jose C. Benitez P.
Matlab tiene implementada una función para calcular una FFT:
>>fft(x)
En donde x es nuestra señal discreta (secuencia discreta de
datos).
El resultado numérico de la transformación son números
complejos, que tendrán un módulo –que será la amplitud - y un
ángulo – la fase - de cada una de las componentes.
Además estarán repetidos, dando una serie de datos simétrica.
Nos interesa sólo la mitad. Y además estarán multiplicados por
N/2, siendo N el número de datos de nuestra serie. Si
recuperaremos la última señal que generamos.
8. La transformada de Fourier y la FFT
8Procesamiento Digital de Señales - Prof. Ing. Jose C. Benitez P.
Ejemplo:
>>t=[0:0.01:1];
>>x1=5*sin(4*pi*t);
>>x2=2*sin(8*pi*t+1);
>>x=x1+x2;
>>plot(t,x)
9. La transformada de Fourier y la FFT
9Procesamiento Digital de Señales - Prof. Ing. Jose C. Benitez P.
Si nuestro espacio de tiempo
es 1 seg, nuestra frecuencia f
es 1/1seg = 1Hz. Si hacemos
ahora la fft, y nos quedamos
sólo con las amplitudes (con la
función abs) podemos escribir:
>>y=abs(fft(x));
Lo representaremos ahora con
un nuevo tipo de gráfico: un
gráfico de barras –bar graph-
con la función bar:
>>bar(y)
10. La transformada de Fourier y la FFT
10Procesamiento Digital de Señales - Prof. Ing. Jose C. Benitez P.
Tal y como se dijo, tenemos los datos repetidos en un gráfico
simétrico, nos interesan sólo la mitad, y para ser más concretos,
los primeros, porque a partir de un determinado valor son muy
pequeños.
Podemos representar una parte del gráfico escribiendo
>>bar(y(1:20))
11. La transformada de Fourier y la FFT
11Procesamiento Digital de Señales - Prof. Ing. Jose C. Benitez P.
Nuestro gráfico tiene dos
barras mucho mayores que las
anteriores, vamos a ver lo que
representa cada una.
Nuestras barras representan
las amplitudes de la serie:
La que hemos generado es:
x = x1 + x2 = 5*sin(4*pi*t)+2*sin(8*pi*t+1)
12. La transformada de Fourier y la FFT
12Procesamiento Digital de Señales - Prof. Ing. Jose C. Benitez P.
La que hemos generado es:
x = x1 + x2 = 5*sin(4*pi*t)+2*sin(8*pi*t+1)
La primera barra representa A0, la
componente continua. Nuestra
señal no tenía.
La segunda barra representa la
amplitud A1, correspondiente
frecuencia fundamental f que
tampoco existía en la señal que nos
hemos generado.
Tampoco tenemos en A3.
13. La transformada de Fourier y la FFT
13Procesamiento Digital de Señales - Prof. Ing. Jose C. Benitez P.
En cambio si tenemos componentes con frecuencias 2f y 4f, y eso
es lo que nos muestra el gráfico.
14. La transformada de Fourier y la FFT
14Procesamiento Digital de Señales - Prof. Ing. Jose C. Benitez P.
Como hemos dicho, los valores de amplitudes en el gráfico están
multiplicados por N/2, siendo N el número elementos de la
secuencia (100 en este caso). Si queremos verlos sólo hay que
dividir por N/2.
15. La transformada de Fourier y la FFT
15Procesamiento Digital de Señales - Prof. Ing. Jose C. Benitez P.
>>t=[0:0.01:1];
>>x1=5*sin(4*pi*t);
>>x2=2*sin(8*pi*t+1);
>>x=x1+x2;
>>y=abs(fft(x))/50;
>>bar(y(1:20))
Los pequeños valores (aprox. cero) en otros armónicos se
deben a utilizar pocos puntos para muestrear la señal. El
resultado con 1000 puntos es el siguiente gráfico:
>> t=[0:.001:1];
>> x1=5*sin(4*pi*t);
>> x2=2*sin(8*pi*t+1);
>> x=x1+x2;
>> y=abs(fft(x))/500;
>> bar(y(1:20))
16. La transformada de Fourier y la FFT
16Procesamiento Digital de Señales - Prof. Ing. Jose C. Benitez P.
El resultado con 100 puntos es
el siguiente gráfico:
El resultado con 1000 puntos
es el siguiente gráfico:
17. La transformada de Fourier y la FFT
17Procesamiento Digital de Señales - Prof. Ing. Jose C. Benitez P.
Vamos a probar ahora con la misma señal pero con una
componente continua
>>t=[0:0.01:1];
>>x1=5*sin(4*pi*t);
>>x2=2*sin(8*pi*t+1);
>>x=3+x1+x2;
>> plot(t,x);
18. La transformada de Fourier y la FFT
18Procesamiento Digital de Señales - Prof. Ing. Jose C. Benitez P.
>>y=abs(fft(x))/50;
>>bar(y(1:20))
Podemos ver a A0 en la barra
ahora.
Los valores de amplitud de la
componente continua están
multiplicados por N en lugar
de N/2. Por eso aparece con
valor 6.
19. La transformada de Fourier y la FFT
19Procesamiento Digital de Señales - Prof. Ing. Jose C. Benitez P.
Si ahora en lugar de una componente continua añadimos
el término de alta frecuencia que vimos que podía
representar ruido
>>t=[0:0.01:1];
>>x1=5*sin(4*pi*t);
>>x2=2*sin(8*pi*t+1);
>>x3=0.5*sin(50*pi*t+1);
>>x=x1+x2+x3;
>>plot(t,x)
20. La transformada de Fourier y la FFT
20Procesamiento Digital de Señales - Prof. Ing. Jose C. Benitez P.
Y ahora vemos sus
componentes en la FFT
>>y=fft(x);
>>A=abs(y)/50;
>>bar(A)
En el gráfico de barras
podemos ver ahora la
componente de ruido.
Esa componente podrá ser
eliminada ahora.
La forma más directa es
borrarla en la variable y.
21. La transformada de Fourier y la FFT
21Procesamiento Digital de Señales - Prof. Ing. Jose C. Benitez P.
Para ello podemos
editarla dentro de
Matlab haciendo
doble click en y.
Entraremos en el
editor de tablas,
con un aspecto
similar a una hoja
de cálculo, y en él
podemos
borrar los
elementos que
representan el
ruido, el 26 y el 77.
22. La transformada de Fourier y la FFT
22Procesamiento Digital de Señales - Prof. Ing. Jose C. Benitez P.
La nueva fft será ahora
>>y=abs(y)/50;
>>bar(A);
23. La transformada de Fourier y la FFT
23Procesamiento Digital de Señales - Prof. Ing. Jose C. Benitez P.
En un caso real para
“limpiar” mejor las
componentes de
ruido podríamos
eliminar también los
cercanos (24
al 28, y 75 al 79, se
deja como ejercicio).
24. La transformada de Fourier y la FFT
24Procesamiento Digital de Señales - Prof. Ing. Jose C. Benitez P.
La nueva fft será ahora
>>y=abs(y)/50;
>>bar(A);
25. La transformada de Fourier y la FFT
25Procesamiento Digital de Señales - Prof. Ing. Jose C. Benitez P.
Una vez eliminados podemos
invertir la transformación de
Fourier con el comando ifft.
El resultado, de nuevo es un
número complejo. Nos
interesa sólo su parte real
>>z=ifft(y);
>>plot(real(z))
¡Hemos filtrado la señal!
26. La transformada de Fourier y la FFT
26Procesamiento Digital de Señales - Prof. Ing. Jose C. Benitez P.
Si el muestreo lo hubiésemos hecho con más puntos el
resultado sería mejor, pero el obtenido es suficientemente
bueno para la mayor parte de las necesidades.
>>t=[0:0.005:1];
>>x1=5*sin(4*pi*t);
>>x2=2*sin(8*pi*t+1);
>>x3=0.5*sin(50*pi*t+1);
>>x=x1+x2+x3;
>>plot(t,x)
27. La transformada de Fourier y la FFT
27Procesamiento Digital de Señales - Prof. Ing. Jose C. Benitez P.
>>y=fft(x);
>>bar(abs(y))
28. La transformada de Fourier y la FFT
28Procesamiento Digital de Señales - Prof. Ing. Jose C. Benitez P.
>>y(24:28)=[0,0,0,0,0];
>>y(175:179)=[0,0,0,0,0];
>>z=real(ifft(y));
>>plot(z);
29. La transformada de Fourier y la FFT
29Procesamiento Digital de Señales - Prof. Ing. Jose C. Benitez P.
FTTs en más de una dimensión.
Haremos ahora una breve introducción a la
transformación de Fourier en dos dimensiones, que
no es más que una extensión de los mismos
conceptos.
Al igual que cualquier señal puede representarse
como suma de ondas sinusoidales, cualquier
superficie puede representarse como suma de ondas
sinusoidales en dos dimensiones.
30. La transformada de Fourier y la FFT
30Procesamiento Digital de Señales - Prof. Ing. Jose C. Benitez P.
Dibujaremos una superficie para ver
de qué estamos hablando.
>>t=[0:0.01:1];
>> x1=5*sin(2*pi*t);
>> x2=2*sin(8*pi*t+1);
>> z=x1'*x2;
>> surf(z)
31. La transformada de Fourier y la FFT
31Procesamiento Digital de Señales - Prof. Ing. Jose C. Benitez P.
Y al igual que antes, si la
superficie está dada por un
tabla de datos, podrá ser
transformada, haciendo
ahora una FFT en dos
dimensiones.
Esta transformación dará
como resultado otra tabla
de amplitudes y fases de
ondas como la del dibujo,
también en 2D.
>>y=fft2(z);
>>surf(abs(y))
42. Informe de Laboratorio
42Procesamiento Digital de Señales - Prof. Ing. Jose C. Benitez P.
El informe de laboratorio se presentará con el desarrollo de
todos los ejercicios desarrollados y preguntas de esta
presentación.
El informe debe ser básicamente un documento gráfico en
lo posible y debe adjuntarse los códigos con los comentarios
solicitados en USB.
Lo mas importante de un informe de laboratorio son los
conclusiones, comentarios y observaciones.
Si han utilizado fuentes adicionales, adjuntarlas sólo en USB.
EL Informe presentar impreso y en formato digital (en USB).
43. Presentación
43Procesamiento Digital de Señales - Prof. Ing. Jose C. Benitez P.
Todas las fuentes, archivos utilizados y el Informe deben
presentarse en USB, dentro de una carpeta que lleve las
iniciales del curso, sus Apellidos, guion bajo y luego el numero
de laboratorio. Ejemplo:
PDS_BenitezPalacios_L5
Si adjunta fuentes adicionales, debe conservar el nombre
original y agregar _tema.
Revisar permanentemente el blog del Curso:
http://utppds.blogspot.com.
Las Tareas que no cumplan las indicaciones
no serán recepcionados por el profesor.