Generación de señales ECG con funciones de fourier en un microcontrolador de arquitectura ARM 32

 

Erik David Tenorio[1]

[email protected] 

https://orcid.org/0000-0001-5373-1403

Instituto Politécnico Nacional

México

 

Pedro Guevara López

[email protected]

https://orcid.org/0000-0001-5373-1403

Instituto Politécnico Nacional

México

 

Juan C. Sánchez García

[email protected]

https://orcid.org/0000-0001-9746-7157

Instituto Politécnico Nacional

México

 

Manuel Cedillo Hernández

[email protected]

https://orcid.org/0000-0002-9149-9841s

Instituto Politécnico Nacional

México

 

 

Leobardo Hernández González

[email protected]

https://orcid.org/0000-0002-4555-8695

Instituto Politécnico Nacional

México

 

RESUMEN

Los eventos bioeléctricos se manifiestan como diferencias de potencial entre dos puntos o señales eléctricas localizadas en diferentes lugares de un organismo viviente, ya sea dentro o en la superficie de este, el comportamiento de estos refleja la salud de un ser humano y para determinarlos se verifican los signos vitales. Para obtener un diagnóstico adecuado, entre algunas señales vitales, se encuentra el electrocardiograma (ECG). Por ello, es necesario conocer y reproducir esta señal para diagnosticar algún padecimiento o bien asegurarse que el equipo que adquiere la señal funciona adecuadamente. Esto motivó el desarrollo del presente trabajo, que presenta la generación artificial de una señal ECG a través de la suma de armónicos de Fourier en un microcontrolador de arquitectura ARM ST STM32f407VGT de 32 bits, debido a sus características de diseño y su aplicación a sistemas embebidos, así como las prestaciones en cuestión de periféricos disponibles para reproducir la señal. Como la señal Electrocardiograma ECG es una señal periódica, con una frecuencia fundamental determinada por la frecuencia de ritmo cardiaco, satisface las condiciones de Dirichlet, que plantea que para que la serie de Fourier exista, sus coeficientes son finitos. La contribución principal de este trabajo fue generar señales EGC de manera artificial, que pueda ser útil para entrenamiento médico o calibración de instrumental de medición.

 

Palabras clave: ECG; emulación; fourier; funciones armónicas; microcontrolador.

 

ECG signal generation with fourier functions by an ARM 32 microcontroller architecture

 

ABSTRACT

Bioelectrical events manifest themselves as potential differences between two points or electrical signals located in different parts of a living organism, either inside or on its surface. The behavior of these events reflects the health of a human being and to determine them, vital signs are checked. To obtain a proper diagnosis, among some vital signs, is the electrocardiogram (ECG). Therefore, it is necessary to know and reproduce this signal to diagnose any condition or to make sure that the equipment that acquires the signal works properly. This motivated the development of the present work, which presents the emulation of an ECG signal through the sum of Fourier harmonics in a 32-bit ARM STM STM32f407VGT architecture microcontroller, due to its design features and its application to embedded systems, as well as the performance in terms of peripherals available to reproduce the signal. As the Electrocardiogram ECG signal is a periodic signal, with a fundamental frequency determined by the heart rate frequency, it satisfies the Dirichlet conditions, which states that for the Fourier series to exist, its coefficients are finite. The main contribution of this work was to generate EGC signals in an artificial way, which can be useful for medical training or calibration of measuring instruments.

 

Keywords: ECG; emulation; fourier; harmonic functions; microcontroller.
 
 
Artículo recibido 10 marzo 2023
Aceptado para publicación: 28 marzo 2023

 

INTRODUCCIÓN

