Você está na página 1de 22

Trabalho

Anlise ritmo cardaco ECG

Informtica Mdica
Aulas prticas

Departamento de Engenharia Informtica


Faculdade de Cincias e Tecnologia
Universidade de Coimbra

Jorge Henriques / Paulo de Carvalho

Dezembro de 2009

Informtica Mdica | TP4 ECG Ritmo Cardaco

ndice
1.

2.

Introduo
1.1.

Electrocardiograma (ECG).................................................................2

1.2.

Caracterizao do ECG......................................................................3

Algoritmo de deteco do ritmo cardaco


2.1.

4.

5.

Etapas do algoritmo ...........................................................................7

2.1.1.

Filtro passa banda............................................................................. 7

2.1.2.

Diferenciao e Potncia de 2 (quadrado) ........................................... 8

2.1.3.

Mdia mvel ..................................................................................... 8

2.1.4.

Limiar (threshold
threshold)..........................................................................
8
threshold

2.2.

3.

Modificaes ao algoritmo ..................................................................9

Implementao em Matlab

10

3.1.

Sinal ECG ........................................................................................ 10

3.2.

Filtro passa banda (passa baixo+passa alto).................................... 10

3.3.

Diferenciao e quadrado ................................................................. 12

3.4.

Mdia mvel..................................................................................... 14

3.5.

Limiar - Deteco de picos ............................................................... 15

3.6.

Deteco de picos no sinal original (ECG) ....................................... 16

Trabalho

19

4.1.

Objectivo principal........................................................................... 19

4.2.

Dados ............................................................................................... 19

4.3.

Melhoramentos................................................................................. 19

4.4.

Entrega ............................................................................................ 19

Bibliografia

{jh,pc}@dei.uc.pt

20

Informtica Mdica | TP4 ECG Ritmo Cardaco

1.

Introduo
Neste trabalho pretende-se desenvolver e implementar em MatLab um algoritmo
que permita efectuar a deteco automtica do ritmo cardaco, a partir de um
electrocardiograma (ECG).
A soluo do problema passa, essencialmente, pela deteco dos complexos QRS
e, em particular, do pico R. A partir dos vrios picos R detectados possvel
identificar os intervalos R-R, ou seja, a base para a determinao do ritmo
cardaco.

1.1. Electrocardiograma (ECG)

Figura 1- Electrocardiograma.
Muito resumidamente um electrocardiograma regista a actividade elctrica do
corao (principalmente durante as fases de contraco-sstole e distensodistole). Atravs da anlise dos seus componentes (ondas P, T, complexo QRS,
intervalos PR, intervalo RR, etc) possvel analisar a condio cardaca de um
indivduo.

{jh,pc}@dei.uc.pt

Informtica Mdica | TP4 ECG Ritmo Cardaco

Quanto forma de adquirir o ECG distinguem-se vrios tipos/classificaes, em


funo de:

 Durao do tempo de aquisio: electrocardiograma normal (minutos),


Holter (24) horas;

 Nmero de derivaes/configurao: 1 lead, 3 leads, 12 leads;


 Frequncia de amostragem: monitorizao (100Hz), anlise (250Hz360Hz), preciso (>1000Hz) usada, por exemplo, na anlise ondas T;

 Objectivo clnico: normal, ECG de esforo, ambulatrio.

Figura 2 - Equipamento porttil de aquisio (3 leads).

1.2. Caracterizao do ECG


Num ECG regular cada ciclo cardaco constitudo por um conjunto de ondas,
correspondendo cada uma delas a uma actividade cardaca especfica. Em
concreto (ver Figura 3):

 Onda P: a primeira onda de cada batimento. Esta onda corresponde


despolarizao das aurculas. Uma onda P irregular ou ausente pode
indicar a presena de uma anomalia cardaca destacando-se, pela sua
incidncia, a fibrilhao auricular.

 Complexo QRS: aps a onda P, tm origem as ondas Q, R e S.


comum estas trs ondas serem tratadas como um conjunto, conhecido
como o complexo QRS. Este complexo surge devido corrente elctrica
{jh,pc}@dei.uc.pt

Informtica Mdica | TP4 ECG Ritmo Cardaco

