Anda di halaman 1dari 143

Deteccin automtica de

arritmias mediante anlisis de


caractersticas
Grado en Ingeniera en Sonido e Imagen
en Telecomunicacin

Trabajo Fin de Grado


Autor:
Mara Lpez Abelln
Tutor/es:
Juan Jos Galiana Merino
Daniel Ruiz Fernndez
Septiembre 2014

NDICE DE CONTENIDOS

1. INTRODUCCIN ................................................................................................................... 1
1.1
1.2
1.3

MOTIVACIN .................................................................................................................. 1
OBJETIVOS...................................................................................................................... 2
ESTRUCTURA DE LA MEMORIA ........................................................................................ 3

2. MARCO TERICO ................................................................................................................ 4


2.1 ELECTROCARDIOGRAMA (ECG)............................................................................................ 4
Descripcin............................................................................................................................ 4
Derivaciones .......................................................................................................................... 8
Caractersticas importantes en un ECG................................................................................ 11
Arritmias.............................................................................................................................. 12
Contraccin ventricular prematura (CVP) ........................................................................ 13
Contraccin auricular prematura (APC) ............................................................................ 16
Taquicardias ..................................................................................................................... 17
Bradicardia ....................................................................................................................... 19
Problemas de Procesado ...................................................................................................... 20
2.2 TRANSFORMADA WAVELET ................................................................................................ 21
Introduccin......................................................................................................................... 21
Traslacin ........................................................................................................................ 23
Escala .............................................................................................................................. 23
Transformada wavelet .......................................................................................................... 24
Transformada Wavelet Discreta (DWT)................................................................................ 26
Primera etapa: Aproximacin y detalles ............................................................................ 26
Descomposicin mltiple ................................................................................................. 27
Familias wavelets ................................................................................................................. 28
Haar ................................................................................................................................. 28
Daubechies ....................................................................................................................... 29
Biortogonales ................................................................................................................... 30
Symlets ............................................................................................................................ 31
3. METODOLOGA .................................................................................................................. 32
3.1 PREPROCESADO .................................................................................................................. 32
Eliminacin de Baseline wander........................................................................................... 33
db4 ................................................................................................................................... 36
db5 ................................................................................................................................... 37
sym4 ................................................................................................................................ 38
bior 1.3............................................................................................................................. 39
bior 6.8............................................................................................................................. 40
Eliminacin de ruido de alta frecuencia ............................................................................... 41
3.2 DETECCIN COMPLEJO QRS ............................................................................................... 43
Deteccin Onda R ................................................................................................................ 44
Deteccin Onda Q o S (negativa) ......................................................................................... 46
Clasificacin de Complejos QRS .......................................................................................... 48
3.3 DETECCIN DE ARRITMIAS ................................................................................................. 49

Deteccin de Contracciones Ventriculares Prematuras (CVPs) ............................................ 50


Caractersticas y formas de onda ....................................................................................... 50
Deteccin ......................................................................................................................... 51
Deteccin de Contracciones Auriculares Prematuras (APCs) ............................................... 53
Caractersticas y formas de onda ....................................................................................... 53
Deteccin ......................................................................................................................... 54
Deteccin de Taquicardia .................................................................................................... 57
Caractersticas y formas de onda ....................................................................................... 57
Deteccin ......................................................................................................................... 58
Deteccin de Bradicardias ................................................................................................... 60
Caractersticas y formas de onda ....................................................................................... 60
Deteccin ......................................................................................................................... 61
4. RESULTADOS ...................................................................................................................... 63
4.1 INTERFAZ GRFICA DEL PROGRAMA ................................................................................... 63
4.2 ADQUISICIN DE DATOS ..................................................................................................... 64
4.3 PRUEBAS ............................................................................................................................ 65
Deteccin de Complejos QRS ............................................................................................... 67
Casos vlidos ................................................................................................................... 67
Casos fallidos ................................................................................................................... 68
Resultados ........................................................................................................................ 69
Deteccin de Contracciones Ventriculares Prematuras (CVPs o CVPs) ................................ 70
Casos vlidos ................................................................................................................... 70
Casos fallidos ................................................................................................................... 74
Resultados ........................................................................................................................ 75
Deteccin de Contracciones Auriculares Prematuras (APCs) ............................................... 76
Casos vlidos ................................................................................................................... 76
Casos fallidos ................................................................................................................... 78
Resultados ........................................................................................................................ 80
Deteccin de Taquicardias ................................................................................................... 81
Casos vlidos ................................................................................................................... 81
Casos fallidos ................................................................................................................... 84
Resultados ........................................................................................................................ 84
Deteccin de Bradicardias ................................................................................................... 85
Casos vlidos ................................................................................................................... 85
Casos fallidos ................................................................................................................... 87
Resultados ........................................................................................................................ 88
5. CONCLUSIONES Y FUTURAS LNEAS DE TRABAJO .................................................. 89
6. REFERENCIAS BIBLIOGRFICAS .................................................................................. 91
ANEXO A: TABLAS ................................................................................................................. 92
ANEXO B: CDIGOS FUENTE ............................................................................................ 106
ANEXO C: MANUAL DE USUARIO .................................................................................... 129

NDICE DE FIGURAS

Fig 1: Frecuencia cardiaca normal .................................................................................................. 5


Fig 2: Pulso normal en ECG............................................................................................................. 5
Fig 3: Posiciones de las derivaciones MLI, MLII, MLIII, AVR, AVF y AVL ............................................ 9
Fig 4: Posiciones de las derivaciones V1, V2, V3, V4, V5 y V6 ........................................................ 10
Fig 5: Formas de ondas de todas las derivaciones ......................................................................... 10
Fig 6: Contraccin ventricular prematura ..................................................................................... 13
Fig 7: Bigeminismo ....................................................................................................................... 14
Fig 8: Trigeminismo...................................................................................................................... 14
Fig 9: Duplas o parejas ventriculares ............................................................................................ 15
Fig 10: Contraccin Auricular Prematura ...................................................................................... 16
Fig 11: Taquicardia ....................................................................................................................... 17
Fig 12: Taquicardia supraventricular............................................................................................. 18
Fig 13: Bradicardia ....................................................................................................................... 19
Fig 14: Baseline wander ............................................................................................................... 21
Fig 15: Escala-Tiempo (wavelet) ................................................................................................... 23
Fig 16: Diferentes escalas wavelets .............................................................................................. 24
Fig 17: Seal sinusoidal y seal wavelet........................................................................................ 25
Fig 18: Aproximaciones y detalles ................................................................................................ 26
Fig 19: Reduccin de muestras wavelets ...................................................................................... 27
Fig 20: rbol de descomposicin wavelet ..................................................................................... 27
Fig 21: Wavelet Haar .................................................................................................................... 28
Fig 22: Wavelet Daubechies ......................................................................................................... 29
Fig 23: Wavelet biortogonales ...................................................................................................... 30
Fig 24: Wavelet Symlets ............................................................................................................... 31
Fig 25: Diagrama de bloques general del algoritmo ...................................................................... 32
Fig 26: Diagrama de bloques preprocesado .................................................................................. 33
Fig 27: Aproximaciones y detalles (n niveles)................................................................................ 34
Fig 28: Eliminacin baseline wander ............................................................................................. 35
Fig 29: Wavelet db4 ..................................................................................................................... 36
Fig 30: Wavelet db5 ..................................................................................................................... 37
Fig 31: Wavelet Sym4................................................................................................................... 38
Fig 32: Wavelet bior 1.3 ............................................................................................................... 39
Fig 33: Wavelet bior 6.8 ............................................................................................................... 40
Fig 34: Wavelet db12 ................................................................................................................... 41
Fig 35: Eliminacin de ruido de alta frecuencia............................................................................. 42
Fig 36: Complejo QRS ................................................................................................................... 43
Fig 37: Diagrama de bloques deteccin de complejo QRS ............................................................. 44
Fig 38: Deteccin Onda R ............................................................................................................. 45
Fig 39: Deteccin Onda Q o S (negativa) ....................................................................................... 47
Fig 40: Clasificacin de complejos QRS ......................................................................................... 48
Fig 41: Contraccin Ventricular Prematura ................................................................................... 50

Fig 42: Deteccin contraccin ventricular prematura ................................................................... 52


Fig 43: Contraccin Auricular Prematura ...................................................................................... 53
Fig 44: Diferencias entre pulsos (difR) .......................................................................................... 55
Fig 45: Ventana para eliminar falsas detecciones ......................................................................... 56
Fig 46: Taquicardias ..................................................................................................................... 57
Fig 47: Bradicardias ...................................................................................................................... 60
Fig 48: Interfaz grfica deteccin de arritmias .............................................................................. 63
Fig 49: a)Seal Original b) preprocesado con db4 c) con db5 d) con sym4 e) con bior 1.3 f) con bior
6.8 ............................................................................................................................................... 66
Fig 50: a) Seal original b) con preprocesado db4 y funcin 'Denoise'........................................... 66
Fig 51: Deteccin QRS; seal 101.mat; preprocesado con db5 y 'Denoise' .................................... 67
Fig 52: Deteccin QRS; seal 114.mat; preprocesado con db5 y 'Denoise' .................................... 68
Fig 53: Deteccin QRS fallida; seal 107.mat; preprocesado con db4 y 'Denoise' .......................... 69
Fig 54: Deteccin CVP; seal 100.mat; preprocesado con db4 y 'Denoise'; umbral al 50% ............ 71
Fig 55: Deteccin CVP; seal 124.mat; a) Seal completa con umbral 50%; b) Intervalo con umbral
50%; c) Seal completa con umbral 1%; d) Intervalo con umbral 1% ............................................ 72
Fig 56: Deteccin CVP; seal 210.mat; a) Seal completa con umbral 50%; b) Intervalo con umbral
50%; c) Seal completa con umbral 10%; d) Intervalo con umbral 10% ........................................ 73
Fig 57: Deteccin posibles CVPs; seal 211.mat; preprocesado con bior 1.3 y 'Denoise' ............... 74
Fig 58: Deteccin CVP fallida; seal 103.mat; preprocesado con sym4 y 'Denoise' ........................ 75
Fig 59: Deteccin APCs; seal 100.mat; preprocesado con db4 y Denoise. .................................. 76
Fig 60: Deteccin APCs; seal 119.mat; preprocesado con db5 y Denoise. .................................. 77
Fig 61: Deteccin APCs; seal 115.mat; preprocesado con sym4 y Denoise ................................ 78
Fig 62: Deteccin de APC fallida; seal 108.mat; preprocesado con db5 y 'Denoise' ..................... 79
Fig 63: Deteccin de APC fallida; seal 113.mat; preprocesado con db4 y 'Denoise' ..................... 80
Fig 64: Deteccin de taquicardias; seal 114.mat; preprocesado con db5 y 'Denoise' ................... 82
Fig 65: Deteccin de taquicardias; seal 115.mat; preprocesado con sym4 y 'Denoise'................. 83
Fig 66: Deteccin de taquicardias; seal 201.mat; preprocesado con sym4 y 'Denoise'................. 83
Fig 67: Deteccin fallida taquicardias; seal 105.mat; preprocesado con bior 1.3 y 'Denoise' ....... 84
Fig 68: Deteccin de bradicardias seal 219.mat; preprocesado con db4 y 'Denoise' .................... 85
Fig 69: Deteccin de bradicardias; seal 233.mat; preprocesado con bior 6.8 y 'Denoise' ............. 86
Fig 70: Deteccin de bradicardias; seal 221.mat; preprocesado con sym4 y 'Denoise'................. 87
Fig 71: Deteccin de bradicardias fallida; seal 222.mat; preprocesado con bior 1.3 y 'Denoise'... 88
Fig 72: Interfaz del programa ..................................................................................................... 129
Fig 73: Men Archivo ................................................................................................................. 129
Fig 74: Grficas .......................................................................................................................... 130
Fig 75: Panel de opciones ........................................................................................................... 131
Fig 76: Panel de preprocesado ................................................................................................... 132
Fig 77: Ayuda para funcin Denoise............................................................................................ 133
Fig 78: Panel de variables ........................................................................................................... 134
Fig 79: Panel de deteccin ......................................................................................................... 135
Fig 80: Mensaje de error cuando no se dispone de la edad del paciente..................................... 136
Fig 81: Ejemplo de archivo.txt devuelto por el programa ............................................................ 136

NDICE DE TABLAS

Tabla 1: Valores normales en ECG .................................................................................................. 8


Tabla 2: Umbrales para detectar taquicardias en funcin de edad y sexo ..................................... 18
Tabla 3: Numeracin para diferentes derivaciones ....................................................................... 65
Tabla 4: Datos de las seales ........................................................................................................ 92
Tabla 5: Deteccin de complejos QRS........................................................................................... 94
Tabla 6: Deteccin de CVPs con umbral al 50%............................................................................. 96
Tabla 7: Deteccin de APCs .......................................................................................................... 99
Tabla 8: Deteccin de Taquicardias con umbral automtico ....................................................... 101
Tabla 9: Deteccin bradicardias ................................................................................................. 103

DETECCIN AUTOMTICA DE ARRITMIAS MEDIANTE ANLISIS DE CARACTERSTICAS


Trabajo final de grado

1. INTRODUCCIN
1.1 Motivacin

Las arritmias cardacas suponen una grave amenaza para la salud de la persona que
las padece y la deteccin de ellas a tiempo puede contribuir a poner los medios necesarios
para la resolucin de un problema de salud que, si bien inicialmente puede no ser mortal, si
se puede derivar en disfunciones que provoquen paros cardacos.
El estudio de las seales electrocardiogrficas es un campo en continuo desarrollo
que forma parte de la integracin entre la rama de ciencias de la salud y la ingeniera que
es capaz de diagnosticar multitud de enfermedades cardacas mediante sus tcnicas de
deteccin y clasificacin.
Para su estudio se requieren electrocardiogramas, que son medidas indirectas de la
actividad elctrica del corazn. Esta actividad se puede medir mediante la colocacin de
electrodos en la superficie de la piel y es muy til para los cardilogos, ya que pueden
obtener informacin muy importante acerca de la condicin clnica de sus pacientes. Entre
los criterios clnicos ms importantes se encuentra la deteccin y clasificacin de los
complejos QRS, ya que aportan informacin cardiaca muy importante.
Al igual que con el resto de seales, el anlisis depende mucho de la calidad de la
informacin. Por esta razn y previo a su tratamiento es necesario conseguir la calidad
adecuada con tcnicas de filtrado de seal y consiguiendo una buena SNR.
Producir un algoritmo para la deteccin de formas de onda de un ECG no es una
tarea fcil debido a la morfologa variable en el tiempo de la seal sujeta a condiciones
fisiolgicas y con presencia de ruido. La transformada wavelet es una herramienta til en
mltiples aplicaciones de procesado de seales, entre las que se encuentra la reduccin del
ruido.
Entre tanto, crear un algoritmo para la deteccin de arritmias mediante anlisis de
caractersticas puede ayudar a realizar un mejor informe clnico de los pacientes. En las
1

DETECCIN AUTOMTICA DE ARRITMIAS MEDIANTE ANLISIS DE CARACTERSTICAS


Trabajo final de grado

ltimas dcadas se han realizado muchos estudios para este fin. Senhadhi et al. [1]
compararon la capacidad de tres wavelets (Daubechies, Spline y Morlet) para reconocer y
localizar ritmos cardacos aislados. Sahambi et al. [2] utilizaron la funcin de Gauss para
caracterizar la forma de onda y el anlisis wavelet para medir las diferentes ondas que
forman los ECGs. Con el tiempo surgieron ms algoritmos, algunos basados en el espectro
[3, 4] y otros en las caractersticas de las wavelets [5, 6]. Incluso el algoritmo tradicional
de Pan Tompkins computacionalmente es muy eficaz [7]. Tambin se desarrollaron
algoritmos basados en redes neuronales backpropagation [8] y redes neuronales
probabilsticas [9].

1.2 Objetivos

El propsito final de este trabajo es la creacin de un detector de arritmias que sea


capaz de clasificar arritmias mediante el anlisis de sus caractersticas. Es por ello que se
cree conveniente realizar un acercamiento progresivo a todo lo referente a esta materia,
indagando en cada uno de los aspectos relevantes de este trabajo.
Los objetivos fijados para este Trabajo fin de Grado son los expuestos a
continuacin:

Estudiar los mtodos de eliminacin de ruido ms eficientes en la actualidad, con el


fin de determinar cul es ms adecuado para el proyecto a llevar a cabo.

Analizar las seales electrocardiogrficas con el fin de determinar mtodos y


herramientas para detectar arritmias.

Desarrollar un algoritmo basado en las caractersticas de las seales.

Realizar pruebas experimentales de las tcnicas seleccionadas y evaluarlas para


comprobar su validez.

DETECCIN AUTOMTICA DE ARRITMIAS MEDIANTE ANLISIS DE CARACTERSTICAS


Trabajo final de grado

1.3 Estructura de la memoria


El contenido de esta memoria se divide en 5 captulos y 2 anexos, cada uno de ellos
trata distintos aspectos que quedan brevemente reflejados en la siguiente descripcin:
El captulo 2 se titula "MARCO TERICO". En dicho captulo se realiza una
explicacin tanto del concepto electrocardiograma como de la transformada wavelet con el
fin de observar su posible adecuacin a la materia de deteccin de arritmias.
El captulo 3 titulado "METODOLOGA" es el que recoge la explicacin de la
implementacin del algoritmo final. Contiene el diseo del sistema, es decir, una
explicacin detallada por etapas de los algoritmos diseados mostrando las distintas
funciones. Se trata de aplicar la parte terica para crear un proceso de deteccin de
arritmias.
En el captulo 4, "RESULTADOS", se expone en primer lugar la interfaz del
programa para aprender a utilizarla y sus diferentes funciones, una breve descripcin de las
seales utilizadas para realizar los experimentos con los algoritmos programados y
diferentes ejemplos de ejecucin, as como, resultados de todos los procesos.
El captulo 5 se denomina "CONCLUSIONES Y FUTURAS LNEAS DE
TRABAJO" y es en ste en el que se recoge una evaluacin sobre la consecucin de los
objetivos expuestos al comienzo.
Finalmente se encuentran 2 anexos. El primero de ellos ANEXO A: Tablas
recoge los resultados con todas las seales utilizadas y para todas y cada una de las
detecciones. El ANEXO B: Cdigos Fuente recoge el algoritmo programado para
Matlab, con el fin de poder ser utilizado y mejorado por otros usuarios.

DETECCIN AUTOMTICA DE ARRITMIAS MEDIANTE ANLISIS DE CARACTERSTICAS


Trabajo final de grado

2. MARCO TERICO
2.1 Electrocardiograma (ECG)
Descripcin

El electrocardiograma (ECG) es la seal que se obtiene al medir la actividad


elctrica del corazn de una manera continua. Es un mtodo rpido, simple e indoloro en
el cual se amplifican los impulsos elctricos, relacionados con la contraccin del corazn
con el fin de poder ser analizados.
El electrocardiograma es el elemento principal de la electro-fsica cardaca y tiene
una funcin relevante en el diagnstico de enfermedades y anomalas cardiovasculares,
como por ejemplo:

Un defecto del miocardio

Defectos congnitos

Enfermedad de la vlvula cardaca

Arritmias

Enfermedad de la arteria coronaria

Un ataque cardaco anterior.

Un ataque cardaco inminente.

Etc
La frecuencia cardaca normal de un adulto es de entre 50 y 90 pulsaciones por

minuto con un ritmo constante y uniforme. Adems el electrocardiograma debe tener


ciertas caractersticas en la forma de onda para determinar la salud del paciente.

DETECCIN AUTOMTICA DE ARRITMIAS MEDIANTE ANLISIS DE CARACTERSTICAS


Trabajo final de grado

Fig 1: Frecuencia cardiaca normal

En la Figura 2 se representa la corriente elctrica que circula a travs del corazn


durante un latido. Cada parte coloreada de la seal representa ondas o intervalos
importantes que se explican a continuacin:

Fig 2: Pulso normal en ECG

Onda P
Es la seal elctrica que corresponde a la despolarizacin auricular. Resulta de la
superposicin de la despolarizacin de la aurcula derecha (parte inicial de la onda P) y de
la izquierda (final de la onda P). Para que la onda P sea sinusoidal debe tener estas
caractersticas:
1

Fuente: http://www.swharden.com/blog/category/diy-ecg-home-made-electrocardiogram/feed/ (ltimo


acceso: 08/08/2014)
2
Fuente: http://es.wikipedia.org/wiki/Electrocardiograma (ltimo acceso: 08/08/2014)

DETECCIN AUTOMTICA DE ARRITMIAS MEDIANTE ANLISIS DE CARACTERSTICAS


Trabajo final de grado

No debe superar los 0,25 mV. Si lo supera, estamos en presencia de un


agrandamiento auricular derecho.

Su duracin no debe superar los 0,11 segundos en el adulto y 0,07-0,09 segundos


en los nios. Si est aumentado posee un agrandamiento auricular izquierdo y
derecho.

Tiene que ser redondeada, de rampas suaves, simtricas, de cspide roma y de


forma ovalada.

Tiene que preceder al complejo ventricular.

Complejo QRS
Es la representacin grfica de la despolarizacin de los ventrculos del corazn
formando una estructura picuda en el electrocardiograma, como se puede apreciar en la
Figura 2. Suelen tener una duracin de entre 0.06 y 0.10 segundos y un voltaje no mayor
de 3.5 mV. Consta de tres ondas:

Onda Q Es la primera onda del complejo QRS y tiene valores negativos.

Onda R Es la que sigue a la onda Q, es positiva y en la tpica imagen del


electrocardiograma es la de mayor tamao.

Onda S Es cualquier onda negativa que sigue a la onda R.


La duracin, amplitud y morfologa del complejo QRS es til en el diagnstico de

arritmias cardiacas, por ello es una parte esencial de este trabajo.

Onda T
Esta onda representa la repolarizacin de los ventrculos. Durante la formacin del
complejo QRS, generalmente tambin ocurre la repolarizacin auricular que no se registra
en el ECG normal, ya que es tapado por el complejo QRS. Elctricamente, las clulas del
msculo cardaco son como muelles cargados; un pequeo impulso las dispara,
despolarizan y se contraen. La recarga del muelle es la repolarizacin (tambin llamada
potencial de accin).
6

DETECCIN AUTOMTICA DE ARRITMIAS MEDIANTE ANLISIS DE CARACTERSTICAS


Trabajo final de grado

En la mayora de las derivaciones, la onda T es positiva. Las ondas T negativas


