• No se han encontrado resultados

Monitoreo de la frecuencia cardiaca fetal implementado en BeagleBoard a partir de la señal de audio del Doppler fetal

N/A
N/A
Protected

Academic year: 2020

Share "Monitoreo de la frecuencia cardiaca fetal implementado en BeagleBoard a partir de la señal de audio del Doppler fetal"

Copied!
58
0
0

Texto completo

(1)

N° tesis:

PROYECTO FIN DE CARRERA

Presentado a

LA UNIVERSIDAD DE LOS ANDES

FACULTAD DE INGENIERÍA

DEPARTAMENTO DE INGENIERÍA ELÉCTRICA Y ELECTRÓNICA

Para obtener el título de

INGENIERA ELECTRÓNICA

por

Carolina Mejía López

Monitoreo de la Frecuencia Cardiaca Fetal Implementado en BeagleBoard

a Partir de la Señal de Audio del Doppler Fetal

Sustentado el 25 de Junio de 2013 frente al jurado:

Composición del jurado

- Asesor: Antonio José Salazar PhD, Profesor Asociado, Universidad de Los Andes

(2)

Monitoreo de la Frecuencia Cardiaca Fetal

Implementado en BeagleBoard a Partir de la Señal

de Audio del Doppler Fetal

2

Contenido

1 INTRODUCCIÓN ... 4

2 OBJETIVOS ... 4

2.1 Objetivo General ... 4

2.2 Objetivos Específicos ... 4

2.3 Alcance y productos finales ... 5

3 DESCRIPCIÓN DE LA PROBLEMÁTICA Y JUSTIFICACIÓN DEL TRABAJO ... 5

4 MARCO TEÓRICO, CONCEPTUAL E HISTÓRICO ... 5

4.1 Marco Teórico ... 5

4.2 Marco Conceptual ... 6

4.2.1 Conceptos Médicos ... 6

4.2.2 Procesamiento de la Señal ... 7

4.3 Marco Histórico ... 9

5 DEFINICION Y ESPECIFICACION DEL TRABAJO ... 9

5.1 Definición ... 9

5.2 Especificaciones ... 9

6 METODOLOGÍA DEL TRABAJO ... 10

6.1 Plan de trabajo ... 10

6.2 Búsqueda de información ... 12

6.3 Alternativas de desarrollo ... 12

7 TRABAJO REALIZADO ... 13

7.1 Descripción del Resultado Final ... 13

7.1.1 Evaluación de Compatibilidad con Java en la BeagleBoard ... 13

7.1.2 Desarrollo del Programa en Java ... 14

7.1 Trabajo computacional ... 20

8 VALIDACIÓN DEL TRABAJO ... 21

8.1 Metodología de prueba ... 21

8.2 Validación de los resultados del trabajo ... 22

8.3 Evaluación del plan de trabajo ... 25

9 DISCUSIÓN ... 25

10 CONCLUSIONES ... 26

11 AGRADECIMIENTOS ... 27

12 REFERENCIAS ... 27

13 APENDICES ... 31

13.1 Propuesta Proyecto de Grado ... 31

13.2 Diagrama de Clases del Programa ... 36

13.3 Código de programación en Java para procesar la señal de audio ... 37

13.4 Script de MATLAB del algoritmo para obtener la función de la Envolvente y la Autocorrelación de esta ... 47

(3)

Monitoreo de la Frecuencia Cardiaca Fetal

Implementado en BeagleBoard a Partir de la Señal

de Audio del Doppler Fetal

3

13.6 Hoja de datos de BeagleBoard ... 50 13.7 Pantallazos pruebas en Java cambiando la configuración ... 51 13.8 Resumen Ejecutivo ... 57

(4)

Monitoreo de la Frecuencia Cardiaca Fetal

Implementado en BeagleBoard a Partir de la Señal

de Audio del Doppler Fetal

4

1

INTRODUCCIÓN

Muchas personas en el país, no sólo mujeres embarazadas, no cuentan con un servicio completo de salud por su ubicación geográfica. Con el propósito de crear condiciones más equitativas de salud y reducir los índices de morbi-mortalidad perinatal en Colombia se presenta este proyecto como una aplicación de la telemedicina para el monitoreo de mujeres embarazadas. La mayoría de estas muertes suceden por la falta de control y monitoreo de los embarazos. En las zonas no urbanas colombianas no se tiene un fácil acceso a médicos especialistas que puedan atender embarazos riesgosos para que se desarrollen de la mejor manera para la madre y el bebé.

Este proyecto consiste en el desarrollo de una aplicación para un sistema embebido que pueda analizar una señal biomédica y dar sus parámetros pertinentes. Más específicamente esta aplicación está diseñada para medir la frecuencia cardiaca fetal a partir de la señal de salida de un dispositivo de ultra sonido, el dopper fetal. La aplicación fue diseñada para funcionar en la BeagleBoard a la cual se le instaló Lubuntu, un sistema operativo a base de Linux.

A continuación se presentan los objetivos de este proyecto, su justificación, los conceptos empleados, el plan de desarrollo, el desarrollo del proyecto, resultados y conclusiones.

2

OBJETIVOS

2.1 Objetivo General

Diseñar un dispositivo de monitoreo que reciba la señal de audio de un doppler fetal y a partir de esta señal pueda calcular la frecuencia cardiaca del feto y la variabilidad de la misma para luego guardarla y permitir su envío a una locación remota.

2.2 Objetivos Específicos

 Diseñar un programa para la BeagleBoard que pueda recibir una señal de audio y procesarla, que funcione en Linux.

 Diseñar un algoritmo que pueda calcular la frecuencia cardiaca y su variabilidad a partir de una señal de audio digitalizada.

 Grabar la señal recibida y su análisis en un archivo que se pueda abrir desde cualquier computador.

(5)

Monitoreo de la Frecuencia Cardiaca Fetal

Implementado en BeagleBoard a Partir de la Señal

de Audio del Doppler Fetal

5

2.3 Alcance y productos finales

Este proyecto se centra en desarrollar un programa en java que pueda capturar, procesar y guardar la señal de audio emitida por el doppler fetal. La información del procesamiento (frecuencia cardiaca fetal, variabilidad y el audio capturado) se gurardará en un archivo que se puede ejecutar por la misma aplicación en otro computador o sistema que soporte java. Este proyecto no enviará la información.

El producto final de este proyecto de grado es una aplicación en java que es compatible con la BeagleBoard (Lubuntu), Ubuntu y Windows, no se realizaron pruebas en iOS. Puede capturar una señal de audio a través del puerto de entrada de audio de la máquina, mostrar un segmento de ella graficado, calcular la frecuencia cardiaca y su variabilidad de una manera aceptable. Además de esto la aplicación cuenta con memoria y puede almacenar los datos del paciente, los exámenes que se le han realizado con sus respectivos resultados y señal de audio, se pueden añadir pacientes y exámenes a cada paciente y finalmente, se puede escuchar la señal de audio de cada examen.

3

DESCRIPCIÓN DE LA PROBLEMÁTICA Y JUSTIFICACIÓN DEL TRABAJO

Las principales causas de muertes perinatales en Colombia se deben a la no detección temprana de los riesgos del embarazo, el no seguimiento de protocolos y guías de manejos clínicos y la no disponibilidad de insumos o medicamentos [1]. Se quieren reducir estas cifras al aplicar la telemedicina para el monitoreo de los embarazos y detectar a tiempo los riesgos que puede correr la madre. Uno de los parámetros que se puede monitorear es la frecuencia cardiaca fetal (FCF). Con la FCF se conoce el bienestar fetal y si se encuentra fuera de los límites (110 BPM-160 BPM) por periodos prolongados se puede diagnosticar y atender las posibles complicaciones. A partir de esto, se quiere diseñar un sistema de monitoreo de la frecuencia cardiaca fetal que sea implementable en un sistema embebido.

4

MARCO TEÓRICO, CONCEPTUAL E HISTÓRICO

4.1 Marco Teórico

Existen varios métodos de monitoreo de la frecuencia cardiaca fetal (FCF), estos se clasifican en dos categorías, métodos invasivo y métodos no invasivos. La manera más conocida invasiva de monitoreo de la FCF, es el electrocardiograma fetal (FECG). Este método consiste en colocar un electrodo sobre la cabeza del feto y realizar un análisis sobre sus señales biológicas. Por la naturaleza de este método, este tipo de mediciones sólo se pueden efectuar durante el parto.

