Top Banner
Programación y Simulación Avanzada (L110) Tema: 8 Ing. José C. Benítez P. La Transformada Discreta de Fourier (DFT) y la Transformada Rápida de Fourier (FFT)
42

UTP PYSA T8 Transformada Discreta de Fourier

Jan 21, 2016

Download

Documents

Jose Benitez
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: UTP PYSA T8 Transformada Discreta de Fourier

Programación y Simulación Avanzada(L110)

Programación y Simulación Avanzada(L110)

Tema: 8

Ing. José C. Benítez P.

La Transformada Discreta de Fourier (DFT) yla Transformada Rápida de Fourier (FFT)

Page 2: UTP PYSA T8 Transformada Discreta de Fourier

Índice

La Transformada Discreta de Fourier(DFT) y la Transformada Rápida deFourier (FFT)

Objetivo La DFT y la FFT DFT

Programación y Simulación Avanzada 2

La Transformada Discreta de Fourier(DFT) y la Transformada Rápida deFourier (FFT)

Objetivo La DFT y la FFT DFT

Page 3: UTP PYSA T8 Transformada Discreta de Fourier

Objetivo

Comprender la DTF. Calculo de la DFT mediante

la FFT.

3Programación y Simulación Avanzada

Page 4: UTP PYSA T8 Transformada Discreta de Fourier

La transformada de Fourier y la FFT

Una señal periódica puede representarse comosuma de ondas sinusoidales.

Las que nos interesarán especialmente serán lasque tienen unas frecuencias determinadas, y eneso se basa el análisis de Fourier.

Las frecuencias elegidas son; la frecuencia quecaracteriza la señal que queremos analizar, y susmúltiplos; el doble, el triple…: f, 2f, 3f, 4f, 5f…

4

Una señal periódica puede representarse comosuma de ondas sinusoidales.

Las que nos interesarán especialmente serán lasque tienen unas frecuencias determinadas, y eneso se basa el análisis de Fourier.

Las frecuencias elegidas son; la frecuencia quecaracteriza la señal que queremos analizar, y susmúltiplos; el doble, el triple…: f, 2f, 3f, 4f, 5f…

Programación y Simulación Avanzada

Page 5: UTP PYSA T8 Transformada Discreta de Fourier

La transformada de Fourier y la FFT

Y así, cualquier señal podrá descomponerse en una sumacomo la siguiente:

Esta forma de descomponer una señal en el dominiode la frecuencia se llama la Transformación de Fourier.

5

Esta forma de descomponer una señal en el dominiode la frecuencia se llama la Transformación de Fourier.

Programación y Simulación Avanzada

Page 6: UTP PYSA T8 Transformada Discreta de Fourier

La transformada de Fourier y la FFT

La ventaja de elegir estas funciones, que se llamarán armónicos,es que analizar una señal cualquiera para ver sus componentescon esas frecuencias será una tarea sencilla.

La formulación matemática para señales discretas se hadesarrollado en la clase teórica.

Veremos la capacidad de Matlab para obtener las componentesno ya de una señal continua, sino de la señal discreta que larepresenta en forma de muestreo.

Esto se llamará la Transformada Discreta de Fourier (DFT), y haymuchas formas de calcularla. La más eficiente es laTransformada Rápida de Fourier (FFT).

6

La ventaja de elegir estas funciones, que se llamarán armónicos,es que analizar una señal cualquiera para ver sus componentescon esas frecuencias será una tarea sencilla.

La formulación matemática para señales discretas se hadesarrollado en la clase teórica.

Veremos la capacidad de Matlab para obtener las componentesno ya de una señal continua, sino de la señal discreta que larepresenta en forma de muestreo.

Esto se llamará la Transformada Discreta de Fourier (DFT), y haymuchas formas de calcularla. La más eficiente es laTransformada Rápida de Fourier (FFT).

Programación y Simulación Avanzada

Page 7: UTP PYSA T8 Transformada Discreta de Fourier

La transformada de Fourier y la FFT

Matlab tiene implementada una función para calcular una FFT:>>fft(x)

En donde x es nuestra señal discreta (secuencia discreta dedatos).