que causa a contraco dos ventrculos, que por sua vez causa o
bombeando do sangue para o corpo. Por envolver uma maior massa
muscular, a actividade elctrica correspondente ao complexo QRS
resulta na deflexo mais significativa no ECG. A anomalia do complexo
QRS pode ser indicador de patologias consideradas graves.

 Onda T: corresponde repolarizao dos ventrculos e preparao para


um novo ciclo cardaco. Refira-se que a repolarizao das aurculas no
visvel, uma vez que se encontra sobreposta com o complexo QRS.

Figura 3 Ondas presentes num ECG regular, e respectivos intervalos. [fonte: Wikipedia]

Para alm destas ondas, ainda definido um conjunto de segmentos, como


indicado na Figura 3.

 O intervalo PR definido como o intervalo desde o incio da onda P at


ao incio do complexo QRS. O segmento PR, por sua vez, definido
com sendo o intervalo entre o final da onda P e o inicio do complexo
QRS.

 O complexo QRS (conjunto das ondas Q, R e S) comea por definio


no incio da onda Q e termina no final da onda S. Tem uma durao
temporal de aproximadamente 0.1 segundos

{jh,pc}@dei.uc.pt

Informtica Mdica | TP4 ECG Ritmo Cardaco

 O segmento ST o intervalo existente entre o final da onda S e o incio


da onda T. Tipicamente, tem uma durao de cerca de 0.08 segundos
(aproximadamente o mesmo do segmento PR).

 O intervalo QT definido desde o incio do complexo QRS at ao fim da


onda P (durao aproximada de 0.4 segundos).

 O intervalo RR definido por dois picos R sucessivos. Para os


objectivos do trabalho em causa, determinao do ritmo cardaco, ser o
intervalo a determinar.
Note-se que o ECG (Figura 4) nem sempre regular, podendo apresentar um
ritmo irregular resultante de uma alterao na sequncia normal dos impulsos
elctricos iniciais e de conduo (Figura 5).

Figura 4 - Ritmo normal.

Figura 5 - Ritmo irregular (arritmia).

De uma forma geral podero ocorrer uma grande diversidade de anomalias ou


irregularidades, designadas por arritmias. Estas so usualmente divididas em dois
grandes subgrupos, as arritmias supraventriculares e as arritmias ventriculares.

{jh,pc}@dei.uc.pt

Informtica Mdica | TP4 ECG Ritmo Cardaco

2.

Algoritmo de deteco
deteco do ritmo cardaco
Existem vrios algoritmos para a deteco do ritmo cardaco. Um dos mais
utilizados (a maioria dos monitores clnicos implementa este algoritmo ou
uma sua modificao) baseia-se na ideia proposta por Pan e Tompkins [1].
Fundamentalmente, atravs da deteco da energia do sinal ECG o algoritmo
detecta os picos de maior energia, correspondentes aos picos R (do complexo
QRS).

Figura 6 Deteco dos picos R.

Alm disso, como se mostra na figura seguinte, as componentes de frequncia do


complexo QRS (alvo de estudo) localizam-se principalmente na gama [5-15] Hz.
Por esta razo o algoritmo implementa, numa primeira fase, um processo de
filtragem do sinal na gama de interesse.

ECG total

Movimento

Complexo
QRS

Musculos: Rudo

Ondas
P-T

10

15

20

25

30

Freq. (Hz)

Figura 7 Componentes de frequncia de um ECG normal.

{jh,pc}@dei.uc.pt

40

Informtica Mdica | TP4 ECG Ritmo Cardaco

2.1. Etapas do algoritmo


O algoritmo consiste em quatro passos fundamentais: i) filtro passa banda, ii)
diferenciao e potencia, iii) filtro de mdia mvel iv) comparao com um
limiar.
Os trs primeiros passos permitem determinar a energia do sinal, o ltimo a
deteco dos picos de maior energia, portanto do pico R.

2
3
Figura 8 Passos fundamentais do algoritmo de deteco.

2.1.1.

Filtro passa banda

Permite filtrar as componentes de frequncia nos quais o complexo QRS mais


relevante. Permite ainda eliminar a influncia das ondas P e T assim como
outros componentes (rudo, por exemplo). A gama [5-15] Hz uma opo comum

ECG

Motion
artefact

QRS
complex

Muscle noise

P-T
waves

10

15

20

25

30

Freq. (Hz)

Figura 9 Zona de interesse do filtro passa-banda (complexo QRS).


{jh,pc}@dei.uc.pt

