• No se han encontrado resultados

UTP PYSA T8 Transformada Discreta de Fourier

N/A
N/A
Protected

Academic year: 2021

Share "UTP PYSA T8 Transformada Discreta de Fourier"

Copied!
42
0
0

Texto completo

(1)

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) y la Transformada Rápida de Fourier (FFT)

(2)

Índice

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

 Objetivo

 La DFT y la FFT  DFT

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

 Objetivo

 La DFT y la FFT  DFT

(3)

Objetivo

 Comprender la DTF.

 Calculo de la DFT mediante

(4)

La transformada de Fourier y la FFT

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…

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

 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. 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

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

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

(7)

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 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.

 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

(8)

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

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)

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:

(10)

La transformada de Fourier y la FFT

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

(11)

La transformada de Fourier y la FFT

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: 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:

(12)

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 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. 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.

(13)

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 gráfico.

(14)

La transformada de Fourier y la FFT

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

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

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

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

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

>>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.

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

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)

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

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 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.

(21)

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 cálculo, y en él podemos borrar los elementos que representan el ruido, el 26 y el 77. 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

La nueva fft será ahora >>y=abs(y)/50;

(23)

La transformada de Fourier y la FFT

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

La nueva fft será ahora >>y=abs(y)/50;

(25)

La transformada de Fourier y la FFT

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!

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

(26)

La transformada de Fourier y la FFT

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)

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

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

(28)

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

(29)

La transformada de Fourier y la FFT

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.

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

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;

(31)

La transformada de Fourier y la FFT

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

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.

(32)

Tarea

1. Generar una señal con componente en continua y cinco componentes frecuenciales. 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 del

tiempo y la frecuencia.

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

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

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 del tiempo y la frecuencia.

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

8. Filtrar el ruido. Mostrar el resultado en el dominio del tiempo y la 1. Generar una señal con componente en continua y cinco componentes

frecuenciales. 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 del

tiempo y la frecuencia.

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

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

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 del tiempo y la frecuencia.

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

(33)
(34)
(35)
(36)
(37)
(38)
(39)
(40)

Informe de Laboratorio

 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 su carpeta personal del dropbox.

 Lo mas importante de un informe de laboratorio son los

conclusiones, comentarios y observaciones.

 Si ha utilizado fuentes adicionales, adjuntarlas en su carpeta

personal del dropbox.

El Informe presentar en formato digital en su carpeta

 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 su carpeta personal del dropbox.

 Lo mas importante de un informe de laboratorio son los

conclusiones, comentarios y observaciones.

 Si ha utilizado fuentes adicionales, adjuntarlas en su carpeta

personal del dropbox.

(41)

Presentación

 Todas las fuentes, archivos utilizados y el Informe deben

presentarse en su carpeta personal del dropbox, dentro de una carpeta que lleve las iniciales del curso, sus Apellidos, guion

bajo y luego el número de laboratorio. Ejemplo:

PYSA_PaternoM_L8

Si adjunta fuentes adicionales, debe conservar el nombre

original y agregar _L8.

 Todas las fuentes, archivos utilizados y el Informe deben

presentarse en su carpeta personal del dropbox, dentro de una carpeta que lleve las iniciales del curso, sus Apellidos, guion

bajo 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 indicaciones

(42)

Agradecimiento

Referencias

Documento similar

1936: Einstein y Rosen argumentan que ondas gravitacionales no existen (como soluci ´on exacta). • Confunden singularidades de coordenadas con

En tanto los recursos disponibles de información por parte de los agentes de ventas tales como bases de datos son muy importantes ya que con esta herramienta los agentes

De acuerdo con nuestros datos, este clima social de aceptabilidad puede representarse en términos de una mayor tolerancia hacia la violencia (“la violencia de pareja debería

El pilar fundamental para perder peso es uno y solo uno: quemar más calorías de las

Fundación Ramón Menéndez Pidal / Universidad Autónoma de Madrid... Fundación Ramón Menéndez Pidal / Universidad Autónoma

Sólo la Monarquía hubiera podido contener el deslizamiento decisivo y radical que se estaba registrando; pero la Real Hacienda acallaba los impulso^ de intervención, pues los

Pero antes hay que responder a una encuesta (puedes intentar saltarte este paso, a veces funciona). ¡Haz clic aquí!.. En el segundo punto, hay que seleccionar “Sección de titulaciones

UNA PERSPECTIVA HISTÓRICA DE LAS SERIES DE FOURIER: DE LAS ECUACIONES DE ONDAS Y DEL CALOR A LOS OPERADORES COMPACTOS