Entre los métodos no invasivos para obtener la FCF están el electrocardiograma abdominal (AECG), donde se colocan electrodos en el abdomen de la madre, y el

(6)

Monitoreo de la Frecuencia Cardiaca Fetal

Implementado en BeagleBoard a Partir de la Señal

de Audio del Doppler Fetal

6

doppler fetal, que utiliza ultrasonido y el efecto doppler para traducir los movimientos de los músculos del corazón en sonidos. En este caso, se utilizará el doppler fetal como método de aquisición de señales. Se cuenta con el Sonotrax Basic A, un doppler fetal portátil, que tiene un rango de medición de 60BPM (latidos por minuto) y 210BPM con una resolución de 1BPM y una precisión de 3BPM. Este dispositivo cuenta con un transductor de 2MHz diseñado para obstetricia.

El doppler fetal tiene como salida, después de su cadena de medición, una señal de audio donde se pueden escuchar los latidos del corazón. La forma más conocida de detención de la frecuencia cardiaca fetal es la que se propone en [30], el método beat-to-beat o latido a latido. Este método consiste en obtener la autocorrelación de la señal envolvente que incluya dos latidos, y dividir 60 entre el tiempo entre el retardo cero, y el primer máximo local de la función. En [29] y [25] proponen nuevos algoritmos de estimación de la FCF a partir del método beat-to-beat. En el primero, se utiliza una ventana triangular en la correlación para reducir errores de cálculo dados por picos ocasionados por ruido. En el segundo, proponen un método de una ventana deslizante, que va recorriendo la señal cada a un paso definido y adquiere los datos en la ventana para calcular la FCF. Con este método se pueden evitar errores de cálculo causados por el ruido, al tener una ventana más grande. El tamaño del paso define qué porción de la ventana anterior queda en la nueva, entre más pequeño el paso, se puede estimar mejor los cambios en la frecuencia cardiaca, al precio de tener un algoritmo más lento.

4.2 Marco Conceptual

4.2.1 Conceptos Médicos

La frecuencia cardiaca fetal cuenta con varios atributos para realizarle un análisis y determinar a partir de ellos el estado del feto. Dependiendo de sus valores y en los rangos en los que se ubiquen se puede determinar si el embarazo es riesgoso tanto como para la madre como para el feto. Estos atributos se explicarán a continuación [3]:

 Línea Base: Es el promedio de la FCF aproximada a 5 latidos por minuto en un intervalo de 10 minutos, excluyendo: cambios periódicos, periodos con variabilidad marcada, segmentos en la línea base que difieren en más de 25 latidos por minuto. Los valores normales para la línea base están entre 110 y 160 BPM. Cuando se tiene una línea base menor a 110BPM se considera que el feto tiene bradicardia. Cuando está por encima de 160BPM el feto tiene taquicardia[3].

 Variabilidad de la Línea Base: Son fluctuaciones en la FCF base que son irregulares en amplitud y frecuencia. En el caso del doppler fetal los cambios en amplitud no son detectables fácilmente. La variabilidad es visualmente cuantificada como la amplitud

(7)

Monitoreo de la Frecuencia Cardiaca Fetal

Implementado en BeagleBoard a Partir de la Señal

de Audio del Doppler Fetal

7

de pico a valle en latidos por minuto. Se tienen cuatro tipos de variabilidad: Ausente (no se detecta la amplitud), mínima (amplitud detectable menor a 5BPM), moderada [normal] (amplitud entre 6 a 25 BPM) y marcada (amplitud mayor a 25 BPM)-

 Aceleración: Es un aumento abrupto de la FCF, que llega al pico en 30 segundos. Dependiendo de la semana de gestación los límites de normalidad varían. Si se tienen menos de 32 semanas, la aceleración tiene un pico de 10BPM o más sobre la línea base, con una duración de mínimo 10 segundos y se demora máximo 2 minutos en volver a su valor normal. Cuando se tienen 32 o más semanas de gestación, la aceleración tiene un pico de 15BPM o más sobre la línea base, con una duración de 15 segundos o más y se demora menos de 2 minutos en volver a su valor normal. Una aceleración prolongada dura más de 2 minutos y menos de 10 minutos. Si esta aceleración dura más de 10 minutos, se cambia la línea base.

 Deceleraciones: Hay varios tipos de deceleraciones, la precoz, la tardía, la variable y la prolongada. Las deceleraciones precoz y tardía tienen que ver con las contracciones del útero y el momento en el que suceden, precoz si es antes de la contracción y tardía si es después. Estas deceleraciones no se pueden detectar con el doppler fetal, pues este no monitorea las contracciones del útero. La deceleración variable es de 15BPM por debajo de la línea base, dura entre 15 segundos y 2 minutos. Si dura entre 2 minutos y 10 minutos es una deceleración prolongada. Si esta deceleración tiene una duración superior a los 10 minutos, se cambia la línea base.

 Patrón sinusoidal: Un patrón que consiste en cambios de la FCF base que tuene forma de una función seno, con una repetición entre 3 y 5 veces por minuto que persiste por más de 20 minuto.

Según esto se puede tener tres niveles de interpretación de la frecuencia cardiaca, estos se muestran en la Tabla 1.

4.2.2 Procesamiento de la Señal

El algoritmo para calcular la frecuencia cardiaca fetal se basa en adquirir la correlación de la envolvente de la señal, tal y como se dice en [25], [29] y [30]. La señal muestreada no nos provee la envolvente, toca calcularla. Por ello, en [29] definen la envolvente de una señal tal como se muestra en .

(8)

Monitoreo de la Frecuencia Cardiaca Fetal

Implementado en BeagleBoard a Partir de la Señal

de Audio del Doppler Fetal

8

Tabla 1 Sistema de interpretación de la FCF [3]

Línea Base Variabilidad Aceleración Deceleración Patrón Sinusoidal

Categoría I Normal Moderada Ausente o Presente Precoces presentes. Tardías y variables ausentes. Ausente Categoría II Bradicardia (sin variabilidad ausente) Taquicardia Mínima Ausente (sin deceleraciones recurrentes) Marcada Ausencia de aceleraciones inducidas después de estimular al feto

Periódicas Variables recurrentes Prolongadas recurrentes y menores a 10

mins Tardías recurrentes

Ausente

Categoría III Bradicardia Ausente -

Tardías y variables recurrentes

Presente

Donde es una señal analítica y es la transformada de Hilbert de la señal

. La transformada de Hilbert es la convolución de la señal con [42]. Esta se puede calcular de diferentes maneras, el método que se decidió implementar, por conveniencia es a partir de la transformada de Fourier de la señal y eliminando las frecuencias negativas de la transformada. En otras palabras multiplicando la transformada de Fourier con un escalón unitario. Al aplicar la transformada inversa de la señal se obtiene una señal analítica cuya parte imaginaria es la transformada de Hilbert y su parte real la señal original, tal como se muestra en . A esa señal sólo basta con amplicarle la función módulo para que sea la envolvente de la señal original.

(2)

Una vez se tiene la envolvente de la señal, se debe calcular la autocorrelación de esta. La función para obtener la autocorrelación de una señal discreta en el tiempo está dada por .

(3)

Donde es el tamaño de la señal recibida, es el lag de la autocorrelación, es el k-ésimo valor de la señal, y es la autocorrelación para el lag . El orden de

complejidad de esta función es . Lo cual es computacionalmente costoso, por eso se buscó un método más eficiente.

(9)

Monitoreo de la Frecuencia Cardiaca Fetal

Implementado en BeagleBoard a Partir de la Señal

de Audio del Doppler Fetal

9

El algoritmo entonces implementado también es con la transformada de Fourier y se define en . Este método tiene un orden de complejidad menor, .

4.3 Marco Histórico