40

Informtica Mdica | TP4 ECG Ritmo Cardaco

2.1.2.

Diferenciao e Potncia de 2 (quadrado)

A operao de diferenciao consiste basicamente num filtro passa alto. Uma vez
que os picos QRS apresentam a maior variao do sinal, a diferenciao do sinal
ECG permite salientar a presena do complexo QRS.
A operao de potenciao (quadrado) tem por finalidade conseguir que os dados
sejam no negativos.

2.1.3.

Mdia mvel

, na prtica, uma operao de filtragem, que permite eliminar componentes


indesejveis, para que s as mais significativas sejam tidas em conta.

2.1.4.

Limiar (t
threshold)
hreshold

A partir das fases anteriores obtm-se um sinal de energia. A partir deste sinal, e
por comparao com um determinado limiar, possvel determinar os picos de
maior energia do sinal. O clculo do limiar de deteco, procura ser independente
do sinal, permitindo idealmente o seu ajustamento a variaes do sinal a analisar.

 Se sinal energia > threshold


existe um pico de energia, logo deteco de QRS

 Se sinal energia < threshold


no considerado um pico de energia

Figura 10 Comparao do sinal energia com um dado limiar.

{jh,pc}@dei.uc.pt

Informtica Mdica | TP4 ECG Ritmo Cardaco

2.2. Modificaes ao algoritmo


No sentido de melhorar os resultados do algoritmo original (que na verdade
implementa uma estratgia adaptativa de threshold) vrias (milhares!!) de
modificaes tem sido propostas.
Por exemplo, a verso seguinte [1] considera dois limiares: th1 e th2. Estes
limiares so automaticamente ajustados de modo a flutuarem sobre o rudo. O
limiar mais alto (th1) usado numa primeira anlise do sinal. O limiar de
deteco mais baixo (th2) utilizado quando no detectado um complexo QRS
durante um perodo pr-definido. Neste caso utilizada uma tcnica de pesquisa
no sinal para trs (tempo passado) procurando candidatos a complexo QRS
(tcnica de backsearch). Os limiares aplicados ao sinal so actualizados segundo
as seguintes equaes:
spki = 0.125 peaki + 0.875 spki

: se peaki considerado pico de sinal

npki = 0.125 peaki + 0.875 npki

: se peaki considerado pico de rudo

th1 = 2 npki + 0.125 (spki npki )

th 2 = 0.5 th1

Nas equaes anteriores peaki representa um pico detectado sada do integrador


de mdia mvel. O valor spki um pico que o algoritmo identificou como
complexo QRS. O pico npki um pico no relacionado com o complexo QRS
(onda T, por exemplo), portanto de rudo. Os limiares so actualizados de acordo
com estes valores de spki e npki. Assim, quando um pico identificado, deve ser
classificado como pico de sinal ou de rudo. Para ser classificado como um pico de
sinal o pico detectado deve exceder o valor de th1 numa primeira anlise ou o
valor th2 se for utilizada o backsearch.
Nota: para uma explicao mais pormenorizada deste algoritmo consultar [1].

{jh,pc}@dei.uc.pt

Informtica Mdica | TP4 ECG Ritmo Cardaco

3.

Implementao em Matlab
3.1. Sinal ECG
Assume-se existir um sinal ECG, adquirido com uma determinada frequncia de
amostragem fs.
load ecg.dat

0.9
0.85
0.8
0.75
0.7
0.65
0.6
0.55
0.5
0.45

0.5

1.5

2.5

3.5

4.5

3.2. Filtro passa banda (passa baixo+passa alto)


Um filtro passa banda pode ser obtido custa de dois filtros em srie: um passa
alto e um passo baixo. Em Matlab pode-se usar o funo butter (filtro de
Butterworth) para o clculo dos coeficientes do filtro.
Note-se que o Matlab usa a frequncia normalizada no intervalo [0..1]
correspondendo aos valores [0 fs/2].

{jh,pc}@dei.uc.pt

10

Informtica Mdica | TP4 ECG Ritmo Cardaco

Passa baixo de 4ordem (frequncia de corte 20Hz)


ordem=4;
wc= 20;
fc= wc/(0.5*fs);

%.. ordem do filtro


%.. frequncia de corte
%.. normalizao da frequncia

[b,a]=butter(ordem,fc); %.. parmetros filtro passa-baixo