pueden ser sntomas de enfermedad, aunque una onda T invertida es normal a veces en
personas de etnia negra.

Onda U
Corresponde a la despolarizacin de las fibras de Purkinje. Es positiva, su amplitud
es relativamente baja y suele pasar desapercibida en la mayora de los casos.

Intervalo PR
Es el tiempo desde que se acaba la onda P hasta que se origina
Corresponde a un periodo de inactividad elctrica como

la onda R.

consecuencia del retraso

fisiolgico que sufre el estmulo elctrico. Su duracin suele estar entre 120ms y 220ms.

Intervalo QT
Es el tiempo desde el inicio de la onda Q hasta el final de la onda T, y representa la
activacin y recuperacin ventricular. Su duracin vara en

funcin de la frecuencia

cardiaca, pero suele ser entre 360ms y 440ms.

Segmento PR
Lnea que une el final de la Onda P con el inicio del complejo QRS.

Segmento ST
El segmento ST indica la cantidad de tiempo que transcurre desde el final de una
contraccin de los ventrculos hasta el comienzo del perodo de reposo (repolarizacin).

DETECCIN AUTOMTICA DE ARRITMIAS MEDIANTE ANLISIS DE CARACTERSTICAS


Trabajo final de grado

A continuacin y a modo de resumen se presenta la Tabla 1 con los valores


normales de cada una de las variables explicadas en este apartado:
3

Tabla 1: Valores normales en ECG

Caracterstica

Valor normal

Margen

Ancho onda P

110 ms

20 ms

Intervalo PQ/PR

160 ms

40 ms

Acho del complejo QRS

100 ms

20 ms

Intervalo QTc

400 ms

40 ms

Amplitud onda P

0,15 mV

0,05 mV

Altura complejo QRS

1,15 mV

0,5 mV

Nivel intervalo ST

0 mV

0,1 mV

Amplitud onda T

0,3 mV

0,2 mV

Derivaciones

El electrocardiograma estndar o comn incluye doce derivaciones. La informacin


sobre la actividad elctrica al miocardio se obtiene al colocar electrodos en sitios definidos
de la superficie de la piel. A las diversas posiciones de los electrodos se les denominan
derivaciones. Por ejemplo, la derivacin MLI mide la actividad elctrica entre los brazos
izquierdo y derecho.
En el estudio completo, de 12 derivaciones, se usan 12 ejes elctricos anatmicos
para evaluar la actividad del corazn. Como se puede suponer, al tener 12 seales, existe
mucha informacin redundante, pero este exceso de informacin repercute en una
representacin ms sencilla de entender para las personas y compensa los ruidos
introducidos por la colocacin de los electrodos.

Fuente: http://www.mit.edu/~gari/ecgbook/ch3.pdf (ltimo acceso: 06/08/2014)

DETECCIN AUTOMTICA DE ARRITMIAS MEDIANTE ANLISIS DE CARACTERSTICAS


Trabajo final de grado

Colocando electrodos y correas en ambas muecas y ambos pies se registran las


primeras seis derivaciones: 3 bipolares MLI, MLII y MLIII, y tres unipolares AVR, AVL
y AVF.
Hay que tener en cuenta que las derivaciones aumentadas (denominadas con A)
representan el potencial de un miembro con respecto a la media de potenciales de los otros
dos miembros. AVF es la diferencia entre la pierna izquierda y una media de las
derivaciones de los brazos; AVR es la diferencia entre el brazo derecho y la media de la
pierna izquierda y el brazo izquierdo, y AVL es la diferencia entre el brazo izquierdo y la
media del brazo derecho y la pierna izquierda.
Las diferencias de potencial entre los electrodos en los miembros y el terminal
central son para las otras tres derivaciones del ECG:

Derivacin MLI: Diferencia entre brazo izquierdo y brazo derecho.

Derivacin MLII: Diferencia entre el pierna izquierda y el brazo derecho.

Derivacin MLIII: Diferencia entre pierna izquierda y brazo izquierdo

Fig 3: Posiciones de las derivaciones MLI, MLII, MLIII, AVR, AVF y AVL4

Fuente: http://www.my-ekg.com/generalidades-ekg/derivaciones-cardiacas.html (ltimo acceso:


13/08/2014)

DETECCIN AUTOMTICA DE ARRITMIAS MEDIANTE ANLISIS DE CARACTERSTICAS


Trabajo final de grado

Las otras seis derivaciones precordiales o V se registran colocando los electrodos


en la cara anterior y lateral izquierda del trax siguiendo por el exterior un trayecto
semejante al contorno del corazn.

Fig 4: Posiciones de las derivaciones V1, V2, V3, V4, V5 y V65

Cada derivacin tiene una forma de onda diferente como se puede apreciar en la
Figura 5:

Fig 5: Formas de ondas de todas las derivaciones6

Fuente: http://www.my-ekg.com/generalidades-ekg/derivaciones-cardiacas.html (ltimo acceso:


13/08/2014)
6
Fuente: http://www.washingtonhra.com/31.html (ltimo acceso: 22/08/2014)

10

DETECCIN AUTOMTICA DE ARRITMIAS MEDIANTE ANLISIS DE CARACTERSTICAS


Trabajo final de grado

Esto es muy importante, ya que dependiendo la derivacin es ms sencilla o


compleja la deteccin de diferentes anomalas y tambin es interesante disponer de ms de
una para poder comprobar los resultados y que un mdico pueda corroborar las detecciones
finales.
Caractersticas importantes en un ECG
Para que un electrocardiograma proporcione informacin, debe ser analizado de
forma exhaustiva, extrayendo una serie de caractersticas que pueden ser determinantes
para detectar cualquier anomala. A continuacin se exponen algunas que suelen analizarse
clnicamente.

Identificar complejos QRS:


o

Cul es la frecuencia ventricular?

o El periodo de los complejos es regular?


o Existe una similitud de forma entre los complejos para una misma
derivacin?

Identificar ondas P:
o Existe relacin entre las ondas P y los complejos QRS?
o Tiene una duracin normal el intervalo PR?
o Cul es la frecuencia auricular?
o Existe una similitud de forma entre las ondas P para una misma
derivacin?

Examinar el complejo QRS en cada derivacin:


o Es normal el eje del complejo?
o Est la amplitud del complejo dentro de los valores normales?

Examinar los segmentos ST:


o Hay algn tipo de anormalidad?
o Si la hay Sugiere algn tipo de isquemia, infarto o hipotermia?

Examinar la onda T:
o Tiene una forma normal?
o En cada derivacin Estn orientados en la misma direccin los complejos
QRS?
11

DETECCIN AUTOMTICA DE ARRITMIAS MEDIANTE ANLISIS DE CARACTERSTICAS


Trabajo final de grado

Arritmias

Las arritmias son problemas de la frecuencia cardaca o del ritmo de los latidos del
corazn. Durante una arritmia el corazn puede latir demasiado rpido, demasiado
despacio o de manera irregular.
La mayora de las arritmias son inofensivas, pero algunas pueden ser graves e
incluso poner en peligro la vida del paciente. Durante una arritmia es posible que el
corazn no pueda bombear suficiente sangre al resto del cuerpo y esta falta de circulacin
sangunea puede causar daos en el cerebro, el corazn y otros rganos importantes.
Las arritmias se pueden agrupar en arritmias ventriculares y arritmias auriculares.
Las arritmias ventriculares se manifiestan como grandes distorsiones en la morfologa de la
onda ya que la despolarizacin comienza ms en los ventrculos que en la aurcula. El
complejo QRS se hace ms grande, enmascarando as la onda P.
Aunque la ampliacin del complejo QRS causa un desplazamiento de sus
componentes en el dominio de la frecuencia hacia frecuencias ligeramente ms bajas, el
espectro es bastante parecido al de un latido normal, con lo que llevar a cabo una
clasificacin espectral de estas arritmias se torna complicado.
Sin embargo, las arritmias auriculares presentan pequeas variaciones temporales y
de posicin de la relativamente pequea onda P. Por consiguiente son de difcil deteccin
mediante mtodos espectrales. A pesar de ello presentan notables variaciones en los
tiempos entre latidos, por lo que una forma de detectarlas es realizando anlisis estadsticos
de intervalos de seal ECG.
Tambin existen los latidos ectpicos que son cambios pequeos en un latido
normal del corazn que conducen a latidos cardiacos extras o que se saltan. Las
contracciones ventriculares prematuras y las contracciones auriculares prematuras forman
parte de estos tipos de latidos.

12

DETECCIN AUTOMTICA DE ARRITMIAS MEDIANTE ANLISIS DE CARACTERSTICAS


Trabajo final de grado

Contraccin ventricular prematura (CVP)

Tambin conocida como extrasstole ventricular, es uno de los trastornos del ritmo
cardaco y consiste en un latido adelantado respecto a la frecuencia cardaca normal del
individuo. En el paciente se percibe como un salto en los latidos o palpitaciones. En estos
casos, la despolarizacin del msculo cardaco comienza en el ventrculo en vez de su
lugar usual, el nodo sinusoidal.
Son uno de los trastornos del ritmo ms comunes, ya sea en individuos sanos o en
pacientes con cardiopata. Normalmente son ms frecuentes con la edad y no son
necesariamente peligrosos.

Fig 6: Contraccin ventricular prematura

Existen varios tipos de contracciones ventriculares prematuras y estas se pueden


clasificar en funcin de algunas caractersticas:

Duracin Se pueden considerar anchas cuando su QRS tiene una duracin de


120 ms o ms.

Periodicidad Pueden presentar diferentes periocidades:


o Bigeminia (un latido normal, una contraccin ventricular prematura, un
latido normal, una contraccin ventricular prematura y as sucesivamente).

Fuente: http://conemaugh.kramesonline.com/spanish/HealthSheets/3,S,40423?PrinterFriendly=true
(ltimo acceso: 15/08/2014)

13

DETECCIN AUTOMTICA DE ARRITMIAS MEDIANTE ANLISIS DE CARACTERSTICAS


Trabajo final de grado

Fig 7: Bigeminismo

o Trigeminia (dos latidos normales, una contraccin ventricular prematura,


dos latidos normales, una contraccin ventricular prematura y as
sucesivamente).

Fig 8: Trigeminismo9

o Cuadrigeminia (tres latidos normales, una contraccin ventricular


prematura, tres latidos normales, una contraccin ventricular prematura y
as sucesivamente).

Fuente: http://www.pap.es/FrontOffice/PAP/front/Articulos/Articulo/_IXus5l_LjPoo2J2KDAbNmhMsCraTQX_ (ltimo acceso: 15/08/2014)


9
Fuente: http://www.pap.es/FrontOffice/PAP/front/Articulos/Articulo/_IXus5l_LjPoo2J2KDAbNmhMsCraTQX_ (ltimo acceso: 15/08/2014)

14

DETECCIN AUTOMTICA DE ARRITMIAS MEDIANTE ANLISIS DE CARACTERSTICAS


Trabajo final de grado

Frecuencia
o Poco frecuentes Menos de 30/hora.
o Frecuentes Entre 30 a 60/hora.
o Muy frecuentes Ms de 60/hora.

Morfologa
o Monomorfas Solo existe una nica morfologa de CVP en todo el
electrocardiograma.
o Bimorfas Existen dos morfologas de CVPs diferentes en todo el
electrocardiograma.
o Polimorfas Existen ms de dos morfologas de CVPs diferentes en todo
el electrocardiograma.

Complejidad
o

Simple

Compleja

Duplas o parejas ventriculares: Son dos latidos ventriculares


ectpicos juntos, y no debe confundirse con la bigeminia. Cabe
destacar que este fenmeno tambin puede ocurrir en las
contracciones auriculares prematuras.

10

Fig 9: Duplas o parejas ventriculares

10

Fuente: http://www.pap.es/FrontOffice/PAP/front/Articulos/Articulo/_IXus5l_LjPoo2J2KDAbNmhMsCraTQX_ (ltimo acceso: 16/08/2014)

15

DETECCIN AUTOMTICA DE ARRITMIAS MEDIANTE ANLISIS DE CARACTERSTICAS


Trabajo final de grado

Contraccin auricular prematura (APC)

Tambin conocida como extrasstole auricular. Es uno de los trastornos del ritmo
cardaco, benigno, caracterizado por un latido prematuro en la aurcula, una de las cmaras
del corazn. Estas se diferencian de las contracciones ventriculares prematuras (CVP) en
que no suelen requerir tratamiento mdico. Quienes han experimentado una extrasstole
auricular dicen sentir que su corazn se detiene o que se salta un latido.
Uno de los motivos que pueden provocar una APC son las extrasstoles supra
ventriculares prematuras (SVTA), que son un tipo de impulso elctrico prematuro en el
corazn, generado en un nivel superior al de los ventrculos cardacos. Tanto las APCs
como las SVTAs son opuestas a las CVPs, cuyo origen es ventricular como se ha explicado
en el apartado anterior.
Una contraccin auricular prematura por lo general aparece en el ECG y se
caracteriza por:

Un complejo QRS normal.

Una onda T de repolarizacin normal (no invertida).

Una extraa y deforme despolarizacin de la onda P.

Fig 10: Contraccin Auricular Prematura11

11

Fuente: http://www.ecghispana.com/physicians.cfm (ltimo acceso: 16/08/2014)

16

DETECCIN AUTOMTICA DE ARRITMIAS MEDIANTE ANLISIS DE CARACTERSTICAS


Trabajo final de grado

Taquicardias

Es el incremento de la frecuencia cardiaca. Supone la contraccin demasiado rpida


de los ventrculos y se puede considerar cuando la frecuencia cardaca es superior a 100
latidos por minuto en reposo. Las personas que padecen de taquicardia poseen una vida
normal, ya que no es una enfermedad grave, aunque puede acortar su vida debido a que el
corazn trabaja ms de lo normal. Suele ser ms comn en mujeres.
Se origina en el ndulo sinusal y comienza y termina generalmente de forma
gradual. Entre las posibles causas de su aparicin se encuentran:

Estrs

Fiebre

Ansiedad

Etc.

12

Fig 11: Taquicardia

12

Fuente: http://www.pap.es/FrontOffice/PAP/front/Articulos/Articulo/_IXus5l_LjPoo2J2KDAbNmhMsCraTQX_ (ltimo acceso: 16/08/2014)

17

DETECCIN AUTOMTICA DE ARRITMIAS MEDIANTE ANLISIS DE CARACTERSTICAS


Trabajo final de grado

Entre los diferentes tipos de taquicardias se puede destacar la taquicardia


supraventricular que se caracteriza por tener una frecuencia cardaca acelerada cuya seal
elctrica se origina en el ndulo auriculoventricular o bien en la aurcula cardaca. Estas
arritmias, por definicin, se inician o se mantienen en el ndulo AV o en la aurcula, en
contraste con las potencialmente letales taquicardias ventriculares, las cuales se originan en
los ventrculos cardacos, es decir, por debajo de las aurculas o del ndulo AV. La
frecuencia cardaca normal es de unos 70 latidos por minuto, mientras que en las
taquicardias SV, la frecuencia cardaca escala desde 175-250 latidos por minuto.

Fig 12: Taquicardia supraventricular

13

Es importante destacar que las pulsaciones por minuto normales dependen de la


edad y el sexo del paciente. La Tabla 2 muestra los valores a partir de los cuales pueden
considerarse taquicardias, siempre teniendo en cuenta que depende del tipo de taquicardia
se pueden caracterizar por unos valores superiores a estos.
14

Tabla 2: Umbrales para detectar taquicardias en funcin de edad y sexo

13
14

EDAD

MUJERES

HOMBRES

20-29 aos

96 ppm

86 ppm

30-39 aos

98 ppm

86 ppm

40-49 aos

100 ppm

90 ppm

50-59 aos

104 ppm

90 ppm

60 aos o ms

108 ppm

94 ppm

Fuente: http://es.wikipedia.org/wiki/Taquicardia_supraventricular (ltimo acceso: 16/08/2014)


Fuente: http://corredordefondo.com/foro/index.php?topic=4419.0 (ltimo acceso: 18/08/2014)

18

DETECCIN AUTOMTICA DE ARRITMIAS MEDIANTE ANLISIS DE CARACTERSTICAS


Trabajo final de grado

Bradicardia

Es una alteracin del ritmo al que late el corazn, concretamente se trata de un


descenso en la frecuencia cardaca. Para que pueda considerarse como tal, las pulsaciones
deben estar por debajo de 60 por minuto en reposo, teniendo en cuenta que solamente si
estn por debajo de 50 latidos por minuto pueden aparecer problemas.
No tiene por qu ser tratada (cuando es asintomtica), puede aparecer como un
sntoma de una enfermedad del corazn y asociada a alguna dolencia (sintomtica), lo que
requiere de tratamiento. Algunas de las causas de la bradicardia son las siguientes:

Hipotermia.

Hipotiroidismo.

Efecto de algunas drogas, como los beta-bloqueantes.

Efecto secundario de infecciones tales como la difteria, fiebre reumtica y la


miocarditis vrica

15

Fig 13: Bradicardia

15

Fuente: http://medicablogs.diariomedico.com/elenfermeroperplejo/2013/08/17/que-hacer-en-caso-debradicardia/ (ltimo acceso: 20/08/2014)

19

DETECCIN AUTOMTICA DE ARRITMIAS MEDIANTE ANLISIS DE CARACTERSTICAS


Trabajo final de grado

Problemas de Procesado

Existen algunos problemas a la hora de procesar las seales. Esto se debe a que las
seales llegan contaminadas con algn tipo de ruido. Ya sea este ruido biolgico (por
ejemplo la actividad elctrica producida por los msculos esquelticos) o artificial (las
interferencias causadas por la alimentacin 50/60 Hz). Las seales indeseadas que pueden
alterar nuestras medidas son las siguientes:

Interferencias causadas por la alimentacin (50/60 Hz): Suele ser del orden de los
50/60 Hz con un margen de 0,2 Hz.

Ruido de contacto: La prdida de contacto entre los electrodos y la piel.

Ruido electromiogrfico: Actividad elctrica debido a la contraccin de los


msculos esquelticos.

Artefactos: Un artefacto en el ECG es cualquier interferencia con el trazado


correcto. La presencia de artefactos y una mala tcnica pueden generar errores en
los diagnsticos.
o Artefactos debidos al movimiento del paciente: Los movimientos del
paciente provocan variaciones de la impedancia entre los electrodos y la
piel causando cambios en la seal ECG.
o Artefactos debidos al hardware: Tales como la saturacin de los
amplificadores, ruido de los diferentes subsistemas.
o Artefactos debido al procesado de la seal: Como por ejemplo las
oscilaciones de Gibbs.

20

DETECCIN AUTOMTICA DE ARRITMIAS MEDIANTE ANLISIS DE CARACTERSTICAS


Trabajo final de grado

Baseline wander: Usualmente causado por la respiracin.

Fig 14: Baseline wander16

Se puede apreciar que la seal no se encuentra en el nivel de los cero voltios y


presenta una oscilacin de baja frecuencia. Para garantizar un correcto procesado
esta oscilacin debe eliminarse

Ruido electroquirrgico: Generado por otros aparatos mdicos.

2.2 Transformada wavelet


Introduccin

La transformada de wavelet es una herramienta matemtica que fue desarrollada a


finales del siglo XX y que ha creado una gran expectacin en los campos relacionados con
la ingeniera, fsica y ciencias aplicadas. El objetivo por el que surgi era encontrar
algoritmos simples que permitieran descomponer funciones arbitrarias en funciones
espaciales combinando las diferentes ventajas que ya existan por aquel entonces.

16

Fuente: http://oa.upm.es/22410/1/PFC_FELIPE_HERRANZ_RABANAL.pdf (ltimo acceso: 12/08/2014)

21

DETECCIN AUTOMTICA DE ARRITMIAS MEDIANTE ANLISIS DE CARACTERSTICAS


Trabajo final de grado

Es sabido que la transformada ms conocida para el anlisis de seales es la


Transformada de Fourier, ya que se encarga de dividir una seal en muchas sinusoides
cada una de una determinada frecuencia. Esta informacin es muy til e importante para
analizar seales por el hecho de que en ocasiones la informacin en frecuencia de las
seales es ms relevante.
Entonces, por qu se necesitan otro tipo de transformadas? O en este caso ms
particular por qu se necesita la transformada de wavelet?
En la transformada de Fourier la variable de frecuencia est perfectamente
localizada, pero la informacin en el tiempo se pierde, por lo que no es posible saber
cundo ocurre un evento, es decir, no es posible posicionarlo en el tiempo, solamente en
frecuencia. En un principio para paliar este problema, se cre una transformada de Fourier
dependiente del tiempo, que se encargaba de analizar la seal con ventanas de un tiempo
determinado, y as con cierta precisin poder saber cundo ocurra un evento, el problema
era que la ventana siempre tena que tener la misma dimensin para toda la seal, y
algunas seales necesitaban de cierta flexibilidad a la hora de analizarlas. De ah viene la
utilidad de la Transformada wavelet.
Como el anlisis de wavelet se relaciona con informacin de tiempo y de
frecuencia, la representacin grfica de la transformada wavelet se da en un plano tiempofrecuencia donde cada celda representa un valor de dicha transformada en el plano
mencionado.

22

DETECCIN AUTOMTICA DE ARRITMIAS MEDIANTE ANLISIS DE CARACTERSTICAS


Trabajo final de grado

17

Fig 15: Escala-Tiempo (wavelet)

Traslacin

Dentro del anlisis wavelet el trmino traslacin est relacionado con la


localizacin de la ventana a medida que se desplaza a travs de la seal, es decir,
corresponde a la informacin del tiempo en el dominio transformado.

Escala

Para la transformada wavelet se tiene un parmetro escala que est definido


como:
ECUACIN (1)

Con este parmetro se permite obtener regiones de tamao variable, de intervalos


ms largos para tener precisin en bajas frecuencias (informacin global de la seal) y de
intervalos ms cortos para tener precisin en altas frecuencias (informacin detallada de la
seal).

17

Fuente: Wavelet Toolbox [10]

23

DETECCIN AUTOMTICA DE ARRITMIAS MEDIANTE ANLISIS DE CARACTERSTICAS


Trabajo final de grado

El escalado como operacin matemtica, produce una dilatacin o una compresin


de la seal. La relacin entre la escala y la frecuencia es una relacin inversa, por lo que las
escalas menores corresponden a altas frecuencias y las escalas mayores a bajas frecuencias.

Fig 16: Diferentes escalas wavelets18

Transformada wavelet

De manera muy general, la Transformada wavelet de una funcin ( ) es la


