Laboratorio Nº4

November 22, 2017 | Author: Ruben Allende | Category: Fourier Transform, Telecommunications Engineering, Electrical Engineering, Algorithms, Fourier Analysis
Share Embed Donate


Short Description

Laboratorio de procesamiento de señales...

Description

Laboratorio de Procesamiento de Señales. Ingeniería Civil Biomédica, Universidad de Valparaíso, Chile, 18 de Mayo de 2010,

pag. 1

Laboratorio Nº4 “Introducción a la DFT” Trabajo realizado por: Rubén Allende Lobos. Estudiante de Ingeniería Civil Biomédica, Departamento de Ingeniería Civil Biomédica, Universidad de Valparaíso

Resumen-En la sesión se trabajara con la transformada discreta de fourier (DFT), de esta manera visualizar la transformación de una señal en el espacio del tiempo al espacio de la frecuencia y poder trabajar con filtros en la frecuencia. Otro objetivo es comprender el uso del sitio web http://www.physionet.org/ el cual contiene un banco de señales biológicas a disposición para estudios. Matlab [1] trae en su librería implementa la DFT, en la sesión se implementara el algoritmo de la DFT los resultados obtenidos con el algoritmo y los obtenidos con la librería serán comparados. Palabras Claves- DFT, frecuencia, physionet.

I. INTRODUCCIÓN

L

tiempo al dominio de la frecuencia debido a que trabajo con todos los puntos del vector.

2) Análisis espectral. Un proceso que cuantifica las diversas intensidades de cada frecuencia se llama análisis espectral [3]. Matemáticamente está relacionado con la herramienta transformada de Fourier la cual nos estrega el espectro de frecuencia y la amplitud de cada una de las frecuencias de una señal análoga. III. METODOLOGÍA

a transformada de fourier es ampliamente

empleada en el tratamiento y en campos afines para analizar las frecuencias presentes en una señal muestreada, resolver ecuaciones diferenciales parciales y realizar otras operaciones como convoluciones [2]. En esta sesión utilizaremos la DFT para analizar frecuencias presentes en señales muestreadas extraídas de los bancos de información de physionet.

Estudiar el uso de la physionet para extraer señales del banco de información que posee physionet, con las señales obtenidas del banco se realizara un análisis espectral a través de la transformada de fourier, llevando la señal al dominio de la frecuencia. Agregar ruidos y ver la posibilidad se filtrar la señal aislando el ruido, con la información que se obtiene en el dominio de la frecuencia como es el ancho de banda el cual nos permite saber que entre que frecuencia se encuentra la mayor potencia de la señal, con esta información podremos obtener las frecuencias de corte para el filtro.

II. MATERIALES Y CONCEPTOS PREVIOS

– –

Herramienta de modelamiento de Matlab. Señal Obtenida de Physionet.

Conceptos previos

1) Transformada de Fourier (DFT)

IV. RESULTADO Y ANÁLISIS Actividades uno y dos se entendieron el uso de physionet y el análisis espectral DFT. Actividad tres convertir la señal f (t) al dominio de la frecuencia.

ft=0.25+2*sin2*pi*5*t+sin2*pi*12.5*t+1.5*sin2*p i*20*t+0.5*sin2*pi*35*t

χk=n=0N-1χn×e-j×2×n×π×kN k=0,1,2…N-1 La expresión representa la Trasformada de Discreta Fourier (DFT) de de una señal χn, la cual es una aproximación al espectro de una señal analógica original. Su magnitud se ve influenciada por el intervalo de muestreo, mientras que su fase dependes de los instantes de muestreo. La DFT presenta un problema suele tardar demasiado en realizar el cambio de domino en este caso del dominio del

Con el siguiente código se logro llevar la señal al dominio de la frecuencia, en la fig1 podemos a preciar el grafico superior de la señal en el tiempo y en el inferior la señal en la frecuencia.

%-------------------------------------%Sesión 4

Laboratorio de Procesamiento de Señales. Ingeniería Civil Biomédica, Universidad de Valparaíso, Chile, 18 de Mayo de 2010,

%Actividad 3 %-------------------------------------t=0:0.01:10;% Vector Tiempo N=length(t); T=0.01% Periodo de muestreo fm=1/T;%Frecuencia de muestreo y=0.25+2*sin(2*pi*5*t)+sin(2*pi*12.5*t) +1.5*sin(2*pi*20*t)+0.5*sin(2*pi*35*t); b=fft(y);% FFT de la señal f = fm/N *(0:N/2); subplot(2,1,1); plot(y) title('Señal f(t)'), xlabel('Tiempo'), ylabel('Amplitud')