e1= filter(b, a, ecg);
%.. filtragem do sinal
Passa alto de 4ordem (frequncia de corte 5Hz)
ordem=4;
wc= 5;
fc= wc/(0.5*fs);
[b,a]=butter(ordem,fc,'high');
e2= filter(b,a, e1);
Mostra-se agora os sinais

e1- resultante da passagem de ECG pelo filtro passa baixo

LOW PASS FILTER


1

0.8

0.6

0.4

0.2

-0.2

-0.4

{jh,pc}@dei.uc.pt

0.5

1.5

2.5

11

3.5

4.5

Informtica Mdica | TP4 ECG Ritmo Cardaco

 e2- resultante da passagem de e1 pelo filtro passa alto


Note-se que desta forma o sinal e2 resulta da passagem do ECG por um filtro
passa banda (passa baixo seguido de um passa alto).

HIGH+LOW PASS FILTER


1
0.8
0.6
0.4
0.2
0
-0.2
-0.4
-0.6

0.5

1.5

2.5

3.5

4.5

3.3. Diferenciao e quadrado


Podem ser usadas vrias aproximaes para a derivada.
De primeira ordem:
dx (k ) =

x (k + 1) x (k )
T

De segunda ordem:
dx (k ) =

2x (k + 2) + x (k + 1) x (k 1) 2x (k 2)
T

A varivel x(k) representa o sinal ECG, no instante discreto k. e T o intervalo de


discretizao (T=1/fs). Admitindo que os sinais so adquiridos a uma frequncia
fs, T=1, uma vez que k+1-k=1. Logo
dx (k ) = x (k + 1) x (k )

ou
dx (k ) = 2x (k + 2) + x (k + 1) x (k 1) 2x (k 2)

{jh,pc}@dei.uc.pt

12

Informtica Mdica | TP4 ECG Ritmo Cardaco

A funo diff, existente no Matlab implementa directamente a operao de


diferenciao.
e3= diff(e2);
%.. derivada primeira ordem
e4= 50*e3.^2;
%.. potenciao.
% A multiplicao por 50 s por questes de visualizao

Segue-se o resultado da diferenciao (lils)

DIFFERENTIATION+SQUARE
1.2

0.8

0.6

0.4

0.2

-0.2

{jh,pc}@dei.uc.pt

0.5

1.5

2.5

13

3.5

4.5

Informtica Mdica | TP4 ECG Ritmo Cardaco

Segue-se o resultado da diferenciao (lils)+quadrado do sinal e2 (vermelho).

DIFFERENTIATION+SQUARE
1.2

0.8

0.6

0.4

0.2

-0.2

0.5

1.5

2.5

3.5

4.5

3.4. Mdia mvel


De forma a eliminar os vrios picos, o mesmo dizer, suavizar o sinal obtido
no passo anterior procede-se a implementao de uma mdia mvel. Assim, em
cada instante o valor actual considerado como sendo a mdia dos ltimos N
valores.
usual usar como ltimos valores os pontos que correspondam largura
(temporal) de um complexo QRS (sensivelmente 0.2 segundos).
Da mesma forma que as anteriores, implementa-se a mdia mvel recorrendo a
um filtro como se indica (curva vermelha na figura seguinte). Este na verdade
define a energia do sinal.
timeWindow= 0.2;
N = fix(timeWindow*fs);
b = (1/N)*ones(1,N);
a = 1;
e5= filter(b,a, e4);
{jh,pc}@dei.uc.pt

%.. largura janela


%.. numero inteiro
%.. mdia movel
14

Informtica Mdica | TP4 ECG Ritmo Cardaco

MOVING AVERAGE FILTER


1

0.8

0.6

0.4

0.2

-0.2

-0.4

0.5

1.5

2.5

3.5

4.5

3.5. Limiar - Deteco de picos


Uma vez obtido o sinal de energia do ECG (figura anterior) considera-se que
existe a ocorrncia de um pico sempre que o sinal ultrapassa um determinado
limite (threshold). Por exemplo pode-se como limiar o valor 70% do valor mdia
da energia.
threshold = 0.7*mean(e5)
Sempre que ocorre uma transio (ver figura abaixo) no valor da energia de
valores inferiores ao limiar para valores superiores, identifica-se uma possvel
localizao do pico R.
0.025