descomposicin de ( ) en un conjunto de funciones s, (t), que forman una base y que
son denominadas wavelets. Esta transformada se define como:
(

Donde

()

()

ECUACIN (2)

( ) es el complejo conjugado de s, (t), esto se realiza para eliminar

la parte imaginaria.
y la traslacin de la wavelet madre

La base es generada por la dilatacin


definida como:
()

18

Wavelet Toolbox [10]

24

ECUACIN (3)

DETECCIN AUTOMTICA DE ARRITMIAS MEDIANTE ANLISIS DE CARACTERSTICAS


Trabajo final de grado

Donde las variables y son:

Factor de escala.

Factor de traslacin.
Las wavelets s, (t), generadas de la misma funcin wavelet madre ( ) tienen

diferente escala y diferente ubicacin , pero tienen todas la misma forma.


Se utilizan siempre factores de escala tales que
dilatadas cuando
valor de

mayor que 1, y son contradas cuando

mayor que 0. Las wavelets son


menor que 1. As, cambiando el

se cubren rangos diferentes de frecuencias. Los valores grandes de este

parmetro se corresponden con frecuencias de menor valor, o escalas grandes. Los valores
pequeos corresponden a frecuencias de mayor valor o escalas muy pequeas [11].

Fig 17: Seal sinusoidal y seal wavelet19

Para manejar el mtodo con un ordenador, es necesaria una versin discreta con
menor coste computacional. Un escalado didico de las bases con =2 y una traslacin
=2 conduce a funciones bases del tipo:
( )

ECUACIN (4)

La Transformada Wavelet Discreta (DWT) se define como:


{()

19

( )}

()

Fuente: Wavelet Toolbox [10]

25

ECUACIN (5)

DETECCIN AUTOMTICA DE ARRITMIAS MEDIANTE ANLISIS DE CARACTERSTICAS


Trabajo final de grado

Donde m=1,, M denota la profundidad de la iteracin, por tanto, a medida que m


aumenta, se tiene una escala con menor resolucin.
La versin muestreada de la CWT, entrega informacin redundante para la
reconstruccin de la seal, lo que provoca el aumento significativo en el tiempo de clculo.
Es por eso que se utiliza esta transformada DWT, ya que facilita suficiente informacin
para el anlisis y la reconstruccin de la seal con una reduccin significativa de tiempo de
procesado, y, adems, es ms sencilla de implementar que la CWT.

Transformada Wavelet Discreta (DWT)

Primera etapa: Aproximacin y detalles

En muchas seales, el contenido de baja frecuencia es la parte ms importante ya


que contiene la identidad de la seal, mientras que las altas frecuencias contienen los
matices. Por este motivo en el anlisis wavelet se suelen hablar de aproximaciones y
detalles.
Las aproximaciones son las componentes de baja frecuencias a alta escala de la
seal. Los detalles son los componentes de alta frecuencia de baja escala. El proceso de
filtrado, en su nivel ms bsico, es el siguiente:

Fig 18: Aproximaciones y detalles20

20

Fuente: Wavelet Toolbox [10]

26

DETECCIN AUTOMTICA DE ARRITMIAS MEDIANTE ANLISIS DE CARACTERSTICAS


Trabajo final de grado

Por desgracia, si en realidad esta operacin se realiza con una seal digital real, se
obtendran el doble de datos. Si la seal S consta de 1000 muestras, la aproximacin y el
detalle tendrn cada uno 1000 muestras, lo que hace un total de 2000. Para corregir este
problema, se introduce el concepto de disminucin de resolucin. Esto significa eliminar
cada segundo punto de datos (reduccin de muestreo), pero tiene un problema y es que
introduce aliasing en los componentes de la seal.

Fig 19: Reduccin de muestras wavelets21

Descomposicin mltiple

El proceso de descomposicin puede repetirse, con aproximaciones sucesivas que


se descomponen a su vez, de manera que una seal se divide en muchos componentes de
menor resolucin. Esto se llama el rbol de descomposicin wavelet.

Fig 20: rbol de descomposicin wavelet22

21
22

Fuente: Wavelet Toolbox [10]


Fuente: Wavelet Toolbox [10]

27

DETECCIN AUTOMTICA DE ARRITMIAS MEDIANTE ANLISIS DE CARACTERSTICAS


Trabajo final de grado

Dado que el proceso de anlisis es iterativo, en teora, los niveles en los que puede
descomponerse la seal son indefinidos. En la prctica, la descomposicin puede realizarse
nicamente hasta que los detalles individuales consisten en una sola muestra o pxel, pero
debe elegirse un nmero adecuado de niveles basados en la naturaleza de la seal, o en un
criterio adecuado, tal como la frecuencia de muestreo.

Familias wavelets

Haar

Cualquier discusin sobre wavelets debe empezar con la wavelet Haar, por ser la
ms simple y sencilla. Esta wavelet es discontinua y se parece a una funcin escaln. Es
equivalente a la wavelet Daubechies db1.

23

Fig 21: Wavelet Haar

Es muy eficaz en la parte plana de la seal (si tiene cambios abruptos muy
notables).

23

Fuente: Wavelet Toolbox [10]

28

DETECCIN AUTOMTICA DE ARRITMIAS MEDIANTE ANLISIS DE CARACTERSTICAS


Trabajo final de grado

Daubechies

Ingrid Daubechies, una de las personalidades ms importantes en el mundo de la


investigacin wavelet, invent lo que se conoce como wavelets ortogonales, haciendo con
esto posible el anlisis discreto de wavelets.
El nombre de esta familia se escribe dbN, donde N es el orden y db corresponde al
apellido de la wavelet. La db1, como se ha mencionado anteriormente, es igual que la
wavelet Haar. Las wavelets de esta familia son las que tienen mayor cantidad de
momentos nulos para su soporte.

Fig 22: Wavelet Daubechies24

24

Fuente: Wavelet Toolbox [10]

29

DETECCIN AUTOMTICA DE ARRITMIAS MEDIANTE ANLISIS DE CARACTERSTICAS


Trabajo final de grado

Biortogonales

Esta familia tiene la propiedad de poseer fase lineal, que es necesaria para la
reconstruccin de seales e imgenes. Utilizan dos wavelets diferentes, una para
descomposicin y otra para reconstruccin, en lugar de usar solo una para los dos procesos
como las otras familias.

25

Fig 23: Wavelet biortogonales

25

Fuente: Wavelet Toolbox [10]

30

DETECCIN AUTOMTICA DE ARRITMIAS MEDIANTE ANLISIS DE CARACTERSTICAS


Trabajo final de grado

Symlets

Son casi simtricas, propuestas por Daubechies como modificacin a la familia db.
Las propiedades de ambas familias son muy similares.

Fig 24: Wavelet Symlets26

26

Fuente: Wavelet Toolbox [10]

31

DETECCIN AUTOMTICA DE ARRITMIAS MEDIANTE ANLISIS DE CARACTERSTICAS


Trabajo final de grado

3. METODOLOGA
Este proyecto ha sido realizado para alcanzar los objetivos establecidos, detectar
arritmias automticamente en seales electrocardiogrficas. Su funcionamiento se
explicar a continuacin as como los motivos por los cuales se han tomado diversas
decisiones.
El sistema lo forman tres procesos principales, como se puede apreciar en el
siguiente diagrama de bloques:

Fig 25: Diagrama de bloques general del algoritmo

A continuacin se explica el funcionamiento de cada uno de ellos:

3.1 Preprocesado

El primer bloque corresponde al preprocesado de la seal ECG. Como se dijo


anteriormente, uno de los factores ms importantes a la hora de analizar seales y trabajar
con ellas es que contengan la menor cantidad de ruido.
El ruido introducido es inevitable como se ha visto anteriormente, ya que entran en
juego factores fsicos impredecibles, pero existe cierto tipo de ruido que puede ser
eliminado o en su defecto, reducido.
Se ha de tener en cuenta que no todas las seales presentan el mismo ruido, incluso
hay seales que debido al ruido pierden parte de la informacin y esta se vuelve
irrecuperable. Para automatizar un sistema de estas caractersticas es necesario generalizar
y delegar un poco de responsabilidad en el usuario. Por ello, el preprocesado es totalmente
opcional y se divide en dos bloques como se puede ver a continuacin:

32

DETECCIN AUTOMTICA DE ARRITMIAS MEDIANTE ANLISIS DE CARACTERSTICAS


Trabajo final de grado

Fig 26: Diagrama de bloques preprocesado

El usuario puede elegir si desea aplicar el primer bloque, el segundo o ambos en


funcin del estado de la seal.

Eliminacin de Baseline wander


Como se ha descrito anteriormente el baseline wander es un ruido de baja
frecuencia que introduce una componente continua, la cual hace oscilar la seal y no la
centra en los 0 voltios. Esto supone un gran problema, ya que los valores de amplitud que
se puedan medir no son reales y pueden perjudicar a los resultados del algoritmo.
La forma elegida de eliminarlo ha sido mediante la Transformada wavelet, ya que
permite separar las frecuencias de la seal y no pierde informacin del tiempo. Para ello se
han elegido una serie de wavelets madre que puedan dar buen resultado, basndose en
ptimos estudios anteriores.
En total se han elegido 5 wavelets: db4, db5, sym4, bior 1.3, bior 6.8 [12, 13]. Cabe
destacar que estas wavelets son tiles por su similitud en cuanto a forma de onda con las
seales ECGs.
La metodologa a emplear es en primer lugar obtener los coeficientes wavelets de la
seal. El nivel puede ser introducido por el usuario, por lo que los resultados dependen de
la eleccin tanto del tipo de wavelet, como del nivel elegido. Ese nivel va en funcin de la
frecuencia de muestreo de la seal analizada y del intervalo de frecuencias que se deseen
eliminar.
En la Figura 27 se puede apreciar como la seal S se descompone en n niveles de
aproximaciones y detalles.

33

DETECCIN AUTOMTICA DE ARRITMIAS MEDIANTE ANLISIS DE CARACTERSTICAS


Trabajo final de grado

Fig 27: Aproximaciones y detalles (n niveles)

La aproximacin contiene la mayor parte de la energa de la seal, es decir, la


informacin ms importante, mientras que los detalles tienen valores prximos a cero.
Se necesita eliminar ruido de muy baja frecuencia, por lo tanto se recurre a eliminar
el ltimo nivel de aproximacin, por lo que la seal recuperada dejar de ser:

( )

()

ECUACIN (6)

Para convertirse en:

()

ECUACIN (7)

En la Figura 28 se observa un ejemplo de eliminacin de baseline wander. En la


grfica superior se presenta la seal con baseline wander, y en la inferior la misma seal en
el mismo intervalo de tiempo con el filtrado descrito.

34

DETECCIN AUTOMTICA DE ARRITMIAS MEDIANTE ANLISIS DE CARACTERSTICAS


Trabajo final de grado

Fig 28: Eliminacin baseline wander

Cada wavelet elegida tiene una funcin de escalado diferente, as como unos
coeficientes que las hacen especiales y tiles para su fin. A continuacin se describen
mediante imgenes cada una de las cinco wavelets elegidas.

35

DETECCIN AUTOMTICA DE ARRITMIAS MEDIANTE ANLISIS DE CARACTERSTICAS


Trabajo final de grado

db4

Fig 29: Wavelet db427

27

Fuente: http://wavelets.pybytes.com/wavelet/db4/ (ltimo acceso: 04/09/2014)

36

DETECCIN AUTOMTICA DE ARRITMIAS MEDIANTE ANLISIS DE CARACTERSTICAS


Trabajo final de grado

db5

28

Fig 30: Wavelet db5

28

Fuente: http://wavelets.pybytes.com/wavelet/db5/ (ltimo acceso: 04/09/2014)

37

DETECCIN AUTOMTICA DE ARRITMIAS MEDIANTE ANLISIS DE CARACTERSTICAS


Trabajo final de grado

sym4

29

Fig 31: Wavelet Sym4

29

Fuente: http://wavelets.pybytes.com/wavelet/sym4/ (ltimo acceso: 04/09/2014)

38

DETECCIN AUTOMTICA DE ARRITMIAS MEDIANTE ANLISIS DE CARACTERSTICAS


Trabajo final de grado

bior 1.3

30

Fig 32: Wavelet bior 1.3

30

Fuente: http://wavelets.pybytes.com/wavelet/bior1.3/ (ltimo acceso: 04/09/2014)

39

DETECCIN AUTOMTICA DE ARRITMIAS MEDIANTE ANLISIS DE CARACTERSTICAS


Trabajo final de grado

bior 6.8

31

Fig 33: Wavelet bior 6.8

31

Fuente: http://wavelets.pybytes.com/wavelet/bior6.8/ (ltimo acceso: 04/09/2014)

40

DETECCIN AUTOMTICA DE ARRITMIAS MEDIANTE ANLISIS DE CARACTERSTICAS


Trabajo final de grado

Eliminacin de ruido de alta frecuencia

Para eliminar o reducir este tipo de ruido que hace que la seal no tenga un trazo
limpio, se ha utilizado un software desarrollado previamente por Galiana-Merino et al. [14]
en el campo de la sismologa, llamado Denoise.
Se trata de un programa que mediante la transformada wavelet y un fragmento de
ruido de la seal contaminada puede eliminar o en su defecto reducir este ruido de alta
frecuencia.
La wavelet utilizada es db12. A continuacin se presenta la Figura 34 con su
funcin de escalado y sus coeficientes:

Fig 34: Wavelet db1232

32

Fuente: http://wavelets.pybytes.com/wavelet/db12/ (ltimo acceso: 04/09/2014)

41

DETECCIN AUTOMTICA DE ARRITMIAS MEDIANTE ANLISIS DE CARACTERSTICAS


Trabajo final de grado

Un ejemplo de la eliminacin de este tipo de ruido se puede ver en la Figura 35. En


la seal superior observamos la seal contaminada y en la inferior la seal filtrada. La
diferencia es grande y esto permite al programa analizar la seal de forma ms exhaustiva
y con mayor probabilidad de acierto en sus resultados.

Fig 35: Eliminacin de ruido de alta frecuencia

Este programa necesita un intervalo de ruido de la seal contaminada y dado que no


en todas las seales se produce ruido en el mismo instante de tiempo, obviamente, es
necesario que el usuario seleccione ese fragmento de forma manual.
La utilizacin de este mtodo de filtrado es totalmente opcional, y se encuentra en
el programa para proporcionar una mayor efectividad. Su desarrollo no ha formado parte
de este proyecto pero se ha estimado til su intervencin.

42

DETECCIN AUTOMTICA DE ARRITMIAS MEDIANTE ANLISIS DE CARACTERSTICAS


Trabajo final de grado

3.2 Deteccin complejo QRS

Uno de los objetivos principales para poder obtener buenos resultados en este
proyecto era detectar los complejos QRS, ya que a la hora de detectar arritmias son el
factor ms importante a tener en cuenta. Se necesita saber el periodo entre ellos para poder
detectar anomalas y estudiar las seales en profundidad.
Como se ha explicado en el apartado MARCO TERICO, el complejo QRS est
formado por tres ondas, la Onda Q, la Onda R y la Onda S, de ah su nombre.

33

Fig 36: Complejo QRS

De las doce derivaciones que existen para medir una seal electrocardiogrfica, la
ms utilizada para detectar anomalas es MLII por su gran amplitud de la onda R y su
similitud al complejo QRS como tal. Adems casi todas las seales ECG de los pacientes
disponen de esta medida, por ello se ha credo necesario basar el algoritmo de este
proyecto en este tipo de derivaciones y no ampliarlo para el resto. Esta decisin no incurre
en una menor efectividad del programa, por lo tanto a partir de este momento todos los
algoritmos realizados sern para la derivacin MLII.

33

Fuente:http://people.ece.cornell.edu/land/courses/ece5030/FinalProjects/s2013/csl84_sjh234/csl84_sjh2
34/ECG.html (ltimo acceso: 12/08/2014)

43

DETECCIN AUTOMTICA DE ARRITMIAS MEDIANTE ANLISIS DE CARACTERSTICAS


Trabajo final de grado

Para conseguir este propsito, este bloque del sistema ha sido dividido a su vez en
tres bloques que se explicarn a continuacin:

Fig 37: Diagrama de bloques deteccin de complejo QRS

Deteccin Onda R

Para realizar este proceso se han realizado mltiples pruebas programando diversos
algoritmos. El algoritmo definitivo se explica a continuacin:
Uno de los objetivos principales en este bloque era determinar el punto mximo de
cada onda R. Para localizarlos primero se dividi la seal en valores positivos y negativos.
En este bloque solo interesan los valores positivos, por lo que se pasaba de tener una seal
de valores negativos y positivos a una seal con valores mayores o igual a 0.
Con la seal obtenida y solo cogiendo los valores de amplitud mayor que 0, se
realiz la media (MediaR) y la desviacin estndar (DesviacinR). Este proceso se realiz
de esta forma ya que se buscaba obtener la media y desviacin estndar de estos valores y
no modificar ese valor con amplitudes igual a 0.
Era necesario crear un umbral a partir del cual los valores se pudieran considerar
como Onda R. Se conoce que la onda R tiene mayor amplitud que el resto de ondas, pero
en algunas seales ECG, sobretodo de pacientes que llevan marcapasos, la onda T puede
alcanzar incluso la amplitud de algunas Ondas R. Es importante tambin tener en cuenta
que no todas las Ondas R tienen la misma amplitud, y no tiene por qu estar ligado con
ninguna anomala.
Estudiar este caso en particular fue una labor importante, ya que la eleccin del
umbral es determinante a la hora de detectar las ondas R y poda ser muy restrictivo para

44

DETECCIN AUTOMTICA DE ARRITMIAS MEDIANTE ANLISIS DE CARACTERSTICAS


Trabajo final de grado

no seleccionar ondas T pero a su paso obviar algunas ondas R o por el contrario


seleccionar todas las ondas R a la vez que algunas ondas T.
Por este motivo y dado que la probabilidad de que este caso ocurra es baja se lleg
a una condicin de compromiso ya que es complicado crear un algoritmo automtico que
funcione en todo tipo de seales. Ese umbral se cre a partir de MediaR + DesviacionR.
Una vez determinado el umbral, simplemente se extrae el mximo de cada onda.
Obteniendo una seal de todo ceros exceptuando los valores mximos de las ondas R. En
la Figura 38, se puede apreciar tanto el umbral, como los mximos de cada onda R.

Fig 38: Deteccin Onda R

45

DETECCIN AUTOMTICA DE ARRITMIAS MEDIANTE ANLISIS DE CARACTERSTICAS


Trabajo final de grado

Deteccin Onda Q o S (negativa)

Al igual que para la deteccin de ondas R, se han realizado mltiples pruebas


programando diversos algoritmos hasta lograr el definitivo.
Uno de los objetivos principales en este bloque era determinar el punto mnimo de
cada complejo QRS. En este apartado no se habla de ondas como tal ya que a diferencia de
la deteccin de ondas R, las ondas negativas (ya sean Q o S) no tienen una amplitud muy
negativa. Para localizar estos puntos primero se dividi la seal en valores positivos y
negativos. En este bloque solo interesan los valores negativos, por lo que se pasaba de
tener una seal de valores positivos y negativos a una seal con valores menor o igual que
0.
Con la seal obtenida y solo cogiendo los valores de amplitud menor que 0, se
realiz la media (MediaQ) y la desviacin estndar (DesviacinQ). Este proceso se realiz
de esta forma ya que se buscaba obtener la media y desviacin estndar de estos valores y
no modificar ese valor con amplitudes igual a 0.
Como en el caso de las ondas R, era necesario crear un umbral a partir del cual los
valores se pudieran considerar como Onda Q o S. Se conoce que las ondas negativas en la
derivacin MLII no resaltan en exceso, solamente en algunos casos de anomalas, por lo
tanto no supona un problema como tal el detectar tanto ondas Q, como ondas S. Es
importante tambin tener en cuenta que no todas las seales tienen las mismas
caractersticas y en los casos de mucho ruido este algoritmos puede no dar los resultados
esperados.
Despus de estudiar cada caso particular, se lleg a una condicin de compromiso
ya que es complicado crear un algoritmo automtico eficiente en todo tipo de seales.
Quizs en algunas seales no detecta todos los puntos que interesan, o en algunas detecta
puntos de ms, pero era necesario automatizarlo y no supone demasiadas prdidas de
informacin. Ese umbral se cre a partir de MediaQ - DesviacinQ.

46

DETECCIN AUTOMTICA DE ARRITMIAS MEDIANTE ANLISIS DE CARACTERSTICAS


Trabajo final de grado

Una vez determinado el umbral, simplemente se extrae el mnimo de cada onda.


Obteniendo una seal de todo ceros exceptuando los valores mnimos de las ondas Q o S.
En la Figura 39, se puede apreciar tanto el umbral, como los mnimos de cada onda
negativa.

Fig 39: Deteccin Onda Q o S (negativa)

47

DETECCIN AUTOMTICA DE ARRITMIAS MEDIANTE ANLISIS DE CARACTERSTICAS


Trabajo final de grado

Clasificacin de Complejos QRS

Una vez se han detectado las ondas R y las ondas negativas (Q y S), se suman estas
dos seales y el resultado se filtra para eliminar ruido que pueda interferir en la seal. Es
decir, en ocasiones el algoritmo no solo detecta las ondas Q y S, sino que detecta ruido que
tiene la seal.
Por ello se realiza un filtrado que trata de determinar que despus de una onda
negativa, siempre ir un onda positiva y as sucesivamente. Esto eliminar muchas ondas Q
o S, dependiendo de la forma de onda, pero tambin eliminar ruido que no interesa. Este
algoritmo no ser til para todas las detecciones pero si para algunas de ellas.
En la Figura 40 se puede apreciar el resultado:

Fig 40: Clasificacin de complejos QRS

48

DETECCIN AUTOMTICA DE ARRITMIAS MEDIANTE ANLISIS DE CARACTERSTICAS


Trabajo final de grado

3.3 Deteccin de arritmias

En este proyecto se han decidido detectar varios tipos de arritmias, principalmente


cuatro, donde el usuario tiene la opcin de decidir cul de ellas detectar y en algunas de
ellas tiene la opcin de ajustar los resultados.
La eleccin de este tipo de arritmias se ha realizado en funcin de la probabilidad
de que estas ocurran y de lo conocidas que son.
Estas detecciones son independientes, es decir, si por ejemplo se decide detectar
APCs no se pueden detectar Taquicardias al mismo tiempo. Primero debe realizarse una
deteccin y al terminar se tendr que realizar la siguiente, todo ello de forma sencilla en la
interfaz.
Cada una de las detecciones tiene un algoritmo diferente en funcin de sus
caractersticas y formas de onda.
A continuacin se explican en profundidad cada una de ellas, centrndose en las
caractersticas desde un punto de vista de anlisis de seales y no tanto desde un punto de
vista clnico.
Las arritmias detectadas son:

Contraccin ventricular prematura (CVP)

Contraccin auricular prematura (APC)

Taquicardias

Bradicardias

49

DETECCIN AUTOMTICA DE ARRITMIAS MEDIANTE ANLISIS DE CARACTERSTICAS


Trabajo final de grado

Deteccin de Contracciones Ventriculares Prematuras (CVPs)

Caractersticas y formas de onda

Como se ha explicado en el apartado Arritmias, las contracciones ventriculares


prematuras (CVPs) tambin conocidas como extrasstoles ventriculares tienen una serie de
caractersticas.

Fig 41: Contraccin Ventricular Prematura

Al analizar las seales que contenan este tipo de anomalas, se observaron ciertas
caractersticas en las formas de onda de la seal que algunas de ellas tenan en comn. A
continuacin se exponen todas y cada una de ellas:

La anchura de los pulsos es mayor de lo normal.

El complejo QRS se adelanta.

Existe una pausa compensatoria despus del complejo QRS hasta el


siguiente.

La onda R tiene una amplitud menor de lo normal.

Existe una onda negativa (puede ser la onda Q o la onda S) que tiene una
amplitud ms negativa de lo normal y destaca del resto.

Una vez analizadas se probaron diversos mtodos de deteccin, pero no todas las
seales tienen las mismas formas de onda y no todos los mtodos eran vlidos y daban

50

DETECCIN AUTOMTICA DE ARRITMIAS MEDIANTE ANLISIS DE CARACTERSTICAS


Trabajo final de grado

resultados ptimos. A continuacin se explica el mtodo utilizado para detectar este tipo
de arritmias.

Deteccin

Aunque parezca increble, esta anomala es una de las ms difciles de detectar, ya


que una misma arritmia en la misma derivacin (MLII) en otra seal es totalmente
diferente y sus formas de onda son tan dispares que es complicado automatizar un
algoritmo. Por ello, en este caso entra en juego la decisin del usuario, utilizando un factor
que ajusta los resultados.
Para realizar este proceso, se detectan tanto las ondas Q como las ondas R con el
mtodo explicado anteriormente, pero el apartado de deteccin de complejos QRS no se
aplica, ya que las ondas negativas en las CVP pueden darse tanto en la onda Q como en la
S y no interesa deshacerse de posibles anomalas.
La parte de la seal que realmente interesa para detectar CVP es la parte negativa
(Ondas Q o S) ya que es donde se pueden encontrar con ms facilidad este tipo de
arritmias.
Una vez se tienen todas las ondas Q o S en un vector se realiza la media
(MediaCVP) y la desviacin estndar (DesviacionCVP) de estas amplitudes. Es necesario
tener un umbral a partir del cual el programa detecte que es una CVP, ese umbral
(umbralCVP) comenzar a partir de MediaCVP DesviacionCVP.
Es entonces donde el usuario deber elegir un porcentaje (0% - 100%), el cual har
ms flexible o restrictivo el algoritmo. El 0% corresponde al valor del umbralCVP, es
decir, detectar como posible CVP todos los valores que estn por debajo de este umbral, y
el 100% corresponde al mnimo de la seal, es decir, detectar como CVP nicamente el
valor mnimo de la seal. En la Figura 42 se puede apreciar el mtodo utilizado.

51

DETECCIN AUTOMTICA DE ARRITMIAS MEDIANTE ANLISIS DE CARACTERSTICAS


Trabajo final de grado

Fig 42: Deteccin contraccin ventricular prematura

El utilizar este mtodo es porque de entre todos los puestos en prctica es el que
mejores resultados ha conseguido pero tiene un problema y es que siempre detectar como
mnimo un CVP, ya que como se ha explicado toma como 100% el mnimo de la seal.
A esta condicin de compromiso se lleg conscientemente, ya que es mejor detectar
anomalas de ms que de menos. Este programa ser utilizado por un mdico el cual una
vez detectadas estas anomalas tendr que corroborar que estas de verdad existen. Las CVP
no son necesariamente peligrosas y no es tan importante el nmero de veces exacto que

52

DETECCIN AUTOMTICA DE ARRITMIAS MEDIANTE ANLISIS DE CARACTERSTICAS


Trabajo final de grado

ocurren sino ms bien su presencia, por lo tanto pueden tener un margen de error, lo cual
no cambiara nada en el diagnstico del paciente.

Deteccin de Contracciones Auriculares Prematuras (APCs)

Caractersticas y formas de onda

Como se ha explicado en el apartado de Arritmias, las contracciones auriculares


prematuras (APCs) tambin conocidas como extrasstoles auriculares tienen una serie de
caractersticas.

Fig 43: Contraccin Auricular Prematura

Al analizar las seales que contenan este tipo de anomalas, se observaron ciertas
caractersticas en las formas de onda de la seal que algunas de ellas tenan en comn. A
continuacin se exponen todas y cada una de ellas:

El complejo QRS se adelanta.

Existe una pausa compensatoria despus del complejo QRS hasta el


siguiente.

Las ondas Q o S no son diferentes al resto de pulsos.

Una vez analizadas se probaron diversos mtodos de deteccin, pero no todas las
seales tienen las mismas formas de onda y no todos los mtodos eran vlidos y daban

53

DETECCIN AUTOMTICA DE ARRITMIAS MEDIANTE ANLISIS DE CARACTERSTICAS


Trabajo final de grado

resultados ptimos. A continuacin se explica el mtodo utilizado para detectar este tipo
de arritmia.

Deteccin

Para realizar este proceso, se detectan las ondas Q, las ondas R y los complejos
QRS con los mtodos explicados anteriormente. Despus de esta operacin, se dispone de
una seal con valores negativos y positivos centrados en los complejos QRS (Ondas R y
Ondas Q o S).
La parte de la seal que realmente interesa para detectar APC es la parte positiva
(Ondas R) ya que es donde se pueden encontrar con ms facilidad este tipo de anomalas.
Mientras que para detectar las CVP la variable importante es la amplitud de la
seal, para detectar las APC es el tiempo entre pulsos (periodo). Por lo tanto es necesario
eliminar la parte negativa de la seal QRS, obteniendo as un vector de ceros con
nicamente valores en las ondas R.
Es en este punto del algoritmo donde se debe cambiar de amplitud a distancia de
tiempo entre pulsos. Esto se realiza creando un vector con las diferencias de tiempo
(periodos) entre las ondas R, es decir, al realizar este proceso se obtendr un vector con
diferencias de tiempo entre pulsos (difR).

54

DETECCIN AUTOMTICA DE ARRITMIAS MEDIANTE ANLISIS DE CARACTERSTICAS


Trabajo final de grado

Fig 44: Diferencias entre pulsos (difR)

A continuacin con esos valores se realiza la mediana (mediadifR) y la desviacin


estndar (desdifR) para as obtener el periodo normal entre ondas y decidir a partir de qu
valor puede considerarse una anomala.
Se recuerda que este tipo de arritmias pueden no ser aisladas, por lo que pueden
surgir varios pulsos adelantados seguidos de una pausa compensatoria.
Se dispona de dos opciones:

Localizar las diferencias mayores de normal (pausas compensatorias) y a


partir de ese momento determinar si ocurre o no esta anomala en funcin de
si el pulso anterior es menor de lo normal.

Localizar las diferencias menores de lo normal y a partir de ese momento


determinar si ocurre o no esta anomala en funcin de si el pulso anterior es
menor de lo normal o el pulso posterior mayor que el umbral definido
(pausa compensatoria).

Despus de realizar varias pruebas se determin que la primera opcin era ms


acertada puesto que los resultados eran ms apropiados y se eliminan falsas detecciones
55

DETECCIN AUTOMTICA DE ARRITMIAS MEDIANTE ANLISIS DE CARACTERSTICAS


Trabajo final de grado

debidas al ruido que normalmente tiene intervalos de duracin cortos y pueden


interpretarse como diferencias menores de lo normal.
Por lo tanto, primero se localizan las pausas compensatorias con el siguiente umbral
(mediadifR + (0.75*desdifR)) y si el pulso anterior tiene un periodo menor que (mediadifR
(0.75*desdifR)), entonces se puede detectar como una APC. El hecho de que desdifR
est multiplicado por un factor (0.75) simplemente es un ajuste que se realiz para mejorar
los resultados.
Despus de realizar este proceso se comprob que los resultados no eran
convenientes y el problema era que algunas CVP cumplen esas mismas caractersticas, por
lo que el programa las detectaba como APC, lo que se hizo fue comprobar que en esas
anomalas no ocurriera un CVP. El mtodo fue crear una ventana centrada en la posible
APC de tamao:

Fig 45: Ventana para eliminar falsas detecciones

Este valor fue decidido despus de realizar una serie de pruebas. Se buscaba un
valor que comprobara la seal en ambas direcciones pero que no interfiriera con otro
complejo QRS, y este nmero de muestras es el adecuado que corresponde al siguiente
periodo en segundos:
(

( )

)
56

DETECCIN AUTOMTICA DE ARRITMIAS MEDIANTE ANLISIS DE CARACTERSTICAS


Trabajo final de grado

Por este motivo es importante localizar las ondas Q o S para esta deteccin, porque
aunque a priori parece que no es necesario, en la etapa final del algoritmo se necesitan esos
valores.
El algoritmo en general consigue los resultados esperados, e igual que ocurre con
las CVP no es tan importante el hecho del nmero de APC sino ms bien el que aparezcan.
Es una arritmia benigna que puede ser difcil de detectar en un primer momento pero que
mediante esta serie de tcnicas pueden detectarse sin ningn problema.

Deteccin de Taquicardia

Caractersticas y formas de onda

Como se ha explicado en el apartado de Arritmias, las taquicardias tienen una serie


de caractersticas.

Fig 46: Taquicardias

Al analizar las seales que contenan este tipo de anomalas, se observaron ciertas
caractersticas en las formas de onda de la seal que algunas de ellas tenan en comn. A
continuacin se exponen todas y cada una de ellas:

El complejo QRS se adelanta.

Siempre van seguidas de otros complejos QRS adelantados. Para que se


considere taquicardia al menos uno ms.

57

DETECCIN AUTOMTICA DE ARRITMIAS MEDIANTE ANLISIS DE CARACTERSTICAS


Trabajo final de grado

La frecuencia cardiaca a partir de la cual se determina va en funcin del


sexo y la edad.

Las ondas Q o S son iguales que en el resto de complejos QRS.

La onda R tiene una amplitud igual al resto de ondas R.

Una vez analizadas se probaron diversos mtodos de deteccin, pero no todas las
seales tienen las mismas formas de onda y no todos los mtodos eran vlidos y daban
resultados ptimos. A continuacin se explica el mtodo utilizado para detectar este tipo
de arritmia.

Deteccin

Para realizar este proceso, se detectan las ondas Q, las ondas R y los complejos
QRS con los mtodos explicados anteriormente. Despus de este proceso, se dispone de
una seal con valores negativos y positivos centrados en los complejos QRS (Ondas R y
Ondas Q o S).
La parte de la seal que realmente interesa para detectar taquicardias es la parte
positiva (Ondas R).
Como en el caso de las APC, la variable importante es el tiempo entre pulsos
(periodo). Por lo tanto es necesario eliminar la parte negativa de la seal QRS, obteniendo
as un vector de ceros con nicamente valores en las ondas R.
Es en este momento donde se debe cambiar de amplitud a distancia de tiempo entre
pulsos. Esto se realiza de la misma forma que en las APC, creando un vector con las
diferencias entre las ondas R (periodos), es decir, al realizar este proceso se obtendr un
vector con diferencias de tiempo entre pulsos (difR).
Despus de este proceso se necesita un umbral a partir del cual el programa pueda
determinar que cualquier diferencia entre pulso menor de ese umbral puede ser una posible
taquicardia.

58

DETECCIN AUTOMTICA DE ARRITMIAS MEDIANTE ANLISIS DE CARACTERSTICAS


Trabajo final de grado

Este umbral viene determinado por la edad y el sexo del paciente y est basado en
la Tabla 2, situada en el apartado MARCO TERICO Electrocardiograma (ECG)
Arritmias Taquicardias.
La Tabla 2 proporciona las pulsaciones por minuto (ppm) a partir de las cuales se
puede deducir que el paciente padece un intervalo de taquicardias.
Una vez se tiene ese valor (pulsaciones), es necesario pasarlo a muestras para ver a
partir de que intervalo puede ser o no considerado taquicardia.

()

( )

; Donde fs = 360 muestras/s.


El algoritmo comprueba si las diferencias entre pulsos son menores que ese umbral
y si adems los siguientes pulsos tambin lo son. Si esto ocurre, el programa detecta la
anomala y marca esa posicin como posible taquicardia
Despus de realizar este proceso se comprob que los resultados no eran
convenientes y el problema era que algunas CVP cumplen esas mismas caractersticas, por
lo que el programa las detectaba como taquicardias, lo que se hizo fue comprobar que en
esos intervalos no ocurriera un CVP. El mtodo fue crear una ventana centrada en la
posible taquicardia al igual que para detectar APC, con el mismo mtodo y los mismos
valores (Fig 46).
Por este motivo es importante localizar las ondas Q o S para esta deteccin, porque
aunque a priori parece que no es necesario, en la etapa final del algoritmo se necesitan esos
valores.
El algoritmo automtico en general consigue los resultados esperados y es muy
eficiente pero para un mejor ajuste, el usuario tiene la posibilidad de cambiar las
pulsaciones por minuto (ppm). Este procedimiento tambin es til si se buscan unas

59

DETECCIN AUTOMTICA DE ARRITMIAS MEDIANTE ANLISIS DE CARACTERSTICAS


Trabajo final de grado

taquicardias especficas como pueden ser las taquicardias SV que tienen una frecuencia
cardiaca mayor de lo normal.

Deteccin de Bradicardias

Caractersticas y formas de onda

Como se ha explicado en el apartado de Arritmias, las bradicardias tienen una serie


de caractersticas.

Fig 47: Bradicardias

Al analizar las seales que contenan este tipo de anomalas, se observaron ciertas
caractersticas en las formas de onda de la seal que algunas de ellas tenan en comn. A
continuacin se exponen todas y cada una de ellas:

El complejo QRS se retrasa.

Siempre van seguidas de otros complejos QRS retrasados. Para que se


considere bradicardia al menos uno ms.

La frecuencia cardiaca mxima a partir de la cual se determina es 50 ppm.

Las ondas Q o S son iguales que en el resto de complejos QRS.

La onda R tiene una amplitud igual al resto de ondas R.

Una vez analizadas se probaron diversos mtodos de deteccin, pero no todas las
seales tienen las mismas formas de onda y no todos los mtodos eran vlidos y daban

60

DETECCIN AUTOMTICA DE ARRITMIAS MEDIANTE ANLISIS DE CARACTERSTICAS


Trabajo final de grado

resultados ptimos. A continuacin se explica el mtodo utilizado para detectar este tipo
de arritmia.

Deteccin

Para realizar este proceso, se detectan las ondas Q, las ondas R y los complejos
QRS con los mtodos explicados anteriormente. Despus de este proceso, se dispone de
una seal con valores negativos y positivos centrados en los complejos QRS (Ondas R y
Ondas Q o S).
La parte de la seal que realmente interesa para detectar bradicardias es la parte
positiva (Ondas R) ya que es donde se pueden encontrar este tipo de anomalas.
Como en el caso de las taquicardias y las APC, la variable importante es el tiempo
entre pulsos (periodo). Por lo tanto es necesario eliminar la parte negativa de la seal QRS,
obteniendo as un vector de ceros con nicamente valores en las ondas R.
Es en este momento donde se debe cambiar de amplitud a distancia de tiempo entre
pulsos. Esto se realiza creando un vector con las diferencias entre las ondas R, es decir, al
realizar este proceso se obtendr un vector con diferencias de tiempo entre pulsos (difR).
Despus de este proceso se necesita un umbral a partir del cual el programa pueda
determinar que cualquier diferencia entre pulso mayor de ese umbral puede ser una posible
bradicardia.
Ese umbral es 50 ppm que se pasa a muestras de la misma forma que con el mtodo
de deteccin de taquicardias.
El algoritmo comprueba si las diferencias entre pulsos son mayores que ese umbral
y si adems los siguientes pulsos son mayores tambin. Si esto ocurre, el programa detecta
la anomala y marca esa posicin como posible bradicardia.
Despus de realizar este proceso se comprob que los resultados no eran
convenientes y el problema era que algunas CVP cumplen esas mismas caractersticas, por
61

DETECCIN AUTOMTICA DE ARRITMIAS MEDIANTE ANLISIS DE CARACTERSTICAS


Trabajo final de grado

lo que el programa las detectaba como bradicardias, lo que se hizo fue comprobar que en
esas anomalas no ocurriera un CVP. El mtodo fue crear una ventana centrada en la
posible bradicardia al igual que para detectar APC y taquicardias, con el mismo mtodo y
los mismos valores (Fig 46).
Por este motivo es importante localizar las ondas Q o S para esta deteccin, porque
aunque a priori parece que no es necesario, en la etapa final del algoritmo se necesitan esos
valores.
El algoritmo automtico en general consigue los resultados esperados y es muy
eficiente.

62

DETECCIN AUTOMTICA DE ARRITMIAS MEDIANTE ANLISIS DE CARACTERSTICAS


Trabajo final de grado

4. RESULTADOS
4.1 Interfaz grfica del programa

Para la elaboracin del programa se ha empleado Matlab (Matrix Laboratory)


versin R 2011 a. Este programa se ha utilizado a lo largo de la titulacin en diferentes
asignaturas (Tratamiento digital de Seal, Sistema y Seales, Transductores Acsticos,
Tratamiento digital de imgenes, Tratamiento digital de audio) para el estudio y procesado
de seal. Matlab es un sistema interactivo, originalmente escrito en Fortran por Cleve
Moler de la Universidad de Nuevo Mxico, USA, que sirve para la resolucin de clculos
numricos en aplicaciones cientficas y de ingeniera.
Matlab permite realizar interfaces grficos de manera sencilla usando una
herramienta llamada GUIDE. Una interfaz es una de las partes ms importantes de
cualquier programa puesto que determina qu tan factible y preciso ser el desempeo del
programa ante los comandos que el usuario pretenda ejecutar. Es por ello que se ha
diseado con el fin de hacer su uso atractivo para el usuario. En la Figura 48 se puede
observar la interfaz de este programa y el en ANEXO C se encuentra un manual de usuario
con informacin ms detallada.

Fig 48: Interfaz grfica deteccin de arritmias

63

DETECCIN AUTOMTICA DE ARRITMIAS MEDIANTE ANLISIS DE CARACTERSTICAS


Trabajo final de grado

4.2 Adquisicin de datos

Para comprobar la efectividad de los algoritmos de este proyecto, se han realizado


pruebas con las seales ECG de la base de datos http://www.physionet.org. Se han
utilizado los conjuntos de registros de arritmias.
Se disponen de 48 seales de aproximadamente 30 minutos cada una, pero
realmente son 47 pacientes, ya que uno de ellos se estudia en dos grabaciones. De los 47
pacientes, 23 fueron elegidos aleatoriamente de un hospital y los 24 restantes fueron
elegidos de forma consciente ya que presentaban arritmias poco comunes y ms difciles
de encontrar de forma aleatoria. Adems, 25 de los pacientes fueron hombres con edades
entre 32 y 89 aos y 22 mujeres con edades entre 23 y 89 aos.
Las seales fueron digitalizadas a 360 muestras por segundo por canal con una
resolucin de 11 bits en un rango de 10 mV.
En la mayora de los registros, la seal superior tiene una derivacin MLII y la
inferior una derivacin precordial V1 (de vez en cuando V2 o V5, y en un caso V4). En la
seal superior los complejos QRS son ms llamativos (por eso se utiliza esta derivacin
para detectarlos). En la base de datos se puede acceder a los datos de inters del paciente
as como al nmero de anomalas y puntos de inters para comprobar el correcto
funcionamiento del programa (ANEXO A Tabla 4).
A continuacin se exponen algunos casos llamativos o datos a tener en cuenta:

En la grabacin 114 se han invertido las seales (esto ocurre de vez en


cuando en la prctica clnica), es decir la seal inferior es con derivacin
MLII y la superior con V5.

En las grabaciones 102 y 104 no fue posible utilizar derivacin MLII porque
los pacientes llevaban vendajes en esa zona y se utilizaron derivacin
precordial V5 en la seal superior, por ello estas dos seales no son aptas
para la deteccin de arritmias en este programa.

64

DETECCIN AUTOMTICA DE ARRITMIAS MEDIANTE ANLISIS DE CARACTERSTICAS


Trabajo final de grado

Para que el programa funcione la seal.mat tiene que tener una serie de
caractersticas:

Una matriz con las dos seales (primera derivacin y segunda derivacin)
de tamao [longitud de la seal, 2] y de nombre M.

Un vector de nombre b donde quede reflejada la derivacin de cada seal,


es decir, dos valores. En la Tabla 3 se especifica el nmero que va asignado
a cada una de ellas:
Tabla 3: Numeracin para diferentes derivaciones

Derivacin
MLII
V1
V2
V4
V5

Nmero Asignado
1
2
3
4
5

Una variable denominada edad con la edad del paciente.

Una variable llamada sexo con el sexo del paciente: masculino o


femenino.

4.3 Pruebas

En este apartado se van a mostrar los resultados obtenidos en relacin a la fiabilidad


del algoritmo completo.
A modo de prueba de funcionamiento del algoritmo de preprocesado, la Figura 49
muestra el resultado de las 5 wavelets disponibles con el nivel 8 (el correspondiente para la
frecuencia de muestreo de las seales analizadas), en la cual se puede observar que el
algoritmo funciona correctamente y es eficiente con todas ellas.
En la Figura 50 se puede mostrar el funcionamiento del algoritmo Denoise,
siempre y cuando el intervalo de ruido escogido sea adecuado, ya que se recuerda que es
elegido manualmente por el usuario del programa.

65

DETECCIN AUTOMTICA DE ARRITMIAS MEDIANTE ANLISIS DE CARACTERSTICAS


Trabajo final de grado

Fig 49: a)Seal Original b) preprocesado con db4 c) con db5 d) con sym4 e) con bior 1.3 f) con bior 6.8