El monitoreo Materno-Infantil ha sido un tema de interés para la comunidad científica en el mundo. En el 2003, se hizo un estudio en Israel con un sistema de monitoreo de mujeres en embarazo de alto riesgo que media la frecuencia fetal [34]. El dispositivo era entregado a las futuras madres para que ellas realizaran sus mediciones y les enviaran la información a sus respectivos doctores. De 36 mujeres embarazadas que hicieron parte de la prueba, siete mostraron mediciones anormales. Cuatro de ellas fueron dadas de alta después de ser monitoreadas en el hospital. Las otras tres fueron hospitalizadas por anomalías en el embarazo. Este sistema ayudó a que esas mujeres obtuvieran el tratamiento necesario para tener un bebé saludable.

En la Universidad de los Andes se han realizado varios proyectos relacionados con la telemedicina y el monitoreo materno-fetal. En el 2012 se realizaron al menos tres proyectos en esta área. El primero, una tesis de maestría de Liz Catherine Hernández donde se realizó un prototipo de telemonitoreo materno-infantil con la medición del ECG y saturación de la sangre implementado en la BeagleBoard [39], ese dispositivo también contaba con conexión a internet. El segundo fue el proyecto de grado de Hebert Mateo Reyes donde implementaba en LabView un sistema de monitoreo del ECG materno-fetal donde realizaba un diagnóstico de anomalías [40]. Por último el proyecto de grado de Viviana Salcedo que implementó un sistema de monitoreo de la FCF en adroid [38].

5

DEFINICION Y ESPECIFICACION DEL TRABAJO

5.1 Definición

Este proyecto busca disminuir los índices de morbi-mortalidad materno infantil en el país proveyendo maneras de generar un diagnóstico oportuno de las complicaciones que puede tener un embarazo. El producto final de este proyecto está enfocado para ser utilizado en mujeres en edad gestacional en lugares donde no se tiene accesibilidad a un centro médico que provea el servicio de citas preventivas y de control para su embarazo.

5.2 Especificaciones

La aplicación diseñada en este proyecto para el monitoreo de la frecuencia cardiaca fetal puede ser instalada en cualquier máquina (tarjeta de desarrollo, computador, etc.) que tenga un sistema operativo compatible con java y un puerto de entrada de audio. La señal a procesar es muestreada a una frecuencia de 11025Hz, una frecuencia

(10)

Monitoreo de la Frecuencia Cardiaca Fetal

Implementado en BeagleBoard a Partir de la Señal

de Audio del Doppler Fetal

10

estándar que no presenta distorsión en la señal audible. La señal de audio proviene de un doppler fetal, en este caso para pruebas, se utilizó el doppler fetal Sonotrax Basic A. El algoritmo del programa desarrollado sólo reconoce frecuencias cardiacas entre los 80 BPM y 200 BPM. El producto final de este proyecto captura la señal por el tiempo definido al activar el botón de “Captura”. Si se quiere escuchar la señal se debe tener la aplicación y cargar el archivo de datos. La cantidad de datos que se pueden almacenar depende de la memoria del dispositivo sobre el cual se esté ejecutando la aplicación.

El programa graba la información del paciente, esta no se puede cambiar una vez ingresada, y puede grabar cuantos pacientes la memoria le permita. Los exámenes con sus resultados se pueden acceder y se puede regrabar la señal de audio cuantas veces se desea, perdiendo la señal anteriormente almacenada. Los datos se cargan automáticamente cuando se ejecuta la aplicación y se guardan automáticamente cuando se cierra la aplicación. Si hay errores en estos procesos se muestra un mensaje avisando. Esta información no se envía automáticamente, se debe cargar el archivo a un servidor manualmente si el dispositivo cuenta con una conexión a internet.

6

METODOLOGÍA DEL TRABAJO

6.1 Plan de trabajo

Una vez se obtuvieron las especificaciones iniciales del problema, se procedió a realizar un diagrama de caja negra del problema a resolver y definir las entradas y salidas. En la Figura 1 se muestra este diagrama y a continuación la definición de las entradas y salidas del sistema.

Figura 1 Diagrama de Caja Negra

Descripción de Señales

 Señales de entrada:

o Audio: Señal análoga, generada por el doppler fetal recibida en el puerto de entrada de audio

 Señales de salida:

(11)

Monitoreo de la Frecuencia Cardiaca Fetal

Implementado en BeagleBoard a Partir de la Señal

de Audio del Doppler Fetal

11

o Variabilidad: Señal digital, estadística que indica la variabilidad de la frecuencia cardiaca del feto.

Una vez definido que necesita el sistema, se eligió como plataforma de desarrollo la BeagleBoard, que cumple los requerimientos necesarios: cuenta con una entrada de audio, posee un puerto donde se puede conectar una pantalla y se le puede instalar el sistema operativo que se quiera. La BeagleBoard tiene instalado un sistema operativo basado en Linux, Lubuntu, así que para empezar el proyecto necesitaron conocimientos sobre este sistema operativo. Luego se eligió una plataforma y un lenguaje de programación, en este caso se eligió trabajar en Eclipse utilizando Java, por lo que ya se tiene una familiaridad con el lenguaje y el uso de la plataforma.

Una vez con un sistema operativo, una plataforma de programación y un lenguaje, se procedió a realizar pruebas, una aplicación “Hola Mundo” para verificar el funcionamiento correcto de Java en la tarjeta de desarrollo. Ya sabiendo que esta tarjeta si soporta aplicaciones en Java, se procede a desarrollar la aplicación objetivo: una que reciba una señal de audio, la procese y la analice para dar la frecuencia cardiaca fetal y su variabilidad.

El desarrollo de la aplicación final se hizo por partes, para ir probando en Java el cumplimiento de las especificaciones de la aplicación. Primero se realizan pruebas en las cuales se leen archivos de texto que tienen vectores de una señal y se grafican. Luego se realizaron pruebas en las cuales se tenía una señal análoga a la entrada del puerto de audio y se calcula su frecuencia. Lo siguiente que se desarrolló en este punto es el algoritmo para calcular la frecuencia cardiaca fetal, y otro algoritmo que pueda grabar la señal recibida en un archivo que se pueda enviar después.

Los algoritmos fueron primero desarrollados en MATLAB y luego se trasladaron a Java. Como validación del algoritmo en Java se comparan los resultados con los obtenidos en MATLAB para asegurarse que se hayan implementado de la manera correcta.

En la Figura 2 se puede ver el diagrama de bloques que describe el plan de trabajo y la metodología. El bloque de evaluación de algoritmos consiste en la prueba de todo el sistema y registrar los resultados para luego validarlos. Para las fechas necesarias, como la entrega del informe de avance y los demás documentos que se exigen para el desarrollo del proyecto se tenían reuniones con el asesor y donde se presentaba un borrador del informe y se discutía el desarrollo del proyecto.

(12)

Monitoreo de la Frecuencia Cardiaca Fetal

Implementado en BeagleBoard a Partir de la Señal

de Audio del Doppler Fetal

12

Figura 2 Etapas de desarrollo del proyecto

6.2 Búsqueda de información

Para la búsqueda de información se utilizaron los recursos que brinda la Universidad de los Andes a sus estudiantes. Principalmente la biblioteca virtual IEEE Xplore. Allí se buscaron artículos donde se discutieran diferentes maneras de obtener la frecuencia cardiaca fetal. Se tenía que tener claras las palabras claves pues existe otro método no invasivo para la detección de la FCF actualmente, este método es el electrocardiograma abdominal, donde se le colocan electrodos a la madre en el abdomen. Adicionalmente a la IEEE Xplore se utilizaron otras bases de datos de artículos relevantes con el tema en bibliotecas virtuales tales como IOP Science y la base de datos del National Center for Biotechnology Information que tiene un convenio con PubMed. Asimismo, se buscaron libros electrónicos para adquirir información sobre Ubuntu y el API de Sonido de Java.

Con los conocimientos adquiridos durante la carrera se logró realizar un filtro y reconocer artículos confiables y con información relevante para el proyecto. Adicionalmente, durante la carrera se adquirió la habilidad de transformar ecuaciones en algoritmos que se pueden ejecutar en determinado programa. Por ejemplo, el cálculo de la correlación de la señal, o la transformada de hilbert. También se contó con foros de programación para resolver dudas de implementación del código y encontrar la posibilidad de obtener un método más eficiente en tiempo y memoria.

6.3 Alternativas de desarrollo

