Está en la página 1de 42

Procesamiento Digital de Seales

(TC61)
Laboratorio: 5
La Transformada Discreta de Fourier (DFT) y
la Transformada Rpida de Fourier (FFT)

Ing. Jos C. Bentez P.


ndice

La Convolucin, la Transformada
Discreta de Fourier (DFT) y la
Transformada Rpida de Fourier (FFT)

 Objetivo
 La DFT y la FFT
 DFT
Objetivo

 Comprender la DTF.
 Calculo de la DFT mediante
la FFT.
La transformada de Fourier y la FFT

 Una seal peridica puede representarse como


suma de ondas sinusoidales.
 Las que nos interesarn especialmente sern las
que tienen unas frecuencias determinadas, y en
eso se basa el anlisis de Fourier.
 Las frecuencias elegidas son; la frecuencia que
caracteriza la seal que queremos analizar, y sus
mltiplos; el doble, el triple: f, 2f, 3f, 4f, 5f
La transformada de Fourier y la FFT

 Y as, cualquier seal podr descomponerse en una suma


como la siguiente:

Esta forma de descomponer una seal en el dominio


de la frecuencia se llama la Transformacin de Fourier.
La transformada de Fourier y la FFT

 La ventaja de elegir estas funciones, que se llamarn armnicos,


es que analizar una seal cualquiera para ver sus componentes
con esas frecuencias ser una tarea sencilla.
 La formulacin matemtica para seales discretas se ha
desarrollado en la clase terica.
 Veremos la capacidad de Matlab para obtener las componentes
no ya de una seal continua, sino de la seal discreta que la
representa en forma de muestreo.
 Esto se llamar la Transformada Discreta de Fourier (DFT), y hay
muchas formas de calcularla. La ms eficiente es la
Transformada Rpida de Fourier (FFT).
La transformada de Fourier y la FFT

 Matlab tiene implementada una funcin para calcular una FFT:


>>fft(x)
 En donde x es nuestra seal discreta (secuencia discreta de
datos).
 El resultado numrico de la transformacin son nmeros
complejos, que tendrn un mdulo que ser la amplitud - y un
ngulo la fase - de cada una de las componentes.
 Adems estarn repetidos, dando una serie de datos simtrica.
Nos interesa slo la mitad. Y adems estarn multiplicados por
N/2, siendo N el nmero de datos de nuestra serie. Si
recuperaremos la ltima seal que generamos.
La transformada de Fourier y la FFT

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)
La transformada de Fourier y la FFT

Si nuestro espacio de tiempo


es 1 seg, nuestra frecuencia f
es 1/1seg = 1Hz. Si hacemos
ahora la fft, y nos quedamos
slo con las amplitudes (con la
funcin abs) podemos escribir:
>>y=abs(fft(x));
Lo representaremos ahora con
un nuevo tipo de grfico: un
grfico de barras bar graph-
con la funcin bar:
>>bar(y)
La transformada de Fourier y la FFT
Tal y como se dijo, tenemos los datos repetidos en un grfico
simtrico, nos interesan slo la mitad, y para ser ms concretos,
los primeros, porque a partir de un determinado valor son muy
pequeos.
Podemos representar una parte del grfico escribiendo
>>bar(y(1:20))
La transformada de Fourier y la FFT

Nuestro grfico 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)
La transformada de Fourier y la FFT
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
seal no tena.
La segunda barra representa la
amplitud A1, correspondiente
frecuencia fundamental f que
tampoco exista en la seal que nos
hemos generado.
Tampoco tenemos en A3.
La transformada de Fourier y la FFT
En cambio si tenemos componentes con frecuencias 2f y 4f, y eso
es lo que nos muestra el grfico.
La transformada de Fourier y la FFT
Como hemos dicho, los valores de amplitudes en el grfico estn
multiplicados por N/2, siendo N el nmero elementos de la
secuencia (100 en este caso). Si queremos verlos slo hay que
dividir por N/2.
La transformada de Fourier y la FFT

>>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 pequeos valores (aprox. cero) en otros armnicos se
deben a utilizar pocos puntos para muestrear la seal. El
resultado con 1000 puntos es el siguiente grfico:
>> 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))
La transformada de Fourier y la FFT
El resultado con 100 puntos es
el siguiente grfico:
El resultado con 1000 puntos
es el siguiente grfico:
La transformada de Fourier y la FFT