Fig 50: a) Seal original b) con preprocesado db4 y funcin 'Denoise'

66

DETECCIN AUTOMTICA DE ARRITMIAS MEDIANTE ANLISIS DE CARACTERSTICAS


Trabajo final de grado

Deteccin de Complejos QRS

Casos vlidos

En este apartado se presentan algunos ejemplos que manifiestan el correcto


funcionamiento del algoritmo. Los resultados de la deteccin de complejos QRS para todas
las seales se encuentra en el ANEXO A: Tablas Tabla 3.
El siguiente ejemplo (seal 101.mat) corresponde a una paciente de 75 aos. Segn
la base de datos el electrocardiograma, de aproximadamente 30 minutos de duracin, tiene
1865 pulsos o lo que es lo mismo, complejos QRS. El algoritmo presentado en este
proyecto es capaz de detectar 1859, lo que corresponde a una tasa de acierto de 99.67%. La
diferencia es mnima y se puede interpretar como un buen resultado.
En muchos ejemplos la tasa de acierto no es del 100% debido a pequeos intervalos
de ruido que intoxican la seal, como se explic en el apartado MARCO TERICO, pero
esos errores no pueden recuperarse, es decir, no puede culparse al algoritmo por ello.
En la Figura 51 se muestra un intervalo de la seal en el cual el algoritmo detecta a
la perfeccin las ondas R.