En el momento de decidir en trabajar en el monitoreo materno-fetal se contaba con varias opciones del parámetro biológico a analizar, de ellas se escogieron dos parámetros relevantes e influyentes en la morbi-mortalidad materno infantil: la presión sanguínea de la madre (pronóstico de preeclampsia) y la frecuencia cardiaca fetal.

Con la presión sanguínea se debía diseñar el tensiómetro y el medio de comunicación entre este y el sistema de monitoreo. Se pensaba realizar un tensiómetro automatizado que a través de conexión Bluetooth se conectara con un Smartphone o una tableta que contara con un módulo de comunicación compatible. Se evaluaron

(13)

Monitoreo de la Frecuencia Cardiaca Fetal

Implementado en BeagleBoard a Partir de la Señal

de Audio del Doppler Fetal

13

diferentes modos de realizar el tensiómetro pero según estadísticas biomédicas la única forma confiable de realizar la medición de la presión era con el método manual de escuchar la presión de diástole y la sístole. Por ello se consideró esta opción como una no viable.

Para medir la frecuencia cardiaca fetal, se tenían dos opciones de implementación, un Smartphone o una tableta, o en un sistema embebido como la BeagleBoard. No se debía diseñar el dispostivo de adquisición de la señal, pues para medir la frecuencia cardiaca fetal se tienen dos métodos, a través de ECG o del doppler fetal. El laboratorio de telemedicina cuenta con un doppler fetal, Sonotrax Basic A. Se tomó la decisión de usarlo como sensor para adquirir la señal.

El dispositivo de procesamiento y análisis, se decidió implementarlo en la BeagleBoard debido a que no todas las tablet o Smartphones cuentan con un puerto definido de entrada de audio, y programar en el SDK de Android, si no se tiene experiencia previa puede resultar complicado e ineficiente. La BeagleBoard, en cambio tiene un puerto de entrada y salida de audio, con ello ya se tiene una característica del hardware fija. Adicionalmente al trabajar con un sistema operativo basado en Ubuntu, la tarjeta es compatible con aplicaciones desarrolladas en Java. Así que con ello el sistema operativo no es una limitante para la forma en la que se desarrolla el software.

7

TRABAJO REALIZADO

7.1 Descripción del Resultado Final

7.1.1 Evaluación de Compatibilidad con Java en la BeagleBoard

La tarjeta colocó en un montaje estilo Plug and Play. Donde esta quedaba fija en una plataforma estable y para utilizarla sólo se debían conectar los periféricos, como el mouse y el teclado al HUB USB y conectar la BeagleBoard y el HUB a la alimentación eléctrica. Este montaje se muestra en la Figura 3. Con este montaje es más seguro manipular los periféricos y se mantiene un orden en el puesto de trabajo.

(14)

Monitoreo de la Frecuencia Cardiaca Fetal

Implementado en BeagleBoard a Partir de la Señal

de Audio del Doppler Fetal

14

Adicionalmente se pensaba graficar la amplitud de la señal en el dominio del tiempo. Se descubrió que Java cuenta con la librería Graphics, en ella se pueden dibujar líneas, escribir texto y dibujar fig¡Error! La autoreferencia al marcador no es válida.uras geométricas. En la Figura 4 se muestra la comparación de un vector graficado en MATLAB y el mismo graficado en Java. Con este tipo de pruebas se logró dominar la librería Graphics para poder desarrollar la interfaz de la aplicación

Figura 4 Comparación de la señal en MATLAB y en Java.

7.1.2 Desarrollo del Programa en Java

7.1.2.1 Adquisición de la señal

Para adquirir la señal se pensó en utilizar el puerto de entrada de audio de la tarjeta. Se buscó si en Java era posible capturar sonido y se encontró que Java contaba con un API diseñado específicamente para audio, el Java Sound API [21]. Leyendo la documentación del API y con ejemplos de captura y reproducción de audio en Java [23] y [22]. Esto se tomó como base para desarrollar una aplicación de prueba de captura y reproducción de audio, este modelo se puede ver en la Figura 5.

Para poder adquirir la señal se tiene que abrir la línea del puerto de entrada de la señal, para esto se requiere darle un formato a la línea de adquisición. El formato se definió con una frecuencia de muestreo igual a 11025Hz, pues es un estándar, con una muestra de 2Bytes, de un sólo canal, con signo y codificación Little Endian. La codificación se eligió Little Endian para facilitar la conversión de la señal de byte a double y poder realizar el procesamiento de esta. Se consideró que con una resolución de 16 bits se tenían los niveles suficientes para digitalizar adecuadamente la señal. Se decidió que la señal iba a ser de un solo canal para ahorrar memoria y facilitar el procesamiento. Adicionalmente, la frecuencia de muestreo puede ser modificada a discreción del usuario, si prefiere una frecuencia mayor o una menor.

(15)

Monitoreo de la Frecuencia Cardiaca Fetal

Implementado en BeagleBoard a Partir de la Señal

de Audio del Doppler Fetal

15

Figura 5 Prototipo de captura de audio, carga de archivos y gráfica de la amplitud del sonido

7.1.2.2 Procesamiento de la Señal

Como se mencionó anteriormente, antes de calcular la autocorrelación de la señal se necesita obtener la envolvente. En se muestra la función que provee una señal analítica donde la parte real de esta es la señal original y la parte imaginaria es la transformada de Hilbert. Se realizó una simulación en MATLAB para verificar el funcionamiento de este algoritmo y se comparó del método de Fourier con la función hilbert(x) de MATLAB y en la Figura 6 se muestran los resultados. En ambas gráficas se tienen las dos envolventes obtenidas graficadas una sobre la otra, al no ver espacios de diferente color entre la una y la otra se ha concluido que el método de Fourier sí puede calcular la transformada de Hilbert correctamente.

Figura 6 Envolvente calculada con la función en MATLAB (azul) y con Fourier (verde)

Una vez se tiene el algoritmo funcionando para calcular la envolvente de la señal, se procede a calcular la autocorrelación de la señal. La función para obtener la

(16)

Monitoreo de la Frecuencia Cardiaca Fetal

Implementado en BeagleBoard a Partir de la Señal

de Audio del Doppler Fetal

16

autocorrelación de una señal discreta en el tiempo está dada por . Para calcular la transformada de Fourier en Java se utilizaron Complex.java [43] y FFT.java [44], desarrollados por el Departamento de Ciencias Computacionales de Princeton. La función para calcular la FCF está dada en , donde es la distancia en el tiempo

entre y el primer máximo local. Para tener resultados que si se ajustan al

rango de frecuencias cardiacas fetales, que debe incluir valores de taquicardia y bradicardia, debe estar entre 0,3s y 0,6s. Estos tiempos son los para

frecuencias cardiacas de 200BPM y 100BPM, respectivamente. Este es, entonces, el rango definido para la aplicación de detección de frecuencias cardiacas fetales.

(5)

Este algoritmo se puso a prueba en MATLAB antes de implementarlo en Java, con un archivo WAVE con una señal de audio de un latido de corazón con una frecuencia cardiaca de aproximadamente 130 latidos por minuto, la duración del audio es de 58 segundos donde se contaron 126 latidos, así que queda un intervalo de incertidumbre. En la Figura 7 se muestra el vector de autocorrelación graficado en función del tiempo de la señal, para una ventana de 4 segundos.

Figura 7 Autocorrelación de la señal de audio muestreada por 4 segundos.

Ya sabiendo que este algoritmo funciona, se procedió a modificarlo para que se ajustara con el modelo que se propone en [25]. Este modelo consiste en calcular la autocorrelación de la envolvente de la señal de audio por ventanas. El tamaño del paso entre ventanas, es decir, el tiempo entre un cálculo y otro se definió como 125ms, este valor puede ser modificado por el usuario. También es modificable por el usuario la duración de la ventana. Este valor está predeterminado en 10 segundos. Con este método se obtiene un cálculo menos susceptible al ruido y una variabilidad precisa. Estos valores, dependen del ancho de la ventana y del tamaño del paso respectivamente. Entre más grande la ventana, mejor será la estimación y entre más pequeño el paso, mejor será la función de variabilidad. Esto corriendo el riesgo que el

(17)

Monitoreo de la Frecuencia Cardiaca Fetal

Implementado en BeagleBoard a Partir de la Señal

de Audio del Doppler Fetal

17

