Beruflich Dokumente
Kultur Dokumente
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 tiempo al dominio de la frecuencia debido a que trabajo con
de fourier (DFT), de esta manera visualizar la transformación de todos los puntos del vector.
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 2) Análisis espectral.
biológicas a disposición para estudios.
Matlab [1] trae en su librería implementa la DFT, en la sesión se Un proceso que cuantifica las diversas intensidades de cada
implementara el algoritmo de la DFT los resultados obtenidos frecuencia se llama análisis espectral [3]. Matemáticamente
con el algoritmo y los obtenidos con la librería serán está relacionado con la herramienta transformada de Fourier la
comparados. cual nos estrega el espectro de frecuencia y la amplitud de
cada una de las frecuencias de una señal análoga.
Palabras Claves- DFT, frecuencia, physionet.
200
0
S e ñ a l f(t )
5
-200
0 100 200 300 400 500 600 700 800 900 1000
Tiem po
S eñal E C G en frec uenc ia
Amplitud
0 15000
10000
Amplitud
-5
0 200 400 600 800 1000 1200
5000
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
1000 0
0 5 10 15 20 25 30 35 40 45 50
Hz
Amplitud
%--------------------------------------
%-------------------------------------- %Sesión 4
%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, pag. 3
load a04m% Se carga Señal ECG a04m.m N=length(d);
c=val; g = fm/N*(0:N/2);% acomodando el eje de
subplot(2,1,1); la frecuencia
plot(c);% se grafica señal sin ruido subplot(2,1,1)
title('Señal Original ECG'), plot(g, abs(d(1:N/2 + 1)))% se garfica
xlabel('Tiempo'), ylabel('Amplitud') solo la mitad.
x =500*randn(size(c));% se Genera un title('FFT Original Señal ECG '),
Ruido dandomico xlabel('Hz'), ylabel('Amplitud')
y=c+x;% Contaminamos la señal con el
ruido FFT Original Señal ECG
subplot(2,1,2); 15000
Amplitud
xlabel('Tiempo'), ylabel('Amplitud')
5000
S eñ al O rig ina l E C G
60 0 0
0 5 10 15 20 25 30 35 40 45 50
Hz
40 0 4 FFT Señal ECG con ruido
x 10
6
Amplitud
20 0
0 4
Amplitud
-20 0 2
0 1 00 20 0 30 0 4 00 50 0 6 00 70 0 8 00 90 0 100 0
Tie m po
S eñ al O rig ina l E C G c on R u ido 0
2 00 0 0 5 10 15 20 25 30 35 40 45 50
Hz
1 00 0
Fig4. Espectro de frecuencia de la señal con ruido.
Amplitud
0
En búsqueda en la literatura al tener un ruido blanco
-1 00 0
característico, una de las alternativas que se propone es usar el
-2 00 0 filtro promedio móvil [4].
0 1 00 20 0 30 0 4 00 50 0 6 00 70 0 8 00 90 0 100 0 Actividad siete implementar la transforma discreta de
Tie m po
fourier y comparar el resultado con librería que trae Matlab
Fig3. Señal ECG a04m.m contaminada con ruido. para hacer esta operación y=fft(b). El siguiente código
compara el resultado de la fft implementada con la que trae
En la fig3 en la grafica superior se encuentra la señal ECG Matlab apoyado con la figura que crea el código fig.5
sin ruido y en al grafica inferior la señal ECG contaminada
con ruido. %--------------------------------------
Actividad seis definir un procedimiento para eliminar el %Sesión 4
ruido de la señal analizando el espectro de frecuencia. Con el %Actividad 7
siguiente código se aprecia el espectro de frecuencia de la %--------------------------------------
señal original y la contaminada con ruido fig4. t=0:0.01:10;
N=length(t);
%-------------------------------------- Ts=0.01;% Periodo de Muestreo
%Sesión 4 fm=1/Ts;% Frecuencia de mustreo
%Actividad 6 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 señal contaminada b = fft(y);%FFT de la libreria de matlab
fm=100;% frecuencia de muestreo toc
N=length(b); T1=toc% tiempo que demora en hacer la fft
f = fm/N*(0:N/2);% acomodando el eje de matlab con su libreria.
la frecuencia N1=length(b);
subplot(2,1,2); f1 = fm/N1*(0:N1/2);
plot(f, abs(b(1:N/2 + 1)))% se garfica
solo la mitad. tic
title('FFT Señal ECG con ruido'), % Se implemento la FFT que aparece en le
xlabel('Hz'), ylabel('Amplitud') Help de Matlab
a=val; for k=1:N
d = fft(a);%FFT de la señal original Y(k)=0;
Laboratorio de Procesamiento de Señales. Ingeniería Civil Biomédica, Universidad de Valparaíso, Chile, 18 de Mayo de 2010, pag. 4
for n=1:N demora Matlab con su algoritmo en desarrollar la FFT, T2
Y(k)=y(n)*exp(-i*2*pi*(k- representa lo que demorar Matlab con el algoritmo
1)*(n-1)/N)+ Y(k); implementado en desarrollar la FFT.
end
Elapsed time is 0.000410 seconds.
end
toc T1 =
500
aplicarla como implementarla; poniendo énfasis en la parte
gráfica en específico en los ejes que correspondan a lo que se
está graficando.
0
0 5 10 15 20 25 30 35 40 45 50 Otro objetivo que se logro fue interiorizar el análisis
Hz
espectral del una señal lo que permite trabajar en frecuencia,
FFT con Matlab
1000 esto puede ser muy favorable al trabajar con filtros los cuales
trabaja en base a frecuencias de corte.
Amplitud
500
VI. REFERENCIAS