Fig 51: Deteccin QRS; seal 101.mat; preprocesado con db5 y 'Denoise'

67

DETECCIN AUTOMTICA DE ARRITMIAS MEDIANTE ANLISIS DE CARACTERSTICAS


Trabajo final de grado

En el siguiente ejemplo se puede observar la seal electrocardiogrfica de una


paciente de 72 aos. Segn la base de datos hay 1879 complejos QRS y el programa los
detecta todos, es decir, tiene una tasa de acierto del 100%.

Fig 52: Deteccin QRS; seal 114.mat; preprocesado con db5 y 'Denoise'

Casos fallidos

Existen seales electrocardiogrficas en las cuales las ondas T tienen una amplitud
muy alta, que incluso puede llegar a superar algunas ondas R. Estos casos se suelen dar
cuando el paciente tiene incorporado un marcapasos que amplifica su seal del corazn. En
la Figura 53 se puede mostrar este suceso, que por supuesto no es bueno para el correcto
funcionamiento del algoritmo. En el apartado de METODOLOGA se explic este caso
aislado y se lleg a la condicin de compromiso necesaria para que el algoritmo fuera
automtico a pesar de este tipo de errores.

68

DETECCIN AUTOMTICA DE ARRITMIAS MEDIANTE ANLISIS DE CARACTERSTICAS


Trabajo final de grado

Fig 53: Deteccin QRS fallida; seal 107.mat; preprocesado con db4 y 'Denoise'

En este ejemplo el programa detecta ms complejos QRS de lo normal y al utilizar


el mtodo para eliminar el ruido, las ondas T con tanta amplitud son interpretadas como
ondas R.
Es necesario ajustar ms este algoritmo para que estos problemas en las seales no
influyan en los resultados finales, aunque tambin cabe destacar que son problemas
aislados, al igual que las seales con ruido que pueden eliminar informacin e influir en el
procesado de las seales ECG.

Resultados

Este algoritmo ha resultado til en un 75% de las seales. El resto no eran


favorables por motivos de la seal y dos de ellas no eran tiles por no tener derivacin
MLII.

69

DETECCIN AUTOMTICA DE ARRITMIAS MEDIANTE ANLISIS DE CARACTERSTICAS


Trabajo final de grado

De las seales vlidas para este algoritmo (36 de 48 seales) se han detectado un
96.89%34 de los complejos QRS. Se pueden observar con ms detalle estos resultados en el
ANEXO A: Tablas Tabla 3.

Deteccin de Contracciones Ventriculares Prematuras (CVPs o CVPs)

Casos vlidos

A continuacin se exponen algunos ejemplos significativos en los cuales se puede


apreciar el funcionamiento del algoritmo, no obstante los resultados globales se encuentran
en el ANEXO A: Tablas Tabla 4.
El siguiente ejemplo (seal 100.mat) corresponde a un paciente de 69 aos. Segn
la base de datos el electrocardiograma, de aproximadamente 30 minutos de duracin, tiene
1 CVP. El algoritmo presentado en este proyecto es capaz de detectarlo, lo que
corresponde a una tasa de acierto del 100%.
En muchos ejemplos la tasa de acierto no es del 100% debido a que el algoritmo
automtico tiene un factor del 50%, como se explic en el apartado METODOLOGA.
Estos resultados pueden afinarse por el usuario modificando este factor y en la mayora de
las seales si se ajustan de manera adecuada pueden detectar el 100% de los CVP.
En la Figura 54 puede apreciarse el ejemplo descrito, en el cual se detecta el nico
CVP que tiene la seal, y corrobora que el algoritmo funciona perfectamente en este tipo
de seales:

34

Estos resultados pueden variar, ya que para realizar este proceso es necesario utilizar la funcin Denoise,
la cual, necesita un intervalo de ruido escogido por el usuario. Si este proceso no se realiza correctamente,
los resultados pueden no ser tan favorables.

70

DETECCIN AUTOMTICA DE ARRITMIAS MEDIANTE ANLISIS DE CARACTERSTICAS


Trabajo final de grado

Fig 54: Deteccin CVP; seal 100.mat; preprocesado con db4 y 'Denoise'; umbral al 50%

A continuacin se puede observar otro ejemplo, un paciente de 77 aos. Esta seal


no tiene resultados tan ptimos con un umbral del 50%, pero ajustando ese valor se pueden
conseguir un mejor rendimiento como se podr observar a continuacin.
Segn la base de datos, este paciente presenta 52 CVPs en los 30 minutos
aproximados de seal. El algoritmo con un umbral del 50% detecta 32 de estos, un 61.53%
del total (Figura 55: a y b), mientras que con un umbral del 1% detecta los 52 CVPs que
existen, es decir, un 100% del total (Figura 55: c y d).
Con estos resultados, el algoritmo demuestra su eficacia, y a pesar de no ser
totalmente automtico, al realizar un zoom sobre la zona donde se detectan anomalas, un
mdico experimentado en el rea puede detectarlas perfectamente y corroborar los
resultados del algoritmo.

71

DETECCIN AUTOMTICA DE ARRITMIAS MEDIANTE ANLISIS DE CARACTERSTICAS


Trabajo final de grado

Fig 55: Deteccin CVP; seal 124.mat; a) Seal completa con umbral 50%; b) Intervalo con umbral 50%; c) Seal
completa con umbral 1%; d) Intervalo con umbral 1%

A continuacin se expone otro ejemplo parecido al anterior:


Segn la base de datos, este paciente (seal 210.mat) de 89 aos, presenta 204
CVPs en los 30 minutos aproximados de seal. El algoritmo con un umbral del 50%
detecta 38 de estos, un 18.62% del total (Figura 56: a y b), mientras que con un umbral del
10% detecta 190 CVPs, es decir, un 93.13% del total (Figura 56: c y d).

72

DETECCIN AUTOMTICA DE ARRITMIAS MEDIANTE ANLISIS DE CARACTERSTICAS


Trabajo final de grado

Fig 56: Deteccin CVP; seal 210.mat; a) Seal completa con umbral 50%; b) Intervalo con umbral 50%; c) Seal
completa con umbral 10%; d) Intervalo con umbral 10%

Tambin hay seales en las cuales el algoritmo detecta ms PCVs de los que segn
la base de datos existen. Despus de estudiar la forma de onda de estas anomalas se
pueden interpretar como CVPs, por lo que en este proyecto se denominan posibles CVPs y
no se contabilizan como errores, en el siguiente ejemplo se puede apreciar este hecho.
Segn la base de datos, esta paciente (seal 111.mat) de 47 aos, presenta 1 CVP en
los 30 minutos aproximados de seal. El algoritmo con un umbral del 50% detecta 3, es
decir, un 300% del total (Figura 57), ya que estos pueden ser interpretados como tal.

73

DETECCIN AUTOMTICA DE ARRITMIAS MEDIANTE ANLISIS DE CARACTERSTICAS


Trabajo final de grado

Fig 57: Deteccin posibles CVPs; seal 211.mat; preprocesado con bior 1.3 y 'Denoise'

Casos fallidos

Existen casos en los cuales el algoritmo no es vlido, como se explic en el


apartado de METODOLOGA. Este mtodo no es vlido cuando la seal no tiene CVPs,
ya que interpreta como mnimo el mnimo de la seal y a partir de ah el algoritmo deja de
ser vlido. A continuacin se presenta un ejemplo en el cual segn la base de datos no tiene
ningn CVP sin embargo el programa detecta 70. A pesar de que es un grave error no deja
de ser obvio a la vista, por lo que si un mdico o especialista comprueba los resultados de
este programa podra desecharlos.

74

DETECCIN AUTOMTICA DE ARRITMIAS MEDIANTE ANLISIS DE CARACTERSTICAS


Trabajo final de grado

Fig 58: Deteccin CVP fallida; seal 103.mat; preprocesado con sym4 y 'Denoise'

Tambin se debe tener en cuenta que estos resultados son con el programa
automatizado (umbral al 50%) si el umbral se ajusta al 100% nicamente marcar como
CVP el mnimo de la seal.

Resultados

Este algoritmo ha resultado til en un 72.92% de las seales. El resto no eran


favorables por motivos de la seal y dos de ellas no eran tiles por no tener derivacin
MLII.
Cabe recordar que el nmero de detecciones totales se observan en el archivo.txt
que el programa devuelve como respuesta.
De las seales vlidas para este algoritmo (35 de 48 seales) se han detectado un
42.25%35 de las contracciones ventriculares prematuras (CVPs) con un factor del 50%,
pero como se ha podido observar el algoritmo puede ser ms efectivo ajustando este
umbral. Se pueden observar con ms detalle estos resultados en el ANEXO A: Tablas
Tabla 4.

35

Estos resultados pueden variar, ya que para realizar este proceso es necesario utilizar la funcin Denoise,
la cual, necesita un intervalo de ruido escogido por el usuario. Si este proceso no se realiza correctamente,
los resultados pueden no ser tan favorables.

75

DETECCIN AUTOMTICA DE ARRITMIAS MEDIANTE ANLISIS DE CARACTERSTICAS


Trabajo final de grado

Deteccin de Contracciones Auriculares Prematuras (APCs)

Casos vlidos

A continuacin se exponen algunos ejemplos significativos en los cuales se puede


apreciar el funcionamiento del algoritmo, no obstante los resultados globales se encuentran
en el ANEXO A: Tablas Tabla 5.
El siguiente ejemplo (seal 100.mat) corresponde a un paciente de 69 aos. Segn
la base de datos el electrocardiograma, de aproximadamente 30 minutos de duracin, tiene
33 APCs. El algoritmo presentado en este proyecto es capaz de detectar 32, lo que
corresponde a un 96.96% del total.
En la Figura 59 puede apreciarse el ejemplo descrito, en el cual se detectan 32
APCs de la seal, y corrobora que el algoritmo funciona perfectamente en este tipo de
seales:

Fig 59: Deteccin APCs; seal 100.mat; preprocesado con db4 y Denoise.

76

DETECCIN AUTOMTICA DE ARRITMIAS MEDIANTE ANLISIS DE CARACTERSTICAS


Trabajo final de grado

A continuacin se puede observar otro ejemplo, una paciente de 51 aos. Segn la


base de datos, esta paciente no presenta ningn APC en los 30 minutos aproximados de
seal. El programa no detecta ningn, por lo que su tasa de acierto es del 100%.

Fig 60: Deteccin APCs; seal 119.mat; preprocesado con db5 y Denoise.

Al igual que con los CVPs, tambin hay seales en las cuales el algoritmo detecta
ms APCs de los que segn la base de datos existen. Despus de estudiar la forma de onda
de estas anomalas y los periodos de tiempo entre complejos QRS se pueden interpretar
como APCs, por lo que en este proyecto se denominan posibles APCs y no se contabilizan
como errores.
Este hecho es a causa de que estas anomalas son difciles de detectar a simple
vista. Quizs algunas de ellas son muy evidentes porque tienen el complejo QRS muy
adelantado y una pausa compensatoria larga a simple vista, pero algunas otras no. Este
programa tiene una gran eficacia y dado que es automtico y procesa las seales de forma
minuciosa puede determinar cundo un periodo es menor o mayor de la media.
El siguiente ejemplo, segn la base de datos es una paciente (seal 115.mat) de 39
aos, en principio no presenta APCs en los 30 minutos aproximados de seal. Sin
embargo, este algoritmo detecta 8 (Figura 61), ya que estos pueden ser interpretados como
tal.

77

DETECCIN AUTOMTICA DE ARRITMIAS MEDIANTE ANLISIS DE CARACTERSTICAS


Trabajo final de grado

Fig 61: Deteccin APCs; seal 115.mat; preprocesado con sym4 y Denoise

Casos fallidos

Hay casos en los que los complejos QRS en un mismo electrocardiograma son de
amplitud muy cambiantes. Esto puede entorpecer el funcionamiento del algoritmo sobre
todo en el proceso de detectar complejos QRS, lo cual influye en la deteccin de APCs.
La siguiente seal pertenece a una paciente de 87 aos. Segn la base de datos
padece 15 APCs a lo largo de la seal de aproximadamente 30 minutos. El algoritmo no
detecta ninguno de ellos por el motivo explicado.
En la Figura 62 se puede apreciar como en los cuadrados de color verde existen
zonas de muy baja amplitud con respecto al resto. El programa en ocasiones no lo
interpreta como complejos QRS y entonces esto afecta al proceso de la deteccin de APCs.

78

DETECCIN AUTOMTICA DE ARRITMIAS MEDIANTE ANLISIS DE CARACTERSTICAS


Trabajo final de grado

Fig 62: Deteccin de APC fallida; seal 108.mat; preprocesado con db5 y 'Denoise'

Como se ha explicado en el apartado de detecciones de complejos QRS fallidas,


existen seales electrocardiogrficas en las cuales las ondas T tienen una amplitud mucho
mayor de lo normal, incluso algunas pueden llegar a superar a las ondas R. Estos casos se
suelen dar cuando el paciente tiene incorporado un marcapasos que amplifica su seal del
corazn. En la Figura 53 se puede mostrar este hecho, que por supuesto no es bueno para el
correcto funcionamiento del programa. En el apartado de METODOLOGA se explic
este caso aislado y se lleg a la condicin de compromiso necesaria para que el algoritmo
fuera automtico a pesar de este tipo de errores.
Al no localizar perfectamente los complejos QRS, no puede detectar las
contracciones auriculares prematuras (APCs) en las seales. Esto es debido a que no puede
analizar bien las distancias entre pulsos (periodo). La media y la desviacin estndar
calculada en el proceso no es real y esto afecta a los resultados finales.
El

siguiente

ejemplo

est

contaminado

con

este

suceso.

La

seal

electrocardiogrfica (113.mat) pertenece a una paciente de 24 aos. Segn la base de datos


padece 6 APCs, mientras que el algoritmo desarrollado en este proyecto detecta 83, todas
ellas falsas. La Figura 63 lo refleja claramente:
79

DETECCIN AUTOMTICA DE ARRITMIAS MEDIANTE ANLISIS DE CARACTERSTICAS


Trabajo final de grado

Fig 63: Deteccin de APC fallida; seal 113.mat; preprocesado con db4 y 'Denoise'

Como se puede apreciar en la Figura 63, el programa detecta como ondas R las
ondas T y al compararlas con las ondas R anteriores interpreta que existe un periodo muy
corto y despus uno muy largo, caracterstica principal de este tipo de anomalas.

Resultados

Este algoritmo ha resultado til en un 68.75% de las seales. El resto no eran


favorables por motivos de la seal y dos de ellas no eran tiles por no tener seal MLII.
Cabe recordar que el nmero de detecciones totales se observan en el archivo.txt
que el programa devuelve como respuesta.

80

DETECCIN AUTOMTICA DE ARRITMIAS MEDIANTE ANLISIS DE CARACTERSTICAS


Trabajo final de grado

De las seales vlidas para este algoritmo (33 de 48 seales) se han detectado ms
de un 100%36 de las contracciones auriculares prematuras (APCs). Se pueden observar con
ms detalle estos resultados en el ANEXO A: Tablas Tabla 5.

Deteccin de Taquicardias

Casos vlidos

A continuacin se exponen algunos ejemplos significativos en los cuales se puede


apreciar el funcionamiento del algoritmo, no obstante los resultados globales se encuentran
en el ANEXO A: Tablas Tabla 6.
Es necesario recordar que este algoritmo puede ajustarse en funcin de las
necesidades del usuario. Estas pruebas se realizan con el programa automatizado, es decir,
el umbral a partir del cual se considera que puede caracterizarse como taquicardias se
calcula en funcin de la edad y el sexo del paciente (Tabla 1).
El siguiente ejemplo (seal 114.mat) corresponde a un paciente de 72 aos. Segn
la base de datos el electrocardiograma, de aproximadamente 30 minutos de duracin, tiene
1 intervalo de taquicardias. El algoritmo presentado en este proyecto es capaz de
detectarlo, es decir, logra una tasa de acierto del 100%.

36

Estos resultados pueden variar, ya que para realizar este proceso es necesario utilizar la funcin Denoise,
la cual, necesita un intervalo de ruido escogido por el usuario. Si este proceso no se realiza correctamente,
los resultados pueden no ser tan favorables.

81

DETECCIN AUTOMTICA DE ARRITMIAS MEDIANTE ANLISIS DE CARACTERSTICAS


Trabajo final de grado

Fig 64: Deteccin de taquicardias; seal 114.mat; preprocesado con db5 y 'Denoise'

En la Figura 64 puede apreciarse el ejemplo descrito, en el cual se detecta el


intervalo de taquicardias y se corrobora que el algoritmo funciona perfectamente en este
tipo de seales. El umbral a partir del cual se consideran taquicardias para este paciente es
108 ppm.
A continuacin se puede observar otro ejemplo, una paciente de 39 aos. Segn la
base de datos, esta paciente no presenta ningn intervalo de taquicardias en los 30 minutos
aproximados de seal. El programa no detecta ninguno, por lo que su tasa de acierto es del
100%. El umbral a partir del cual se consideran taquicardias para esta paciente es 98 ppm.

82

DETECCIN AUTOMTICA DE ARRITMIAS MEDIANTE ANLISIS DE CARACTERSTICAS


Trabajo final de grado

Fig 65: Deteccin de taquicardias; seal 115.mat; preprocesado con sym4 y 'Denoise'

Por ltimo estn los casos en los cuales detecta casi el 100% de los intervalos como
puede ser el siguiente. Un paciente de 68 aos. De acuerdo con la base de datos, presenta
110 intervalos de taquicardias en los 30 minutos aproximados de seal. El algoritmo
consigue detectar 104, es decir un 94.54% del total. El umbral a partir del cual se
consideran taquicardias para este paciente es 94 ppm.
La Figura 66 muestra este tipo caso:

Fig 66: Deteccin de taquicardias; seal 201.mat; preprocesado con sym4 y 'Denoise'

83

DETECCIN AUTOMTICA DE ARRITMIAS MEDIANTE ANLISIS DE CARACTERSTICAS


Trabajo final de grado

Casos fallidos

Existen casos en los cuales las seales estn muy contaminadas de ruido y no
pueden ser analizadas correctamente, esto conlleva que el programa detecte anomalas
donde no las hay. En el ejemplo siguiente se puede observar como el ruido es tal, que
pierde informacin, es decir en esos instantes se pueden interpretar detecciones fallidas.

Fig 67: Deteccin fallida taquicardias; seal 105.mat; preprocesado con bior 1.3 y 'Denoise'

Resultados

Este algoritmo ha resultado til en un 72.92% de las seales. El resto no eran


favorables por motivos de la seal, dos de ellas no eran tiles por no tener seal MLII y
otras dos por no disponer de la edad del paciente.
Cabe recordar que el nmero de detecciones totales se observa en el archivo.txt que
el programa devuelve como respuesta.
De las seales vlidas para este algoritmo (35 de 48 seales) se han detectado un
96.33%37 de los intervalos de taquicardias. Se pueden observar con ms detalle estos
resultados en el ANEXO A: Tablas Tabla 6.

37

Estos resultados pueden variar, ya que para realizar este proceso es necesario utilizar la funcin Denoise,
la cual, necesita un intervalo de ruido escogido por el usuario. Si este proceso no se realiza correctamente,
los resultados pueden no ser tan favorables.

84

DETECCIN AUTOMTICA DE ARRITMIAS MEDIANTE ANLISIS DE CARACTERSTICAS


Trabajo final de grado

Deteccin de Bradicardias

Casos vlidos

A continuacin se exponen algunos ejemplos significativos en los cuales se puede


apreciar el funcionamiento del algoritmo, no obstante los resultados globales se encuentran
en el ANEXO A: Tablas Tabla 7.
El siguiente ejemplo (seal 219.mat) corresponde a un paciente del que no se
dispone la edad. Segn la base de datos el electrocardiograma, de aproximadamente 30
minutos de duracin, tiene 17 intervalos de bradicardia. El algoritmo presentado en este
proyecto los detecta todos, es decir, logra una tasa de acierto del 100%.
En la Figura 68 puede apreciarse el ejemplo descrito, en el cual se detecta un
intervalo de bradicardia en la seal, y corrobora que el algoritmo funciona perfectamente
en este tipo de seales:

Fig 68: Deteccin de bradicardias seal 219.mat; preprocesado con db4 y 'Denoise'

85

DETECCIN AUTOMTICA DE ARRITMIAS MEDIANTE ANLISIS DE CARACTERSTICAS


Trabajo final de grado

A continuacin se puede observar otro ejemplo, un paciente de 57 aos. Segn la


base de datos, este paciente no presenta ningn intervalo de bradicardias en los 30 minutos
aproximados de seal. El programa no detecta ninguno, por lo que su tasa de acierto es del
100%.

Fig 69: Deteccin de bradicardias; seal 233.mat; preprocesado con bior 6.8 y 'Denoise'

Por ltimo estn los casos en los cuales detecta casi el 100% de los intervalos como
puede ser el siguiente. Un paciente de 83 aos. De acuerdo con la base de datos, presenta
10 intervalos de bradicardias en los 30 minutos aproximados de seal. El algoritmo
consigue detectar 7, es decir un 70% del total. La Figura 70 muestra este tipo de caso:

86

DETECCIN AUTOMTICA DE ARRITMIAS MEDIANTE ANLISIS DE CARACTERSTICAS


