Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Proyecto 2
FILTRADO DE SEÑALES
________________________________________
El Promedio Sincronizado.
Los filtros lineales fallan cuando los espectros de la señal y el ruido se sobreponen.
El promedio de señales sincronizadas puede separar una señal repetitiva del ruido
sin distorsionar la señal
El requisito más importante del Promediado Sincronizado, es precisamente la
sincronización. La realización de una señal que es producida por un promediado
debe de estar alineada de tal forma que la parte repetitiva de la señal aparezca
exactamente en el mismo instante de cada realización de la señal. Si esta condición
no se cumple, la forma de la onda del evento en la señal estará distorsionada a lo
largo del eje del tiempo.
Una ventaja importante de los Promedios Sincronizados es que no se realiza ningún
filtrado en el dominio de la frecuencia, es decir no se pierde contenido espectral de
la señal como es el caso de los filtros pasa bajas.
En la figura 1.1 se muestra la señal de electrocardiograma ruidosa, la cual se quiere
filtrar.
Fig. 1.1
Para proceder con el filtrado primero debe de prepararse un modelo, el cual servirá
para poder sincronizar las señales. Este modelo, se obtuvo del primer ciclo del ECG,
el cual se muestra en la Fig. 1.2.
Con el tratamiento anterior de los datos, se obtiene una señal promedio, donde en
teoría se han separado los valores de las señales repetidas del ruido. Al graficar
este juego de datos, se obtienen la señal filtrada. En Fig 1.5 se muestra un complejo
de la señal del ECG filtrado.
Filtro Butterworth
El filtro de Butterworth es uno de los filtros electrónicos básicos, diseñado para
producir la respuesta más plana que sea posible hasta la frecuencia de corte. En
otras palabras, la salida se mantiene constante casi hasta la frecuencia de corte.
Fig. 2.1
En la figura anterior se pueden observar las respuestas en frecuencia del filtro a
diferentes ordenes, con una frecuencia de corte normalizada de 0.5. A medida que
crece el orden, la eficacia del filtro aumenta, pues la proporción de señales por
encima de la frecuencia de corte que el filtro no puede rechazar son menores. El
aumentar el orden, también conlleva un gasto computacional mayor, y aumentar el
orden no siempre garantiza un mejor filtrado, como se verá en los siguientes
ejemplos.
A continuación (Fig. 2.2) se muestra un ECG, el cual contiene ruido el cual se quiere
eliminar, para lo cual se utilizaron 4 filtros Butterworth (Figs. 2.3, 2.4, 2.5, 2.6).
Fig 2.4 Señal de ECG tratada con un filtro Butterworth de orden 8 y frecuencia de corte 20
Fig 2.5 Señal de ECG tratada con un filtro Butterworth de orden 8 y frecuencia de corte 40
Fig 2.6 Señal de ECG tratada con un filtro Butterworth de orden 8 y frecuencia de corte 70
Como se logra observar, existen diferencias en las señales de cada uno de los ECG.
Estas diferencias se deben, claramente, al uso de distintos ordenes y frecuencias
de corte, entonces ¿cuál de todos los filtros fue el mejor?
Tomando en cuenta que la frecuencia de un latido del corazon en condiciones
normales y de reposo es de aproximadamente 1.25Hz. Los filtros por encima de una
frecuencia de corte de 20, estarían dejando pasar ruido a la señal filtrada, por lo que
los filtros c) y d) no son buena opción en este caso. Bajo la primicia anterior se
podría decir que el filtro a), con una frecuencia de corte de 10 sería el indicado, pero
el orden de este filtro permite también que quede algo de ruido residual en la señal
filtrada, además de que las señales individuales no se parecen mucho a una señal
normal de ECG. Lo que nos deja con el filtro b), con este filtro se logra apreciar la
menos cantidad de ruido y se distinguen de mejor manera los picos de los complejos
del ECG.
Comparación de la efectividad del filtro: Butterworth vs Promedio Sincronizado
Fig 3.4 ECG filtrado mediante el filtro Derivative-Based con un polo de 0.995 a la derecha se
muestra un acercamiento a un par de complejos QRS
Fig. 4.3 Filtrados Butterworth pasa altas de orden 4 con diferentes Frecuencias de corte.
Fig. 4.4 Filtrados Butterworth pasa altas de orden 6 con diferentes Frecuencias de corte.
Fig. 4.5 Filtrados Butterworth pasa altas de orden 8 con diferentes Frecuencias de corte.
A simple vista es posible descartar varias combinaciones de ordenes y frecuencias
de corte. Por ejemplo, los filtros de orden 8 (Fig. 4.5) no guardan una similitud con
una señal de ECG normal, las ondas S y Q se observan muy acentuadas en las
frecuencias de corte 2.5 y 5, respectivamente. Por otro lado, en el filtrado de orden
6 (Fig. 4.4) se logra apreciar que el artefacto de la línea base original no se remueve
para el caso de la frecuencia de corte de 0.5 y para las frecuencias de corte 2.5 y 5
los complejos QRS no se parecen a un complejo típico de ECG. Si disminuimos el
orden dos magnitudes más, de 6 a 4 (Fig. 4.3), veremos que las señales van
acercándose un poco más a la morfología típica esperada, siendo la frecuencia de
corte de 0.5 la que más se parece, aun así, es posible observar formas atípicas en
las señales. Por último, cuando llegamos a un orden de 2 (Fig. 4.2) la similitud con
una señal normal de ECG se hace muy evidente, al menos para el caso de la
frecuencia de corte de 0.5, para las frecuencias de corte de 2.5 y 5 la señal se ve
mezclada con ruido y no es posible distinguirse correctamente.
Con lo anterior, se concluye que el filtro que funciona mejor es el de orden y
frecuencia de corte menores, 2 y 0.5, respectivamente. Esto se explica debido a que
el ruido de la señal original, el artefacto de la línea base, proviene de frecuencias
bajas, es por eso que se hace uso de un filtro pasa altas. Además, debido a que la
frecuencia de un latido en condiciones normales esta alrededor de 1.5 Hz, al usar
la frecuencia de corte de 5 se estara perdiendo información preciada de la señal, es
por eso que la frecuencia de corte ideal es de 0.5. Por último, la razón por la cual
los ordenes del filtro mayores a 2 no terminan de funcionar es debido a que la
pendiente de estos filtros es más pronunciada que la de orden 2, por lo que podían
estar dejando fuera información importante del latido.
ANEXO CODIGOS DE MATLAB PARA FILTROS
FILTRO PROMEDIO SINCRONIZADO
% Señal Ruidosa
clear all
close all
ecg=load('ecg_hfn.dat');
fm=1000;
t=[1:length(ecg)]/fm;
figure(1)
plot(t, ecg)
axis tight;
title('Señal de ECG Ruidosa');
xlabel('Tiempo(s)');
ylabel('ECG');
%Señal Modelo
template=ecg(80:800);
ttemp=[1:length(template)]/fm
sizetemp=length(template);
ecg_2=zeros(length(ecg)+(2*sizetemp)-2,1);
for i=1:length(ecg)
ecg_2(sizetemp+i)=ecg(i);
end
tecg_2=[1:length(ecg_2)]/fm
figure(2)
plot(ttemp,template)
title('Señal modelo')
xlabel('Tiempo (s)')
ylabel('Magnitud')
figure(3);
plot(tecg_2, ecg_2);
xlabel('Tiempo(s)')
ylabel('ECG2');
sumtemp2=(sumtemp.^2);
tfp=0;
cross=zeros(length(ecg_2),1);
u=[];
crosj=[];
for i=1:length(ecg)
for j=i:i+length(template)-1
if j<sizetemp+1
tfp=sumtemp(j)*sumecg(j);
cross(i)=cross(i)+tfp;
sumecg2(j)=(sumecg(j))^2;
else
tfp=sumtemp(j-i+1)*sumecg(j);
cross(i)=cross(i)+tfp;
sumecg2(j-i+1)=(sumecg(j))^2;
end
end
crosj(i)=cross(i)/sqrt(sum(sumtemp2,1)*sum(sumecg2));
end
ecg=load('ecg_hfn.dat');
plot(ecg)
fm=1000; % frecuencia de muestreo
fc=10; % frecuencia de corte
muestra=ecg(90:800);
Wn = fc/(fm/2);
[b,a] = butter(2,Wn,'low');
y=filter(b,a,muestra);
figure()
plot(y)
figure()
plot(muestra)
NOTA
Para el caso del filtro pasa altas, se escribe:
[b,a] = butter(2,Wn,'high');