Guia 7 - Filtros Digitales

Guía
7
1
Facultad: Ingeniería
Escuela: Ingeniería Biomédica
Asignatura: Procesamiento de Señales Biomédicas
Filtros Digitales
Objetivo
1. Construir un filtro WINDOWED-SINC pasabajos y aplicar a una señal
biomédica
2. Construir un filtro WINDOWED-SINC pasa altos.
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
Introducción Teórica
Los filtros que son WINDOWED-SINC son utilizados para separar una banda de
frecuencias de otra. Son muy estables, producen algunos efectos, y pueden ser
forzados a diferentes niveles de rendimiento. Las características especiales del
dominio de la frecuencia son obtenidas en detrimento de sus funcionalidades
dentro del dominio del tiempo, incluyendo una ondulación excesiva y un overshoot
en la respuesta de step. Este tipo de filtro es muy fácil de programar, pero tienen
una ejecución muy lenta.
Guía
7
Procedimiento
1. Construya un kernel WINDOWED-SINC, según la teoría sobre este filtro, para
ello utilizará la función SINC y la ventana HAMMING.
>>t=-5*pi:0.1:3*pi;
>>x=sinc(t+6);
>>figure(1), plot(x), title('funcion sinc desplazada')
>>y=hamming(252);
>>figure(2), plot(y), title('ventana hamming')
>>ytrans=y';
>>w=x.*ytrans;
>>figure(3), plot(w), title('windowed sinc')
>>W=fft(w);
2
Guía
7
>>Wabs=abs(W);
>>figure(4),plot(Wabs), title('filtro pasabajos con función sinc de ventana')
2. Construir una señal senoidal con ruido (Construir una señal con componente
frecuencial de línea o construir una señal de ruido y sumarla a la señal) y
obtener su espectro.
>> FS=1000;
>>T=1/FS;
>>L=1000;
>>t=(0:L-1)*T;
>>sen=sin(2*pi*14*t)+sin(2*pi*60*t); %Señal seno con interferencia de
linea
>>SEN=fft(sen);
>>SENabs=abs(SEN);
>>figure(5), plot(SENabs(1:300)), title('espectro de frecuencias de la suma
de los senos')
3. Obtener la Transformada de Fourier del Kernel
>> a=convn(sen,w);
>>A=fft(a);
>>absA=abs(A);
>>figure(6), plot(absA(1:300)), title('Espectro de la señal al aplicar
windowed sinc, se elimina la señal seno de 60Hz')
4. Tomar una señal de ECG con ruido y aplicar el filtro
>> load A01m
>> z=val;
>>figure(7),plot(z(1:500)), title('señal de ECG')
>>noise=randn(size(val));
>>ECGruido=z+10*noise;
>>figure(8),plot(ECGruido),title('ECG con ruido')
>>fftECGruido=fft(ECGruido);
>>absECGruido=abs(fftECGruido);
>>figure(9),plot(absECGruido(1:500)),title('Espectro de la señal de ECG
con ruido ')
>>ECGclean=convn(ECGruido,w);
>>figure(10),plot(ECGclean),title('Señal de ECG filtrada')
>>fftECGclean=fft(ECGclean);
>>absECGclean=abs(fftECGclean);
>>figure(11),plot(absECGclean(1:400)),title('Espectro de la señal de ECG
filtrada')
3
Guía
7
Investigación complementaria
1. Construir un kernel basado en WINDOWED-SINC que realice un filtrado pasaalto.
2. Realizar un filtro pasa-banda, utilizando los dos kernel en cascada (filtro pasa
bajos del desarrollo de la guia y el pasa altos de la investigación
complementaria)
3. Investigar paso a paso como opera un filtro WIENER-KOLMOGOROFF
4. Investigar en qué consisten los filtros optimizados.
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
4