Filtrado del ruido en las señales ECG Las señales electrocardiográficas (ECG) pueden estar corrompidas por varios tipos de ruidos. Ejemplos típicos son:
– Interferencia de línea de potencia – Ruido por contacto de electrodo – Artifacts (cualquier alteración indeseada en datos introducidos durante su procesamiento digital) – Contracción muscular. – Deriva de la línea base Ruido de instrumentación generado por dispositivos electrónicos
Interferencia de línea de potencia Consiste en una sinusoide superpuesta de 50-60Hz a la señal del ECG. Las características, que pueden necesitar ser variadas en un modelo de ruido de línea de potencia, de la componente de 50-60Hz incluyen la amplitud y la frecuencia de la señal. La amplitud varía hasta el 50 % del pico de la amplitud del ECG
Filtrado de la señal de alimentación de potencia Se va a utilizar el Filtro Óptimo de Wiener para eliminar la señal de 60 Hz en la señal ECG del registro 202 de la MIT-BIH Arrhythmia Database (http://www.physionet.org/physiobank/database/html/mitdbdir/records.htm)
Para obtener los datos, se recurre a la función Matlab específica rdsamp
rr=rdsamp('mitdb/202','phys',true);
El agregado de 'phys',true es para obtener los datos en unidades físicas (mV). Lo que se obtiene es un arreglo de 650000 filas por tres columnas:
Filtrado de la señal de alimentación de potencia Como se aprecia en la figura, la primera columna indica el instante de toma de la muestra y en la segunda y tercera, dos derivaciones obtenidas de sendos sensores. Como se puede verificar, la frecuencia de muestreo es de 360Hz. Usaremos la primera derivación (segunda columna) y de ese vector, 213 = 8192 muestras. Z=rr(:,2); r=Z(1:2^13); plot(r)
Filtrado de la señal de alimentación de potencia Como se puede ver el ECG es ruidoso y tiene una deriva, aparte de una componente de DC. En el eje de abscisas está el número de muestra y en ordenadas los valores de tensión (en milivoltios) correspondientes a cada muestra. Tomando la Transformada de Fourier de esta señal se puede observar la componente correspondiente a 60 Hz.
N=length(r); fs=360; i=1:N/5; plot((i-1)*fs/N,F(i))
Filtrado de la señal de alimentación de potencia Como se puede ver el ECG es ruidoso y tiene una deriva, aparte de una componente de DC. En el eje de abscisas está el número de muestra y en ordenadas los valores de tensión (en milivoltios) correspondientes a cada muestra. Tomando la Transformada de Fourier de esta señal se puede observar la componente correspondiente a 60 Hz.
N=length(r); fs=360; F=abs(fft(r));i=1:N/5; plot((i-1)*fs/N,F(i))
Filtrado de la señal de alimentación de potencia Para filtrar la señal, anulando la componente de la alimentación de potencia (60 Hz), se plantea el siguiente combinador lineal.
donde x(i) es la señal de entrada, una cosenoide de 60 Hz muestreada a fs=300 Hz; mientras que d(i) es la señal deseada (ECG).
El filtro ajustará sus pesos (w0, w1) hasta lograr que la señal de error, e(i), constituya la señal ECG filtrada (en este caso, sin la componente de 60 Hz).
Para encontrar los pesos del mejor ajuste (vector óptimo de Wiener) se debe determinar la matriz de autocorrelación de entrada, R, y el vector de correlación cruzada entre la entrada y la salida, P.
Filtrado de la señal de alimentación de potencia d=r; % hace al ECG la señal deseada N=length(r); % define la entrada como una cosenoide de 60 Hz % muestreada a 360 Hz for i=1:N;x(i)=cos(2*pi*(i-1)*60/360);end % Calcula la matriz de autocorrelacion de entrada, R R(1,1)=norm(x)^2/N;R(2,2)=R(1,1); S=0;for i=2:N;S=S+x(i)*x(i-1); end R(1,2)=S/(N-1); R(2,1)=R(1,2); S=0; for i=1:N, S=S+d(i)*x(i); end % Calcula el vector P P(1,1)=S/N; S=0; for i=2:N, S=S+d(i)*x(i-1); end P(1,2)=S/(N-1); % Halla el vector optimo de Weiner W=R^-1*P'; % Obtiene la señal ECG filtrada for i=2:N, e(i)=d(i)-W(1)*x(i)-W(2)*x(i-1); end % Grafica la fft para observar su correcto filtrado E=abs(fft(e)); i=1:length(E)/5; plot((i-1)*360/N,E(i))
Filtrado de la señal de alimentación de potencia Observando la fft de la señal filtrada:
E=abs(fft(e)); i=1:length(E)/5; plot((i-1)*360/N,E(i)) Se ve que la componente de 80 Hz ha sido totalmente eliminada.
Wavelets La Transformada Wavelet (WT) es una operación lineal que descompone una señal en componentes que aparecen en diferentes escalas (o resoluciones). Sea y (t) una función de valores reales o complejos en L2(R).
La función y (t) se dice que es un wavelet si y sólo si su transformada de Fourier satisface
Wavelets La condición de admisibilidad implica que
para que el cociente de (1) sea indeterminado en w=0. Esto significa que los wavelets no deben tener componente continua, esto es: Y por lo tanto La dilatación de y (t) por un factor de escala a > 0 (t) es oscilatorio y su área es cero. Sea: La dilatación de y (t) por un factor de escala a > 0
Wavelets
Wavelets Este tipo de transformación satisface la conservación de energía, y la señal original puede ser reconstruida desde la WT. Con el decrecimiento de la escala a, el soporte para el wavelet decrece y la WT se hace más sensible a los componentes de alta frecuencia.
Página siguiente |