Trabajo final de grado

Fig 70: Deteccin de bradicardias; seal 221.mat; preprocesado con sym4 y 'Denoise'

Casos fallidos

Hay casos en los que los complejos QRS en un mismo electrocardiograma son de
amplitud muy cambiantes. Esto puede entorpecer el funcionamiento del algoritmo sobre
todo en el proceso de detectar complejos QRS, lo cual influye en la deteccin de
bradicardias.
La siguiente seal pertenece a una paciente de 84 aos. Segn la base de datos no
padece ningn intervalo de bradicardia a lo largo de la seal de aproximadamente 30
minutos. El algoritmo detecta 11 falsas detecciones por el motivo explicado.
En la Figura 71 se puede apreciar como en los cuadrados de color verde existen
zonas de muy baja amplitud con respecto al resto. El programa en ocasiones no lo
interpreta como complejos QRS y entonces esto afecto al procesado de la deteccin de
bradicardias.

87

DETECCIN AUTOMTICA DE ARRITMIAS MEDIANTE ANLISIS DE CARACTERSTICAS


Trabajo final de grado

Fig 71: Deteccin de bradicardias fallida; seal 222.mat; preprocesado con bior 1.3 y 'Denoise'

Resultados

Este algoritmo ha resultado til en un 70.83% de las seales. El resto no eran


favorables por motivos de la seal, dos de ellas no eran tiles por no tener seal MLII.
Cabe recordar que el nmero de detecciones totales se observa en el archivo.txt que
el programa devuelve como respuesta.
De las seales vlidas para este algoritmo (34 de 48 seales) se han detectado un
97.90%38 de los intervalos de bradicardias. Se pueden observar con ms detalle estos
resultados en el ANEXO A: Tablas Tabla 7.

38

Estos resultados pueden variar, ya que para realizar este proceso es necesario utilizar la funcin Denoise,
la cual, necesita un intervalo de ruido escogido por el usuario. Si este proceso no se realiza correctamente,
los resultados pueden no ser tan favorables.

88

DETECCIN AUTOMTICA DE ARRITMIAS MEDIANTE ANLISIS DE CARACTERSTICAS


Trabajo final de grado

5. CONCLUSIONES Y FUTURAS LNEAS DE TRABAJO

Con las tareas principales de este Trabajo Fin de Grado ya finalizadas, llega el
momento de hacer balance y reflexionar acerca de los resultados obtenidos. Al inicio del
proyecto se establecieron unos objetivos que se creen alcanzados y de los cuales se han
extrado las conclusiones pertinentes.
Se han estudiado los mtodos de eliminacin de ruido ms eficientes en la
actualidad y se ha elegido uno de ellos para eliminar o reducir el ruido en las seales
electrocardiogrficas con el fin de poder analizarlas de forma eficiente y con resultados
ms fiables.
Las seales ECG necesitaban de un anlisis previo para encontrar sus
caractersticas, sus formas de onda Este estudio se ha realizado en profundidad para
detectar las arritmias, se han encontrado muchas limitaciones pero se han intentado
solventar de la mejor forma posible.
El software realizado permite analizar de forma rpida las seales ECG, pudiendo
ayudar a estudiantes de medicina a detectar de forma rpida arritmias y encontrar sus
caractersticas particulares de cada una de ellas. Tambin es til para detectarlas dado que
las seales ECG normalmente son muy largas y es un trabajo laborioso para el mdico ir
mirando intervalo a intervalo. En este caso el programa le marca las zonas conflictivas en
las que se producen esas arritmias y as el mdico puede analizarlas en profundidad sin
tener que comprobar toda la seal en busca de alguna anomala.
Para terminar, se han realizado las pruebas pertinentes para probar el algoritmo,
obteniendo buenos resultados, ya que el porcentaje de deteccin es alto y se ha conseguido
automatizar un programa para que sea sencillo para el usuario, intuitivo y til para todo
tipo de seales ECG.

89

DETECCIN AUTOMTICA DE ARRITMIAS MEDIANTE ANLISIS DE CARACTERSTICAS


Trabajo final de grado

Por ltimo, es importante hablar de las futuras lneas de trabajo y de cmo podra
mejorarse y ampliarse este programa. Se plantean a continuacin las principales:

Detectar otros tipos de arritmias Se podra plantear la posibilidad de


detectar otros tipos de arritmias, que aunque no sean tan frecuentes puedan
ayudar a los mdicos a localizarlas de forma ms rpida y ampliar el
programa hacindolo ms robusto y ms completo.

Mejorar los porcentajes de detecciones de este algoritmo Esta lnea de


trabajo sera muy interesante para poder lograr un mayor porcentaje de
acierto en la deteccin de cualquier tipo de arritmia. Para ello sera
conveniente evaluar los resultados y ajustar los valores con el fin de afinar
ms el algoritmo, o incluso, analizar las seales de nuevo y aplicar algn
otro mtodo que se crea conveniente.

Crear el programa para otro tipo de plataforma Quizs sera interesante


ampliar este programa a otro tipo de plataforma para as poder ser ms
accesible y til a nivel mdico.

Con todas las mejoras mencionadas, se lograra obtener un sistema de deteccin de


arritmias ms completo.

90

DETECCIN AUTOMTICA DE ARRITMIAS MEDIANTE ANLISIS DE CARACTERSTICAS


Trabajo final de grado

6. REFERENCIAS BIBLIOGRFICAS
[1] Senhadji, L., et al., Comparing wavelet transforms for recognizing cardiac patterns.
IEEE Eng. Med. Biol. 14(2):167173, 1995.
[2] Sahambi, J. S., et al., Using wavelet transforms for ECG characterization: an on-line
digital signal processing system. IEEE Eng. Med. Biol. 16(1):7783, 1997.
[3] Hamilton, P. S., and Tompkins, W. J., Quantitative investigation of QRS detection
rules using the MIT-BIH arrhythmia database. IEEE Trans. Biomed. Eng. 33(12):1157
1165, 1986.
[4] Thakor, N. V., et al., Estimation of QRS complex power spectra for design of a QRS
filter. IEEE Trans. Biomed. Eng. 31(11):702706, 1986.
[5] Li, C., et al., Detection of ECG characteristic points using wavelet transforms. IEEE
Trans. Biomed. Eng. 42 (1):2128, 1995.
[6] Castro, Kogan, D., and Geva, A. B., ECG feature extraction using optimal mother
wavelet. IEEE EMBE Int. Conf. 346350, Apr., 2000.
[7] Pan, J., and Tompkins, W. J., A real time QRS detection algorithm. IEEE Trans.
Biomed. Eng., BME 32(3):230236, 1985.
[8] Maglaveras, N., et al., An adaptive backpropagation neural network for real-time
ischemia episodes detection: Development and performance analysis using the European
ST-T database. IEEE Trans. Biomed. Eng. 45(7):805813, 1998.
[9] Yu, S. N., and Chou, K. T., Integration of independent component analysis and neural
networks for ECG beat classification. Expert Syst. Appl. 34(4):28412846, 2008.
[10] Misini.M, et al., Wavlet Toolbox Users Guide, 1996 - 1997 by The MathWorks, Inc.
All Rights Reserved.
[11] Weiss, L., (Enero de 1994). Wavelets and wideband correlation processing. IEEE
Signal Processing, 13-31.
[12] Abibullaev, B., and Seo, H. D., A new QRS detection method using wavelets and
artificial neural networks. Springer Science+Business Media, LLC 2009
[13] Martis, R. J., et al., Automated Screening of Arrhytmia using wavelet based machine
learning techniques. Springer Science+Business Media, LLC 2010
[14] http://www.bssaonline.org/content/93/6/2554.short (ltimo acceso: 04/09/2014)

91

DETECCIN AUTOMTICA DE ARRITMIAS MEDIANTE ANLISIS DE CARACTERSTICAS


Trabajo final de grado

ANEXO A: Tablas
Tabla 4: Datos de las seales

Nombre Edad

Sexo

100

69

masculino

Der.
1
MLII

101

75

femenino

MLII

102

84

femenino

103

N.D

104

Der.
2
V5

CVP APC
1

33

Taquicardia
(episodios)
0

V1

V5

V2

masculino

MLII

V2

66

femenino

V5

V2

105

73

femenino

MLII

V1

41

106

24

femenino

MLII

V1

520

19

107

63

masculino

MLII

V1

59

108

87

femenino

MLII

V1

19

15

109

64

masculino

MLII

V1

40

111

47

femenino

MLII

V1

112

54

masculino

MLII

V1

113

24

femenino

MLII

V1

114

72

femenino

V5

MLII

47

10

115

39

femenino

MLII

V1

116

68

masculino

MLII

V1

109

117

69

masculino

MLII

V2

118

69

masculino

MLII

V1

16

106

119

51

femenino

MLII

V1

444

121

83

femenino

MLII

V1

122

51

masculino

MLII

V1

123

63

femenino

MLII

V5

124

77

masculino

MLII

V4

52

35

92

Bradicardia
(episodios)
0

DETECCIN AUTOMTICA DE ARRITMIAS MEDIANTE ANLISIS DE CARACTERSTICAS


Trabajo final de grado

200

64

masculino

MLII

V1

828

30

148

201

68

masculino

MLII

V1

200

164

110

110

202

68

masculino

MLII

V1

20

55

105

10

203

43

masculino

MLII

V1

445

350

205

59

masculino

MLII

V1

82

170

207

89

femenino

MLII

V1

105

107

50

50

208

23

femenino

MLII

V1

1365

525

209

62

masculino

MLII

V1

383

270

210

89

masculino

MLII

V1

204

22

324

212

32

femenino

MLII

V1

160

213

61

masculino

MLII

V1

582

28

43

214

53

masculino

MLII

V1

257

15

215

81

masculino

MLII

V1

165

520

217

65

masculino

MLII

V1

162

160

219

N.D

masculino

MLII

V1

65

140

10

17

220

87

femenino

MLII

V1

94

221

83

masculino

MLII

V1

396

190

10

222

84

femenino

MLII

V1

208

175

223

73

masculino

MLII

V1

487

73

14

228

80

femenino

MLII

V1

362

230

32

masculino

MLII

V1

35

231

72

Femenino

MLII

V1

50

232

76

Femenino

MLII

V1

1382

45

233

57

Masculino MLII

V1

842

71

234

56

Femenino

V1

MLII

93

DETECCIN AUTOMTICA DE ARRITMIAS MEDIANTE ANLISIS DE CARACTERSTICAS


Trabajo final de grado

Tabla 5: Deteccin de complejos QRS

Nombre QRS

QRS
detectados

Porcentaje (QRS
detectados / QRS)

100

2273

2273

100%

101

1865

1859

99.67%

102

2187

N.D

N.D

103

2084

2083

99.95%

104

2229

N.D

N.D

105

2572

2717

106

2027

2027

107

2139

2733

1774

1536

86.58%

109

2532

2485

98.14%

111

2124

2257

112

2539

2536

113

1795

2254

114

1879

1879

100%

115

1953

1953

100%

116

2412

2363

97.96%

117

1535

1947

118

2288

2267

99.08%

119

1987

1988

100.05%

121

1863

1868

100.26%

122

2476

2476

100%

123

1519

1519

100%

124

1619

1608

99.32%

200

2601

2671

201

2000

1972

108

Notas

No tiene derivacin MLII

No tiene derivacin MLII


7 minutos de ruido

100%
Ondas T con mucha amplitud
Intervalos muy cambiantes de
amplitud

Ondas T con mucha amplitud


99.88%
Ondas T con mucha amplitud

Ondas T con mucha amplitud

Muchos intervalos de ruido


98.6%

94

DETECCIN AUTOMTICA DE ARRITMIAS MEDIANTE ANLISIS DE CARACTERSTICAS


Trabajo final de grado

202

2139

2139

100%

203

2980

2629

88.22%

205

2656

2653

99.88%

207

2332

2163

92.75%

208

2955

2941

99.52%

209

3005

3050

210

2650

2514

212

2748

2892

213

3251

3241

214

2262

2373

215

3363

3358

99.85%

217

2208

1824

82.60%

219

2287

2156

94.27%

220

2048

2048

100%

221

2427

2155

88.79%

222

2483

2239

90.17%

223

2605

2350

90.21%

228

2053

1532

74.62%

230

2259

2259

100%

231

1573

1742

Ondas T con mucha amplitud

232

1780

2004

Intervalos de ruido

233

3079

2979

96.75%

234

2753

2753

100%

NOTA! El smbolo

Muchos intervalos de ruido

Muchos intervalos de ruido


94.86%
Muchos intervalos de ruido
99.69%
Muchos intervalos de ruido

representa que esas seales no son vlidas para el algoritmo, ya

que los QRS que detecta son falsos. El motivo de que no sean vlidas se encuentra en la
columna denominada Notas.

95

DETECCIN AUTOMTICA DE ARRITMIAS MEDIANTE ANLISIS DE CARACTERSTICAS


Trabajo final de grado

Tabla 6: Deteccin de CVPs con umbral al 50%

CVP detectados
(umbral al 50%)

Porcentaje (CVP
detectados / CVP)

100%

N.D

70

104

N.D

N.D

No tiene derivacin MLII

105

41

12.19%

7 minutos de ruido

106

520

86

16.53%

107

59

24

40.67%

108

19

31.57%

109

40

12.5%

111

300%

Nombre CVP
100
101
102

Intervalos de ruido que


pueden asemejarse a CVPs
N.D

103

36

78

47

46

97.87%

115

Al no tener CVPs interpreta el


mnimo como CVP y con un
umbral del 50%

43

109

66

118

16

6.25%

119

444

157

35.36%

121

100%

116

0.91%

117

122

Posibles CVPs
Al no tener CVPs interpreta el
mnimo como CVP y con un
umbral del 50%
Al no tener CVPs interpreta el
mnimo como CVP y con un
umbral del 50%

113

114

No tiene derivacin MLII


Al no tener CVPs interpreta el
mnimo como CVP y con un
umbral del 50%

112

Notas

Al no tener CVPs interpreta el


mnimo como CVP y con un
umbral del 50%

Intervalos de ruido
Al no tener CVPs interpreta el
mnimo como CVP y con un

96

DETECCIN AUTOMTICA DE ARRITMIAS MEDIANTE ANLISIS DE CARACTERSTICAS


Trabajo final de grado

umbral del 50%


123

34

0%

124

52

32

61.53%

200

828

0.60%

201

200

147

73.5%

202

20

5%

Muchos intervalos de ruido

203

445

85

19.10%

Muchos intervalos de ruido

205

82

61

74.39%

207

105

89

84.76%

208

1365

0.14%

209

100%

210

204

38

18.62%

213

582

29

4.98%

214

257

117

45.52%

215

165

1.21%

217

162

16

9.87%

219

65

43

66.15%

212

Al no tener CVPs interpreta el


mnimo como CVP y con un
umbral del 50%

220

Al no tener CVPs interpreta el


mnimo como CVP y con un
umbral del 50%

45

396

17

10

223

487

0.82%

228

362

52

14.36%

230

100%

231

44

0%

232

221

Muchos intervalos de ruido

4.29%

222

Al no tener CVPs interpreta el


mnimo como CVP y con un
umbral del 50%

Muchos intervalos de ruido


Al no tener CVPs interpreta el

97

DETECCIN AUTOMTICA DE ARRITMIAS MEDIANTE ANLISIS DE CARACTERSTICAS


Trabajo final de grado

mnimo como CVP y con un


umbral del 50%
233

842

58

7.00%

234

33.33%

NOTA! El smbolo

representa que esas seales no son vlidas para el algoritmo, ya

que los CVP que detecta son falsos. El motivo de que no sean vlidas se encuentra en la
columna denominada Notas.

98

DETECCIN AUTOMTICA DE ARRITMIAS MEDIANTE ANLISIS DE CARACTERSTICAS


Trabajo final de grado

Tabla 7: Deteccin de APCs

Nombre APC

APC
detectados

Porcentaje (APC
detectados / APC)

Notas

100

33

32

96.96%

101

166,6%

Posibles APCs

102

N.D

N.D

No tiene derivacin MLII

103

300%

Posibles APCs

104

N.D

N.D

No tiene derivacin MLII

105

100%

106

100%

107

237

Ondas T con mucha amplitud

15

Intervalos muy cambiantes de


amplitud

109

111

97

112

113

83

114

10

0%

115

900%

Posibles APCs

116

10

1000%

Posibles APCs

117

118

106

59

55.66%

119

100%

121

300%

Posibles APCs

122

200%

Posible APC

123

17

1800%

Posibles APCs

0%

Interpreta como APC algn


CVP

200

30

201

164

29

108

124

200%

Posible APC
Ondas T con mucha amplitud

100%
Ondas T con mucha amplitud

Ondas T con mucha amplitud

Muchos intervalos de ruido


17.68%
99

DETECCIN AUTOMTICA DE ARRITMIAS MEDIANTE ANLISIS DE CARACTERSTICAS


Trabajo final de grado

202

55

Muchos intervalos de ruido

203

Muchos intervalos de ruido

205

207

107

208

100%

209

383

57

14.88%

210

22

14

63.63%

212

500%

213

28

27

96.42%

214

100%

215

90

3000%

217

100%

219

140

35

25%

220

94

35

37.23%

221

100%

208

73

230

231

24

232

1382

0%

233

57.14%

234

100%

222
223
228

NOTA! El smbolo

0%
Muchos intervalos de ruido

Posibles APCs

Posibles APCs

Intervalos muy cambiantes de


amplitud
Intervalos muy cambiantes de
amplitud
Intervalos muy cambiantes de
amplitud y con mucho ruido
300%

Posibles APCs
Ondas T con mucha amplitud

representa que esas seales no son vlidas para el algoritmo, ya

que los APC que detecta son falsos. El motivo de que no sean vlidas se encuentra en la
columna denominada Notas.

100

DETECCIN AUTOMTICA DE ARRITMIAS MEDIANTE ANLISIS DE CARACTERSTICAS


Trabajo final de grado

Tabla 8: Deteccin de Taquicardias con umbral automtico

Nombre Taquicardias

Taquicardias
detectadas

Porcentaje
(Taquicardias
detectadas /
Taquicardias)

100

100%

101

100%

N.D

N.D

N.D

N.D

N.D

N.D

45

19

28

334

14

155

29

114

100%

115

100%

116

0%

118

20

0%

119

100%

121

100%

122

100%

102
103

104
105
106
107

111
112
113

117

No tiene
derivacin MLII
No est
disponible la edad
del paciente
No tiene
derivacin MLII
7 minutos de
ruido

147.36%

108

109

Notas

1000%

0%

Ondas T con
mucha amplitud
Intervalos muy
cambiantes de
amplitud
Posibles
taquicardias
Ondas T con
mucha amplitud
Intervalo de ruido
Ondas T con
mucha amplitud

Intervalo de ruido
Ondas T con
mucha amplitud

101

Intervalo de ruido

DETECCIN AUTOMTICA DE ARRITMIAS MEDIANTE ANLISIS DE CARACTERSTICAS


Trabajo final de grado

123

100%

124

100%

200

148

151

102.02%

201

110

104

94.54%

202

105

102

97.14%

203

350

326

93.14%

205

170

153

90%

207

50

48

96%

208

525

522

99.42%

209

270

268

99.25%

210

324

315

97.22%

212

160

157

98.12%

213

43

42

97.67%

214

15

17

113.33%

215

520

520

100%

217

160

157

98.12%

219

10

N.D

N.D

220

11

137.5%

221

190

179

94.21%

222

175

165

94.28%

223

14

14

100%

228

230

35

32

37

232

100%

233

71

68

95.77%

231

No est
disponible la edad
del paciente

Intervalo de ruido
91.42%
Intervalos de
ruido

102

DETECCIN AUTOMTICA DE ARRITMIAS MEDIANTE ANLISIS DE CARACTERSTICAS


Trabajo final de grado

234

NOTA! El smbolo

100%

representa que esas seales no son vlidas para el algoritmo, ya

que los intervalos de taquicardias que detecta son falsos. El motivo de que no sean vlidas
se encuentra en la columna denominada Notas.

Tabla 9: Deteccin bradicardias

Nombre Bradicardias

Bradicardias
detectadas

Porcentaje
(Bradicardias
detectadas /
Bradicardias)

100

100%

101

100%

N.D

N.D

100%

N.D

N.D

100%

102
103
104
105
106

Notas

No tiene
derivacin MLII
No tiene
derivacin MLII
Intervalos con
Onda Q con muy
poca amplitud

32

Intervalos muy
cambiantes de
amplitud

109

Intervalo con ruido

111

Intervalo con ruido

112

100%

113

100%

114

100%

115

100%

107

100%

108

103

DETECCIN AUTOMTICA DE ARRITMIAS MEDIANTE ANLISIS DE CARACTERSTICAS


Trabajo final de grado

116

117

100%

118

100%

119

100%

121

100%

122

100%

123

100%

124

35

32

91.42%

200

201

110

103

93.63%

202

10

10

100%

203

205

100%

207

50

43

86%

208

209

210

212

100%

213

100%

214

100%

215

217

100%

219

17

17

100%

220

100%

221

10

70%

11

Intervalos muy
cambiantes de
amplitud

23

Intervalos muy

Intervalo con ruido

Intervalo con ruido

Intervalo con ruido

Intervalo con ruido


100%
Intervalo con ruido

Intervalo con ruido

222

223

104

DETECCIN AUTOMTICA DE ARRITMIAS MEDIANTE ANLISIS DE CARACTERSTICAS


Trabajo final de grado

cambiantes de
amplitud
228

100%

230

100%

231

50

40

80%

232

45

44

97.77%

233

100%

234

100%

NOTA! El smbolo

representa que esas seales no son vlidas para el algoritmo, ya

que los intervalos de bradicardias que detecta son falsos. El motivo de que no sean vlidas
se encuentra en la columna denominada Notas.

105

DETECCIN AUTOMTICA DE ARRITMIAS MEDIANTE ANLISIS DE CARACTERSTICAS


Trabajo final de grado

ANEXO B: Cdigos Fuente