El resultado numérico de la transformación son númeroscomplejos, 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 porN/2, siendo N el número de datos de nuestra serie. Sirecuperaremos la última señal que generamos.

7

Matlab tiene implementada una función para calcular una FFT:>>fft(x)

En donde x es nuestra señal discreta (secuencia discreta dedatos).

El resultado numérico de la transformación son númeroscomplejos, 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 porN/2, siendo N el número de datos de nuestra serie. Sirecuperaremos la última señal que generamos.

Programación y Simulación Avanzada

Page 8: UTP PYSA T8 Transformada Discreta de Fourier

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)

8

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)

Programación y Simulación Avanzada

Page 9: UTP PYSA T8 Transformada Discreta de Fourier

La transformada de Fourier y la FFT

Si nuestro espacio de tiempoes 1 seg, nuestra frecuencia fes 1/1seg = 1Hz. Si hacemosahora la fft, y nos quedamossólo con las amplitudes (con lafunción abs) podemos escribir:>>y=abs(fft(x));Lo representaremos ahora conun nuevo tipo de gráfico: ungráfico de barras –bar graph-con la función bar:>>bar(y)

9

Si nuestro espacio de tiempoes 1 seg, nuestra frecuencia fes 1/1seg = 1Hz. Si hacemosahora la fft, y nos quedamossólo con las amplitudes (con lafunción abs) podemos escribir:>>y=abs(fft(x));Lo representaremos ahora conun nuevo tipo de gráfico: ungráfico de barras –bar graph-con la función bar:>>bar(y)

Programación y Simulación Avanzada

Page 10: UTP PYSA T8 Transformada Discreta de Fourier

La transformada de Fourier y la FFTTal y como se dijo, tenemos los datos repetidos en un gráficosimétrico, nos interesan sólo la mitad, y para ser más concretos,los primeros, porque a partir de un determinado valor son muypequeños.Podemos representar una parte del gráfico escribiendo>>bar(y(1:20))

10Programación y Simulación Avanzada

Page 11: UTP PYSA T8 Transformada Discreta de Fourier

La transformada de Fourier y la FFT

Nuestro gráfico tiene dosbarras mucho mayores que lasanteriores, vamos a ver lo querepresenta cada una.

Nuestras barras representanlas amplitudes de la serie:

11

Nuestro gráfico tiene dosbarras mucho mayores que lasanteriores, vamos a ver lo querepresenta cada una.

Nuestras barras representanlas amplitudes de la serie:

La que hemos generado es:x = x1 + x2 = 5*sin(4*pi*t)+2*sin(8*pi*t+1)

Programación y Simulación Avanzada

Page 12: UTP PYSA T8 Transformada Discreta de Fourier

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, lacomponente continua. Nuestraseñal no tenía.La segunda barra representa laamplitud A1, correspondientefrecuencia fundamental f quetampoco existía en la señal que noshemos generado.Tampoco tenemos en A3.

12

La que hemos generado es:x = x1 + x2 = 5*sin(4*pi*t)+2*sin(8*pi*t+1)

La primera barra representa A0, lacomponente continua. Nuestraseñal no tenía.La segunda barra representa laamplitud A1, correspondientefrecuencia fundamental f quetampoco existía en la señal que noshemos generado.Tampoco tenemos en A3.

Programación y Simulación Avanzada

Page 13: UTP PYSA T8 Transformada Discreta de Fourier

La transformada de Fourier y la FFT

En cambio si tenemos componentes con frecuencias 2f y 4f, y esoes lo que nos muestra el gráfico.

13Programación y Simulación Avanzada

Page 14: UTP PYSA T8 Transformada Discreta de Fourier

La transformada de Fourier y la FFTComo hemos dicho, los valores de amplitudes en el gráfico estánmultiplicados por N/2, siendo N el número elementos de lasecuencia (100 en este caso). Si queremos verlos sólo hay quedividir por N/2.

14Programación y Simulación Avanzada

Page 15: UTP PYSA T8 Transformada Discreta de Fourier

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 pequeños valores (aprox. cero) en otros armónicos sedeben a utilizar pocos puntos para muestrear la señal. Elresultado 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))

15