algoritmo se demore más en terminar. La duración de la grabación está predeterminada a ser 20 segundos, el usuario puede cambiar este valor al que más le convenga.

Con el método de la ventana se toma la autocorrelación de cada ventana y a partir de los tiempos calculados se obtiene el vector de variabilidad, se estiman la FCF

máxima y mínima, y el valor medio de ese vector equivale a la línea base de la frecuencia cardiaca fetal. Queda resaltar que la manera en la que se diseño la interfaz afecta la elección de los valores de tiempo de captura, ventana y separación entre ventanas. El número de mediciones no debe superar los 400 valores. Para saber si los valores ingresados por el usuario están dentro de este rango se debe seguir la ecuación .

(6)

La variabilidad de la señal se calcula con el rango establecido por las frecuencias cardiacas calculadas máxima y mínima. Pues en este caso se interpretó la variabilidad como el rango en el cual se encuentran todos los valores de la FCF calculados.

7.1.2.3 Diseño de la Interfaz y Persistencia en Memora

Una característica importante que debe tener el programa diseñado es que este pueda almacenar la información medida junto con el audio. Se consideró en primera instancia generar una base de datos que también guardara el audio capturado del doppler fetal en un archivo WAVE. Por cuestiones de simplicidad se decidió solo generar un archivo de memoria, implementando clases serializables. El audio se almacena en un vector tipo byte que se puede reproducir cuando se vuelva a ejecutar el programa. La información se guarda automáticamente cuando se cierra la aplicación y se carga automáticamente en el momento en que se abre el programa.

Adicionalmente, se quería tener la posibilidad de almacenar varios pacientes, donde cada cual podría tener varios exámenes. Esto se ve reflejado en el diseño de la interfaz. Cuando se ejecuta el programa se le presentan dos opciones al usuario: Cargar un paciente o generar un paciente nuevo, tal como se ve en la Figura 8. Para generar uno nuevo sólo es necesario oprimir el botón “Nuevo” y aparece una ventana en la cual se ingresa la información del paciente como se muestra en la Figura 9.

El atributo principal de los pacientes, por el cual se reconocen es la cédula. Por ello, si ya existe un paciente con ese número de cédula el programa produce un diálogo de advertencia. De la misma manera, para buscar un paciente en la base de datos se necesita de su número de identificación. Esto puede producir dos resultados, el paciente se encuentra o el paciente con el número de cédula ingresado no se

(18)

Monitoreo de la Frecuencia Cardiaca Fetal

Implementado en BeagleBoard a Partir de la Señal

de Audio del Doppler Fetal

18

encuentra. Para buscar un paciente se abre un diálogo donde el usuario debe ingresar manualmente el número del documento de identificación del paciente. En caso de que no se encuentre el paciente se presenta un diálogo informando que ese documento de identidad no se encuentra registrado. Todos estos diálogos se pueden ver en la Figura 10.

Figura 8 Interfaz del programa

Figura 9 Diálogo para ingresar un nuevo paciente

Una vez se tiene un paciente se activa el panel que muestra los exámenes en la interfaz. Este panel cuenta con diferentes botones. Se tiene la opción de capturar el audio, reproducirlo y generar un nuevo examen. El procesamiento de la señal ocurre apenas esta se termina de grabar. Adicionalmente, en la parte superior de este panel, sobre donde se grafica la amplitud de la señal, se tiene la fecha del examen, junto a la semana de embarazo de la madre y un par de botones para navegar entre exámenes. Cuando se carga un paciente nuevo, automáticamente se muestra el último examen registrado de este. Este panel se puede apreciar en la Figura 12.

(19)

Monitoreo de la Frecuencia Cardiaca Fetal

Implementado en BeagleBoard a Partir de la Señal

de Audio del Doppler Fetal

19

Figura 10 Diálogos de información respecto al paciente

Las opciones de reproducir el sonido y analizar la señal, no se habilitan hasta que se haya capturado una señal de audio. Apenas se oprime el botón se ejecuta el método de captura de audio, este captura por el tiempo que se haya definido en segundos la señal que se presente en puerto de entrada. Si la señal grabada no es satisfactoria, esta se puede volver a grabar sobre la que ya se había hecho. El análisis de la señal se hace a tiempo diferido para asegurarse de tener toda la información almacenada, en especial el vector de audio, antes de realizar un análisis sobre la señal.

Figura 11 Diálogo para modificar la configuración del muestreo y procesamiento de la señal

Los parámetros de captura se cambian en el panel de configuración, donde uno oprime el botón Cambiar y aparece el diálogo de la Figura 11, donde se editan estos valores y se graban, en caso de que se quiera volver a la configuración predeterminada se hace click en el botón Default.

Una vez se tiene el audio grabado, se procede a analizar la señal, la interfaz se actualiza y se muestra la frecuencia cardiaca fetal, la variabilidad, la frecuencia cardiaca máxima y la frecuencia cardiaca mínima. Al mismo tiempo, grafica la función de variabilidad de la señal, alrededor de la línea base (FCF) y como esta varía en el tiempo. Un ejemplo de esto se ve en la Figura 13. Donde se ingresó por el puerto de entrada de audio la señal piloto de 130BPM.

(20)

Monitoreo de la Frecuencia Cardiaca Fetal

Implementado en BeagleBoard a Partir de la Señal

de Audio del Doppler Fetal

20

Figura 12 Panel Examen nuevo

Figura 13 Interfaz con un examen ya analizado

7.1 Trabajo computacional

El desarrollo de la aplicación, como se mencionó anteriormente, se hizo en Eclipse. Este ambiente de desarrollo en Java se conoce desde los inicios de la carrera con el primer curso de programación. Para lograr tener un número variable de pacientes y exámenes por paciente, se hizo una clase donde se trabajaran estos objetos como un ArrayList. La ventaja de tener un ArrayList es que no es que el tamaño del archivo donde se guarda la información varía según el número de pacientes y de exámenes, y con ello no se acapara toda la memoria del sistema de una vez. El diagrama de clases de la aplicación se encuentra anexo.

(21)

Monitoreo de la Frecuencia Cardiaca Fetal

Implementado en BeagleBoard a Partir de la Señal

de Audio del Doppler Fetal

21

En Java es necesario desarrollar toda la aplicación antes de generar pruebas en esta. Por eso, fue que se hizo uso de MATLAB para probar la funcionalidad de los algoritmos implementados, aprovechando las habilidades de programación en MATLAB que se poseen. El algoritmo del procesamiento de la señal se ve en la Figura 14.

Figura 14 Diagrama de Flujo del Algoritmo del Programa

8

VALIDACIÓN DEL TRABAJO

8.1 Metodología de prueba

Las pruebas se hicieron siguiendo el modelo de prueba que se utiliza en [25]. Se grabó una muestra de un corazón latiendo. A partir de esta se escogió un segmento que tuviera un latido constante y claro. A través de Audacity, se hizo un clip de audio de minuto de largo repitiendo esta señal. Se contaron los latidos de la señal y se registró este número. Se tenían dos archivos WAVE de prueba con frecuencias cardiacas constantes, Fetal_Heartbeat187.wav y heartbeat132.wav y un archivo de prueba con una frecuencia cardiaca en proceso de desaceleración, heartbeat.wav. Esta última es de un adulto que pasa de un estado activo a estar en reposo.

El intervalo a repetir de heartbeat132.wav fue tomado de la grabación heartbeat.wav que se obtuvo con el doppler fetal ubicado sobre el pecho de una persona adulta. Hay que tener en cuenta que el rango de la frecuencia cardiaca de un adulto en reposo está entre 60 y 100 BPM, valores por debajo del rango establecido para la frecuencia

Inicio

Capturar señal

Convertir señal a double

Inicializar vector del tiempo

Calcular Envolvente

Filtrar señal de audio Calcular FCF

Fin

¿Se cumplió el tiempo de

captura?

NO

Calcular vector de variabilidad

Actualizar Interfaz

(22)

Monitoreo de la Frecuencia Cardiaca Fetal

Implementado en BeagleBoard a Partir de la Señal

de Audio del Doppler Fetal

22

cardiaca fetal. Para solucionar este inconveniente se hizo que la frecuencia cardiaca de la persona aumentara al pedirle que hiciera una actividad física, como saltar, esto eleva la frecuencia por encima de los 100BPM y ubicándola dentro del rango permitido por la aplicación.