0.02

0.015

0.01

0.005

Treshold
0
0

{jh,pc}@dei.uc.pt

200

400

600

15

800

1000

1200

1400

Informtica Mdica | TP4 ECG Ritmo Cardaco

Energy points
1

0.8

0.6

0.4

0.2

-0.2

-0.4

200

400

600

800

1000

1200

1400

Nota:
Uma vez detectado o incio de um pico, deve-se esperar um determinado tempo
para iniciar a deteco do seguinte. Este facto justifica-se porque impossvel do
ponto de vista fisiolgico que outro pico ocorra antes de um certo intervalo de
tempo (aproximadamente entre 0.2 e 0.3 segundos).
delay = 0.3*fs

3.6. Deteco de picos no sinal original (ECG)


As vrias etapas de processamento (filtros,

diferenciador, mdia mvel)

introduzem um atraso entre o sinal original (ECG) e o final (e5-energia), como se


mostra na figura anterior (original-azul, energia-verde).
Assim, uma vez detectado o pico de energia (cruz vermelha no sinal de energia )
procura-se o pico correspondente ao QRS no ECG original. Para tal determina-se
o mximo do sinal original um determinado intervalo de tempo para trs.
backSearch = 0.5*fs
{jh,pc}@dei.uc.pt

16

Informtica Mdica | TP4 ECG Ritmo Cardaco

Finalmente determina-se os picos R.

R peaks
0.9
0.85
0.8
0.75
0.7
0.65
0.6
0.55
0.5
0.45

{jh,pc}@dei.uc.pt

200

400

600

800

17

1000

1200

1400

Informtica Mdica | TP4 ECG Ritmo Cardaco

O resultado final a mostrar ao utilizador ser determinado com base na durao


total do sinal e do nmero de picos detectados. Exemplo:
>> qrsdetection

==============================================
----------Duracao: 5 segundos
----------- Num Batimentos: 5
----------bat/min: 60
==============================================
>>

{jh,pc}@dei.uc.pt

18

Informtica Mdica | TP4 ECG Ritmo Cardaco

4.

Trabalho
4.1. Objectivo principal
O objectivo final do programa , para um dado sinal ECG, permitir a
visualizao do ritmo cardaco ao utilizador.
Exemplo
Ritmo cardaco:

65 batimentos por minuto

Alm da implementao completa do algoritmo atrs descrito espera-se portanto


todos os mecanismos adicionais para dar resposta ao objectivo proposto.

4.2. Dados
Para o efeito so-lhe fornecidos (ecgData.rar-pgina da disciplina) um conjunto
de sinais ECG, adquiridos a uma frequncia de 250 Hz.

4.3. Melhoramentos
Para alm do algoritmo original pode, caso deseje, implementar algumas
modificaes no seu algoritmo. Eis algumas sugestes:

 Tal como nos monitores clnicos o ritmo cardaco poder ser actualizado
e visualizado em cada batimento e no apenas no final. Neste caso pode
usar em cada instante a mdia dos ltimos N batimentos (N
compreendido habitualmente entre 5 a 8 batimentos).

 Implementar mecanismos adaptativos no estabelecimento do limiar.


 Outros que considere relevantes.

4.4. Entrega
Este trabalho no para entregar.
{jh,pc}@dei.uc.pt

19

Informtica Mdica | TP4 ECG Ritmo Cardaco

5.

Bibliografia
Disponvel na pgina da disciplina.

[1] Pan J. and J. Tompkins, A Real-Time QRS Detection Algorithm, IEEE


Transactions on Biomedical Engineering., 32, pp 230-236, 1985.
Na seco Trabalhos
TP 5 - Ritmo Cardaco

(enunciado trabalho prtico)

Na seco Material de Apoio


5. Electrocardiograma

(apresentao do ponto de vista clnico)

5.1 Deteco ritmo cardaco

(algoritmo Pan Tompokins)

5.2 Filtros Digitais

(introduo filtros digitais)

5.3 Artigo Pan Tompkins

(artigo original de Pan Tompokins)

5.4 ECG (dados)

(dados para teste)

5.5 ECG. Matlab exemplos

(filtros, rudo)

{jh,pc}@dei.uc.pt

20

Informtica Mdica | TP4 ECG Ritmo Cardaco

{jh,pc}@dei.uc.pt

21

Você também pode gostar