De acuerdo con (De Lucena Samuel E. (2021)), la señal Electrocardiograma (ECG) representa la actividad eléctrica del corazón en forma de una señal graficada y adquirida por un equipo médico (electrocardiógrafo); puede ser usada para diagnosticar enfermedades en personas con algún padecimiento que puede originar alguna enfermedad degenerativa o la pérdida de la vida; es por eso que es de gran importancia tener alguna referencia para la calibración de los equipos que sirven como herramienta para diagnosticar estos padecimientos (Max E Valentinuzzi (2004)). De manera clínica también se conoce a la señal como EKG; esta es una prueba común e indolora que se usa para detectar con rapidez problemas cardíacos y controlar y observar la salud del corazón.  Además, es un procedimiento que por lo general se hace en el consultorio de un proveedor de atención médica, en una clínica o en un hospital. Esta señal, de acuerdo con la Figura 1, está formada por distintas ondas; la señal Electrocardiograma (ECG) que representa la actividad eléctrica del corazón en forma de una señal graficada y adquirida por un equipo médico (electrocardiógrafo), puede ser usada para diagnosticar enfermedades en personas con algún padecimiento que puede originar alguna enfermedad degenerativa o la pérdida de la vida, es por eso que es de gran importancia tener alguna referencia de señal para la calibración de los equipos que sirven como herramienta para diagnosticar estos padecimientos. (Wiliam Uribe Arango, Mauricio Duque Ramírez, Eduardo Medina Durango (2005))

Figura. 1.  Señal ECG.

Un dibujo de una persona

Descripción generada automáticamente con confianza baja

De manera clínica también se conoce a la señal como EKG; esta es una prueba común e indolora que se usa para detectar con rapidez problemas cardíacos y controlar y observar la salud del corazón.  Es un procedimiento que por lo general se hace en el consultorio de un proveedor de atención médica, en una clínica o en un hospital. Esta señal, de acuerdo con la Figura 1, está formada por distintas ondas, que se describen a continuación (Berkaya, S. K., Uysal, A. K., Gunal, E. S., Ergin, S., Gunal, S., & Gulmezoglu, M. B. (2018)):

La onda P. Es la que representa el movimiento de la onda eléctrica originada en el nodo sinouricular (SA) y tiene como resultado la despolarización de las aurículas izquierda y derecha. Ver Figura 2.

Figura 2. Onda P.

Un dibujo de una persona

Descripción generada automáticamente con confianza baja

Conjunto onda PR. Es el tiempo entre el comienzo de la despolarización auricular y el comienzo de la despolarización ventricular. Un cambio en el intervalo PR es a menudo un indicador de la actividad del sistema nervioso parasimpático en el corazón.

Conjunto onda QRS: representa la actividad eléctrica desde el comienzo de la onda Q hasta el final de la onda S y la despolarización completa de los ventrículos, lo que lleva a la contracción ventricular y la expulsión de sangre hacia la aorta y las arterias pulmonares (karthik raviprakash (2021)). Ver Figura 3.

Figura 3. Conjunto QRS.

Un dibujo de una persona

Descripción generada automáticamente con confianza baja

Conjunto onda S: la pausa en la actividad eléctrica después de la despolarización completa de los ventrículos para permitir que la sangre fluya fuera de los ventrículos antes de que comience la relajación ventricular y el corazón se llene para la siguiente contracción.

Conjunto onda ST: es el tiempo entre el final de la despolarización ventricular (onda S) y el final de la repolarización (final de la onda T).

Conjunto onda QT: el tiempo entre el comienzo de la despolarización ventricular (onda Q) y el final de la repolarización (final de la onda T).

Onda T: representa la repolarización de los ventrículos. Todas las señales generadas, así como los músculos y movimientos asociados son presentados en la figura 4.

Figura. 4. Señal ECG y Músculos Asociados.

Diagrama

Descripción generada automáticamente

La señal ECG puede ser generada de diferentes maneras, dependiendo de la tecnología disponible, así como de los recursos tecnológicos o bien la exactitud que se quiera alcanzar para su fidelidad. A continuación, se mencionarán algunas técnicas:

Mapa de puntos. Consiste en guardar en memoria una serie de puntos en valor digital que representan la señal muestreada en un intervalo de tiempo o periodo, este muestreo posteriormente se convertirá a analógico. (IMSS (2012))

Contador y suma de pulsos. Esta técnica hace uso de circuitos digitales y componentes pasivos para la carga y descarga de condensadores que van generando las ondas superpuestas y con un contador se activan las diferentes señales para posteriormente realizar una suma conjunta para obtener una señal única. (Martínez Gustavo (2011))

Digitalización de imagen. Es el uso de un programa llamado Engauge Digitizer que convierte cualquier imagen, gráficas o mapas en datos digitales, con la finalidad de que a partir de la gráfica del ECG dibujada, se convierta a los puntos necesarios para recrear la señal, así como en el mapa de puntos será una señal maestreada que se convertirá a analógica. (Sandra Hurtado Requena (2017))