Programa.m:
function varargout = programa(varargin)
gui_Singleton = 1;
gui_State = struct('gui_Name',
mfilename, ...
'gui_Singleton', gui_Singleton, ...
'gui_OpeningFcn', @programa_OpeningFcn, ...
'gui_OutputFcn', @programa_OutputFcn, ...
'gui_LayoutFcn', [] , ...
'gui_Callback',
[]);
if nargin && ischar(varargin{1})
gui_State.gui_Callback = str2func(varargin{1});
end
if nargout
[varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:});
else
gui_mainfcn(gui_State, varargin{:});
end
% End initialization code - DO NOT EDIT
% --- Executes just before programa is made visible.
function programa_OpeningFcn(hObject, eventdata, handles, varargin)
% This function has no output args, see OutputFcn.
% hObject
handle to figure
% eventdata reserved - to be defined in a future version of MATLAB
% handles
structure with handles and user data (see GUIDATA)
% varargin
command line arguments to programa (see VARARGIN)
global p
global q
% Choose default command line output for programa
handles.output = hObject;
% Update handles structure
guidata(hObject, handles);
axes(handles.axes1);
Inicializar;
axes(handles.axes2);
Inicializar;
% UIWAIT makes programa wait for user response (see UIRESUME)
% uiwait(handles.figure1);
% --- Outputs from this function are returned to the command line.
function varargout = programa_OutputFcn(hObject, eventdata, handles)
% varargout cell array for returning output args (see VARARGOUT);
% hObject
handle to figure
% eventdata reserved - to be defined in a future version of MATLAB
% handles
structure with handles and user data (see GUIDATA)
% Get default command line output from handles structure

106

DETECCIN AUTOMTICA DE ARRITMIAS MEDIANTE ANLISIS DE CARACTERSTICAS


Trabajo final de grado