Para probar el desempeño del programa y de los algoritmos implementados, se debe reproducir la señal. Antes de reproducirla, con un cable auxiliar se conecta la salida de audio del reproductor al puerto de entrada de micrófono de la tarjeta de audio. Se abre la aplicación, se ingresan los datos del paciente o se carga el paciente de pruebas y se procede a capturar la señal: apenas esta empieza a sonar se activa el botón Capturar.

Este procedimiento se hizo cambiando la frecuencia de muestreo y demás parámetros de configuración que permite el programa obtener.

8.2 Validación de los resultados del trabajo

Para validar los algoritmos implementados se compararon los resultados obtenidos en MATLAB con los obtenidos en Java con la aplicación. El script de pruebas se encuentra anexo. En MATLAB se capturó la señal de audio del archivo hearbeat132.wav, se calculó la envolvente de la señal y luego se graficaron los vectores de autocorrelación y la variabilidad de la señal respecto a la línea base. En Java, no se graficaron las autocorrelaciones, pero sí la variabildad de la señal respecto a la línea base.

Los resutlados de MATLAB se muestran en la Figura 15. Se puede ver que hay un pico alrededor de los 210ms. Este pico se encuentra por fuera del rango permitido de frecuencias cardiacas, por ende el dato registrado es el segundo pico de la función. El promedio medido es de 130BPM. La variabilidad de la señal es casi nula como se puede ver en la Figura 15.

(23)

Monitoreo de la Frecuencia Cardiaca Fetal

Implementado en BeagleBoard a Partir de la Señal

de Audio del Doppler Fetal

23

Esta misma señal se analizó con la aplicación diseñada en este proyecto. La línea base de frecuencia cardiaca es de 129, con una variabilidad de 3BPM. Como se muestra en el pantallazo de la aplicación en la Figura 16. La diferencia entre los latidos contados, la FCF calculada por MATLAB y la FCF calculada en Java es de 2BM y 3BPM. Estas diferencias equivalen a un error de medición entre 0,02 y 0,03 segundos. Un error absoluto del 2,3%.

Figura 16 Análisis de heartbeat132.wav en Java

Luego se propuso realizar diferentes mediciones de la misma señal cambiando los parámetros de medición. Estos se realizaron con heartbeat132.wav y los resultados se muestran en la Tabla 2. Este análisis se hizo para evaluar que tanto afectaban los cambios en configuración los resultados obtenidos. En la única captura aunque hubo una gran diferencia fue en el Test 6, donde se disminuyó la ventana a una quinta parte. Las imágenes de estos análisis se encuentran adjuntas al final del documento.

El análisis que se hizo con el Test 11 y el Test 12, fue con el archivo heartbeat.wav. Este archivo WAVE es la grabación del corazón de un adulto que estuvo saltando, entrar a un estado de reposo, como se pueden ver en las figuras anexas se puede ver como la línea fucsia tiene una pendiente negativa y va disminuyendo su valor. Hubo ciertos errores de cálculo de la frecuencia cardiaca en el Test 11, esto se ve entre los 17 segundos y 45 segundos de captura. Hay picos que cuando vuelven a entrar en el rango de análisis, se ve que la frecuencia va disminuyendo. La línea base de esta prueba está promediada en 148 latidos por minuto, si no se tuvieran esos picos posiblemente se encontraría entre los 130BPM y los 110BPM (la mínima frecuencia medida). Esto se demuestra con el Test 12, en los 20 segundos que capturó la señal

(24)

Monitoreo de la Frecuencia Cardiaca Fetal

Implementado en BeagleBoard a Partir de la Señal

de Audio del Doppler Fetal

24

esta pasó de 138BPM a 126BMP, una variabilidad de 12BPM en el intervalo con una línea base de 132BPM, la frecuencia ubicada en la mitad de este intervalo.

Con esto queda demostrado que es necesario tener una ventana grande para evitar tener errores de cálculo, pues con una señal que se sabe que es constante en el tiempo, tener un aumento de la frecuencia cardiaca fetal hasta los 213BPM de un segundo a otro, se atribuye a un error de cálculo. Esta simulación se puede ver en la Figura 13, donde hay un pico a los 18 segundos de la captura.

Tabla 2 Resultados de pruebas con heartbeat.132.wav y Fetal_Heartbeat187.wav

Te st FCF [ BPM ] Va ri ab ili d ad [BPM ] FC M áx [BPM ] FC M in [ BPM ] Fr e cu e n ci a M u e st re o [Hz ] Dur aci ó n d e la gr ab aci ón [ s] Ve n tana [ s] Ste p si ze [s]

1 129 3 131 128 11025 20 10 0,125

2 130 3 131 128 11025 20 5 0,125

3 129 2 130 128 11025 30 10 0,125

4 130 2 130 128 11025 10 10 0,500

5 129 2 130 128 11025 20 15 0,125

6 133 86 213 127 11025 20 2,0 1,000

7 130 1 131 130 8000 20 10 0,125

8 130 1 131 130 22050 20 10 0,125

9 131 1 131 130 44100 10 5 0,125

10 186 1 186 185 11025 20 10 0,125

11 148 104 214 110 8000 60 15 0,125

12 132 12 138 126 11025 20 10 0,125

Con estos resultados se le recomienda al usuario de la aplicación utilizar una ventana de unos 5 segundos para el análisis de la señal, y si quiere medir de una manera más precisa la variabilidad de la señal, debe disminuir el tiempo entre ventanas, teniendo en cuenta que si se tiene un tiempo entre ventanas muy pequeño el análisis de la señal dura más tiempo.

La frecuencia de muestreo no afecta los resultados del análisis de la señal, pero sí afecta la manera en la que esta suena cuando se decide reproducirla. La calidad del audio a 11025Hz es buena, no se escuchan distorsiones notorias como sucede a 1000Hz y a 8000Hz. La mejor calidad de sonido, obviamente es cuando se tiene una frecuencia de muestreo de 44100Hz, que equivale a la calidad de audio de un CD.

(25)

Monitoreo de la Frecuencia Cardiaca Fetal

Implementado en BeagleBoard a Partir de la Señal

de Audio del Doppler Fetal

25

También cabe mencionar que las señales utilizadas para las pruebas tenían una duración máxima de un minuto, lo cual hace que la variabilidad obtenida no sea cosiderada significante, pues como se mencionó en el marco conceptual, se necesita las aceleraciones y deceleraciones tienen una duración de 15segundosa 2 minutos o de 2 minutos a 10 minutos. Y esto con una muestra de 60 segundos apenas se puede observar. Se recomienda realizar varias grabaciones con la paciente, pues así no sea en una sola toma, se podrían analizar por partes el comportamiento del corazón del feto.

8.3 Evaluación del plan de trabajo

El plan de trabajo para este proyecto resultó ser un poco diferente al que se tenía en la propuesta. Esto se debe principalmente a que en la propuesta se había planteado analizar una señal biomédica totalmente diferente a la que se midió en este proyecto. Por ende se tuvo que volver a hacer una búsqueda bibliográfica y replantear la definición del problema a resolver, y hacer un plan de trabajo nuevo, que incluía conocer el ambiente de trabajo y el sistema operativo.

Hubiera sido bueno contar con la orientación de una persona que estuviese familiarizada con la BeagleBoard y el sistema operativo que esta tiene instalado. Pues, en este proyecto era la primera vez que se trabajaba con Ubuntu, y se llegaron a encontrar problemas que no hubo tiempo para ser resueltos.

9

DISCUSIÓN

Se llegó a tener una aplicación funcional que calcula la frecuencia cardiaca fetal. Esta aplicación puede capturar una señal de audio proveniente del doppler fetal, analizarla y almacenarla en el archivo database.dat. Una de las limitaciones de este programa es la cantidad de puntos a analizar y la manera en la que se grafica la señal. Se recomienda en un futuro estudiar más a fondo la librería Graphics de Java para poderle dar un mejor formato al panel que grafica las señales. Como marcar los ejes y una cuadrícula para ubicar más fácilmente los valores de los ejes y no tener que realizar aproximaciones.

