Guia 6 - Transformada de Fourier

Guía
6
1
Facultad: Ingeniería
Escuela: Ingeniería Biomédica
Asignatura: Procesamiento de Señales Biomédicas
Transformada de Fourier
Objetivo
1. Aplicar la DFT para identificar frecuencias dominantes en una señal
2. Aplicar el método a una señal biomédica.
Recomendaciones
1. Tenga orden y aseo para trabajar.
2. Al finalizar el laboratorio se debe dejar en la misma o mejor condición de la que
se encontró (Asegúrese de apagar el Equipo antes de retirarse).
Materiales y Equipo
Computadora
MATLAB R2009b
Procedimiento
1. Registre la siguiente información en la ventana de comandos de MATLAB.
>> % Definicion parámetros de frecuencia y periodo
>> Fs = 1000;
>> T = 1/Fs;
>> L = 1000;
>> t = (0:L-1)*T;
>> x = sin(2*pi*5*t) + sin(2*pi*12*t);
>> figure(1), plot (t,x)
>> title ('Suma de senoides 5 y 12 Hz')
>> xlabel ('tiempo (miliseg)')
>> X=fft(x);
>> Xabs= abs(X);
>> figure(2), plot (Xabs(1:100))
>> title ('Espectro frecuencial')
Guía
6
>> xlabel ('Frecuencia (Hz)')
2. Cambie las frecuencias de las componentes senoidales a 11 y 20 Hz, y sume
una tercera de 8 Hz, y obtenga el espectro de frecuencias.
>> x = sin(2*pi*11*t) + sin(2*pi*20*t) + sin(2*pi*8*t);
>> figure(3), plot (t,x)
>> title ('Suma de senoides 11, 20 y 8 Hz')
>> xlabel ('tiempo (miliseg)')
>> X=fft(x);
>> Xabs= abs(X);
>> figure(4), plot (Xabs(1:100))
>> title ('Espectro frecuencial')
>> xlabel ('Frecuencia (Hz)')
3. A la señal de senoides generada en el punto anterior, agréguele ruido
gaussiano con amplitud de 1, y obtenga nuevamente el espectro de
frecuencias.
>> noise=rand(size(x));
>> y=x+noise;
>> Y=fft(y);
>> Yabs=abs(Y);
>> figure(5), plot(Yabs(1:100))
>> title('Espectro frecuencial')
>> xlabel('Frecuencia (Hz)')
4. A la señal generada en el punto 2, reduzca la amplitud de la señal de 11 Hz a
la mitad, y la 8 Hz a un cuarto, y obtenga nuevamente el espectro de
frecuencias.
>> x = 0.5*sin(2*pi*11*t) + sin(2*pi*20*t) + 0.25*sin(2*pi*8*t);
>> figure(6), plot (t,x)
>> title ('Suma de senoides 11, 20 y 8 Hz con reduccion de amplitud')
>> xlabel ('tiempo (miliseg)')
>> X=fft(x);
>> Xabs= abs(X);
>> figure(7), plot (Xabs(1:100))
>> title('Espectro frecuencial')
>> xlabel('Frecuencia (Hz)')
5. Genere una señal dientes de sierra, y obtenga su espectro de frecuencias
>> t=0:0.1:8*pi;
>> x=sawtooth(t);
>> figure(8), plot (x)
>> title ('Señal diente de sierra')
2
Guía
6
>> xlabel ('tiempo (miliseg)')
>> X=fft(x);
>> Xabs= abs(X);
>> figure(9), plot (Xabs(1:100))
>> title ('Espectro frecuencial')
>> xlabel ('Frecuencia (Hz)')
6. Genere una señal cuadrada, y obtenga su espectro de frecuencias
>> t=0:0.1:8*pi;
>> x=square(t);
>> figure(10), plot (x)
>> title ('Señal cuadrada')
>> xlabel ('tiempo (miliseg)')
>> X=fft(x);
>> Xabs= abs(X);
>> figure(11), plot (Xabs(1:100))
>> title ('Espectro frecuencial')
>> xlabel ('Frecuencia (Hz)')
7. Obtenga 5 conclusiones de todo el procedimiento.
Investigación complementaria
1. Investigue como obtener las señales senoidales originales desde el espectro
frecuencial utilizando la ifft, utilice la señal en la que se suman 3 senoides.
2. De igual manera, trate de obtener las senoides separadas, manipulando el
vector obtenido mediante la fft.
3. Obtenga un espectrograma de una señal de ECG.
4. Obtenga un espectrograma de una señal de EEG.
Bibliografía
1. Nakamura, S. Análisis numérico y visualización gráfica con MATLAB, PrenticeHall Hispanoamérica. México DF.
2. http://www.mathworks.com/products/index.html?s_tid=brdcrb
3. www.physionet.org
3