Está en la página 1de 9

PRCTICA 2: Deteccin ECG Fetal en ECG Materno

Introduccin Se trata de determinar el electrocardiograma fetal (fECG) teniendo como principal interferencia el electrocardiograma materno (mECG). El problema es que estas dos seales tienen un contenido espectral similar, por lo que si las procesamos con un filtro selectivo en frecuencia distorsionaramos la seal de inters, el fECG. Se propone como solucin un cancelador activo de ruido (ver Figura 1) donde la seal Signal Channel es la que se obtiene del abdomen de la madre. Esta seal est principalmente compuesta por una seal deseada o componente fetal x(n) y por otra materna N(n), si despreciamos otras componentes de ruido y artefactos. Como entrada al filtro adaptativo tenemos la seal N(n) que se obtiene del sensor que se le coloca en el trax a la madre. Este sensor tomara, en principio, slo componente materna y se considera correlacionada con la componente materna y no correlacionada con la componente fetal de la seal abdominal. El sistema adaptativo modelar la componente materna que se encuentra en el sensor que se coloca en el abdomen de la madre, de tal forma que la seal de error resultante slo tendra componente fetal. El error cuadrtico en el instante n cometido por el sistema adaptativo ser: e2(n) = (x(n) + N(n) N*(n))2 Dada la nula correlacin entre x(n) y N(n), se puede decir que el sistema modela la seal de ruido N(n) una vez minimizado este error cuadrtico. En este caso, la seal de error es x(n) que es, justamente, la seal que se quiere obtener. Resulta importante destacar que no se habla en ningn momento de transformaciones en frecuencia y que el punto clave es la correlacin entre las fuentes de ruido, as como la estimacin de que no existe relacin entre la seal de ruido y la seal que se quiere obtener. Para obtener ms informacin sobre cmo trabaja el algoritmo adaptativo de mnimos cuadrados (LMS) que minimiza el error, se recomienda consultar la bibliografa que aparece al final.

Dpto. Electrnica. U.A.

Figura 1. Esquema bsico de un cancelador activo de ruido. Objetivos Se comienza con un ejemplo en el que todas las seales sern sintetizadas con Matlab, para luego mezclarlas y finalmente volverlas a separar. Como ampliacin, se propone hacer lo mismo, pero trabajando con varias seales descargadas de http://www.physionet.org/pn3/nifecgdb/. En este ltimo caso, las seales se encuentran en formato EDF y se recomienda convertirlas a ascii con el programa EDF Browser que podemos descargarlo desde http://www.teuniz.net/edfbrowser/, de este modo podremos procesarlas posteriormente con Matlab. Proceso de trabajo Crear la seal mECG Una vez en Matlab comenzamos sintetizando las seales ECG materna y fetal. Los siguientes comandos crean la seal mECG, con una frecuencia cardiaca de 89 bpm aproximadamente, 3.5 mV de amplitud de pico y con una frecuencia de muestreo de 4 KHz. x1 = 3.5*ecg(2700).'; %Generamos un latido QRS con 2700 muestras de resolucin. y1 = sgolayfilt(kron(ones(1,13),x1),0,21); % smoothes the signal X using a SavitzkyGolay (polynomial) smoothing filter n = 1:30000;%Tomaremos 30000 muestras. Como un latido ocupa 2700 muestras, %tomaremos un registro de 30000/2700= 11,1 latidos. del = round(2700*rand(1)); %El inicio del registro ser una muestra al azar, entre 0 y 2700. %Creamos el registro maternal, compuesto por n muestras (30000, o sea, 11,1 latidos) %de la seal y1, empezando por la muestra del. mhb = y1(n + del); %Fijamos el intervalo de muestreo a 0.00025 s, es decir, fs=1/Ts=4000 Hz. Como un %latido tena 2700 muestras y un segundo contiene 4000 muestras, la frecuencia %cardaca quedar a (4000/2700)*60 = 89 latidos por segundo, aproximadamente. t = 0.00025:0.00025:7.5;

Dpto. Electrnica. U.A.

%Ahora ploteamos la seal sintetizada. plot(t,mhb); axis([0 2.5 -4 4]); grid; xlabel('Time [sec]'); ylabel('Voltage [mV]'); title('Maternal Heartbeat Signal');

Crear la seal fECG Ahora sintetizaremos la seal fECG cuya frecuencia cardiaca, notablemente ms alta que la de la madre, se suele encontrar entre 120 y 160 bpm, mientras que la amplitud suele ser entre 2 y 10 veces menor. En nuestro caso, tendr un voltaje de pico de 2.5 mV y una frecuencia de 139 bpm. x2 = 0.25*ecg(1725); y2 = sgolayfilt(kron(ones(1,20),x2),0,17); del = round(1725*rand(1)); fhb = y2(n + del); plot(t,fhb); axis([0 2.5 -1 1]);

Dpto. Electrnica. U.A.