Se presentaron problemas realizando pruebas en la BeagleBoard, no se logró hacer funcionar la tarjeta de audio de la misma tarjeta. Una solución al problema fue adquirir una tarjeta de audio USB. Esa tarjeta no logró emitir ni capturar sonidos, no se logró configurarla para que funcionara de la manera que se deseaba, pues el sistema la reconocía. Se intentó realizarle el troubleshooting a la tarjeta de audio, siguiendo los tutoriales y la documentación de Linux, pero al parecer se necesitaba de una conexión a internet. Al conectar la tarjeta a Ethernet e intentar navegar en la web, o buscar una dirección IP, no se lograba que sucediera. Se recomienda en un futuro realizar un manual de uso de la BeagleBoard, que esté disponible en el laboratorio que se pueda consultar para resolver esta clase de problemas. Con el

(26)

Monitoreo de la Frecuencia Cardiaca Fetal

Implementado en BeagleBoard a Partir de la Señal

de Audio del Doppler Fetal

26

tiempo limitado para resolver este problema, no se alcanzó a considerar la opción de reinstalarle el sistema operativo a la tarjeta.

Al final, se pudo desarrollar una aplicación que analiza la señal de audio y calcula la frecuencia cardiaca fetal y su cambio en el tiempo. Es una aplicación que genera un archivo que se puede extraer y ejecutar en otro computador que tenga la aplicación instalada. La aplicación puede acceder la tarjeta de audio del sistema para capturar y reproducir una señal de audio. Se puede decir que los objetivos de este proyecto se cumplieron satisfactoriamente. Se recomienda contar con algoritmos de filtrado un poco más robustos para evitar tener falsas mediciones y saltos de más de 50BPM en intervalos menores a 1 segundo, estos cambios suceden en el mundo real en intervalos de minutos, no de manera inmediata, al menos que se trate de un ataque al corazón. Estos saltos alteran los resultados del cálculo de la línea base.

Para trabajos futuros se recomienda encontrar la manera de que funcione correctamente la tarjeta de audio de la BeagleBoard, hacer que esta pueda tener acceso a internet. Programar la aplicación para que cargue automáticamente el archivo de los pacientes en un servidor que pueda ser accedido por los médicos. Se recomienda con especial énfasis integrar la aplicación a una que mida otras variables biológicas (i.e ECG, presión arterial,etc) para tener de esta forma un sistema embebido de monitoreo materno-fetal. Además de esto, se sugiere que se desarrolle una aplicación que pueda realizar estas mediciones en tiempo real y no haya necesidad de esperar a que se termine de grabar la señal para procesarla. Finalmente, se sugiere buscar la manera de agregarle una pantalla táctil a la tarjeta para hacer del sistema más compacto.

10

CONCLUSIONES

Al tener una aplicación desarrollada en Java que pueda adquirir una señal de audio proveniente del doppler fetal desde el puerto del micrófono del dispositivo sobre el cual se esté ejecutando, y analizar dicha señal para calcular la frecuencia cardiaca y su variabilidad de una manera confiable, no hay necesidad de pagar licencias de uso de programas como MATLAB y LabView. Esta aplicación se puede ejecutar en cualquier dispositivo que tenga Java instalado. Asi que puede funcionar en cualquier sistema operativo. Hasta si se quiere se le pueden realizar ciertas modificaciones a la interfaz para adaptarlo a Android.

Esta aplicación ayudará al telemonitoreo en Colombia y a mejorar la calidad de vida de muchas mujeres embarazadas que no tienen acceso a un médico en el sitio donde viven. Es mi aporte para disminuir los niveles de desigualdad socio-económica que está presente en el país. Lograr que más personas se acerquen a buscar asistencia médica, y aumentar la disponibilidad de médicos para que esto suceda.

(27)

Monitoreo de la Frecuencia Cardiaca Fetal

Implementado en BeagleBoard a Partir de la Señal

de Audio del Doppler Fetal

27

11

AGRADECIMIENTOS

Este proyecto no se hubiera podido realizar sin el apoyo de Xavier Díaz, estudiante de doctorado, la orientación de Antonio Salazar y los consejos de Cecile Gauthier. Adicionalmente se le dan agradecimientos especiales a Andrés Felipe Torres Meléndez por sus conocimientos, sus habilidades de programación en Java TM y apoyo para el desarrollo de esta tesis. También me gustaría agradecerle a mi familia y a Victoria Padilla por darme su apoyo y buena energía cuando más me hacía falta. Una mención especial a Alberto Alonso que saltó para que yo pudiera grabar su corazón.

12

REFERENCIAS

[1] Instituto Nacional de Salud, “Situación de la mortalidad materna. Colombia.” [En Línea] Disponible en: http://ins.gov.co/lineas-de-accion/subdireccion-vigilancia/cove maternidad segura/1 situación mortalidad materna y evaluación de indicadores 2012.ppt

[2] Fetal Doppler (2012) [En Línea] Disponible en: http://www.meditech.cn/meditech-edu/Fetal_doppler.asp

[3] American College of Obstetricians and Gynecologists. "Practice bulletin no. 116: Management of intrapartum fetal heart rate tracings." Obstet Gynecol 116 (2010): 1232-1240.

[4] What is a Normal Fetal Heart Rate – Normal Fetal Heart Rate (2013) [En Línea] Disponible en: http://pregnancy.about.com/od/fetus/a/normal-fetal-heart-rate.htm [5] Fetal Heart Rate on Ultrasound and Misscarriage (2013) [En Línea] Disponible en:

http://www.babymed.com/ultrasound/fetal-heart-rate-ultrasound-and-miscarriage

[6] Fetal Heart Rate (2007) [En Línea] Disponible en:

http://www.fetaldopplerfacts.org/facts/dopplers/fetal-heart-rate-facts.php

[7] Quick JMatio in Processing Example (2009) [En Línea] Disponible en: http://binarymillenium.com/2009/08/quick-jmatio-in-processing-example.html [8] Sine and Cosine Graph in Java (2012) [En Línea] Disponible en:

http://www.codeproject.com/Questions/450731/Sine-and-Cosine-graph-in-Java [9] Java – Graphing Amplitude (2010) [En Línea] Disponible en:

http://stackoverflow.com/questions/2448670/graphing-amplitude

[10] Audio – Signal Amplitude Against Time in Java (2011) [En Línea] Disponible en: http://stackoverflow.com/questions/2618517/signal-amplitude-against-time-in-java [11] J. Bohórquez, M.G. Forero, A. Casasbuenas, A.J. Salazar, A. García. “Desarrollo de un

(28)

Monitoreo de la Frecuencia Cardiaca Fetal

Implementado en BeagleBoard a Partir de la Señal

de Audio del Doppler Fetal

28

disminución de la morbi-mortalidad perinatal en Colombia” Convocatoria 547 para Conformar un Banco de Proyectos para Estimular la Creación de Vínculos en el campo de la Ciencia, la tecnología y la Innovación entre la Diáspora Científica Colombiana y los Actores del Sistema Nacional de Ciencia Tecnología e Innovación. [12] Silver, Robert M. "Fetal death." Obstetrics & Gynecology 109, no. 1 (2007): 153-167. [13] Elamin, S., J. Langhoff-Roos, B. Boedker, S. A. Ibrahim, A. L. Ashmeig, and G.

Lindmark. "Classification of perinatal death in a developing country."International Journal of Gynecology & Obstetrics 80, no. 3 (2003): 327-333.

[14] de Galan-Roosen, A. E. M., J. C. Kuijpers, P. J. C. Van der Straaten, and J. M. W. M. Merkus. "Fundamental classification of perinatal death: Validation of a new classification system of perinatal death." European Journal of Obstetrics & Gynecology and Reproductive Biology 103, no. 1 (2002): 30-36.

[15] The Ubuntu Beginner’s Guide. Jonathan Moeller, ebook, Quinta Edición, 2012. [16] Ubuntu: Absotulte Beginner’s Guide. Courtney Loo, e-book, 2012.

[17] BB_SRM BeagleBoard System: Reference Manual [En Línea] Disponible en: http://beagleboard.org/static/BBSRM_latest.pdf

[18] BeagleBoard Ubuntu e-Linux.org [En Línea] Disponible en: http://elinux.org/BeagleBoardUbuntu

[19] Friesen, Jeff. Beginning Java 7. Apress, 2011.