Abstracción de señal por estadística de página web. La página web https://physionet.org almacena una base de datos con cientos de curvas abstraidas del cuerpo humano, es posible descargar señales digitalizadas que sirven para posteriormente ser convertidas a analógicas y su reproducción a la curva ECG. (Cajahuaringa Salazar Juan Eduardo (2020))

Ecuación Matemática por serie de Fourier. Consiste en abstraer la señal por suma de ecuaciones calculadas por Serie de Fourier, se realiza el cálculo de cada segmento de la señal para obtener una señal única del ECG. La señal de ECG es periódica con la frecuencia fundamental determinada por la cantidad de latidos del corazón en un minuto. (Vergara Gil Juan Camilo (2019))

La principal diferencia entre estos métodos y la causa por la cual se eligió el método de Ecuación Matemática por Serie de Fourier, consiste en que la ecuación puede modificar la morfología de la señal sin tener que reprogramar la señal almacenada, ya que es generada desde la serie. (Hampton, J., & Hampton, J. (2019))

METODOLOGÍA

Como ya se mencionó, la señal de Electrocardiograma es la señal que representa los movimientos eléctricos del miocardio en su función de bombear la sangre de un ventrículo a otro, para poder hacer circular los nutrientes por todo el cuerpo y es una curva característica compuesta por varias semicurvas; por ello (Max E Valentinuzzi (2004)), (Sörnmo, L., & Laguna, P. (2006)). En este sentido, se tiene como hipótesis el que es posible generar de manera artificial una señal ECG a través de un microcontrolador de gama alta y un conjunto de funciones de Fourier; por ello, el desarrollo del proyecto tiene dos partes: el uso del modelo para generación de la señal ECG por funciones de Fourier y la implementación en el microcontrolador STM32.

 

 

Modelado de la señal ECG

El modelo fue desarrollado de la siguiente manera, la serie de Fourier para una señal periódica es definida en la ecuación (1).

f(t)=a_0/2+(∑┬(N=1))┴∞ a_n cos(nπx/l)+(∑┬(N=1))┴∞ b_n sin(nπx/l)                                               (1)

 referencia el nivel de offset o voltaje de constante de la señal, es el coeficiente par y  es el coeficiente impar. Su cálculo se observa en las ecuaciones (1), (2), (3) y (4).

                                                                    (2)

                                                           (3)

                                                            (4)

Se consideran los tiempos de retardo entre cada onda, duración y la generación como se ve en la Tabla 1, estos valores se toman en cuenta en las ecuaciones de Fourier para tener claro la duración de cada onda para no quedar encimadas. En la figura 2 se observa la señal ECG que se espera obtener.

Tabla 1. Tiempos de retardo para cada onda.

Tiempo Correspondiente

Variable

Ecuación

Duración de onda P

Duración de onda T

Duración de onda QRS

Duración de onda PQ

Duración de onda ST

 

La amplitud de cada señal se muestra en la Tabla 2. Estas amplitudes están definidas por defecto para tener una señal ECG normal.

 

 

 

Tabla 2. Amplitudes para cada señal.

Definición

Variable

Definición

Variable

Amplitud de onda P

Ap

Límite de integración inferior onda P

A

Amplitud de onda R

Ar

Límite de integración superior onda P

B

Amplitud de onda S

As

Límite de integración inferior onda T

C

Amplitud de onda T

At

Límite de integración superior onda T

D

 

En la figura 5, se muestra la señal ECG de un paciente sano, a la que se necesita aproximar matemáticamente e igualar, lo cual se realiza mediante una mezcla de formas de onda senoidales y triangulares, haciéndose una composición de varias formas de onda escaladas y sumadas para componer la señal completa; por ejemplo, la onda Q Y S pueden ser representadas por formas de onda triangulares, mientras que P, T y U pueden ser formas de onda senoidal. Se propuso recrear la señal ECG debido a la importancia que tiene en el diagnostico de algún padecimiento y asimismo la

relevancia que tiene, ya que es la señal que representa los movimientos del corazón.

 