%Actividad 4 %-------------------------------------load a04m% cargar Señal ECG obtenida de Physionet a=val; b = fft(a);% Obtener FFT de la señal fm=100; N=length(b); f = fm/N*(0:N/2);% adpatamos el eje de la frecuencia subplot(2,1,1); plot(a) title('Señal ECG'), xlabel('Tiempo'), ylabel('Amplitud') subplot(2,1,2); plot(f, abs(b(1:N/2 + 1)))% garficamos la mitab. title('Señal ECG en frecuencia'), xlabel('Hz'), ylabel('Amplitud')

subplot(2,1,2); plot(f, abs(b(1:N/2 + 1))) title('Señal f(t)en el dominio de la frecuencia'), xlabel('Hz'), ylabel('Amplitud')

S eñal E C G 600

Amplitud

400

S e ñ a l f(t )

0

200

400

600 800 1000 Tie m p o S e ñ a l f(t )e n e l d o m in io d e la fre c u e n c ia

1200

1000

Amplitud

0

100

200

300

400

500 600 700 Tiem po S eñal E C G en frec uenc ia

5

10

15

20

800

900

1000

40

45

50

15000

0

0

10000

5000

0

0

25 Hz

30

35

Fig2. Señal ECG a04m.m en el dominio de la frecuencia.

500

0

200

-200 0

Amplitud

Amplitud

5

-5

pag. 2

5

10

15

20

25 Hz

30

35

40

45

50

Fig1. Señal en el dominio de la frecuencia.

En la actividad cuatro se descarga una señal ECG de physionet y se pide calcular el periodo muestreo mínimo para representar la señal ECG descargada. A continuación se encuentra el código que nos permitirá establecer aproximadamente el periodo de muestreo apoyado con la fig.2

%-------------------------------------%Sesión 4

Con la fft de la señal graficada podemos obtener el ancho de banda el cual se encuentra entre 0 [hz] y los 37[hz] aproximadamente, entonces la frecuencia de muestreo debe ser mayor al doble de la frecuencia de la señal en este caso 37 [hz] .

fm=2*f Ts=1fm=>Ts=12*f=12*37 Ts=0.1351[s] Entonces el periodo mínimo de muestreo es de 0.1351 [s]. Actividad cinco la señal ECG es contaminada por un ruido, el siguiente código permite contaminar y graficar la señal original y la contaminada por el ruido fig3 %-------------------------------------%Sesión 4 %Actividad 5 %--------------------------------------

Laboratorio de Procesamiento de Señales. Ingeniería Civil Biomédica, Universidad de Valparaíso, Chile, 18 de Mayo de 2010,

N=length(d); g = fm/N*(0:N/2);% acomodando el eje de la frecuencia subplot(2,1,1) plot(g, abs(d(1:N/2 + 1)))% se garfica solo la mitad. title('FFT Original Señal ECG '), xlabel('Hz'), ylabel('Amplitud') FFT Original Señal ECG 15000

Amplitud

load a04m% Se carga Señal ECG a04m.m c=val; subplot(2,1,1); plot(c);% se grafica señal sin ruido title('Señal Original ECG'), xlabel('Tiempo'), ylabel('Amplitud') x =500*randn(size(c));% se Genera un Ruido dandomico y=c+x;% Contaminamos la señal con el ruido subplot(2,1,2); plot(y);% se grafica Señal contaminada title('Señal Original ECG con Ruido'), xlabel('Tiempo'), ylabel('Amplitud')

10000

5000

S eñ al O rig ina l E C G

0 0

60 0

5

10

15

5

10

15

4

6

x 10

20

25 30 35 Hz FFT Señal ECG con ruido

40

45

50

40

45

50

20 0 0 -20 0 0

1 00

20 0

30 0

4 00

50 0 6 00 70 0 8 00 Tie m po S eñ al O rig ina l E C G c on R u ido

90 0

100 0

4

2

0 0

2 00 0 1 00 0

20

25 Hz

30

35

Fig4. Espectro de frecuencia de la señal con ruido.

0 -1 00 0 -2 00 0 0

Amplitud

Amplitud

40 0

Amplitud

pag. 3

1 00

20 0

30 0

4 00

50 0 6 00 Tie m po

70 0

8 00

90 0

100 0

Fig3. Señal ECG a04m.m contaminada con ruido.

En la fig3 en la grafica superior se encuentra la señal ECG sin ruido y en al grafica inferior la señal ECG contaminada con ruido. Actividad seis definir un procedimiento para eliminar el ruido de la señal analizando el espectro de frecuencia. Con el siguiente código se aprecia el espectro de frecuencia de la señal original y la contaminada con ruido fig4. %-------------------------------------%Sesión 4 %Actividad 6 %-------------------------------------b = fft(y);% FFT de la señal contaminada fm=100;% frecuencia de muestreo N=length(b); f = fm/N*(0:N/2);% acomodando el eje de la frecuencia subplot(2,1,2); plot(f, abs(b(1:N/2 + 1)))% se garfica solo la mitad. title('FFT Señal ECG con ruido'), xlabel('Hz'), ylabel('Amplitud') a=val; d = fft(a);%FFT de la señal original