grid; xlabel('Time [sec]'); ylabel('Voltage [mV]'); title('Fetal Heartbeat Signal');

Crear la seal fECG que supuestamente captara el electrodo sobre el abdomen materno El fECG medido sobre el abdomen de la madre est mezclado por el ECG materno, que incluso suele tener una amplitud muy superior, entre 2 y 5 veces mayor que el fetal, y se propaga desde la cavidad pectoral hacia el abdomen. Describiremos este camino de propagacin como un filtro lineal FIR de 10 coeficientes al azar. Adems, sumaremos una pequea cantidad de ruido Gaussiano no correlado para simular cualquier fuente de ruido de banda ancha incorporado en el proceso de medida. Observar la seal resultante y deducir si es posible determinar sobre ella el ritmo cardaco fetal.

Wopt = [0 1.0 -0.5 -0.8 1.0 -0.1 0.2 -0.3 0.6 0.1]; d = filter(Wopt,1,mhb) + fhb + 0.02*randn(size(mhb)); plot(t,d); axis([0 2.5 -4 4]); grid; xlabel('Time [sec]');

Dpto. Electrnica. U.A.

ylabel('Voltage [mV]'); title('Measured Signal');

Crear la seal mECG que supuestamente captara el electrodo sobre el trax materno La seal mECG se obtiene del trax materno, teniendo como objetivo del cancelador adaptativo de ruido eliminar la seal mECG del electrocardiograma fetal. Para ello, el cancelador necesita una seal de referencia del electrocardiograma materno. Al igual que la seal fetal capturada estaba contaminada con ruido, tambin lo estar la materna. x = mhb + 0.02*randn(size(mhb)); plot(t,x); axis([0 2.5 -4 4]); grid; xlabel('Time [sec]'); ylabel('Voltage [mV]'); title('Reference Signal');

Dpto. Electrnica. U.A.

Aplicacin del cancelador adaptativo de ruido Existen diferentes procesos adaptativos con los que el cancelador podra trabajar, pero por simplicidad usaremos el filtro adaptativo de mnimos cuadrados (LMS) con 15 coeficientes y un tamao de paso de 0.00007. Con esta configuracin el cancelador converge razonablemente bien tras varios segundos de adaptacin. Se recomienda que el alumno experimente tambin otras combinaciones de valores y saque sus propias conclusiones. Es importante consultar el funcionamiento de la funcin adaptfilt.lms en Matlab, as como el algoritmo LMS y regla delta para la minimizacin iterativa de funciones en la bibliografa recomendada. h = adaptfilt.lms(15,0.00007); [y,e] = filter(h,x,d); plot(t,d,'b',t,e,'r'); axis([0 7 -4 4]); grid; xlabel('Time [sec]'); ylabel('Voltage [mV]'); title('Convergence of Adaptive Noise Canceller'); legend('Measured Signal','Error Signal');

Dpto. Electrnica. U.A.

Recuperacin del electrocardiograma fetal Una vez el filtro adaptativo ha convergido, la seal de salida y(n) contiene una estimacin del electrocardiograma materno, mientras que lo que queda en la seal de error es precisamente el electrocardiograma fetal y algn ruido residual que tambin se captur. Medir sobre esta ltima seal la frecuencia cardaca fetal y su amplitud. plot(t,e,'r'); axis([6 7.5 -0.5 0.5]); grid; xlabel('Time [sec]'); ylabel('Voltage [mV]'); title('Steady-State Error Signal');

Dpto. Electrnica. U.A.

Se propone realizar un filtrado de la seal de error para atenuar el ruido y sin distorsionar excesivamente la seal fetal. Por ltimo, el alumno debe realizar el mismo proceso ya descrito en los ltimos apartados, pero trabajando con seales reales que puede descargar desde la base de datos [5]. En este ltimo caso, las seales se encuentran en formato EDF, por lo que habr que convertirlas previamente a ascii con el programa EDF Browser que podemos descargarlo desde [6], de este modo podremos procesarlas posteriormente con Matlab.

Bibliografa [1] Tratamiento Digital de Seales: Problemas y Ejercicios Resueltos. Emilio Soria Olivas, Marcelino Martnez Sober, Jos Vicente Francs Villora. Prentice Hall. 2003. [2] Biosignal and Biomedical Image Processing: MATLAB based Applications. Second edition. John L. Semmlow. CRC Press. 2009. [3] Biomedical digital signal processing: C-language examples and laboratory experiments for the IBM PC. Willis J. Tompkins. Prentice-Hall, Inc. 1993. [4] Matlab .1994-2009 The MathWorks, Inc.

Dpto. Electrnica. U.A.

[5] Beses de datos extradas de http://www.physionet.org/pn3/nifecgdb/. [6] Programa para visualizar y http://www.teuniz.net/edfbrowser/. convertir seales en formato EDF:

Dpto. Electrnica. U.A.

También podría gustarte