Figura. 5. Señal ECG esperada.

 

Imagen

 

 

Generación del segmento QRS

Por ejemplo, para el cálculo del segmento QRS se tiene un análisis de la señal resultante que queda de la siguiente manera en las ecuaciones (5) a (10):

                                                       (5)

                                                         (6)

                                                              (7)

                                 (8)

                                                         (9)

                                                                 (10)

Para la generación de la onda P se tienen las ecuaciones (11) a (15):

                                                            (11)

                                                      (12)

            (13)

                                                     (14)

                                                                (15)

Implementación en el microcontrolador ARM STM32

La tarjeta STM32F407 (ver figura 6) es la más adecuada para recrear la señal ECG desde una ecuación matemática debido al poder de procesamiento y velocidad de procesador de 168 MHz, de cada puerto de 84 MHz, además cuenta con 2 temporizadores de 32 bits para el uso de retardos y programación de tareas y cuenta con un convertidor Digital Analógico de 12 bits, lo que lo convierte en un puerto bastante preciso, además de la facilidad de programación y la capacidad de corregir errores en línea.

 

 

 

Figura. 6. Microcontrolador STM32f407VGT.

Un circuito electrónico

Descripción generada automáticamente con confianza media

Como la señal ECG es periódica, con una frecuencia fundamental determinada por el ritmo cardiaco, satisface las condiciones de Dirichlet, que plantea que para que la serie de Fourier exista sus coeficientes deben ser finitos. La programación se realizó en lenguaje C, implementándose las ondas P, QRS, Q, S, T, U y la señal resultante de la suma de las anteriores. Para ello se crearon las funciones de la Figura 7, listadas en orden respecto a cada onda.

Figura. 7. Funciones en C implementadas en el microcontrolador ARM STM32f407VGT. Se listan las ondas p, QRS, Q, S, T, U y la señal resultante de la suma de las anteriores.

static void p_wav(double x[200],double a_pwav,double d_pwav, double t_pwav, double li, double pwav[200])

static void qrs_wav(double x[200], double a_qrswav, double d_qrswav, double li, double qrswav[200])

static void q_wav(double x[200], double a_qwav, double d_qwav, double t_qwav, double li, double qwav[200])

static void s_wav(double x[200], double a_swav, double d_swav, double t_swav, double li, double swav[200])

static void t_wav(double x[200], double a_twav, double d_twav, double t_twav, dou-ble li, double twav[200])

static void u_wav(double x[200], double a_uwav, double d_uwav, double t_uwav, double li, double uwav[200])

static void GenECG(double electro[200])

 

RESULTADOS Y DISCUSIÓN

Los eventos bioeléctricos se manifiestan como diferencias de potencial entre dos puntos o señales eléctricas localizadas en diferentes lugares de un organismo viviente, ya sea dentro o en la superficie del mismo, se presenta como un evento de corriente directa y permanece estable hasta que termina la vida de una célula; en este sentido, se obtuvo un generador artificial de señales ECG, donde de acuerdo con el cálculo realizado con las funciones, se obtuvieron las gráficas que se generaron desde una aplicación creada en Qt Creator y posteriormente desde el osciloscopio. Ver Figura 8.

Figura. 8. Gráfica obtenida en QT Creator, resultado de la implementación de las funciones en el microcontrolador ARM STM32f407VGT.

Imagen

En la figura 9 se muestra la onda ajustada en frecuencia para que se tengan 60 latidos por minuto y la amplitud se ajusto para tener 200 mili-volts pico-pico. La señal no se ve afectada de ninguna manera por la frecuencia de 60 Hz de la línea doméstica e influye muy poco ruido en ella, se debe tener en cuenta que se está visualizando la señal a la salida del convertidor digital analógico por lo que aún falta una etapa de adecuación con un circuito simple tipo RC que realice un filtrado y a su vez divida las señales en las visualizaciones de las 5 derivadas.

Figura. 9. Gráfica obtenida en un osciloscopio donde se presenta la salida de la emulación de la señal ECG obtenida del microcontrolador ARM STM32f407VGT.

Imagen

 