[20] Graphics (Java Platform SE 6). (2011) [En Línea] Disponible en: http://docs.oracle.com/javase/6/docs/api/java/awt/Graphics.html

[21] JavaTM Sound API Programmer’s Guide. Sun Microsystems, Inc. 2002. [En Línea]

Disponible en:

http://ftp.gwdg.de/pub/languages/java/java.sun.com/j2se1.3/javasound.pdf

[22] Capture and record sound into WAV file with Java Sound API (2013) [En Linea] Disponible en: http://www.codejava.net/coding/capture-and-record-sound-into-wav-file-with-java-sound-api

[23] Java Tips – Capturing Audio with Java Sound API (2008) [En Línea] Disponible en: http://www.java-tips.org/java-se-tips/javax.sound/capturing-audio-with-java-sound-api.html

[24] Digital Signal Processing (DSP, FFT, Spectrum) (2008) [En Línea] Disponible en: http://www.java-tips.org/java-se-tips/javax.sound/capturing-audio-with-java-sound-api.html

[25] Lee, Chang Su, Martin Masek, Chiou Peng Lam, and Keng Tiong Tan. "Towards higher accuracy and better noise-tolerance for fetal heart rate monitoring using Doppler ultrasound." In TENCON 2009-2009 IEEE Region 10 Conference, pp. 1-6. IEEE, 2009.

(29)

Monitoreo de la Frecuencia Cardiaca Fetal

Implementado en BeagleBoard a Partir de la Señal

de Audio del Doppler Fetal

29

[26] Xiaofeng, Yang, Li Peng, Zhang Xin, Bian Zhengzhong, and Wang Bo. "De-Noising of the doppler fetal heart rate signal with wavelet threshold filtering based on spatial correlation." In Bioinformatics and Biomedical Engineering, 2007. ICBBE 2007. The 1st International Conference on, pp. 928-931. IEEE, 2007.

[27] Dash, Shishir, Jolene Muscat, J. Gerald Quirk, and Petar M. Djuric. "Implementation of NICHD diagnostic criteria for feature extraction and classification of fetal heart rate signals." In Signals, Systems and Computers (ASILOMAR), 2011 Conference Record of the Forty Fifth Asilomar Conference on, pp. 1684-1688. IEEE, 2011.

[28] Fernando, Kumari L., V. John Mathews, Michael W. Varner, and Edward B. Clark. "Robust estimation of fetal heart rate variability using Doppler ultrasound." Biomedical Engineering, IEEE Transactions on 50, no. 8 (2003): 950-957 [29] Jezewski, Janusz, Dawid Roj, Janusz Wrobel, and Krzysztof Horoba. "A novel

technique for fetal heart rate estimation from Doppler ultrasound signal."Biomedical engineering online 10, no. 1 (2011): 1-17.

[30] Peters, Chris HL, Edith DM ten Broeke, Peter Andriessen, Barbara Vermeulen, Ralph CM Berendsen, Pieter FF Wijn, and S. Guid Oei. "Beat-to-beat detection of fetal heart rate: Doppler ultrasound cardiotocography compared to direct ECG cardiotocography in time and frequency domain." Physiological measurement 25, no. 2 (2004): 585.

[31] F. Ahmed, M.A.M Ali, E. Zahedi. “A Real Time Algorithm for the Portable Recording of Fetal and Maternal Heart Rates” TENCON 2000. Vol 1, pp 246-251.

[32] Arias-Ortega, R., M. J. Gaitán-González, and O. Yañez-Suárez. "Implementation of a real-time algorithm for maternal and fetal heart rate monitoring in a digital signal controller platform." In Engineering in Medicine and Biology Society (EMBC), 2010 Annual International Conference of the IEEE, pp. 2354-2357. IEEE, 2010.

[33] Ibrahimy, Muhammad I., Mohd Ali, and Edmond Zahedi. "An algorithm for the ambulatory monitoring of fetal heart rate." In Engineering in Medicine and Biology Society, 2000. Proceedings of the 22nd Annual International Conference of the IEEE, vol. 4, pp. 3048-3051. IEEE, 2000.

[34] Kerner, R., Y. Yogev, A. Belkin, A. Ben-Haroush, B. Zeevi, and M. Hod. "Maternal self-administered fetal heart rate monitoring and transmission from home in high-risk pregnancies." International Journal of Gynecology & Obstetrics 84, no. 1 (2004): 33-39.

[35] Sarmiento, Luis, Irina Vélez, Natalia Flórez, Juan Otero, Francisco Manrique, and José Millet. "Estimación no invasiva de la frecuencia cardiaca fetal mediante técnicas de

(30)

Monitoreo de la Frecuencia Cardiaca Fetal

Implementado en BeagleBoard a Partir de la Señal

de Audio del Doppler Fetal

30

separación ciega de fuentes; Non-invasive fetal heart rate estimate by use of blind signal separation techniques." Rev. colomb. cardiol17, no. 4 (2010): 187-190

[36] Ruiz, David Gutiérrez. "Procesamiento de señales magnéticas del corazón y el cerebro fetales." (2007)

[37] Pisarello, María Inés, Carlos Álvarez Picaza, and Jorge Monzón. "Separación de Frecuencias No Deseadas en la Señal Cardíaca utilizando ICA."

[38] Salcedo, Viviana Paola. “Diseño e Implementación de un Dispositivo de Telemonitoreo de la Frecuencia Cardiaca Fetal.” Proyecto de Grado Pregrado (Ingeniería Electrónica). Universidad de los Andes. Facultad de Ingeniería. Departamento de Ingeniería Eléctrica y Electrónica (2012)

[39] Hernández, Liz Catherine. “Telemonitoreo Materno Infantil Basado en Sistemas Embebidos” Tesis de maestría (Ingeniería Electrónica). Universidad de los Andes. Facultad de Ingeniería. Departamento de Ingeniería Eléctrica y Electrónica. (2012) [40] Reyes, Hebert Mateo. “Electro-cardiografía Fetal y Diagnóstico de anomalías en el

desarrollo fetal.” Proyecto de Grado Pregrado (Ingeniería Electrónica). Universidad de los Andes. Facultad de Ingeniería. Departamento de Ingeniería Eléctrica y Electrónica (2012)

[41] Manual Sonotrax Basic A [En línea] Disponible en:

http://www.edanusa.com/brochures/man_361.pdf

[42] Benjumea, Juan Manuel. “Vibraciones causadas por la actividad humana” Apéndice D Transformada de Hilbert. (2003) [En línea] Disponible en: http://www.osso.org.co/docu/tesis/2003/vibracion/D.pdf

[43] Complex.java (2011) [En línea] Disponible en:

http://introcs.cs.princeton.edu/java/97data/Complex.java.html

[44] FFT.java (2011) [En línea] Disponible en:

http://introcs.cs.princeton.edu/java/97data/FFT.java.html

Referencias

Documento similar

The notified body that issued the AIMDD or MDD certificate may confirm in writing (after having reviewed manufacturer’s description of the (proposed) change) that the

En estos últimos años, he tenido el privilegio, durante varias prolongadas visitas al extranjero, de hacer investigaciones sobre el teatro, y muchas veces he tenido la ocasión

que hasta que llegue el tiempo en que su regia planta ; | pise el hispano suelo... que hasta que el

Para ello, trabajaremos con una colección de cartas redactadas desde allí, impresa en Évora en 1598 y otros documentos jesuitas: el Sumario de las cosas de Japón (1583),

En junio de 1980, el Departamento de Literatura Española de la Universi- dad de Sevilla, tras consultar con diversos estudiosos del poeta, decidió propo- ner al Claustro de la

E Clamades andaua sienpre sobre el caua- 11o de madera, y en poco tienpo fue tan lexos, que el no sabia en donde estaña; pero el tomo muy gran esfuergo en si, y pensó yendo assi

Sanz (Universidad Carlos III-IUNE): "El papel de las fuentes de datos en los ranking nacionales de universidades".. Reuniones científicas 75 Los días 12 y 13 de noviembre

(Banco de España) Mancebo, Pascual (U. de Alicante) Marco, Mariluz (U. de València) Marhuenda, Francisco (U. de Alicante) Marhuenda, Joaquín (U. de Alicante) Marquerie,