varargout{1} = handles.output;
% -------------------------------------------------------------------function Archivo_Callback(hObject, eventdata, handles)
% hObject
handle to Archivo (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles
structure with handles and user data (see GUIDATA)
% -------------------------------------------------------------------function Ayuda_Callback(hObject, eventdata, handles)
% hObject
handle to Ayuda (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles
structure with handles and user data (see GUIDATA)
open('guide.pdf')
% -------------------------------------------------------------------function Abr_Callback(hObject, eventdata, handles)
% hObject
handle to Abr (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles
structure with handles and user data (see GUIDATA)
[filename,path]=uigetfile({'*.mat'},'Abrir seal');
if isequal(filename,0)
return
else
signal=load(strcat(path,filename));
M1=signal.M(:,1);
M2=signal.M(:,2);
b=signal.b;
edad=signal.edad
sexo=signal.sexo
end
if(b(1)==1)
valor1='MLII';
elseif(b(1)==2)
valor1='V1';
elseif(b(1)==3)
valor1='V2';
elseif(b(1)==4)
valor1='V4';
else
valor1='V5';
end
if(b(2)==1)
valor2='MLII';
elseif(b(2)==2)
valor2='V1';
elseif(b(2)==3)
valor2='V2';
elseif(b(2)==4)
valor2='V4';
else
valor2='V5';
end
maximo1=max(abs(M1));

107

DETECCIN AUTOMTICA DE ARRITMIAS MEDIANTE ANLISIS DE CARACTERSTICAS


Trabajo final de grado

maximo2=max(abs(M2));
M1=M1./maximo1;
M2=M2./maximo2;
recuperar1=M1;
recuperar2=M2;
%Creamos los handles para poder utilizar estas variables en otras
funciones
handles.M1=M1;
handles.M2=M2;
handles.recuperar1=recuperar1;
handles.recuperar2=recuperar2;
handles.b=b;
%Cogemos tanto el Tinicial, Tfinal y Fs que ha podido introducir el
usuario
Tinicial = get(handles.Tinicial,'String');
Tinicial = str2double(Tinicial);
Tfinal = get(handles.Tfinal,'String');
Tfinal = str2double(Tfinal);
Fs = get(handles.Fs,'String');
Fs = str2double(Fs);
%Representamos las seales:
axes(handles.axes1);
Representar(Tinicial, Tfinal, M1, Fs, 'b')
axes(handles.axes2);
Representar(Tinicial, Tfinal, M2, Fs, 'b')
derivacion1=strcat(['Derivacin: ' valor1]);
derivacion2=strcat(['Derivacin: ' valor2]);
set(handles.titulo1,'string', derivacion1)
set(handles.titulo2,'string', derivacion2)
%Calculamos el valor que tiene que poner en los ppm para las taquicardias
if (edad<20)
Pulsaciones=0;
elseif (edad>=20 && edad<30)
if(strcmp(sexo,'femenino'))
Pulsaciones=96;
else
Pulsaciones=86;
end
elseif (edad>=30 && edad<40)
if(strcmp(sexo,'femenino'))
Pulsaciones=98;
else
Pulsaciones=86;

108

DETECCIN AUTOMTICA DE ARRITMIAS MEDIANTE ANLISIS DE CARACTERSTICAS


Trabajo final de grado

end
elseif (edad>=40 && edad<50)
if(strcmp(sexo,'femenino'))
Pulsaciones=100;
else
Pulsaciones=90;
end
elseif (edad>=50 && edad<60)
if(strcmp(sexo,'femenino'))
Pulsaciones=104;
else
Pulsaciones=90;
end
else
if(strcmp(sexo,'femenino'))
Pulsaciones=108;
else
Pulsaciones=94;
end
end
set (handles.Taquicardia, 'string', Pulsaciones)
handles.edad=edad;
handles.sexo=sexo;
guidata(hObject, handles);
% -------------------------------------------------------------------function Guardar_Callback(hObject, eventdata, handles)
% hObject
handle to Guardar (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles
structure with handles and user data (see GUIDATA)
% -------------------------------------------------------------------function Salir_Callback(hObject, eventdata, handles)
% hObject
handle to Salir (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles
structure with handles and user data (see GUIDATA)
opc=questdlg('Desea salir del programa?','SALIR','Si','No','No');
if strcmp(opc,'No')
return;
end
clear,clc,close all
% --- Executes on selection change in popupmenu1.
function popupmenu1_Callback(hObject, eventdata, handles)
% hObject
handle to popupmenu1 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles
structure with handles and user data (see GUIDATA)
% Hints: contents = cellstr(get(hObject,'String')) returns popupmenu1
contents as cell array
%
contents{get(hObject,'Value')} returns selected item from
popupmenu1

109

DETECCIN AUTOMTICA DE ARRITMIAS MEDIANTE ANLISIS DE CARACTERSTICAS


Trabajo final de grado

% --- Executes during object creation, after setting all properties.


function popupmenu1_CreateFcn(hObject, eventdata, handles)
% hObject
handle to popupmenu1 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles
empty - handles not created until after all CreateFcns
called
% Hint: popupmenu controls usually have a white background on Windows.
%
See ISPC and COMPUTER.
if ispc && isequal(get(hObject,'BackgroundColor'),
get(0,'defaultUicontrolBackgroundColor'))
set(hObject,'BackgroundColor','white');
end

function Tinicial_Callback(hObject, eventdata, handles)


% hObject
handle to Tinicial (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles
structure with handles and user data (see GUIDATA)
% Hints: get(hObject,'String') returns contents of Tinicial as text
%
str2double(get(hObject,'String')) returns contents of Tinicial
as a double

% --- Executes during object creation, after setting all properties.


function Tinicial_CreateFcn(hObject, eventdata, handles)
% hObject
handle to Tinicial (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles
empty - handles not created until after all CreateFcns
called
% Hint: edit controls usually have a white background on Windows.
%
See ISPC and COMPUTER.
if ispc && isequal(get(hObject,'BackgroundColor'),
get(0,'defaultUicontrolBackgroundColor'))
set(hObject,'BackgroundColor','white');
end

function Tfinal_Callback(hObject, eventdata, handles)


% hObject
handle to Tfinal (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles
structure with handles and user data (see GUIDATA)
% Hints: get(hObject,'String') returns contents of Tfinal as text
%
str2double(get(hObject,'String')) returns contents of Tfinal as
a double
% --- Executes during object creation, after setting all properties.
function Tfinal_CreateFcn(hObject, eventdata, handles)

110

DETECCIN AUTOMTICA DE ARRITMIAS MEDIANTE ANLISIS DE CARACTERSTICAS


Trabajo final de grado

% hObject
% eventdata
% handles
called

handle to Tfinal (see GCBO)


reserved - to be defined in a future version of MATLAB
empty - handles not created until after all CreateFcns

% Hint: edit controls usually have a white background on Windows.


%
See ISPC and COMPUTER.
if ispc && isequal(get(hObject,'BackgroundColor'),
get(0,'defaultUicontrolBackgroundColor'))
set(hObject,'BackgroundColor','white');
end

function Fs_Callback(hObject, eventdata, handles)


% hObject
handle to Fs (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles
structure with handles and user data (see GUIDATA)
% Hints: get(hObject,'String') returns contents of Fs as text
%
str2double(get(hObject,'String')) returns contents of Fs as a
double
% --- Executes during object creation, after setting all properties.
function Fs_CreateFcn(hObject, eventdata, handles)
% hObject
handle to Fs (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles
empty - handles not created until after all CreateFcns
called
% Hint: edit controls usually have a white background on Windows.
%
See ISPC and COMPUTER.
if ispc && isequal(get(hObject,'BackgroundColor'),
get(0,'defaultUicontrolBackgroundColor'))
set(hObject,'BackgroundColor','white');
end
% --- Executes on selection change in popupmenu2.
function popupmenu2_Callback(hObject, eventdata, handles)
% hObject
handle to popupmenu2 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles
structure with handles and user data (see GUIDATA)
% Hints: contents = cellstr(get(hObject,'String')) returns popupmenu2
contents as cell array
%
contents{get(hObject,'Value')} returns selected item from
popupmenu2
% --- Executes during object creation, after setting all properties.
function popupmenu2_CreateFcn(hObject, eventdata, handles)
% hObject
handle to popupmenu2 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles
empty - handles not created until after all CreateFcns
called

111

DETECCIN AUTOMTICA DE ARRITMIAS MEDIANTE ANLISIS DE CARACTERSTICAS


Trabajo final de grado

% Hint: popupmenu controls usually have a white background on Windows.


%
See ISPC and COMPUTER.
if ispc && isequal(get(hObject,'BackgroundColor'),
get(0,'defaultUicontrolBackgroundColor'))
set(hObject,'BackgroundColor','white');
end
% --- Executes on button press in Denoise.
function Denoise_Callback(hObject, eventdata, handles)
% hObject
handle to Denoise (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles
structure with handles and user data (see GUIDATA)
global p
global q
M1=handles.M1;
M2=handles.M2;
Tinicial = get(handles.Tinicial,'String');
Tinicial = str2double(Tinicial);
Tfinal = get(handles.Tfinal,'String');
Tfinal = str2double(Tfinal);
Fs = get(handles.Fs,'String');
Fs = str2double(Fs);
a=figure;
plot(M1);
h = helpdlg('A continuacin aparecer en pantalla la 1 seal, haga zoom
en una zona de ruido y cierre la ventana. Realice la misma operacin con
la 2 seal.','Ayuda');
set(a,'CloseRequestFcn','global p; p=axis;closereq');
waitfor(a);
b=figure;
plot(M2);
set(b,'CloseRequestFcn','global q; q=axis;closereq');
waitfor(b);
p=round(p);
ruidoM1=M1(p(1):p(2));
q=round(q);
ruidoM2=M2(q(1):q(2));
bien1=denoise(M1,ruidoM1,8);
bien2=denoise(M2,ruidoM2,8);
M1=bien1;
M2=bien2;
handles.M1=M1;
handles.M2=M2;
axes(handles.axes1);
Representar(Tinicial, Tfinal, M1, Fs, 'b')
axes(handles.axes2);
Representar(Tinicial, Tfinal, M2, Fs, 'b')

112

DETECCIN AUTOMTICA DE ARRITMIAS MEDIANTE ANLISIS DE CARACTERSTICAS


Trabajo final de grado

guidata(hObject, handles);

% --- Executes on button press in Aplicar.


function Aplicar_Callback(hObject, eventdata, handles)
% hObject
handle to Aplicar (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles
structure with handles and user data (see GUIDATA)
%Cogemos tanto el Tinicial, Tfinal y Fs que ha podido introducir el
usuario
M1=handles.M1;
M2=handles.M2;
Tinicial = get(handles.Tinicial,'String');
Tinicial = str2double(Tinicial);
Tfinal = get(handles.Tfinal,'String');
Tfinal = str2double(Tfinal);
Fs = get(handles.Fs,'String');
Fs = str2double(Fs);
longitud=length(M1);
longitud=longitud/360;
longitud=longitud/60;
%Representamos las seales:
if (Tinicial<0 || Tinicial>longitud || Tfinal<0 || Tfinal>longitud
||Tfinal<Tinicial)
if(Tinicial<0)
errordlg('Tinicial debe ser mayor que cero','ERROR')
elseif(Tinicial>longitud)
errordlg('Tinicial debe ser menor que la longitud de la
seal','ERROR')
elseif(Tfinal<0)
errordlg('Tfinal debe ser mayor que cero','ERROR')
elseif(Tfinal>longitud)
errordlg('Tfinal debe ser menor que la longitud de la
seal','ERROR')
else (Tfinal<Tinicial)
errordlg('Tfinal debe ser mayor que Tinicial','ERROR')
end
else
axes(handles.axes1);
Representar(Tinicial, Tfinal, M1, Fs, 'b')
axes(handles.axes2);
Representar(Tinicial, Tfinal, M2, Fs, 'b')
end
% --- Executes on button press in Aplicar1.
function Aplicar1_Callback(hObject, eventdata, handles)
% hObject
handle to Aplicar1 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles
structure with handles and user data (see GUIDATA)
M1=handles.M1;

113

DETECCIN AUTOMTICA DE ARRITMIAS MEDIANTE ANLISIS DE CARACTERSTICAS


Trabajo final de grado

M2=handles.M2;
Tinicial = get(handles.Tinicial,'String');
Tinicial = str2double(Tinicial);
Tfinal = get(handles.Tfinal,'String');
Tfinal = str2double(Tfinal);
Fs = get(handles.Fs,'String');
Fs = str2double(Fs);
tipo = get(handles.popupmenu1, 'Value');
if tipo==1
valor='db4';
elseif tipo==2
valor='db5';
elseif tipo==3
valor='sym4';
elseif tipo==4
valor='bior1.3';
else
valor='bior6.8';
end
nivel = get(handles.popupmenu2, 'Value');
if nivel==1
valornivel=1;
elseif nivel==2
valornivel=2;
elseif nivel==3
valornivel=3;
elseif nivel==4
valornivel=4;
elseif nivel==5
valornivel=5;
elseif nivel==6
valornivel=6;
elseif nivel==7
valornivel=7;
elseif nivel==8
valornivel=8;
else
valornivel=9;
end
axes(handles.axes1);
nueva=preprocesado (M1, valor, valornivel);
Representar(Tinicial, Tfinal, nueva, Fs, 'b')
axes(handles.axes2);
nueva1=preprocesado (M2, valor, valornivel);
Representar(Tinicial, Tfinal, nueva1, Fs, 'b')
M1=nueva;
M2=nueva1;
handles.M1=M1;
handles.M2=M2;

114

DETECCIN AUTOMTICA DE ARRITMIAS MEDIANTE ANLISIS DE CARACTERSTICAS


Trabajo final de grado

guidata(hObject, handles);
% --- Executes on selection change in deteccion.
function deteccion_Callback(hObject, eventdata, handles)
% hObject
handle to deteccion (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles
structure with handles and user data (see GUIDATA)
% Hints: contents = cellstr(get(hObject,'String')) returns deteccion
contents as cell array
%
contents{get(hObject,'Value')} returns selected item from
deteccion
% --- Executes during object creation, after setting all properties.
function deteccion_CreateFcn(hObject, eventdata, handles)
% hObject
handle to deteccion (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles
empty - handles not created until after all CreateFcns
called
% Hint: popupmenu controls usually have a white background on Windows.
%
See ISPC and COMPUTER.
if ispc && isequal(get(hObject,'BackgroundColor'),
get(0,'defaultUicontrolBackgroundColor'))
set(hObject,'BackgroundColor','white');
end
% --- Executes on button press in Aplicar2.
function Aplicar2_Callback(hObject, eventdata, handles)
% hObject
handle to Aplicar2 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles
structure with handles and user data (see GUIDATA)
M1=handles.M1;
M2=handles.M2;
b=handles.b;
Tinicial = get(handles.Tinicial,'String');
Tinicial = str2double(Tinicial);
Tfinal = get(handles.Tfinal,'String');
Tfinal = str2double(Tfinal);
Fs = get(handles.Fs,'String');
Fs = str2double(Fs);
tipodeteccion = get(handles.deteccion, 'Value');
if tipodeteccion==1
%DETECCION DE CVP
Porcentaje = get(handles.Factor,'String');
Porcentaje = str2double(Porcentaje);
if(b(1)==1)
detecCVP = deteccion_CVP (M1, Porcentaje);

115

DETECCIN AUTOMTICA DE ARRITMIAS MEDIANTE ANLISIS DE CARACTERSTICAS


Trabajo final de grado

posiciones = find(detecCVP<0);
CVPdetectados = size(posiciones)
axes(handles.axes1);
hold on
Representar(Tinicial, Tfinal, detecCVP, Fs, 'r')
axes(handles.axes2);
hold on
Representar(Tinicial, Tfinal, detecCVP, Fs, 'r')
elseif(b(2)==1)
detecCVP = deteccion_CVP (M2, Porcentaje);
posiciones = find(detecCVP<0);
CVPdetectados = size(posiciones)
axes(handles.axes1);
hold on
Representar(Tinicial, Tfinal, detecCVP, Fs, 'r')
axes(handles.axes2);
hold on
Representar(Tinicial, Tfinal, detecCVP, Fs, 'r')
else
errordlg('No pueden detectarse contracciones ventriculares
prematuras para este paciente','ERROR')
end
posiciones=(posiciones./(360*60));
posiciones=round(posiciones.*100)./100;
fid=fopen('Deteccin de CVPs.txt','w');
fprintf(fid, 'Deteccin de CVPs: \n \nCVPs detectados:');
fprintf(fid, '%d \n \n', CVPdetectados(1));
fprintf(fid, 'CVP
Tiempo(min) \n')
for i=1:CVPdetectados(1)
fprintf(fid,'%d
%f \n',i, posiciones(i));
end
fclose(fid);
elseif tipodeteccion==2
%DETECCION DE APC
if(b(1)==1)
detecAPC = deteccion_APC (M1);
posiciones = find(detecAPC>0);
APCdetectados = size(posiciones)
axes(handles.axes1);
hold on
Representar(Tinicial, Tfinal, detecAPC, Fs, 'r')
axes(handles.axes2);
hold on
Representar(Tinicial, Tfinal, detecAPC, Fs, 'r')
elseif(b(2)==1)
detecAPC = deteccion_APC (M2);
posiciones = find(detecAPC>0);
APCdetectados = size(posiciones)

116

DETECCIN AUTOMTICA DE ARRITMIAS MEDIANTE ANLISIS DE CARACTERSTICAS


Trabajo final de grado

axes(handles.axes1);
hold on
Representar(Tinicial, Tfinal, detecAPC, Fs, 'r')
axes(handles.axes2);
hold on
Representar(Tinicial, Tfinal, detecAPC, Fs, 'r')
else
errordlg('No pueden detectarse contracciones auriculares
prematuras para este paciente','ERROR')
end
posiciones=(posiciones./(360*60));
posiciones=round(posiciones.*100)./100;
fid=fopen('Deteccin de APCs.txt','w');
fprintf(fid, 'Deteccin de APCs: \n \nAPCs detectados:');
fprintf(fid, '%d \n \n', APCdetectados(1));
fprintf(fid, 'APC
Tiempo(min) \n');
for i=1:APCdetectados(1)
fprintf(fid,'%d
%f \n',i, posiciones(i));
end
fclose(fid);
elseif tipodeteccion==3
%DETECCION TAQUICARDIAS
Pulsaciones = get(handles.Taquicardia,'String');
Pulsaciones = str2double(Pulsaciones);
if(b(1)==1)
if (Pulsaciones==0)
errordlg('No se han podido determinar las ppm a partir de las
cuales pueden considerarse taquicardias ya que no se dispone de la edad
del paciente. Le rogamos introduzca un valor que considere
adecuado.','ERROR')
else
TAQUICARDIAS = deteccion_taquicardia (M1, Pulsaciones);
posiciones = find(TAQUICARDIAS>0);
TAQUICARDIASdetectadas = size(posiciones)
axes(handles.axes1);
hold on
Representar(Tinicial, Tfinal, TAQUICARDIAS, Fs, 'r')
axes(handles.axes2);
hold on
Representar(Tinicial, Tfinal, TAQUICARDIAS, Fs, 'r')
end
elseif(b(2)==1)
if (Pulsaciones==0)
errordlg('No se han podido determinar las ppm a partir de las
cuales pueden considerarse taquicardias ya que no se dispone de la edad
del paciente. Le rogamos introduzca un valor que considere
adecuado.','ERROR')
else
TAQUICARDIAS = deteccion_taquicardia (M2, Pulsaciones);
posiciones = find(TAQUICARDIAS>0);
TAQUICARDIASdetectadas = size(posiciones)

117

DETECCIN AUTOMTICA DE ARRITMIAS MEDIANTE ANLISIS DE CARACTERSTICAS


Trabajo final de grado

axes(handles.axes1);
hold on
Representar(Tinicial, Tfinal, TAQUICARDIAS, Fs, 'r')
axes(handles.axes2);
hold on
Representar(Tinicial, Tfinal, TAQUICARDIAS, Fs, 'r')
end
else
errordlg('No pueden detectarse taquicardias para este
paciente','ERROR')
end
posiciones=(posiciones./(360*60));
posiciones=round(posiciones.*100)./100;
fid=fopen('Deteccin de Taquicardias.txt','w');
fprintf(fid, 'Deteccin de Taquicardias: \n \nTaquicardias
detectadas:');
fprintf(fid, '%d \n \n', TAQUICARDIASdetectadas(1));
fprintf(fid, 'Taquicardia
Tiempo(min) \n');
for i=1:TAQUICARDIASdetectadas(1)
fprintf(fid,'%d
%f \n',i, posiciones(i));
end
fclose(fid);
else
%DETECCION BRADICARDIAS
if(b(1)==1)
BRADICARDIAS = deteccion_bradicardia (M1);
posiciones = find(BRADICARDIAS>0);
BRADICARDIASdetectadas = size(posiciones)
axes(handles.axes1);
hold on
Representar(Tinicial, Tfinal, BRADICARDIAS, Fs, 'r')
axes(handles.axes2);
hold on
Representar(Tinicial, Tfinal, BRADICARDIAS, Fs, 'r')
elseif(b(2)==1)
BRADICARDIAS = deteccion_bradicardia (M2);
posiciones = find(BRADICARDIAS>0);
BRADICARDIASdetectadas = size(posiciones)
axes(handles.axes1);
hold on
Representar(Tinicial, Tfinal, BRADICARDIAS, Fs, 'r')
axes(handles.axes2);
hold on
Representar(Tinicial, Tfinal, BRADICARDIAS, Fs, 'r')
else
errordlg('No pueden detectarse bradicardias para este
paciente','ERROR')
end
posiciones=(posiciones./(360*60));
posiciones=round(posiciones.*100)./100;

118

DETECCIN AUTOMTICA DE ARRITMIAS MEDIANTE ANLISIS DE CARACTERSTICAS


Trabajo final de grado

fid=fopen('Deteccin de Bradicardias.txt','w');
fprintf(fid, 'Deteccin de Bradicardias: \n \nBradicardias
detectadas:');
fprintf(fid, '%d \n \n', BRADICARDIASdetectadas(1));
fprintf(fid, 'Badricardia
Tiempo(min) \n');
for i=1:BRADICARDIASdetectadas(1)
fprintf(fid,'%d
%f \n',i, posiciones(i));
end
fclose(fid);
end
% --- Executes on button press in resetear.
function resetear_Callback(hObject, eventdata, handles)
% hObject
handle to resetear (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles
structure with handles and user data (see GUIDATA)
recuperar1=handles.recuperar1;
recuperar2=handles.recuperar2;
M1=recuperar1;
M2=recuperar2;
Tinicial = get(handles.Tinicial,'String');
Tinicial = str2double(Tinicial);
Tfinal = get(handles.Tfinal,'String');
Tfinal = str2double(Tfinal);
Fs = get(handles.Fs,'String');
Fs = str2double(Fs);
axes(handles.axes1);
hold off
Representar(Tinicial, Tfinal, M1, Fs, 'b')
axes(handles.axes2);
hold off
Representar(Tinicial, Tfinal, M2, Fs, 'b')
handles.M1=M1;
handles.M2=M2;
guidata(hObject, handles);

function Factor_Callback(hObject, eventdata, handles)


% hObject
handle to Factor (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles
structure with handles and user data (see GUIDATA)
% Hints: get(hObject,'String') returns contents of Factor as text
%
str2double(get(hObject,'String')) returns contents of Factor as
a double

119

DETECCIN AUTOMTICA DE ARRITMIAS MEDIANTE ANLISIS DE CARACTERSTICAS


Trabajo final de grado

% --- Executes during object creation, after setting all properties.


function Factor_CreateFcn(hObject, eventdata, handles)
% hObject
handle to Factor (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles
empty - handles not created until after all CreateFcns
called
% Hint: edit controls usually have a white background on Windows.
%
See ISPC and COMPUTER.
if ispc && isequal(get(hObject,'BackgroundColor'),
get(0,'defaultUicontrolBackgroundColor'))
set(hObject,'BackgroundColor','white');
end

function Taquicardia_Callback(hObject, eventdata, handles)


% hObject
handle to Taquicardia (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles
structure with handles and user data (see GUIDATA)
% Hints: get(hObject,'String') returns contents of Taquicardia as text
%
str2double(get(hObject,'String')) returns contents of
Taquicardia as a double
% --- Executes during object creation, after setting all properties.
function Taquicardia_CreateFcn(hObject, eventdata, handles)
% hObject
handle to Taquicardia (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles
empty - handles not created until after all CreateFcns
called
% Hint: edit controls usually have a white background on Windows.
%
See ISPC and COMPUTER.
if ispc && isequal(get(hObject,'BackgroundColor'),
get(0,'defaultUicontrolBackgroundColor'))
set(hObject,'BackgroundColor','white');
end

Funcin Representar:
function Representar(Tinicial, Tfinal, M, fs, color)
%pasamos el tiempo a segundos
Tinicialseg=Tinicial*60;
Tfinalseg=Tfinal*60;
%sacamos el nmero de muestras
Muestrainicial=Tinicialseg*fs;
Muestrafinal=Tfinalseg*fs;
%sacamos la longitud de M para obtener el vector TIME
samplesM=length(M);
TIME=(0:samplesM-1)/fs;
TIME=TIME/60;
120

DETECCIN AUTOMTICA DE ARRITMIAS MEDIANTE ANLISIS DE CARACTERSTICAS


Trabajo final de grado

%representamos
plot(TIME(Muestrainicial+1:Muestrafinal+1),
M(Muestrainicial+1:Muestrafinal+1), color);
xlabel('Time (min)', 'Fontsize', 10);
ylabel('Voltage (mV)', 'Fontsize',10);
xlim([TIME(Muestrainicial+1),TIME(Muestrafinal+1)]);
end

Funcin Inicializar:
function Inicializar
plot(0);
axis([0 30 -1 1]);
xlabel('Time (min)', 'Fontsize', 10);
ylabel('Voltage (mV)', 'Fontsize',10);
end

Funcin preprocesado:
function nueva=preprocesado (M, valor, n)
[C,L] = wavedec(M,n,valor); %descomposicn wavelet en n niveles
A = wrcoef('a',C,L,valor,n);
nueva=0;
for i=1:n
D = wrcoef('d',C,L,valor,i);
nueva=nueva+D;
end
end

Funcin Detectar Ondas R:


function [OndaR, ampR]= detectarOndasR(mediasuperior, dessuperior,M)
tR=find(M>=(mediasuperior+dessuperior));
inicioR=tR(1);
auxR=1;
OndaR=zeros(length(M),1);
for i=1:length(tR)-1
if(tR(i+1)>(tR(i)+1) || (i==length(tR)-1))
finR=tR(i);
aR=max(M(inicioR:finR));
for j=inicioR:finR
if(M(j)==aR)
posicionR=j;
end
end
inicioR=tR(i+1);
OndaR(posicionR)=aR;
posR(auxR)=posicionR;
ampR(auxR)=M(posicionR);
auxR=auxR+1;
end
end
end

121

DETECCIN AUTOMTICA DE ARRITMIAS MEDIANTE ANLISIS DE CARACTERSTICAS


Trabajo final de grado

Funcin Detectar Ondas Q:


function [OndaQ, ampQ]=detectarOndasQ(mediainferior, desinferior, M)
tQ=find(M<=(mediainferior-desinferior));
inicioQ=tQ(1);
auxQ=1;
OndaQ=zeros(length(M),1);
for i=1:length(tQ)-1
if(tQ(i+1)>(tQ(i)+1)|| (i==length(tQ)-1))
finQ=tQ(i); %fin de tramo donde se encuentra la onda Q
aQ=min(M(inicioQ:finQ)); %minimo de amplitud en ese tramo (PICO
DE ONDA Q)
for j=inicioQ:finQ
if(M(j)==aQ)
posicionQ=j;
end
end
inicioQ=tQ(i+1);
OndaQ(posicionQ)=aQ;%Aqu estn todos los valores de amplitud de
la seal
posQ(auxQ)=posicionQ;
ampQ(auxQ)=M(posicionQ);
auxQ=auxQ+1;
end
end
end

Funcin Detectar CVP:


function [CVPFINAL] = deteccion_CVP (M, porcentaje)
minimo=min(M)
superior=find(M>0);
for i=1:length(superior)
ampsuperior(i)=M(superior(i));
end
mediasuperior=mean(ampsuperior);
dessuperior=std(ampsuperior);
inferior=find(M<0);
for i=1:length(inferior)
ampinferior(i)=M(inferior(i));
end
mediainferior=mean(ampinferior);
desinferior=std(ampinferior);
%----------------------------Detectar OndasR----------------------------[OndaR, ampR]= detectarOndasR(mediasuperior, dessuperior,M);

122

DETECCIN AUTOMTICA DE ARRITMIAS MEDIANTE ANLISIS DE CARACTERSTICAS


Trabajo final de grado

%-----------------------------Detectar OndasQ---------------------------[OndaQ, ampQ]=detectarOndasQ(mediainferior, desinferior, M);


MediaQ=mean(ampQ)
DesviacionQ=std(ampQ)
factormaximo= (MediaQ - minimo)/DesviacionQ
factor= ((porcentaje*(factormaximo-1))/100)+1
%-------------------------------Detectar CVP----------------------------tCVP=find(OndaQ<=(MediaQ-(factor*DesviacionQ)));
CVP=zeros(length(M),1);
for i=1:length(tCVP)
posicionCVP=tCVP(i);%guardo la posicion donde se produce el CVP
CVP(posicionCVP)=OndaQ(posicionCVP);
end
CVPyR=CVP+OndaR;
CVPFINAL=zeros(length(M),1);
busqueda=find(CVPyR~=0);
for i=2:(length(busqueda)-1)
posicion=busqueda(i);
posicion1=busqueda(i-1);
posicion2=busqueda(i+1);
if((CVPyR(posicion))<0 && (CVPyR(posicion1))>0 &&
(CVPyR(posicion2))>0)
CVPFINAL(posicion)=-1;
end
end
end

Funcin Detectar APC:


function [APCFINAL] = deteccion_APC (M)
superior=find(M>0);
for i=1:length(superior)
ampsuperior(i)=M(superior(i));
end
mediasuperior=mean(ampsuperior);
dessuperior=std(ampsuperior);
inferior=find(M<0);
for i=1:length(inferior)
ampinferior(i)=M(inferior(i));
end
mediainferior=mean(ampinferior);
desinferior=std(ampinferior);

123

DETECCIN AUTOMTICA DE ARRITMIAS MEDIANTE ANLISIS DE CARACTERSTICAS


Trabajo final de grado

%----------------------------Detectar OndasR----------------------------[OndaR, ampR]= detectarOndasR(mediasuperior, dessuperior,M);


%-----------------------------Detectar OndasQ---------------------------[OndaQ, ampQ]=detectarOndasQ(mediainferior, desinferior, M);
ondas=OndaR+OndaQ;
positivo=1;
negativo=1;
for i=1:length(ondas)
if ondas(i)>0
if(negativo==1)
ondas(i)=ondas(i);
positivo=1;
negativo=0;
else
ondas(i)=0;
end
elseif ondas(i)<0
if(positivo==1)
ondas(i)=ondas(i);
positivo=0;
negativo=1;
else
ondas(i)=0;
end
else
end
end
posR=find(ondas>0); %posiciones en los que hay ondas R
difR=posR(2:length(posR))-posR(1:(length(posR)-1)); %diferencias en
muestras de esas posiciones (lo cerca o alejadas que estn unas de otras)
mediadifR=median(difR);
desdifR=std(difR);
%-----------------------------Detectar APC------------------------------tAPC=find(difR>=mediadifR+(0.75*desdifR)); %Posiciones de las diferencias
que se pueden considerar mayor de lo normal
aux=1;
APCFINAL=zeros(length(M),1);
for i=2:length(tAPC)
posicionAPC=tAPC(i); %Posicion de la APC en tAPC
diferencia=difR(posicionAPC); %Posicion de la APC en difR
valor=posR(posicionAPC); %Posicion de la APC en posR
if(difR(posicionAPC-1)<(mediadifR-(0.75*desdifR))) %Si la distancia
de la anterior onda R es menor de lo normal
APC(aux)=valor;

124

DETECCIN AUTOMTICA DE ARRITMIAS MEDIANTE ANLISIS DE CARACTERSTICAS


Trabajo final de grado

APCFINAL(valor)=1;
aux=aux+1;
end
end
MediaQ=mean(ampQ);
DesviacionQ=std(ampQ);
for i=1:length(APCFINAL)
if(APCFINAL(i)==0)
APCFINAL(i)=APCFINAL(i); %no hace nada
else
for j=i-216:i+216
if(ondas(j)<(MediaQ-(1.5*DesviacionQ)))
APCFINAL(i)=0;
end
end
end
end
end

Funcin Detectar Taquicardias:


function [TAQUICARDIAS] = deteccion_taquicardia (M, pulsaciones)
superior=find(M>0);
for i=1:length(superior)
ampsuperior(i)=M(superior(i));
end
mediasuperior=mean(ampsuperior);
dessuperior=std(ampsuperior);
inferior=find(M<0);
for i=1:length(inferior)
ampinferior(i)=M(inferior(i));
end
mediainferior=mean(ampinferior);
desinferior=std(ampinferior);
Factor=1/(pulsaciones/(60*360));
%----------------------------Detectar OndasR----------------------------[OndaR, ampR]= detectarOndasR(mediasuperior, dessuperior,M);
%-----------------------------Detectar OndasQ---------------------------[OndaQ, ampQ]=detectarOndasQ(mediainferior, desinferior, M);
ondas=OndaR+OndaQ;
%---------------------Clasificacin de complejos QRS----------------------

125

DETECCIN AUTOMTICA DE ARRITMIAS MEDIANTE ANLISIS DE CARACTERSTICAS


Trabajo final de grado

positivo=1;
negativo=1;
for i=1:length(ondas)
if ondas(i)>0
if(negativo==1)
ondas(i)=ondas(i);
positivo=1;
negativo=0;
else
ondas(i)=0;
end
elseif ondas(i)<0
if(positivo==1)
ondas(i)=ondas(i);
positivo=0;
negativo=1;
else
ondas(i)=0;
end
else
end
end
posR=find(OndaR>0); %posiciones en los que hay ondas R
difR=posR(2:length(posR))-posR(1:(length(posR)-1)) %diferencias en
muestras de esas posiciones (lo cerca o alejadas que estn unas de otras)
%-----------------------------Detectar TAQUICARDIAS----------------------TAQUICARDIAS=zeros(length(M),1);
aux=0;
for i=1:(length(difR)-1)
if(difR(i)<=Factor && difR(i+1)<=Factor)
if(aux==0)
posicion=posR(i);
TAQUICARDIAS(posicion)=1;
aux=1;
else
end
else
aux=0;
end
end
MediaQ=mean(ampQ);
DesviacionQ=std(ampQ);
for i=1:length(TAQUICARDIAS)
if(TAQUICARDIAS(i)==0)
TAQUICARDIAS(i)=TAQUICARDIAS(i); %no hace nada
else
for j=i-216:i+216
if(ondas(j)<(MediaQ-(1.5*DesviacionQ)))

126

DETECCIN AUTOMTICA DE ARRITMIAS MEDIANTE ANLISIS DE CARACTERSTICAS


Trabajo final de grado

TAQUICARDIAS(i)=0;
end
end
end
end
end

Funcin Detectar Bradicardias:


function [BRADICARDIAS] = deteccion_bradicardia (M)
superior=find(M>0);
for i=1:length(superior)
ampsuperior(i)=M(superior(i));
end
mediasuperior=mean(ampsuperior);
dessuperior=std(ampsuperior);
inferior=find(M<0);
for i=1:length(inferior)
ampinferior(i)=M(inferior(i));
end
mediainferior=mean(ampinferior);
desinferior=std(ampinferior);
pulsaciones = 50;
Factor=1/(pulsaciones/(60*360));
%----------------------------Detectar OndasR----------------------------[OndaR, ampR]= detectarOndasR(mediasuperior, dessuperior,M);
%-----------------------------Detectar OndasQ---------------------------[OndaQ, ampQ]=detectarOndasQ(mediainferior, desinferior, M);
ondas=OndaR+OndaQ;
positivo=1;
negativo=1;
for i=1:length(ondas)
if ondas(i)>0
if(negativo==1)
ondas(i)=ondas(i);
positivo=1;
negativo=0;
else
ondas(i)=0;
end
elseif ondas(i)<0
if(positivo==1)
ondas(i)=ondas(i);

127

DETECCIN AUTOMTICA DE ARRITMIAS MEDIANTE ANLISIS DE CARACTERSTICAS


Trabajo final de grado

positivo=0;
negativo=1;
else
ondas(i)=0;
end
else
end
end
posR=find(OndaR>0); %posiciones en los que hay ondas R
difR=posR(2:length(posR))-posR(1:(length(posR)-1)) %diferencias en
muestras de esas posiciones (lo cerca o alejadas que estn unas de otras)
%-----------------------------Detectar BRADICARDIAS----------------------BRADICARDIAS=zeros(length(M),1);
aux=0;
for i=1:(length(difR)-1)
if(difR(i)>=Factor && difR(i+1)>=Factor)
if(aux==0)
posicion=posR(i);
BRADICARDIAS(posicion)=1;
aux=1;
else
end
else
aux=0;
end
end
MediaQ=mean(ampQ);
DesviacionQ=std(ampQ);
for i=1:length(BRADICARDIAS)
if(BRADICARDIAS(i)==0)
BRADICARDIAS(i)=BRADICARDIAS(i); %no hace nada
else
for j=i-216:i+216
if(ondas(j)<(MediaQ-(1.5*DesviacionQ)))
BRADICARDIAS(i)=0;
end
end
end
end
end

128

DETECCIN AUTOMTICA DE ARRITMIAS MEDIANTE ANLISIS DE CARACTERSTICAS


Trabajo final de grado

ANEXO C: Manual de Usuario


La interfaz del programa es la siguiente:

Fig 72: Interfaz del programa

A continuacin se enumeran los elementos que presenta el programa:

Men archivo Permite abrir las seales en formato .mat, guardar el


trabajo realizado y salir del programa.

Fig 73: Men Archivo

129

DETECCIN AUTOMTICA DE ARRITMIAS MEDIANTE ANLISIS DE CARACTERSTICAS


Trabajo final de grado

Grficas de representacin Representa las diversas seales que se


emplean a lo largo del programa.

Fig 74: Grficas

130

DETECCIN AUTOMTICA DE ARRITMIAS MEDIANTE ANLISIS DE CARACTERSTICAS


Trabajo final de grado

Panel de opciones Permite seleccionar los distintos parmetros que sern


necesarios para procesar la seal.

Fig 75: Panel de opciones

En el programa se pueden visualizar dos zonas de trabajo claramente:

Visualizacin y reproduccin de las seales electrocardiogrficas.

Seleccin de parmetros con el fin de realizar el procesado de la seal.

131

DETECCIN AUTOMTICA DE ARRITMIAS MEDIANTE ANLISIS DE CARACTERSTICAS


Trabajo final de grado

En el panel de opciones se pueden diferenciar tres zonas:

Panel de preprocesado

Panel de variables

Panel de deteccin

Panel de preprocesado

Fig 76: Panel de preprocesado

Este panel se encarga de eliminar el ruido en la seal. En la parte superior se elige


el tipo de wavelet (db4, db5, sym4, bior 1.3, bior 6.8) y el nivel (desde el 1 hasta el 9) para
eliminar el baseline wander. Para realizar esta operacin y que su resultado se pueda
visualizar en las grficas se debe pulsar el botn Aplicar situado en la esquina inferior
derecha.
El botn denominado Denoise se encarga de eliminar el ruido de alta frecuencia.
Una vez pulsado aparece lo siguiente:

132

DETECCIN AUTOMTICA DE ARRITMIAS MEDIANTE ANLISIS DE CARACTERSTICAS


Trabajo final de grado

Fig 77: Ayuda para funcin Denoise

En esta pantalla el programa te explica que pasos debes realizar para utilizar la
funcin Denoise y conseguir un buen filtrado. Al terminar estos pasos se representan en
las grficas los resultados.
En la parte inferior de la Fig 54, se encuentra un botn llamado Seal Original, el
cual vuelve a mostrar en las grficas las seales originales sin ningn tipo de filtrado.

133

DETECCIN AUTOMTICA DE ARRITMIAS MEDIANTE ANLISIS DE CARACTERSTICAS


Trabajo final de grado

Panel de variables

Fig 78: Panel de variables

Este panel se encarga de cambiar diferentes variables que influyen en la


representacin de la seal. En la parte superior se pueden ver dos Edit Text en los cuales
se introduce el tiempo inicial y final que se quiere visualizar en las grficas. Se decidi
realizar de esta forma en lugar de con un zoom para poder visualizar las anomalas de una
forma ms clara. Sus valores por defecto son 0 y 30 (longitud en minutos de la seal) para
mostrar la seal al completo.
Hay diferentes filtros para que el usuario introduzca bien los valores, en los
siguientes casos aparece un mensaje de error:

Tiempo inicial o tiempo final menor que 0.

Tiempo inicial o tiempo final mayor que la longitud de la seal.

Tiempo final menor que Tiempo inicial.

En la parte inferior hay un Edit Text para introducir la frecuencia de muestreo (fs),
en este caso tiene un valor por defecto de 360, ya que las seales utilizadas en las pruebas
tenan esa frecuencia, pero esta puede ser cambiada para utilizar el programa con otras
seales que tengan otra frecuencia de muestreo.
Para que se realice este proceso se debe pulsar el botn Aplicar y entonces se
podrn apreciar los cambios en las grficas.

134

DETECCIN AUTOMTICA DE ARRITMIAS MEDIANTE ANLISIS DE CARACTERSTICAS


Trabajo final de grado

Panel de deteccin

Fig 79: Panel de deteccin

Este panel se encarga de detectar las arritmias propuestas. En la parte superior se


puede observar un men desplegable en el cual se pueden elegir: Contraccin Ventricular
prematura (CVP), Contraccin Auricular Prematura (APC), Taquicardias, Bradicardias.
En la parte inferior primero se puede encontrar un Edit Text en el cual se debe
introducir un factor de 0 a 100, este valor solamente en til para las Contracciones
Ventriculares prematuras, como se ha explicado en el apartado de METODOLOGA
Deteccin de Arritmias Deteccin de contracciones ventriculares prematuras (CVPs o
CVPs).
Por ltimo se puede observar otro Edit Text el cual es solamente til para detectar
las taquicardias. Ese valor es inicialmente cero, y al cargar la seal en funcin del sexo y la
edad del paciente se modifica. El usuario puede dejarlo de forma automtica como el
programa lo procesa, o puede cambiarlo en funcin de sus necesidades. Ese valor
determina el umbral en pulsaciones por minuto (ppm) a partir del cual se considera que
puede detectarse como una taquicardia. En algunos casos no se dispone de la edad del
paciente y este umbral automtico no puede ser calculado, en este caso aparecer un
mensaje de error por pantalla para que ese umbral sea introducido manualmente.

135

DETECCIN AUTOMTICA DE ARRITMIAS MEDIANTE ANLISIS DE CARACTERSTICAS


Trabajo final de grado

Fig 80: Mensaje de error cuando no se dispone de la edad del paciente

Para que pueda realizarse todo este proceso es necesario pulsar el botn Aplicar y
entonces se podr apreciar en las grficas los resultados. Adems se genera un archivo de
texto con los resultados. Este archivo tiene la siguiente estructura:

Fig 81: Ejemplo de archivo.txt devuelto por el programa

136