Vamos a probar ahora con la misma seal 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);
La transformada de Fourier y la FFT

>>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 estn
multiplicados por N en lugar
de N/2. Por eso aparece con
valor 6.
La transformada de Fourier y la FFT

Si ahora en lugar de una componente continua aadimos


el trmino de alta frecuencia que vimos que poda
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)
La transformada de Fourier y la FFT

Y ahora vemos sus


componentes en la FFT
>>y=fft(x);
>>A=abs(y)/50;
>>bar(A)
En el grfico de barras
podemos ver ahora la
componente de ruido.
Esa componente podr ser
eliminada ahora.
La forma ms directa es
borrarla en la variable y.
La transformada de Fourier y la FFT
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 clculo, y en l
podemos
borrar los
elementos que
representan el
ruido, el 26 y el 77.
La transformada de Fourier y la FFT
La nueva fft ser ahora
>>y=abs(y)/50;
>>bar(A);
La transformada de Fourier y la FFT
En un caso real para
limpiar mejor las
componentes de
ruido podramos
eliminar tambin los
cercanos (24
al 28, y 75 al 79, se
deja como ejercicio).
La transformada de Fourier y la FFT
La nueva fft ser ahora
>>y=abs(y)/50;
>>bar(A);
La transformada de Fourier y la FFT

Una vez eliminados podemos


invertir la transformacin de
Fourier con el comando ifft.
El resultado, de nuevo es un
nmero complejo. Nos
interesa slo su parte real
>>z=ifft(y);
>>plot(real(z))
Hemos filtrado la seal!
La transformada de Fourier y la FFT

Si el muestreo lo hubisemos hecho con ms puntos el


resultado sera 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)
La transformada de Fourier y la FFT

>>y=fft(x);
>>bar(abs(y))
La transformada de Fourier y la FFT

>>y(24:28)=[0,0,0,0,0];
>>y(175:179)=[0,0,0,0,0];
>>z=real(ifft(y));
>>plot(z);
La transformada de Fourier y la FFT

FTTs en ms de una dimensin.


Haremos ahora una breve introduccin a la
transformacin de Fourier en dos dimensiones, que
no es ms que una extensin de los mismos
conceptos.
Al igual que cualquier seal puede representarse
como suma de ondas sinusoidales, cualquier
superficie puede representarse como suma de ondas
sinusoidales en dos dimensiones.
La transformada de Fourier y la FFT
Dibujaremos una superficie para ver >>t=[0:0.01:1];
de qu estamos hablando. >> x1=5*sin(2*pi*t);
>> x2=2*sin(8*pi*t+1);
>> z=x1'*x2;
>> surf(z)
La transformada de Fourier y la FFT
Y al igual que antes, si la >>y=fft2(z);
superficie est dada por un >>surf(abs(y))
tabla de datos, podr ser
transformada, haciendo
ahora una FFT en dos
dimensiones.
Esta transformacin dar
como resultado otra tabla
de amplitudes y fases de
ondas como la del dibujo,
tambin en 2D.
DFT
DFT
DFT
DFT
DFT
DFT
DFT
Ejercicios

1. Volver a realizar lo explicado en la diapositiva


adjunta con el MatLab.
2. Con el MatLab grabar (wavreacord) su
nombre en un archivo wav de 10 seg.,
agregarle ruido, luego recuperar la seal con
su nombre mediante el filtrado la seal
compuesta. Para esta tarea deben guiarse de
la diapositiva adjunta.
Informe de Laboratorio

 El informe de laboratorio se presentar con el desarrollo de


todos los ejercicios desarrollados y preguntas de esta
presentacin.
 El informe debe ser bsicamente un documento grfico en
lo posible y debe adjuntarse los cdigos 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 slo en USB.
 EL Informe presentar impreso y en formato digital (en USB).
Presentacin

 Todas las fuentes, archivos utilizados y el Informe deben


presentarse en su capreta personal del Dropbox. Si adjunta
fuentes adicionales, debe conservar el nombre original y
agregar _L5.
 Revisar permanentemente el blog del Curso:
http://utppds.blogspot.com.

 Las Tareas que no cumplan las indicaciones


no sern recepcionados por el profesor.
Agradecimiento

También podría gustarte