>>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 sedeben a utilizar pocos puntos para muestrear la señal. Elresultado 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))

Programación y Simulación Avanzada

Page 16: UTP PYSA T8 Transformada Discreta de Fourier

La transformada de Fourier y la FFTEl resultado con 100 puntos esel siguiente gráfico:

El resultado con 1000 puntoses el siguiente gráfico:

16Programación y Simulación Avanzada

Page 17: UTP PYSA T8 Transformada Discreta de Fourier

La transformada de Fourier y la FFT

Vamos a probar ahora con la misma señal pero con unacomponente 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);

17

Vamos a probar ahora con la misma señal pero con unacomponente 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);

Programación y Simulación Avanzada

Page 18: UTP PYSA T8 Transformada Discreta de Fourier

La transformada de Fourier y la FFT

>>y=abs(fft(x))/50;>>bar(y(1:20))Podemos ver a A0 en la barraahora.Los valores de amplitud de lacomponente continua estánmultiplicados por N en lugarde N/2. Por eso aparece convalor 6.

18

>>y=abs(fft(x))/50;>>bar(y(1:20))Podemos ver a A0 en la barraahora.Los valores de amplitud de lacomponente continua estánmultiplicados por N en lugarde N/2. Por eso aparece convalor 6.

Programación y Simulación Avanzada

Page 19: UTP PYSA T8 Transformada Discreta de Fourier

La transformada de Fourier y la FFT

Si ahora en lugar de una componente continua añadimosel término de alta frecuencia que vimos que podíarepresentar 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)

19

Si ahora en lugar de una componente continua añadimosel término de alta frecuencia que vimos que podíarepresentar 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)

Programación y Simulación Avanzada

Page 20: UTP PYSA T8 Transformada Discreta de Fourier

La transformada de Fourier y la FFT

Y ahora vemos suscomponentes en la FFT>>y=fft(x);>>A=abs(y)/50;>>bar(A)En el gráfico de barraspodemos ver ahora lacomponente de ruido.Esa componente podrá sereliminada ahora.La forma más directa esborrarla en la variable y.

20

Y ahora vemos suscomponentes en la FFT>>y=fft(x);>>A=abs(y)/50;>>bar(A)En el gráfico de barraspodemos ver ahora lacomponente de ruido.Esa componente podrá sereliminada ahora.La forma más directa esborrarla en la variable y.

Programación y Simulación Avanzada

Page 21: UTP PYSA T8 Transformada Discreta de Fourier

La transformada de Fourier y la FFTPara ello podemoseditarla dentro deMatlab haciendodoble click en y.Entraremos en eleditor de tablas,con un aspectosimilar a una hojade cálculo, y en élpodemosborrar loselementos querepresentan elruido, el 26 y el 77.

21

Para ello podemoseditarla dentro deMatlab haciendodoble click en y.Entraremos en eleditor de tablas,con un aspectosimilar a una hojade cálculo, y en élpodemosborrar loselementos querepresentan elruido, el 26 y el 77.

Programación y Simulación Avanzada

Page 22: UTP PYSA T8 Transformada Discreta de Fourier

La transformada de Fourier y la FFTLa nueva fft será ahora>>y=abs(y)/50;>>bar(A);

22Programación y Simulación Avanzada

Page 23: UTP PYSA T8 Transformada Discreta de Fourier

La transformada de Fourier y la FFTEn un caso real para“limpiar” mejor lascomponentes deruido podríamoseliminar también loscercanos (24al 28, y 75 al 79, sedeja como ejercicio).

23

En un caso real para“limpiar” mejor lascomponentes deruido podríamoseliminar también loscercanos (24al 28, y 75 al 79, sedeja como ejercicio).

Programación y Simulación Avanzada

Page 24: UTP PYSA T8 Transformada Discreta de Fourier

La transformada de Fourier y la FFTLa nueva fft será ahora>>y=abs(y)/50;>>bar(A);

24Programación y Simulación Avanzada

Page 25: UTP PYSA T8 Transformada Discreta de Fourier

La transformada de Fourier y la FFT