En búsqueda en la literatura al tener un ruido blanco característico, una de las alternativas que se propone es usar el filtro promedio móvil [4]. Actividad siete implementar la transforma discreta de fourier y comparar el resultado con librería que trae Matlab para hacer esta operación y=fft(b). El siguiente código compara el resultado de la fft implementada con la que trae Matlab apoyado con la figura que crea el código fig.5 %-------------------------------------%Sesión 4 %Actividad 7 %-------------------------------------t=0:0.01:10; N=length(t); Ts=0.01;% Periodo de Muestreo fm=1/Ts;% Frecuencia de mustreo y=0.25+2*sin(2*pi*5*t)+sin(2*pi*12.5*t) +1.5*sin(2*pi*20*t)+0.5*sin(2*pi*35*t); tic b = fft(y);%FFT de la libreria de matlab toc T1=toc% tiempo que demora en hacer la fft matlab con su libreria. N1=length(b); f1 = fm/N1*(0:N1/2); tic % Se implemento la FFT que aparece en le Help de Matlab for k=1:N Y(k)=0;

Laboratorio de Procesamiento de Señales. Ingeniería Civil Biomédica, Universidad de Valparaíso, Chile, 18 de Mayo de 2010,

for n=1:N Y(k)=y(n)*exp(-i*2*pi*(k1)*(n-1)/N)+ Y(k); end toc

demora Matlab con su algoritmo en desarrollar la FFT, T2 representa lo que demorar Matlab con el algoritmo implementado en desarrollar la FFT. Elapsed time is 0.000410 seconds.

end

T1 =

T2=toc% tiempo que se demora en hacer la fft con el algoritmo implementado f = fm/N *(0:N/2);% se acondiciona le eje de la frecuencia subplot(2,1,1) plot(f, abs(Y(1:N/2 + 1)))% se grafica solo la mitab. title('FFT con almoritmo implementado'), xlabel('Hz'), ylabel('Amplitud') subplot(2,1,2) plot(f1, abs(b(1:N/2 + 1)))% garficamos la mitab. title('FFT con Matlab'), xlabel('Hz'), ylabel('Amplitud') FFT con alm oritm o implem entado

Amplitud

1000

500

0

0

5

10

15

20

25 30 Hz FFT con Matlab

35

40

45

50

Amplitud

1000

500

0

0

pag. 4

4.4972e-004 Elapsed time is 34.873767 seconds. T2 = 34.8738 Lo anterior fue copia del Comand Windows al terminar de ejecutar el código de la actividad 7. Como se aprecia el Matlab se demora mucho menos que el algoritmo implementado. V. CONCLUSIÓN En la sesión cuatro se logro un dominio del sitio web physionet logrando descargar señales en formato tipo (.m), utilizando PhysioBankATM el cual nos permite descargar la señales para usar en Matlab. Se logro un pleno manejo de la transformada de fourier, aplicarla como implementarla; poniendo énfasis en la parte gráfica en específico en los ejes que correspondan a lo que se está graficando. Otro objetivo que se logro fue interiorizar el análisis espectral del una señal lo que permite trabajar en frecuencia, esto puede ser muy favorable al trabajar con filtros los cuales trabaja en base a frecuencias de corte. VI. REFERENCIAS

5

10

15

20

25 Hz

30

35

40

45

50

Fig5. Comparación entre la FFT implementada y la FFT que trae Matlab en su librería.

El resultado obtenido gráficamente es idéntico la FFT implementada entrega el mismo resultado que la FFT que posee Matlab, pero los diferencia es notoria en el tiempo que tarda cada una de ellas, en el código se utilizo tic y toc estos comando nos permiten obtener el tiempo en segundo que tarda un proceso, se ocupa de la siguiente maneta: tic operations toc en toc se guarda el tiempo en segundo que se demoro en hacer el proceso, en el caso del código T1 representa el tiempo que

[1] Software; MatLab, the lenguaje of technical computing 7.1. [2] (2010). Transforma de Fourier. Recuperado el 16 de mayo 2010. Disponible en: http://es.wikipedia.org/wiki/Transformada_de_Fourier_discr eta [3] (2010). Análisis espectral. Recuperado el 16 de mayo de 2010. Disponible en: http://es.wikipedia.org/wiki/Espectro_de_frecuencias [4] UTN. FRSN. Señales y Sistemas Clase14: Filtro promedio móvil. Recuperado el 16 de mayo de 2010 .Disponible en: www.frsn.utn.edu.ar/tecnicas3/practicos/td3tp6_teoria.pdf .

View more...

Comments

Copyright ©2017 KUPDF Inc.
SUPPORT KUPDF