La señal generada a la salida del microcontrolador se conecta a un circuito que acondiciona la señal para dividirla en 5 derivaciones (Ra, La, Rl, Ll y V1), Ver figura 10 (Electrocardiografia y Arritmias (2005)), acondicionada y se conectada a un monitor de signos vitales de la marca Datex Ohmeda General Electric y se observa el comportamiento de la onda. Ver figura 11.

Figura. 10. Circuito de acondicionamiento y División en Derivaciones.

Diagrama, Esquemático

Descripción generada automáticamente

 

Figura. 11. Vista de la señal ECG en el monitor de signos vitales, generada por el microcontrolador STM32.

Pantalla de computadora con un texto en blanco y negro

Descripción generada automáticamente con confianza media

 

 

 

 

CONCLUSIONES

Con base en los resultados obtenidos en donde se generó exitosamente una señal ECG y se logró modificar la frecuencia y amplitud de la señal, para comparar la respuesta de los equipos a los cambios de forma en la onda, generando alarma en ellos y observando su comportamiento. En una señal normal ECG el equipo que adquiere mostrará la señal sin ningún tipo de advertencia, pero cuando se altera la señal ECG, el equipo que adquiere mostrará alarmas audibles y visibles, además el procesamiento a raíz de una suma de ecuaciones matemáticas en donde el procesador se comportó de una manera adecuada alcanzando todas las expectativas. Es necesario mencionar que para este proyecto se llevaron a cabo dos tipos de programación: Front End y Back End. En la programación en Front end se especifica el desarrollo de la aplicación gráfica en el entorno QT Creator para interfaces. Se programó en C++. (imagen QT Creator). Por otro lado, en la programación Back End se especifica el desarrollo de la parte de hardware y el resultado de la salida de la señal, se programó en C++. De esta manera se comprueba que es posible generar señales ECG de forma artificial. Finalmente, cabe señalar que aplicaciones futuras del sistema propuesto pueden ser el entrenamiento de personal médico y calibración de equipos electrónicos como electrocardiógrafos.

LISTA DE REFERENCIAS

Berkaya, S. K., Uysal, A. K., Gunal, E. S., Ergin, S., Gunal, S., & Gulmezoglu, M. B. (2018). A survey on ECG analysis. Biomedical Signal Processing and Control, 43, 216-235.

Cajahuaringa Salazar Juan Eduardo (2020). Diseño de Dispositivo Simulador de Señales ECG Aplicados a Evaluación de Equipos de Monitoreo y Registro de Parámetros Cardiológicos del Hospital Dos de Mayo. Universidad Tecnológica de Perú.                  

De Lucena Samuel E. (2021), ECG SIMULATOR FOR TESTING AND SERVICING CARDIAC MONITORS AND ELECTROCARDIOGRAPHS. Unesp – São Paulo State University, Department of Electrical Engineering, Instrumentation & Microprocessors Laboratory, Guaratinguetá, SP, Brazil

Electrocardiografia y Arritmias (2005). P.L.A Export Editores Ltda. Colombia

karthik raviprakash (2021). ECG simulation using MATLAB (https://www.mathworks.com/matlabcentral/fileexchange/10858-ecg-simulation-using-matlab), MATLAB Central File Exchange. Retrieved November 3, 2021.

Hampton, J., & Hampton, J. (2019). The ECG made easy e-book. Elsevier Health Sciences.

Martínez Gustavo (2011). Generador portable de señales electrocardiograficas para prueba funcional en monitores de signos vitales. Instituto Mexicano del Seguro Social.

Max E Valentinuzzi (2004).  Understanding The Human Machine. Universidad Nacional de Tucumán, Argentina.

Sandra Hurtado Requena (2017). Diseño y montaje de un simulador ECG. Universidad de Malaga.

IMSS (2012). Diseño, Desarrollo y Fabricación de un generador de señales ECG para entornos clínicos. CDMX

Sörnmo, L., & Laguna, P. (2006). Electrocardiogram (ECG) signal processing. Wiley encyclopedia of biomedical engineering.

Vergara Gil Juan Camilo (2019). Desarrollo de un simulador de electrocardiograma con propósito académico. Universidad Autónoma de Occidente Santiago de Cali.

William Uribe Arango, Mauricio Duque Ramírez, Eduardo Medina Durango (2005). Electrocardiografía y Arritmias.



[1] Autor Principal