Una vez eliminados podemosinvertir la transformación deFourier con el comando ifft.El resultado, de nuevo es unnúmero complejo. Nosinteresa sólo su parte real>>z=ifft(y);>>plot(real(z))¡Hemos filtrado la señal!

25

Una vez eliminados podemosinvertir la transformación deFourier con el comando ifft.El resultado, de nuevo es unnúmero complejo. Nosinteresa sólo su parte real>>z=ifft(y);>>plot(real(z))¡Hemos filtrado la señal!

Programación y Simulación Avanzada

Page 26: UTP PYSA T8 Transformada Discreta de Fourier

La transformada de Fourier y la FFT

Si el muestreo lo hubiésemos hecho con más puntos elresultado sería mejor, pero el obtenido es suficientementebueno 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)

26

Si el muestreo lo hubiésemos hecho con más puntos elresultado sería mejor, pero el obtenido es suficientementebueno 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)

Programación y Simulación Avanzada

Page 27: UTP PYSA T8 Transformada Discreta de Fourier

La transformada de Fourier y la FFT

>>y=fft(x);>>bar(abs(y))

27Programación y Simulación Avanzada

Page 28: UTP PYSA T8 Transformada Discreta de Fourier

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);

28Programación y Simulación Avanzada

Page 29: UTP PYSA T8 Transformada Discreta de Fourier

La transformada de Fourier y la FFT

FTTs en más de una dimensión.Haremos ahora una breve introducción a latransformación de Fourier en dos dimensiones, queno es más que una extensión de los mismosconceptos.Al igual que cualquier señal puede representarsecomo suma de ondas sinusoidales, cualquiersuperficie puede representarse como suma de ondassinusoidales en dos dimensiones.

29

FTTs en más de una dimensión.Haremos ahora una breve introducción a latransformación de Fourier en dos dimensiones, queno es más que una extensión de los mismosconceptos.Al igual que cualquier señal puede representarsecomo suma de ondas sinusoidales, cualquiersuperficie puede representarse como suma de ondassinusoidales en dos dimensiones.

Programación y Simulación Avanzada

Page 30: UTP PYSA T8 Transformada Discreta de Fourier

La transformada de Fourier y la FFTDibujaremos una superficie para verde 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)

30Programación y Simulación Avanzada

Page 31: UTP PYSA T8 Transformada Discreta de Fourier

La transformada de Fourier y la FFTY al igual que antes, si lasuperficie está dada por untabla de datos, podrá sertransformada, haciendoahora una FFT en dosdimensiones.Esta transformación darácomo resultado otra tablade amplitudes y fases deondas como la del dibujo,también en 2D.

>>y=fft2(z);>>surf(abs(y))

31

Y al igual que antes, si lasuperficie está dada por untabla de datos, podrá sertransformada, haciendoahora una FFT en dosdimensiones.Esta transformación darácomo resultado otra tablade amplitudes y fases deondas como la del dibujo,también en 2D.

Programación y Simulación Avanzada

Page 32: UTP PYSA T8 Transformada Discreta de Fourier

Tarea

1. Generar una señal con componente en continua y cinco componentesfrecuenciales. Mostrar la señal en el dominio del tiempo y la frecuencia.

2. Generar un ruido de alta frecuencia. Mostrar la señal en el dominio deltiempo y la frecuencia.

3. Agregarle el ruido a la señal. Mostrar la señal compuesta en el dominiodel tiempo y la frecuencia.

4. Filtrar el ruido. Mostrar el resultado en el dominio del tiempo y lafrecuencia.

5. Escoger una señal unidimensional (1D) en formato wav sin comprimir.Mostrar la señal en el dominio del tiempo y la frecuencia.

6. Generar un ruido de alta frecuencia. Mostrar la señal en el dominio deltiempo y la frecuencia.

7. Agregarle el ruido a la señal. Mostrar la señal compuesta en el dominiodel tiempo y la frecuencia.

8. Filtrar el ruido. Mostrar el resultado en el dominio del tiempo y lafrecuencia.

9. Escoger una señal bidimensional (2D) en escala de grises en formatobmp. Mostrar la señal en el dominio del tiempo y la frecuencia.

32

1. Generar una señal con componente en continua y cinco componentesfrecuenciales. Mostrar la señal en el dominio del tiempo y la frecuencia.

2. Generar un ruido de alta frecuencia. Mostrar la señal en el dominio deltiempo y la frecuencia.

3. Agregarle el ruido a la señal. Mostrar la señal compuesta en el dominiodel tiempo y la frecuencia.

4. Filtrar el ruido. Mostrar el resultado en el dominio del tiempo y lafrecuencia.

5. Escoger una señal unidimensional (1D) en formato wav sin comprimir.Mostrar la señal en el dominio del tiempo y la frecuencia.

6. Generar un ruido de alta frecuencia. Mostrar la señal en el dominio deltiempo y la frecuencia.

7. Agregarle el ruido a la señal. Mostrar la señal compuesta en el dominiodel tiempo y la frecuencia.

8. Filtrar el ruido. Mostrar el resultado en el dominio del tiempo y lafrecuencia.

9. Escoger una señal bidimensional (2D) en escala de grises en formatobmp. Mostrar la señal en el dominio del tiempo y la frecuencia.

Programación y Simulación Avanzada

Page 33: UTP PYSA T8 Transformada Discreta de Fourier

DFT

33Programación y Simulación Avanzada

Page 34: UTP PYSA T8 Transformada Discreta de Fourier

DFT

34Programación y Simulación Avanzada

Page 35: UTP PYSA T8 Transformada Discreta de Fourier

DFT

35Programación y Simulación Avanzada

Page 36: UTP PYSA T8 Transformada Discreta de Fourier

DFT

36Programación y Simulación Avanzada

Page 37: UTP PYSA T8 Transformada Discreta de Fourier

DFT

37Programación y Simulación Avanzada

Page 38: UTP PYSA T8 Transformada Discreta de Fourier

DFT

38Programación y Simulación Avanzada

Page 39: UTP PYSA T8 Transformada Discreta de Fourier

DFT

39Programación y Simulación Avanzada

Page 40: UTP PYSA T8 Transformada Discreta de Fourier

Informe de Laboratorio

El informe de laboratorio se presentará con el desarrollo detodos los ejercicios desarrollados y preguntas de estapresentación.

El informe debe ser básicamente un documento gráfico enlo posible y debe adjuntarse los códigos con los comentariossolicitados en USB.

Lo mas importante de un informe de laboratorio son losconclusiones, comentarios y observaciones.

Si han utilizado fuentes adicionales, adjuntarlas sólo en USB. EL Informe presentar impreso y en formato digital (en USB).

40

El informe de laboratorio se presentará con el desarrollo detodos los ejercicios desarrollados y preguntas de estapresentación.

El informe debe ser básicamente un documento gráfico enlo posible y debe adjuntarse los códigos con los comentariossolicitados en USB.

Lo mas importante de un informe de laboratorio son losconclusiones, comentarios y observaciones.

Si han utilizado fuentes adicionales, adjuntarlas sólo en USB. EL Informe presentar impreso y en formato digital (en USB).

Programación y Simulación Avanzada

Page 41: UTP PYSA T8 Transformada Discreta de Fourier

Presentación

Todas las fuentes, archivos utilizados y el Informe debenpresentarse en su carpeta personal del dropbox, dentro de unacarpeta que lleve las iniciales del curso, sus Apellidos, guionbajo y luego el número de laboratorio. Ejemplo:

PYSA_PaternoM_L8 Si adjunta fuentes adicionales, debe conservar el nombre

original y agregar _L8.

41

Todas las fuentes, archivos utilizados y el Informe debenpresentarse en su carpeta personal del dropbox, dentro de unacarpeta que lleve las iniciales del curso, sus Apellidos, guionbajo y luego el número de laboratorio. Ejemplo:

PYSA_PaternoM_L8 Si adjunta fuentes adicionales, debe conservar el nombre

original y agregar _L8.

Las Tareas que no cumplan las indicacionesno serán evaluados por el profesor.

Programación y Simulación Avanzada

Page 42: UTP PYSA T8 Transformada Discreta de Fourier

Agradecimiento

Programación y Simulación Avanzada - Prof. Ing. José C. Benítez P. 42

Blog del Curso:http://utppysa.blogspot.com