Sunteți pe pagina 1din 66

Universitatea Politehnica Bucures, ti

Facultatea de Automatică s, i Calculatoarei


Departamentul de Automatică şi Ingineria Sistemelori

Lucrare de licent, ă
Procesare de semnal ECG

Coordonator:
Absolvent:
Prof. dr. ing. Radu Vărbanescu
Dan Iorga
Asis. drd. ing. Daniel Rosner

Bucures, ti, 2013


Cuprins

1 Introducere 6

2 Inima s, i Electrocardiografia 9

2.1 Anatomia cordului . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9

2.2 Structura inimii . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10

2.3 Sistemul excitoconductor al inimii. . . . . . . . . . . . . . . . . . . . . . . 12

2.4 Electrocardiograma . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13

2.5 Unde s, i intervale . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14

3 Solut, ii hardware 17

3.1 Olimex Shield . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17

3.2 Solut, ie alternativă . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20

4 Filtrarea zgomotului 22

4.1 Variat, ia componentei continue . . . . . . . . . . . . . . . . . . . . . . . . 22

4.1.1 Filtru FIR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23

4.1.2 Filtru IIR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25

4.1.3 Forward-backward IIR filtering . . . . . . . . . . . . . . . . . . . . 26

4.2 Zgomotul de ret, ea . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27

1
4.2.1 Filtru linear - alocare manuala a zerourilor s, i polilor . . . . . . . . 28

4.2.2 Filtru linear - Cebâs, ev . . . . . . . . . . . . . . . . . . . . . . . . . 31

4.2.3 Filtru neliniar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33

4.3 Filtru Savitzky-Golay . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35

5 Detect, ia caracteristicilor 39

5.1 Detect, ia complexului QRS . . . . . . . . . . . . . . . . . . . . . . . . . . . 39

5.1.1 Algoritmul Pan-Tomkins . . . . . . . . . . . . . . . . . . . . . . . . 40

5.1.2 Transformata Fourier de timp scurt . . . . . . . . . . . . . . . . . . 41

5.1.3 Undine . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43

5.2 Detect, ia altor caracteristici . . . . . . . . . . . . . . . . . . . . . . . . . . . 46

5.2.1 Amplitudinea s, i pozit, ia . . . . . . . . . . . . . . . . . . . . . . . . 46

5.2.2 Detect, ia intervalelor . . . . . . . . . . . . . . . . . . . . . . . . . . 46

6 Implementare Labview 49

6.1 Structura programului . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49

6.2 Rezultate filtrare . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51

6.3 Interpretarea rezultatelor . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52

7 Concluzii s, i direct, ii de continuare 53

A Cod Matlab 55

B Cod Labview 61

2
Listă de figuri

2.1 Fat, a diafragmatică a cordului. . . . . . . . . . . . . . . . . . . . . . . . . . 11

2.2 Sistemul excitoconducător. . . . . . . . . . . . . . . . . . . . . . . . . . . . 13

2.3 Forma generală a unui semnal de EKG. . . . . . . . . . . . . . . . . . . . . 14

2.4 Frecvent, e importante EKG . . . . . . . . . . . . . . . . . . . . . . . . . . . 15

3.1 Scutul de EKG disponibil de la Olimex. . . . . . . . . . . . . . . . . . . . . 18

3.2 Semnal nefiltrat Olimex . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19

3.3 Brăt, ările antistatice necesare pentru EKG. . . . . . . . . . . . . . . . . . . 19

3.4 Interfat, a ElectricGuru disponibilă pe site-ul Olimex . . . . . . . . . . . . . 20

3.5 Schema circuitului de achizit, ie de semnal . . . . . . . . . . . . . . . . . . . 20

4.1 Caracteristica de modul a unui filtrul FIR de ordinul 10, proiectat folosind
o fereastră gausiană. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24

4.2 Caracteristica de modul a unui filtrul FIR de ordinul 100, proiectat folosind
o fereastră gausiană. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25

4.3 Caracteristica de modul a unui filtrul FIR de ordinul 1800, proiectat folosind
o fereastră gausiană. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25

4.4 Caracteristica de modul a unui filtrul IIR de ordinul 3, de tip Cebasev. . . 26

4.5 Eliminarea componentei continue . . . . . . . . . . . . . . . . . . . . . . . 27

4.6 Semnalul achizitionat de la primul prototip al EKG-ului. După cum se


vede, este foarte perturbat de către zgomotul de ret, ea. . . . . . . . . . . . 28

3
4.7 Zerourile s, i polii filtrului de 50 Hz. . . . . . . . . . . . . . . . . . . . . . . 29

4.8 Functia pondere a filtrului proiectat. . . . . . . . . . . . . . . . . . . . . . 30

4.9 Caracteristica de modul a filtrului proiectat. . . . . . . . . . . . . . . . . . 30

4.10 Rezultatul filtrarii 50Hz cu alocarea manuala a polilor . . . . . . . . . . . . 31

4.11 Functia pondere a filtrului proiectat. . . . . . . . . . . . . . . . . . . . . . 32

4.12 Caracteristica amplitudine-pulsat, ie. . . . . . . . . . . . . . . . . . . . . . . 32

4.13 Rezultaul filtrului de 50Hz Cebasev . . . . . . . . . . . . . . . . . . . . . . 33

4.14 Rezultatul filtrării de 50Hz . . . . . . . . . . . . . . . . . . . . . . . . . . . 35

4.15 Principiul filtrului Savitzky-Golay . . . . . . . . . . . . . . . . . . . . . . . 37

4.16 Rezultatul filtrării datelor achizit, ionate . . . . . . . . . . . . . . . . . . . . 37

5.1 Schema bloc a algoritmului Pan-Tomkins . . . . . . . . . . . . . . . . . . . 40

5.2 Detectarea complexului QRS cu ajutorul algoritmului Pan-Tomkins . . . . 41

5.3 Aplicarea ferestrei in cazul STFT. . . . . . . . . . . . . . . . . . . . . . . . 42

5.4 Aplicarea CWT asupra semnalului . . . . . . . . . . . . . . . . . . . . . . 44

5.5 Rezultatul căutării vârfului undei R folosind undine . . . . . . . . . . . . . 45

5.6 Rezultatul căutării celorlalte caracteristici . . . . . . . . . . . . . . . . . . 47

6.1 Interfata Labview creata . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49

6.2 Schema bloc a programului Labview . . . . . . . . . . . . . . . . . . . . . . 50

6.3 Rezultatele finale ale filtrării . . . . . . . . . . . . . . . . . . . . . . . . . . 52

B.1 Achizitia de date . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61

B.2 Aplicarea algoritmului Pan-Tomkins . . . . . . . . . . . . . . . . . . . . . . 62

B.3 Aplicarea transformatei undine . . . . . . . . . . . . . . . . . . . . . . . . 63

4
Listă de tabele

2.1 Scurtă descriere a caracteristicilor semnalului EKG . . . . . . . . . . . . . 16

6.1 Interpretarea rezultatelor . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52

5
1. Introducere

Prin această lucrare am dorit să găsesc o metodă care să monitorizeze ı̂n timp real
starea de sănătate a pacient, ilor ce suferă de afect, iuni cardiace. Am analizat s, i ulterior
implementat diferite tehnici de filtrare de zgomot s, i extragere de caracteristici pentru
realizarea unui sistem eficient, care să ajute medicii să identifice mai us, or posibilele boli
ce pot afecta pacient, i. Pentru analiza semnalelor s, i proiectarea filtrelor am folosit Matlab
iar pentru implementarea softului de monitorizare am folosit Labview ı̂n care am inserat
cod de Matlab.

Funct, ionarea corpului uman se bazează pe semnale de origine electrică, chimică


sau acustică. Astfel de semnale oferă informat, ie ce nu poate fi percepută imediat, aceasta
fiind codată ı̂n structura semnalului. Informat, ia trebuie descifrată ı̂nainte ca semnalului
să ı̂i fie atribuită o interpretare. Aceasta informat, ie este utilă pentru diagnosticarea
diverselor boli. Uneori diagnosticarea este facilă deoarece presupune doar inspect, ia vizuală
a semnalului tipărit pe hârtie sau afis, at pe monitorul unui calculator. Dar, există s, i
semnale a căror complexitate este sporită s, i care necesită o procesare suplimentară.

Des, i electrocardiograma a fost descoperită acum mai bine de 100 de ani, ea


rămâne una dintre cele mai importante unelte pentru medici. Studiul EKG-ului poate oferi
informat, ie relevantă despre starea de sănătate a pacientului. În prezent analiza acestui
semnal se face pe hârtie milimetrică de către un medic specialist, acest proces necesitând
mult timp s, i efort. Am dorit să realizez un sistem care să us, ureze munca medicilor s, i chiar
să ofere informat, ii de bază neinit, iat, ilor. Des, i tehnicile de procesare de semnal au evoluat
semnificat ı̂n ultima perioadă iar automatizarea diagnosticării afect, iunilor pacient, ilor este
facilitată din ce ı̂n ce mai mult, niciodată nu va fi eliminat complet medicul din procesul de
diagnosticare. Astfel, nu am ı̂ncercat să realizez o diagnosticare completă a pacientului
(deoarece acest lucru ar fi imposibil) dar am ı̂ncercat să ofer cât mai multe informat, ii
relevante despre pacient s, i să semnalez posibilele anomalii care apar ı̂n electrocardiograma
pacientului.

Unu din motivele principale pentru utilizarea analizei asiste de calculator a semnalului
ECG este capacitatea de a ı̂mbunătăt, ii calitatea semnalului.Indiferent de performant, a
echipamentului fizic, semnalul obt, inut nu va fi niciodată perfect. Dificultatea realizării
filtrelor analogice de ordin mare face indispensabilă procesarea digitală a semnalului.
Discretizarea s, i cuantificarea produc aliere ce trebuie eliminat pe cât posibil. Dezvoltarea
echipamentelor numerice s, i mărirea semnificativă a puterii de calcul a us, urat considerabil

6
tot procesul de prelucrare. Până s, i dispozitivele de foarte mici dimensiuni, precum
telefoanele mobile, au suficientă putere pentru a procesa cantităt, i mari de semnal.

Motivul principal pentru care am vrut să realizez această lucrare de licent, ă a
fost dorint, a de a aplica ı̂n practică cunos, tint, ele de prelucrare de semnal acumulate ı̂n
facultate. A durat destul de mult până mi-am consolidat cunos, tint, ele teoretice s, i am
reus, it să implementez primul filtru digital, dar după acel moment, totul a mers destul de
fluid iar rezultatele au ı̂nceput să apară. Init, ial am dorit să realizez ı̂ntreaga implementare
ı̂n Matlab dar ulterior am realizat că Labview oferă posibilităt, i de procesare ı̂n timp real
superioare Matlab.

Implementarea hardware este explicată foarte pe scurt. Am dorit să mă axez
doar pe partea de procesare de semnal. În momentul de fat, ă există suficient de multe
solut, ii pe piat, ă care facilitează achizit, ia de semnal. Printre producătorii care oferă un
astfel de sistem se numără Olimex, Texas Instruments sau Freescale.

Testele au fost realizate init, ial pe semnalele din baza de date MIT ce se poate
găsi la adresa www.physionet.org iar ulterior au fost realizate pe semnale culese de la un
dispozitiv hardware. Au existat anumite probleme ı̂n tranzit, ia de la semnalele din baza
de date la semnale achizit, ionate ı̂n timp real, iar unele filtre s-au comportat diferit dar ı̂n
cele din urmă, problemele au fost rezolvate. În foarte multe teste am folosit o plăcut, ă de
dezvoltare Arduino ı̂mpreună cu un scut de EKG produs de Olimex .

O mare problemă a fost condit, ionarea semnalului. Des, i aparent neimportantă,


condit, ionare semnalului este un proces esent, ial pentru analiza ulterioară a semnalului.
Dorint, a principală a fost să nu distorsionez semnalul achizit, ionat s, i să lucrez pe cât
posibil ı̂n timp real. Pentru partea de extragere de caracteristici din semnal, după destul
de multă documentat, ie, am ajuns la concluzia că des, i algoritmi precum cel publicat ı̂n
(Pan and Tomkins, 1985), sau utilizarea STFT oferă rezultate bune, tehnici moderne de
analiză timp-frecvent, ă precum Tranformata Discretă Undine oferă cele mai bune rezultate.
După ce am extras aceste caracteristici,am ı̂ncercat să raportez orice fel de anomalie
ı̂ntâmpinată. Aceste anomalii trebuie verificate de către medic, deoarece un inginer nu
poate pune un diagnostic asupra pacientului.

După ce am ı̂nceput să utilizez undine, precizia măsurătorilor s-a ı̂mbunătăt, it


considerabil iar rezultatele au fost peste as, teptări. Pe viitor, solut, ia poate fi portată ı̂n
alt limbaj de programare mai portabil precum C s, i implementată pe un telefon mobil,
realizând astfel un sistem mobil care să ajute la monitorizarea pacient, ilor ce suferă de
afect, iuni cardiace.

Identificarea pacient, ilor care suferă de anumite boli cardiace a devenit un factor
important pentru multe t, ări. Detectarea bolilor ı̂n indivizi care nu prezintă semne sau
simptome poate fi critic ı̂n prevenirea deteriorării calităt, ii viet, i. În ultimii ani s-au
dezvoltat din ce ı̂n ce mai multe unelte pentru identificarea anumitor afect, iuni. Diagnosticarea
timpurie poate mări considerabil s, ansa de ı̂nsănătos, ire. As, adar rolul inginerului este din
ce ı̂n ce mai important ı̂n medicină.

7
O altă ramură a medicinii care devine din ce ı̂n ce mai importantă este telemedicina.
În unele zone greu accesibile precum Delta Dunării la noi ı̂n România, accesul medicilor
este ı̂ngreunat considerabil. Din acest motiv, unelte eficiente pentru diagnosticarea la
distant, ă devin din ce ı̂n ce mai importante. Echipaje ce nu cont, in un medic specialist
sunt folosite ı̂n acest caz pentru deplasarea la pacient. Aces, tia trebuie să fie dotat, i ı̂n
schimb cu echipamente precise cu posibilitatea de a transmite informat, ia achizit, ionată la
distant, ă.

Bolile de inimă sunt unele dintre cele mai răspândite boli din ı̂ntreaga lume. Stilul
de viat, ă nesănătos, concretizat prin sedentarism s, i alimentat, ie nesănătoasă au contribuit
la acest lucru. Poluarea este de asemenea un motiv ce a contribuit la scăderea nivelului
de sănătate general al populat, iei. Aproximativ 17 milioane de oameni mor ı̂n fiecare an
din cauza afect, iunilor cardiace(Senior, 2013).

8
2. Inima s, i Electrocardiografia

Înainte de a efectua orice fel de interpretare a datelor, este necesar cunoas, terea
minimală a structurii s, i funct, ionării inimii.

2.1. Anatomia cordului

Cordul este un organ cavitar, cu structura fibromusculară, de formă conică.


Prezintă o bază, un apex, trei fet, e s, i o margine. Cordul prezintă patru cavităt, i:

- două cavităt, i mai mici - atriile (stâng s, i drept), situate ı̂n partea superioară, spre
baza organului,

- două cavităt, i mai mari - ventriculele (stâng s, i drept), situate ı̂n partea inferioară,
spre vârful organului.

Cordul se află ı̂n sacul pericardic ı̂mpreună cu care se găses, te ı̂n mediastinul
mijlociu. Pozit, ia oblică a cordului poate fi descrisă prin asemănarea cu o piramidă
deformată, cu baza dispusă posterior s, i la dreapta, iar apexul - anterior s, i la stânga.
Cordul adult măsoară, ı̂n medie, 12 cm de la bază la apex, 8-9 cm diametrul transversal
s, i 6 cm diametrul anteroposterior. Greutatea cordului, la adult, variază ı̂n limitele de 325
± 75 g la bărbat s, i 275 ± 75 g la femeie.

Baza cordului

- formă patrulateră orientată posterior s, i spre dreapta

- situată ı̂n dreptul vertebrelor toracice T4-T8,

- corespunde atriului stâng s, i unei mici port, iuni din partea posterioară a atriului
drept.

- limita superioară se află la nivelul bifurcat, iei arterei pulmonare, iar cea inferioară
corespunde s, ant, ului coronar.

9
Apexul cardiac - corespunde vârfului ventriculului stâng, orientat inferior,
anterior s, i la stânga. Obis, nuit, se proiectează ı̂n spat, iul intercostal V stâng, pe linia
medioclaviculară, sau put, in medial de acesta.

Fat, a sternocostală este orientată anterior s, i superior s, i este alcătuită, ı̂n raport
cu s, ant, ul coronar, dintr-o port, iune atrială, situată superior s, i la dreapta, s, i o port, iune
ventriculară, inferior s, i la stânga. Port, iunea atrială apart, ine aproape ı̂n ı̂ntregime atriului
drept, atriul stâng fiind ı̂n mare parte acoperit de aorta ascendentă s, i trunchiul arterei
pulmonare.

Între cele două auricule, prelungite lateral, se formează o concavitate deschisă


anterior, numită coroana cordului (corona cordis), care cuprinde aorta ascendentă s, i
trunchiul pulmonar. Din port, iunea ventriculară a fetei sternocostale, o treime apart, ine
ventriculului stâng, iar restul de două treimi celui drept. Septului interventricular ı̂i
corespunde pe aceasta fat, ă s, ant, ul interventricular anterior.

Fat, a diafragmatică este o suprafat, ă orizontală mare care ı̂n apropierea vârfului,
se curbează spre inferior s, i anterior. Este reprezentată de ventriculi, ı̂n principal cel stâng,
limita dintre cei doi ventriculi fiind marcată prin s, ant, ul interventricular posterior.

Fat, a diafragmatică se sprijină, ı̂n cea mai mare parte, pe centru tendinos al
diafragmei, iar o mică parte, pe partea musculară stângă a acestuia. Astfel, această fat, ă
are raporturi cu fat, a diafragmatică a lobului stâng hepatic s, i fornixul gastric. Posterior
se găses, te o mică zonă, formată din atrii.

Fat, a pulmonară formată, ı̂n cea mai mare parte, de ventriculul stâng; doar o
mică zonă, situată posterior de s, ant, ul coronar, este formată de atriul stâng. La acest
nivel, ı̂ntre pleură şi pericard, se găsesc nervul frenic stâng s, i vasele pericardofrenice.

Marginea dreaptă vizibilă pe cordul formolizat, este situată ı̂ntre fet, ele sternocostală
s, i diafragmatică s, i apart, ine ventriculului drept.

S, ant, ul coronar este dispus ı̂ntre atrii s, i ventricule. Pe fat, a sternocostală, el


coboară spre dreapta, separând atriul drept de marginea dreaptă a cordului, pe care o
depăs, es, te trecând pe fat, a diafragmatică; cont, ine artera coronară dreaptă s, i vena coronară
mică. În continuare, se curbează spre stânga, trece pe fat, a pulmonară, sfârs, ind pe fat, a
diafragmatică; această port, iune cont, ine artera circumflexă.

2.2. Structura inimii

Atriul drept este situat posterolateral, spre dreapta. Pe imaginea radiologică


antero-posterioară, el formează marginea laterală dreaptă. Atriul drept primes, te atât
sângele drenat de sistemul venos prin venele cave superioară s, i inferioară, cât s, i cea mai
mare parte a sângelui venos cardiac, colectat de sinusul coronarian. Vena cavă superioară

10
Figure 2.1: Fat, a diafragmatică a cordului.

se deschide ı̂n partea superioară s, i posterioară, iar vena cavă inferioară se varsă ı̂n partea
postero-inferioară.

Ventriculul drept are forma de piramida triunghiulară, cu baza - ostiului


atrioventricular drept s, i trei peret, i, anterior, posterior s, i septal. Lungimea de la apex
la inelul tricuspidian este ı̂n sistola, de 6,5 ± 1 cm, iar ı̂n diastola de 8 ± 1 cm. Cavitatea
ventriculară dreaptă are un volum diastolic de 120 ± 20 ml şi unul sistolic de 40 ±
10 cm. Ventriculul drept este ı̂mpărt, it ı̂ntr-un compartiment de recept, ie al sângelui
s, i unul de eject, ie, prin benzi musculare grupate ı̂ntr-o format, iune inelară formată din
trabecula septomarginală numită s, i banda moderatoare (ı̂mpiedica distensia exagerată a
ventriculului ı̂n timpul diastolei) care se continuă superior, pe peretele septal cu creasta
supraventriculară .

Atriul stâng este situat pe linia mediană, ı̂n partea postero-superioară. Are
formă cuboidală s, i se prelunges, te ı̂n spatele atriului drept, de care este separat prin
septul interatrial. Auriculul stâng este lung, subt, ire s, i mai curbat decât cel drept, iar
marginile sale prezintă crestături mai adânci. Are un volum mai mic decât atriul drept,
dar prezintă peret, i mai gros, i.

Ventriculul stâng are forma unei jumătăt, i de elipsoid, conică sau de piramida
triunghiulară, fiind mai lung s, i mai ı̂ngust decât cel drept; are o pozit, ie posterioară s, i
la stânga, iar pe imaginea radiologica formează marginea stângă. Cavitatea ventriculară

11
stângă are un volum de 125 ±15 ml ı̂n sistola; volumul de sânge evacuat ı̂n timpul sistolei
de 80 ± 15 ml, iar fract, ia de eject, ie, de 70

2.3. Sistemul excitoconductor al inimii.

Nodul sinoatrial (Keith-Flack) - pacemaker-ul inimii, localizat ı̂n partea


superioară a s, ant, ului terminal, la dreapta ostiului venei cave superioare, la jonct, iunea
dintre cele două părt, i ale atriului drept, cea derivată din sinusul venos embrionar s, i cea
din atriul primitiv.

- ı̂n mod fiziologic nodulul sinoatrial imprima frecvent, a bătăilor cordului

- are formă alungită, cu un traiect postero-inferior pană ı̂n partea superioară a cristei
terminalis.

- dimensiunile sale sunt, ı̂n general, de 20 mm lungime, 2 mm grosime s, i 3 mm lăt, ime

- el are o parte superioară, subepicardică şi o parte inferioară, subendocardică.

Miocitele nodale (celulele P) - de formă rotundă, poligonala, fusiformă sau


stelata - se găsesc doar la centrul nodului sinoatrial, dispuse circumferent, iar ı̂n jurul arterei
nodale s, i neregulat ı̂n exteriorul ei. Se consideră ca aceste celule au un rol de pacemaker;
ele realizează un contact funct, ional cu miocitele tranzit, ionale adiacente, care sunt mult
mai mici decât celulele miocardice obis, nuite.

Miocitele tranzit, ionale sunt un grup mai complex de celule scurte s, i subt, iri ,
care conduc lent impulsul electric, fiind interpuse ı̂ntre celulele P, celelalte celule miocardice
sau celulele Purkinje.

Celulele Purkinje conduc rapid impulsul electric; acesta este transmis apoi
miocardului atrial contractil, prin unde de depolarizare concentrice sau “ ca o pată de
ulei pe apa “ cu o viteza de aproximativ 1m/s s, i prin intermediul acestuia, mai departe
nodului atrioventricular.

Nodul atrioventricular este alcătuit din miocite tranzit, ionale, dispuse neregulat
ı̂n partea dorsala, dar ordonandu-se progresiv ı̂n tracturi longitudinale prelungite spre
fasciculul atrioventricular. ı̂ntreaga suprafat, a a nodului atrioventricular este acoperită de
celulele Purkinje.

- Numărul mare de miocite tranzit, ionale, cu conducere lentă, din nodul atrioventricular
este responsabil de ı̂ntârzierea impulsului electric de la nivelul acestui nod ( viteza
impulsului scade la aproximativ 0,2 m/s) ceea ce asigură o ı̂ntârziere minima,
necesară departajării s, i succesiunii sistolelor atrială s, i ventriculară.

12
Figure 2.2: Sistemul excitoconducător.

- când activitatea nodulului sinoatrial este afectata, funct, ia sa poate fi preluata de


nodulul atrioventricular, care va imprima astfel cordului un ritm nodal.

2.4. Electrocardiograma

”Ca un rezultat al activităt, ii electrice a celulelor, curentul curge prin corp s, i


diferent, e potent, iale sunt stabilite pe suprafat, a pielii care pot fi măsurate folosind echipament
corespunzător. Cel mai simplu model matematic pentru a face legătura dintre sistemul
cardiac s, i potent, ialele de la suprafat, a pielii este cel dipol. Acest model simplu este foarte
util pentru furnizarea unui cadru pentru studierea electrocardiografiei s, i vectorcradiografiei,
des, i o serie de modele mult mai complexe a fost stabilit.” (Clifford et al., 2006)

Electrocardiografia (ECG sau EKG) este o interpretare electrică a activităt, ii


inimii ı̂ntr-o perioadă de timp, detectată de electrozi atas, at, i pe suprafat, a pielii s, i ı̂nregistrată
de un dispozitiv ı̂n exteriorul corpului. Înregistrarea produsă de către această procedură
neinvazivă se numes, te electrocardiogramă ( ECG sau EKG)

Un ECG este folosit pentru măsurarea ritmul s, i regularităt, ii bătăilor inimii precum
s, i a dimensiunii s, i pozit, iei compartimentelor. Acesta mai poate fi folosit s, i pentru
detectarea oricărui defect apărut dar s, i pentru monitorizarea efectul medicamentelor sau
dispozitivelor folosite pentru a regla ritmul inimii, cum ar fi pacemakerul.

13
Majoritatea ECG-urilor sunt folosite pentru diagnoză sau cercetări asupra inimii
umane, dar pot fi folosite s, i asupra animalelor, de obicei pentru diagnoza anomaliilor sau
pentru cercetări.

Pentru realizarea electrocardiogramei, pacientul este ı̂ntins pe un pat ı̂ntr-o cameră


cu temperatura de aproximativ 20 de grade. Pielea pe care se aplică electrozi va fi
degresată cu alcool, iar electrozii vor fi aplicat, i ı̂n zone fără păr peste fâs, ii de pânză
udate cu solut, ie salină. Electrozii pentru derivat, iile precordiale sunt fixat, i de torace cu o
curea.

Pentru studiul fenomenelor electrice ale inimii se aplică electrozi, adică piese
metalice care se fixează pe membre s, i torace prin benzi de cauciuc. Aces, tia sunt conectat, i
la electrocardiograf prin conductori electrici. Locul diferit de aplicare a electrozilor
ı̂n funct, ie de pozit, ia cordului se defines, te derivat, ia. Astfel, există derivat, ii directe a
căror electrozi sunt as, ezat, i ı̂n interiorul cavităt, ii cardiace prin cateterism, semidirecte
(esofagiene) s, i indirecte, ı̂n care electrozii sunt plasat, i pe membre sau pe regiunea precordială.

2.5. Unde s, i intervale

Figure 2.3: Forma generală a unui semnal de EKG.

”Un semnal tipic produs de un ciclu cardiac ( o bătaie) este alcătuit dintr-o undă
P, un complex QRS, o undă T, si o undă U (care este vizibilă doar ı̂n 50-75% din cazuri).

14
Figure 2.4: Frecvent, ele ce se pot observa ı̂ntr-un semnal de EKG. Imagine obt, inută din
(Afonsor, 2004)

Componenta continuă a electrocardiogramei este măsurată ca port, iunea dintre unda T s, i


unda P sau ca port, iunea dintre unda P s, i complexul QRS ( segmentul PR).”(Islam et al.,
2012)

Într-o inimă normală sănătoasă, componenta continuă este echivalentă cu linia


izoelectrică (0mV) s, i reprezintă perioada din ciclul cardiac când nu circulă nici un fel
de curent spre sonda pozitivă sau negativă a aparatului ECG-ului. ı̂nsă, ı̂ntr-o inimă
bolnavă componenta continuă poate fi ridicată ( ex ischemie cardiacă) sau scăzută ( ex
infarctul miocardic ) relativ la linia izoelectrică. Segmentul ST rămâne ı̂n mod tipic ı̂nchis
liniei izoelectrice deoarece ı̂n această perioadă ambii ventriculi sunt complet depolarizat, i
s, i as, adar nici un curent nu poate circula catre sondele.

În această lucrare de licent, a am ı̂ncercat să monitorizez cele mai importante
intervale din cadrul semnalului pentru a oferi un diagnostic minimal asupra stării de
sănătate a pacientului. Dacă oricare din aceste intervale nu se află ı̂n limita corespunzătoare,
atunci pacientul este suspect de o anumită afect, iune cardiacă. În mod normal, acest lucru
este efectual manual de către medic, pe hârtie milimetrică

La ı̂nceput, au fost observate doar patru unde, dar după corect, ia matematică
a artefactelor introduse de amplificatoarele timpurii, a fost observată s, i a cincea undă.
Einthoven a ales literele P, Q, R, S s, i T pentru a identifica undele.

În electrocardiogramele intra-cardiace, ca cele obt, inute de la senzorii pacemakerului,


o undă adit, ională poate fi observată, anume unda H, care reflectă depolarizarea firelor
His. Intervalul H-V, in schimb, reprezintă durata de la unda H până la prima detectare
a depolarizării ventriculare, ı̂nregistrată ı̂n orice electrod.

15
Table 2.1: Scurtă descriere a caracteristicilor semnalului EKG

Caracteristică Descriere Durată


Interval RR Intervalul dintre două unde R. Acest interval ne poate 0.6 - 1.2s
ajuta să determinam numarul de batai pe minut ale
inimii care de obicei se află ı̂ntre ı̂ntre 60 s, i 100
Unda P În timpul unei depolarizări normale a atriului, vectorul 80ms
electric principal este direct, ionat dinspre nodul SA către
nodul AV. Astfel se formează unda P
Intervalul PR Intervalul PR este măsurat de la ı̂nceputul undei P până 120-200ms
la ı̂nceputul complexului QRS. Intervalul PR reflectă
timpul necesar impulsului electric să ajungă de la nodul
SA la nodul AV s, i să intre ı̂n ventricul. Intervalul PR
este o estimare bună a funct, ionării nodului AV
Segmentul Segmentul PR conectează unda P de complexul QRS. 50-120ms
PR Vectorul impuls este de la nodul AV către fibrele His
către fibrele Purkinje. Această activitate electrică nu
produce o contract, ie directă.
Complexul Complexul QRS reflectă depolarizarea rapidă a 80-120ms
QRS ventriculului stâng s, i a celui drept. Aces, tia au o masă
musculară mare ı̂n comparat, ie cu atriul, prin urmare
complexul QRS are o amplitudine mult mai mare decât
unda P.
Punctul J Punctul ı̂n care complexul QRS se termină s, i ı̂ncepe N/A
segmentul ST. Acest punct este folosit ca referint, ă
pentru măsurarea elevării sau scăderii segmentului ST.
Segmentul ST Segmentul ST conectează complexul QRS s, i unda 80-120ms
T. Segmentul ST reprezintă perioada când ambele
ventricule sunt depolarizat, i. Este izoelectric
Unda T Unda T reprezintă repolarizarea (sau recuperarea) 160 ms
ventriculelor.
Intervalul ST Intervalul ST este măsurat de la punctul J până la 320ms
sfârs, itul undei T
Intervalul QT Intervalul QT este măsurat de la ı̂nceputul complexului Până la
QRS până la sfârs, itul undei T. Un interval QT prelungit 420 ms la
reprezintă un risc de tahicardie ventriculară s, i chiar 60 bpm
moarte. .
Unda U Unda U are de obicei o aptitudine mică s, i ı̂n foarte
mult cazuri lipses, te. Întotdeauna urmează după unda
T s, i urmăres, te aceeas, i direct, ie ı̂n amplitudine. Această
reprezintă repolarizarea septului inter-ventricular Dacă
este prea proeminentă, pacientul este suspect de
hypokalemia, hypercalcemia sau hyperthyroidism
Unda J Unda J apare ca o undă delta târzie după QRS sau ca o
undă R secundară. În acest caz pacientul e suspect de
hipotermie sau hipocalcemie.

16
3. Solut, ii hardware

”Odată cu cres, terea utilizării microcontrolerelor ca dispozitive front-end programabile,


achizit, ia de date bazată pe calculatoare personale a căpătat o popularitate imensă ı̂n
ultimul deceniu. Microcontrolerele sunt solut, ia preferată pentru ı̂n achizit, ia de date
ieftină datorită puterii puterii consumate foarte mici, a pret, ului foarte mic s, i a vitezei
foarte mari. Ies, irea senzorilor este amplificată ı̂nainte de discretizare s, i ı̂n final un
microcontroler generează protocolul de comunicat, ie către PC. Astfel se crează o conect, iune
dintre front-endul compact s, i PC. În multe configurat, ii, microcontrolerul ”vorbes, te” cu
gazda pentru a primi diverse comenzi. Acest lucru face sistemul de achizit, ie flexibil s, i
controlabilde la un PC.” (Gupta et al., 2010)

Pentru testarea aplicat, iei este indispensabilă o sursă de semnal medical. Des, i
init, ial am folosit baza de date MIT de semnale medicale, care este foarte comprehensivă
s, i utilă, ı̂n cele din urmă am simt, it nevoia de un semnal ı̂n timp real pentru a vedea dacă
obt, in rezultate similare.

Datorită popularităt, ii acestui tip de semnal medical, ı̂n momentul de fat, ă există o
multitudine de oferte de solut, ii de achizit, ie a semnalului pe piat, ă. Pret, urile sunt mai mult
decât acceptabile iar dezvoltarea de algoritmi poate ı̂ncepe foarte repede. Voi prezenta
pe scurt solut, iile hardware utilizate.

3.1. Olimex Shield

Aceasta este solut, ia pe care am realizat cele mai teste. Este ieftina (aproximativ
20 de euro) s, i us, or de obt, inut. Este necesar o plăcut, ă de dezvoltare de genul Arduino
(cu un pret, aproximativ de 25 de euro) pentru a obt, ine semnal. Poate fi folosită s, i altă
plăcut, ă echivalentă Arduino precum Pinguino sau Maple.

Transmisia de date către calculator se realizează cu ajutorul protocolului serial


ı̂n pachete de dimensiune fixă. Frecvent, a de es, antionare este de 256Hz, o frecvent, a mai
mult decât suficientă pentru acest tip de semnal.

Din păcate semnalul obt, inut nu este de calitate foarte bună s, i este necesar
dezvoltarea unei sistem de prefiltrare eficient . Filtrarea hardware a zgomotului de ret, ea

17
Figure 3.1: Scutul de EKG disponibil de la Olimex.

este foarte ineficientă s, i după cum se vede din figura 3.2, ı̂n jurul frecvent, ei de 50Hz avem
un zgomot foarte pronunt, at.

Din păcate zgomotul de ret, ea nu este centrat la frecvent, a de 50Hz. Centrul


zgomotului variază tot timpul, ceea ce face ca multe din filtrele proiectate să nu se
comporte as, a cum am dorit. Bănuiesc că acest lucru se datorează faptului că ret, eaua
electrică nu se comportă as, a cum am dori dar s, i datorită faptului că es, antionarea nu este
făcută la intervale exacte de timp. Totus, i ı̂n cele din urmă după aplicarea filtrelor descrise
ı̂n capitolele următoare, am reus, it să obt, in un semnal de calitate acceptabilă.

Scutul necesită de asemenea brăt, ări antistatice pentru colectarea semnalului de la


om. Acestea sunt disponibile pe site-ul oficial la pret, ul de 10 euro. De asemenea, acestea
se pot achizit, iona s, i ı̂n magazine românes, ti la pret, uri mai mult decât accesibile.

Ca o concluzie, pot spune că acest sistem des, i este departe de a fi ideal, poate fi
folosit cu succes pentru designul algoritmilor.

Pe site-ul oficial este disponibilă o aplicat, ie numită ”Electric guru” (figura 3.4)
pentru vizionarea semnalului obt, inut, dar calitatea acestuia nu este cea dorită. Semnalul
nu este filtrat digital pentru eliminarea zgomotului de ret, ea sau pentru eliminarea oricărui

18
Figure 3.2: Semnalul EKG nefiltrat obt, inut cu ajutorul plăcut, ei Olimex. Se poate
observa us, or că zgomotul de ret, ea este foarte pronunt, at din cauza unei filtrări hardware
necorespunzătoare.

Figure 3.3: Brăt, ările antistatice necesare pentru EKG.

19
Figure 3.4: Interfat, a ElectricGuru disponibilă pe site-ul Olimex .

alt tip de zgomot. Intervalele interesante nu sunt ment, ionate s, i nu se poate obt, ine nici
un altfel de informat, ie despre pacient. Este de apreciat faptul că această aplicat, ie este
disponibilă gratuit.

3.2. Solut, ie alternativă

Pentru a obt, ine un semnal de calitate mai bună, am folosit un sistem hardware
realizat de către studentul Dumitru-Cristian Trancă, grupa 342C2. Acesta oferă un semnal
de calitate superioară solut, iei Olimex s, i astfel us, urează interpretarea stării de sănătate a
pacientului.

Figure 3.5: Schema circuitului de achizit, ie de semnal. Montaj realizat de către


Dumitru-Cristian Trancă.

Sistemul utilizat foloses, te un amplificator de instrumentat, ie INA129, cu câs, tig

20
reglabil pentru a amplifica semnalele joase ale semnalului EKG. La ies, irea din amplificator,
semnalul este filtrat ı̂n doua etape, filtrul realizat fiind un filtru trece jos, de 30Hz. Prima
filtrare este realizata folosind un filtru de ordinul 2, activ, ı̂n topologie Sallen-Key, iar
a doua etapa de filtrare este realizata folosind un filtru de ordin 1. Filtrele include s, i
amplificarea semnalului.

Semnalul este amplificat, iar ies, irea are componenta continua la jumătate din
tensiunea de alimentare. Sistemul ı̂s, i generează tensiunea de referint, ă folosind un repetor
s, i un divizor de tensiune.

Pentru a ment, ine linia izoelectrica constanta, fără ca aceasta sa se deplaseze


datorita mis, cărilor pacientului monitorizat, este creat un sistem de generare de tensiune,
a cărui ies, ire este folosita pe post de masa pentru pacient.

21
4. Filtrarea zgomotului

Ca orice semnal achizit, ionat din natură, ECG-ul poate fi afectat de către zgomot
Acesta poate fi cauzat de ret, eaua de alimentare, de mis, cările pacientului sau de de către
alte semnale electrice prezente ı̂n corpul uman, cum ar fi cel produs de sistemul muscular.
Aceste elemente trebuie ı̂nlăturate ı̂nainte ca semnalul să fie folosit pentru procesarea
efectivă. Filtrele digitale s, i procesarea de semnal trebui proiectate foarte eficient pentru
a funct, iona ı̂n timp real pe un sistem integrat.

Pentru a testa filtrele implementate, am folosit init, ial semnale reale din baza
de date a universităt, ii MIT ce pot fi accesate utilizând următorul toolbox (The WFDB
Toolbox for MATLAB, 2013). A fost uneori necesar să introduc un zgomot artificial
pentru a face testele, ı̂ntrucât echipamentul utilizat de aces, tia este de calitate superioară
s, i introduce foarte put, in zgomot.

Ulterior am folosit date achizit, ionate cu diverse sisteme hardware. Uneori, am


s-a observat o diferent, ă foarte mare ı̂ntre datele din baza de date MIT s, i cele achizit, ionate
de mine. Imperfect, iunile hardware au fost mult mai mari decât m-as, fi as, teptat.

4.1. Variat, ia componentei continue

Datorită mis, cării corpului pacientului este foarte posibil să avem o variat, ie destul
de puternică a componentei continue a semnalului obt, inut. Din acest motiv ar fi necesar
ca semnalul să fie filtrat cu un filtru trece sus. Frecvent, a de tăiere a acestui filtru ar trebui
să fie mai mică decât a oricărui semnal produs de către inimă.

O valoarea sigură pentru acest filtru ar fi undeva ı̂ntre 0.5Hz si 0.8Hz. Există
totus, i s, i tehnici mult mai avansate de eliminare a componentei continue. În articolul
”Time-varying digital filtering of ECG baseline wander””, propune o tehnică prin care
frecvent, a de tăiere a a filtrului este determinată de ritmul inimii. Astfel, când un pacient
depune efort fizic sust, inut, bătăile inimii vor avea un ritm mult mai ridicat, miscarea
acestuia va determina o variat, ie mai rapidă a componentei continue s, i prin urmare ar fi
foarte să mărim frecvent, a de tăiere a filtrului. Un astfel de filtrul necesită ı̂n prealabil
detect, ia bătăilor inimii s, i este mai greu de implementat(Sörnmo, 1993). În această lucrare
am ales să evit implementarea acestui filtru, axându-mă pe tehnici mult mai facile.

22
Pentru a proiecta filtrul trece-sus propus, putem porni de la răspunsul ı̂n frecvent, ă
ideal a acestuia. 
jω 0 , 0 ≤ |ω| ≤ ωc
H(e ) =
1 , ωc < |ω| < π
unde ωc = 2 ∗ π ∗ fc , fc fiind frecvet, a de tăiere normalizată, adică
Fc
fc =
Fs
Pentru a estima acest filtru am ı̂ncercat diverse metode.

4.1.1. Filtru FIR

Un filtru cu răspuns finit la impuls este primul tip de filtru pe care am decis să
testez. Filtrele cu răspuns finit la impuls (prescurtat RFI ı̂n română sau FIR ı̂n engleză)
au funcţia pondere h[n] nenulă pentru n ∈ {0, 1, . . . , N − 1}. Se spune că N reprezintă
lungimea răspunsului la impuls. Pentru aceste filtre implementarea operaţiei de filtrare
are la bază produsul de convoluţie particularizat corespunzător:
N
X −1
y[n] = x[n] ∗ h[n] = h[k]x[n − k]
k=0

În această situat, ie funct, ia de transfer devine


N
X −1
H(z) = h[n]z −n
n=0

Deci funct, ia de transfer nu prezintă poli, fiind o funct, ie polinomială de ordinul N - 1 ı̂n
z −1 . Coeficient, ii filtrului sunt chiar valorile răspunsului la impuls.

Posibilitatea filtrelor FIR de a avea o caracteristică de fază lineară permite


realizarea operat, iei de filtrare fără a introduce distorsiuni de fază, aspect important ı̂n
reconstruct, ia fidelă a semnalelor.

Transformata Fourier a răspunsului la impuls, denumită răspuns ı̂n frecvent, ă sau


funct, ie de transfer Fourier, se obt, ine prin evaluarea lui H(z) de-a lungul cercului de rază
unitate din planul Z.
N
X −1

H(e ) = H(z)z=ejω = h[n]ejnω
n=0

unde
F
ω = 2πf = 2π
Fs

Frecvent, a normală f se calculează ca raportul dintre valoarea frecvent, ei (F exprimată


ı̂n Hz) s, i valoarea frecvent, ei de es, antionare (Fs exprimată ı̂n Hz).

23
Funct, ia de transfer evaluată la frecvent, e fizice, periodică ı̂n frecvent, ă cu perioada
2π, poate fi exprimată ı̂n formă polară:
H(ejω ) = |H(ejω )|ejϕ(ω)
unde |H(ejω )| s, i ϕ(ω) sunt părt, i ale funct, iei de sistem, purtând denumirea de caracteristică
de modul ( de amplitudine), respectiv caracteristică de fază. În practică ne interesează
filtrele cu coeficient, i reali, adicp cu h[n] ∈ R. Pentru aceste filtre caracteristica de modul
este o funct, ie pară iar cea de fază, o funct, ie impară, adică:
|H(e−jω )| = |H(ejω )|; ϕ(−ω) = −ϕ(ω)

Filtrele FIR pot avea o caracteristică de fază liniară prin obligarea funct, iei pondere
h[n] să prezinte proprietatea de simetrie sau de antisimetrie fat, ă de axa sa centrală.

”Filtrele FIR sunt aproape ı̂ntotdeauna restrictionate la implementări discrete.


Prin urmare, metodele de proiectare pentru filtrele FIR sunt bazate pe tehnici de aproximare
directă a răspunsului ı̂n frecvent, ă dorit. Mai mult, cele mai multe tehnici pentru pentru
aproximarea magnitudinii răspunsului unui sitem FIR ı̂ncearcă să aibă o fază constantă,
astfel evitând problema factorizării spectrului care complică designul filtrelor IIR.” (Oppenheim
et al., 1999)

Caracteristica de fază lineară este foarte tentantă deoarece ca inginer nu pot


aprecia efectul oricărui zgomot introdus asupra semnalului ECG. Folosind ”Filter Design
and Analysis Tool” din cadrul Matlab am comparat filtre FIR de diverse ordine.

Figure 4.1: Caracteristica de modul a unui filtrul FIR de ordinul 10, proiectat folosind o
fereastră gausiană.

Experimental am observat ( după cum se vede poate observa ı̂n figura 4.3 ) că este
necesar un filtru de ordin cel put, in 1800 pentru a obt, ine o atenuare satisfăcătoare.
Schimbarea tipului de fereastră folosit la proiectare nu a ajutat la reducerea gradului
filtrului. Experimentând cu diverse alte tehnici de proiectare rezultatele au fost similare.

Un astfel de filtru este impractic pentru o aplicat, ie de timp. Resursele consumate


s, i ı̂ntârzierea introdusă nu sunt acceptabile. Există totus, i metode de reducere a ordinului
filtrului, precum insert, ia de zerouri ı̂n filtru sau alternarea ratei de es, antionare dar ele nu
sunt scopul acestei lucrări.

24
Figure 4.2: Caracteristica de modul a unui filtrul FIR de ordinul 100, proiectat folosind
o fereastră gausiană.

Figure 4.3: Caracteristica de modul a unui filtrul FIR de ordinul 1800, proiectat folosind
o fereastră gausiană.

4.1.2. Filtru IIR

Filtrele cu răspuns infinit la impuls(RII ı̂n română sau IIR ı̂n engleză) se dovedesc
ı̂n anumite aplicat, ii mai avantajoase decât filtrele FIR datorită faptului că pot realiza
caracteristici de selectivitate excelente cu un ordin mult mai mic al funct, iei de transfer.
Spre deosebire de filtrele FIR, filtrele IIR nu pot avea caracteristică de fază lineară.

Imposibilitatea realizării unei faze liniare are implicat, ii ı̂n ceea ce prives, te proiectarea
filtrelor IIR, ı̂n sensul că acesta presupune fie aproximarea simultană atât a specificat, iilor
pentru caracteristica de amplitudine cât s, i a celor referitoare la fază, fie corect, ia ulterioară
a distorsiunilor de fază ı̂n ipoteza că proiectarea s-a bazat numai pe aproximarea caracteristicii
de amplitudine. Există un singur tip de filtru IIR la care una din cele două caracteristici
este constantă ( filtrul trece tot ).

Filtrul IIR este descris ı̂n domeniul timp prin ecuat, iile cu diferent, e finite:
M
X N
X
y[n] = bi x[n − i] − ai y[n − i]
i=0 i=1

25
În această situat, ie funct, ia de transfer devine
M
bi z −i
P
i=0
H(z) = N
P
1+ ai z −i
i=1

ı̂n care s-a presupus că a0 = 1.

Proiectarea unui filtru digital IIR constă ı̂n determinarea coeficient, ilor ai s, i bi
astfel ı̂ncât răspunsul la impuls al acestuia sau răspunsul ı̂n frecvent, ă, H(ejω ), să aproximeze
ı̂ntr-un anumit mod specificat, iile ı̂n timp discret sau ı̂n frecvent, ă impuse la proiectare.
Domeniul ı̂n care este rezolvată problema aproximării (timp sau ı̂n frecvent, ă) este determinat
de aplicat, ia specifică.

Am ı̂ncercat filtrarea variat, iei componentei continue folosind un filtru IIR de tip
Cebasev. Din păcate, faza nelineară a acestuia a produs rezultate dorite. După cum se
observă din figura 4.5 distorsiunile produse sunt prea mari. Din acest mtiv am căutat
altă metodă de filtrare a zgomotului.

Figure 4.4: Caracteristica de modul a unui filtrul IIR de ordinul 3, de tip Cebasev.

4.1.3. Forward-backward IIR filtering

Avem nevoie de un filtru de ordin suficient de mic care sa nu distorsioneze


semnalul. O metoda prin care putem obt, ine acest lucru este renunt, ând la timpul real
s, i acceptarea ı̂n schimb a unui timp pseudo-real care să producă rezultate dorite. Aici
intervine tehnica de filtrare numită ”forward-backward IIR filtering”, o tehnică neacauzală
care produce o filtrare de fază zero. Implementarea unei astfel de filtru implică trei pas, i:

26
Figure 4.5: Eliminarea variat, iei componentei continue cu doua tipuri de filtre. Cu albastru
avem un filtru care nu produce distorsiuni (prin metoda forward-backwords IIR filtering)
iar cu ros, u avem un filtru IIR de tip Cebasev. În stânga avem semnalul ı̂n domeniul timp
iar ı̂n dreapta avem semnalul ı̂n domeniul frecvent, ă.

1. Filtrarea semnalului original cu un filtru de tip IIR .

y1 [n] = h[n] ∗ x[n]

2. Inversarea rezultatului s, i trecerea acestuia din nou prin filtru.

y2 [n] = h[n] ∗ y1 [−n]

3. Inversarea din nou a semnalului obt, inut.

y3 [n] = y2 ] − n]

Tot ı̂n figura 4.5 se pot observa rezultatele filtrării folosind această tehnică.

Des, i aceasta este o tehnică destinată ı̂n special prelucrării offline, ea se poate
utilza s, i online, acceptând o ı̂ntârziere a semnalului. Pentru implementare, am ales să
folosesc ı̂n continuare această tehnică.

4.2. Zgomotul de ret, ea

Din cauza faptului că tensiunile ce se află la suprafat, a corpului uman au o


amplitudine foarte mică, acestea pot fi foarte us, or perturbate de zgomotul de ret, ea.

27
Chiar dacă dispozitivul ar fi alimentat folosind o baterie, numeroasele dispozitive ce sunt ı̂n
momentul de fată conectate la ret, eaua electrică pot crea interferent, e ce ar afecta sistemul.
Din acest motiv am ı̂ncercat câteva metode de a filtra acest zgomot. În proiectarea filtrelor
s-a urmărit minimizarea artefactelor introduse de către filtru, păstrarea caracteristicii de
timp real s, i eliminarea cât mai eficientă a zgomotelor.

Figure 4.6: Semnalul achizitionat de la primul prototip al EKG-ului. După cum se vede,
este foarte perturbat de către zgomotul de ret, ea.

Din păcate, ı̂n România frecvent, a ret, elei de alimentare variază destul de mult s, i
se poate observa că avem zgomot de la aproximativ 47Hz până pe la 53Hz. Acest lucru
se datorează s, i faptului că es, antionarea nu este făcută cu precizie infinită. Ideal ar fi
ca filtrul proiectat să elimine toate aceste frecvent, e parazite, dacă nu să elimine măcar
componenta cea mai puternică, centrată la 50Hz.

Se pot observa de asemenea câteva armonice 100Hz s, i la 150Hz. Acestea au


intensitate mai mică s, i des, i ar fi ideal să le eliminăm, acest lucru nu este ı̂n mod obligatoriu
necesar.

În continuare sunt prezentate trei tipuri de filtre. Primul filtru a fost creat prin
alocarea manuală a polilor s, i a zerourilor, al doi filtru este bazat pe extragerea unei
sinusoide de frecvent, ă egală cu ret, eaua din semnal iar al treilea filtru este creat folosind
funt, ia cheby1 ı̂n Matlab.

4.2.1. Filtru linear - alocare manuala a zerourilor s, i polilor

O primă metodă simplă de filtrare poate fi realizată folosind un filtru linear ı̂n care
se amplasează doua zerouri, complex conjugate pe cercul unitate la pozit, ia corespunzătoare

28
Figure 4.7: Zerourile s, i polii filtrului de 50 Hz.

pentru 50Hz, după cum este sugerat ı̂n (Prandoni and Vetterlli, 2008) ( sau 60Hz dacă
ne-am fi aflat ı̂n America).
z1,2 = e±jω0

Filtrul creat opres, te o banda destul de larga, din acest motiv este necesar adăugarea
unei perechi de poli complex conjugat, i ı̂n apropierea zerourilor cu o raza mai mica decât
a acestora. Cu cât se apropie raza polilor de cercul unitate cu atât lungimea benzii va
scade.

p1,2 = re±jω0

Obt, inem astfel un filtru de ordin 2 stabil cu următoarea funct, ie de transfer.

(1 − z1 z −1 )(1 − z2 z −1 )
H(z) =
(1 − p1 z −1 )(1 − p2 z −1 )

Din păcate, după cum se poate observa din funct, ia pondere, filtrul nu are un
timp tranzitoriu foarte bun s, i poate să producă zgomot ce ar putea deteriora semnalul.
Am testat filtrul pe un semnal de ECG corupt cu zgomot de 50Hz iar după mai multe
ı̂ncercări, am găsit o valoare acceptabilă pentru raza r a polilor.

După cum se observa din figura 4.10 filtrul nu oferă rezultate foarte bune după
un complex QRS, ba chiar crează oscilat, ii similare cu cele care apar atunci când se

29
Figure 4.8: Functia pondere a filtrului proiectat.
l

Figure 4.9: Caracteristica de modul a filtrului proiectat.

30
Figure 4.10: Rezultatul filtrarii in apropierea unui complexului QRS. Verde reprezintă
semnalul original iar albastru reprezintă semnalu filtrat.

repolarizează ventricolii (unda T). De asemenea se poate observa ca zgomotul de ret, ea nu


a fost ı̂n totalitate eliminat.

Rezultate similare am obt, inut folosind funct, ia ”butter” din Matlab. Cres, terea
ordinului filtrului (s, i implicit a numărului de poli din jurul zeroului) nu a ajutat, observându-se
ı̂n continuare perturbat, ii la sfârs, itul complexului QRS. Din acest motiv, am ı̂ncercat să
implementez un alt tip de filtru, filtru detaliat ı̂n lucrarea (Sörnmo and Laguna, 2005)

4.2.2. Filtru linear - Cebâs, ev

Filtrele Cebâşev de tipul I sunt filtre polinomiale , având o caracteristică de modul


cu ripluri egale ı̂n banda de trecere s, i monoton descrescătoare ı̂n banda de oprire. Dintre
toate filtrele polinomiale de ordinul N, filtrele Cebâşev de tipul I au zona de tranzit, ie cea
mai ı̂ngustă.

În banda de oprire, caracteristica monoton descrescătoare a modulului funct, iei


de transfer realizează o aproximare de tip maxim plat a valorii ideale zero, deoarece toate
derivatele sale se anulează pentru ω → ∞ . Panta de cădere a caracteristicii este cu atât
mai mare cu cât ordinul filtrului este mai mare, iar pentru două filtre de acelas, i ordin
panta este mai abruptă pentru cel cu ripluri mai mari ı̂n banda de trecere. Performant, ele
filtrului sunt complet precizate de parametrul  ce fixează mărimea riplului ı̂n banda de
trecere şi de ordinul N ce determină cât de abruptă este caracteristica de modul (sau
atenuare).

După cum se observă din figură, rezultatele sunt us, or ı̂mbunătăt, ite. Artefactele
apărute imediat după complexul QRS sunt mai mici iar atenuarea frecvent, ei nedorite este

31
Figure 4.11: Functia pondere a filtrului proiectat.

Figure 4.12: Caracteristica amplitudine-pulsat, ie.

32
Figure 4.13: Rezultatul filtrarii in apropierea unui complex QRS. Verde reprezintă
semnalul original iar albastru reprezintă semnalu filtrat.

mult mai bună

Des, i acest filtru nu a obt, inut cele mai bune rezultate, putem considera că semnalul
este acceptabil. Aceasta este o variantă care ar putea fi implementată foarte us, or iar
artefactele introduse ar fi neglijabile. Am explorat totus, i s, i altă variantă pentru eliminarea
zgomotului de ret, ea.

4.2.3. Filtru neliniar

Ideea care stă la baza acestui filtru este scăderea unei sinusoide generate de către
filtru din cadrul semnalului. Amplitudinea sinusoidei este adaptata continuu ı̂n funct, ie de
zgomotul ret, elei electrice. Sinusoida internă este generată de către următoarea ecuat, ie.

v[n] = A ∗ sin(wo n)

Pentru a genera recursiv sinusoida, avem nevoie de un sistem discret, simplu, de


forma următoare. (Sörnmo and Laguna, 2005)

1
H(z) =
1 − 2cosω0 z −1 + z −2

Obt, inem astfel următoarea ecuat, ie de recurent, ă.

33
v[n] = 2cosω0 v[n − 1] − v[n − 2] + u[n]

Cu condit, iile init, iale v[-1]=v[-2] = 0 s, i intrarea u[n] = δ[n].

Pentru a adapta constant amplitudinea semnalului, avem nevoie de o funct, ie de


eroare care ne va indica cum trebuie să ajustăm sinusoida generată.

e[n] = x[n] − v[n]

Dacă ı̂n prealabil nu a fost filtrată componenta continuă a semnalului, pentru a


nu fi afectata calculul, se poate folosi derivata erorii, care poate fi calculată folosind o
scădere.

0
e [n] = e[n] − e[n − 1] = x[n] − v[n] − x[n − 1] + v[n − 1]

Obt, inem astfel următoarea ecuat, ie de actualizare.


0 0
v [n] = v[n] + αsgn(e [n])

Unde prin valoarea lui alpha putem seta viteză de convergent, ă a sinusoidei
generate intern. Similar cu alte metode iterative ( exemplu: metode de tip gradient),
o valoare prea mică pentru alpha va seta un pas prea mic, iar viteza de convergent, ă va fi
prea mică, iar un pas prea mare poate face ca algoritmul să sare peste valoarea optimă,
făcând convergent, a imposibilă. Experimentând, am observat un comportament foarte
bun cu alpha la valoarea de 0.1 pentru semnalele din baza de date a celor de la MIT s, i o
valoare de 40 pentru semnalul obt, inut de la EKG-ul nostru.

Spre deosebire de filtrul IIR, nu apar artefacte ı̂n jurul complexului QRS. Din
păcate, filtrul fiind neliniar, analiza lui este mult mai grea decât a celui linear. În acest
caz, nu dispunem de unelte precum in Matlab precum fvtool care us, urează foarte mult
proiectarea filtrului.

Dacă se dores, te, pentru liniarizarea filtrului se poate ı̂nlocui ecuat, ia de actualizare
a amplitudinii erorii cu una lineară.
0 0
v [n] = v[n] + αe [n]

Se poate observa din figura 4.10 că performant, ele sunt cu mult ı̂mbunătăt, ite.
Atenuarea este aproape perfectă iar semnalul este recuperat. În literatura de specialitate
există tehnici mai inteligente dar ı̂ntrucât momentan performant, ele sunt foarte bune iar

34
Figure 4.14: Rezultatul filtrarii cu filtru de 50 de Hz a semnalului real(obt, inut de la
prototipul de EKG). Cu verde avem semnalul brut obt, inut de la EKG iar cu ros, u avem
semnalul filtrat cu fitrul nelinear

puterea de calcul necesară este relativ mică, am decis ca pentru partea de implementare
să mă opresc aici.

Ulterior am testat s, i pe prototip. După cum se poate vedea din figura 4.14
rezultatul filtrarii semnalului de pe prototip este acceptabil. Des, i semnalul obt, inut de
către noi are zgomot s, i ı̂n vecinătatea frecvent, ei de 50Hz, se pare că acestea nu sunt
foarte deranjante. Am ales ca ı̂n varianta finală a proiectului să implementez acest tip de
filtru deoarece nu introduce nici un fel de perturbat, ii.

4.3. Filtru Savitzky-Golay

Există totus, i s, i imperfect, iuni pe care filtrele proiectate anterior nu reus, esc să le
elimine. Aici intervine filtrul Savitzky-Golay pentru netezirea datelor. Acest filtru a fost
pentru prima dată descris ı̂n anul 1964 de către Savitzky s, i Golay ı̂n lucrarea ”Soothing
and differentiation of data by simplified least squares procedures” ı̂n jurnalul ”Analytical
Chemistry”. Acestia aveau nevoie de un filtru pentru a netezii datele achizit, ionate ı̂n
urma a diverse experimente de chimie. Ulterior s-a dovedit că acest tip de filtru poate fi
folosit cu succes s, i ı̂n prelucrarea datelor de la electrocardiogramă s, i inevitabil acesta a
devenit indispensabil pentru aplicat, ii similare.

Acest tip de filtru se bazează pe ideea aproximării ı̂n sensul celor mai mici pătrate
a unor bucăt, i din semnal. Potrivirea unui polinom la un set de date de intrare s, i apoi
evaluarea polinomului rezultat la un singur punct ı̂n cadrul intervalului de aproximare
este echivalent cu filtrarea cu un filtru FIR. Filtrul trece-jos obt, inut prin această metodă

35
sunt foarte cunoscute ı̂n unele sectoare ca filtre Savitzky-Golay. Savitzky s, i Golay au
reus, it să netezească datele cu zgomot obt, inute ı̂n urma analizei spectrale chimice, s, i au
demonstrat că netezirea ı̂n sensul celor mai mici pătrate reduce zgomotul ment, inând forma
s, i ı̂nălt, imea vârfurilor semnalului . Unii cercetători au recunoscut important, a proprietăt, ii
de conservare a vârfurilor semnalului ı̂n diverse aplicat, ii medicale. De asemenea conceptul
de bază de netezire polinomială ı̂n sensul celor mai mici pătrate a fost extins la două
dimensiuni s, i aplicat la procesarea imaginilor cum ar fi cele obt, inute prin ultrasunete sau
radar.

Ideea de bază din spatele aproximării polinomiale ı̂n sensul celor mai mici pătrate
este prezentată ı̂n figura 4.15, care arată o secvent, ă de es, antioane x[n] ale unui semnal
ca puncte pline. Considerând pentru moment grupul de 2M + 1 es, antioane centrate la
n=0, vrem să obt, inem coeficient, ii polinomului

N
X
p(n) = ak n k
k=0

care minimizează eroarea ı̂n sensul celor mai mici pătrate a grupului de es, antioane centrate
la n=0,
X M XM XN
N = (p(n) − x[n])2 = ( ak nk − x[n])2
n=−M n=−M k=0

Analiza este aceeas, i pentru orice alt grup de 2M + 1 es, antioane de intrare. În
figura 4.15, unde N=2 s, i M=2, linia plină este polinomul p(n) evaluat ı̂ntre punctele -2 s, i
+2, s, i ies, irea netezită este obt, inută evaluând p(n) la punctul central n=0. As, adar, y[0],
ies, irea la momentul y[0], este
y[0] = p(0) = a0
prin urmare valoarea de ies, ire este egală cu coeficientul de ordin zero al polinomului. În
general, intervalul de aproximarea nu trebuie să fie ı̂n mod necesar simetric punctului
ı̂n care se face evaluarea. Acest lucru conduce la filtre cu fază nelineară, care pot fi
utile pentru netezirea la sfârs, itul secvent, elor de dimensiune finită. Ies, irea la următorul
es, antion este obt, inut prin mutarea intervalului de analiză la dreapta cu un es, antion,
redefinind originea la pozit, ia mijlocului noului bloc de date de dimensiune 2M+1, s, i
repetând aproximarea polinomială s, i evaluând ı̂n pozit, ia centrală.

Derivând eroarea ı̂n funct, ie de coeficient, ii polinomului obt, inem un set de ecuat, ii
care pot fi rezolvate atât timp cât lungimea ferestrei este mai mare decât gradul polinomului.
Pentru a obt, ine totus, i o netezire, este necesar ca gradul polinomului să fie mult mai mic
decât lungimea ferestrei. Ajungem astfel la o ecuat, ie normală.

a = (A| A)−1 A| x = Hx

Pentru aflarea coeficient, ilor filtrului se poate rezolva ecuat, ia normală specifică
numărului de es, antioane s, i gradului polinomului sau se pot afla aceste date din tabele.
Matlab ofera de asemenea o funct, ie sgolay pentru aflarea coeficient, ilor.

36
Figure 4.15: Imagine obt, inută din (Schafer, 2011).Ilustrare a netezirii folosind cele mai
mici pătrate prin potrivirea unui polinom de gradul doi la cinci esantioane de intrare.
Cu puncte pline sunt notate es, antioanele de intrare, cu punctele goale sunt notate ies, irile
filtrului iar cu x răspunsul la impuls a filtrului

Figure 4.16: Rezultatele filtrării a datelor achizit, ionate. Am folosit o fereastră de 31 de


es, antioane s, i un polinom de gradul 7.Cu albastru semnalul nefiltrat iar cu ros, u cel filtrat.

37
În urma filtrării datelor, se poate observa atenuarea semnificativă a frecvent, elor
ı̂nalte, fără a se pierde informat, ii utile din cadrul semnalului. Se observă cum forma s, i
ı̂nălt, imea au fost conservate iar zgomotul de frecvent, ă ı̂naltă a fost eliminat. Dacă dorim,
putem mics, ora gradul polinomului pentru a obt, ine o netezire mai pronunt, ată. Din păcate,
acest lucru poate duce la pierderea de date utile, precum ı̂nălt, imea undei R.

38
5. Detect, ia caracteristicilor

Electrocardiograma este un element ce poate oferi foarte multe informat, ii despre


starea de sănătate a unui pacient. Numărul de bătăi pe minut este cel mai important
factor, care poate indica dacă pacientul este ı̂ntr-un risc imediat, precum tahicardie sau
bradicardie, dar există multe alte elemente care pot oferi informat, ii relevante despre
condit, ia inimii. În mod normal, acestea sunt măsurate pe hârtie milimetrică de către un
medic cardiolog, dar progresul tehnologic din ultimii ani a făcut posibil detect, ia automată
a unor număr semnificativ de elemente.

Mult, i algoritmi pentru monitorizarea ritmului cardiac sunt bazat, i pe detect, ia


complexului QRS apoi calcularea distant, ei dintre aceste complexe. Complexele QRS
pot fi detectate de exemplu algoritmi din sfera ret, elelor neuronale artificiale, algoritmi
genetici, undine sau bancuri de filtre.

5.1. Detect, ia complexului QRS

Detect, ia complexului QRS este un element ce poate oferii date foarte importante
despre starea de sănătate a pacientului. Măsurarea acestuia este folosită ı̂n multe aplicat, ii
medicale sau aplicat, ii sportive cum ar fi teste de stres sau predict, ia situat, iilor ce pot
amenint, a viat, a. O metodă de a obt, ine ritmul cardiac este de a-l extrage din semnalul
ECG.În momentul de fat, ă există mai multe tehnici s, i algoritmi care pot fi utilizat, i.

Detect, ia complexului QRS este ı̂n general destul de greu de realizat, nu doar din
cauza variat, iei amplitudinii complexului, dar s, i din cauza zgomotului care poate afecta
semnalul. Surse de zgomot precum mus, chii, artefacte produse de mis, carea electrozilor,
interferent, a ret, elei electrice, variat, ia componentei continue, sau unde T de frecvent, ă ı̂naltă
similar cu cea a complexului.

Majoritatea tehnicilor pentru detect, ia intervalelor importante din cadrul ECG-ului


se bazează pe detect, ia ı̂n prealabil a complexului QRS. În funct, ie de pozit, ia acestuia se
poate estima cu o precizie relativ bună locat, ia celorlalte unde de interes. Din acest motiv,
trebuie ales un algoritm cu o precizie cât mai bună.

39
5.1.1. Algoritmul Pan-Tomkins

Des, i algoritmul Pan-Tomkins este relativ vechi (a fost publicat ı̂n martie 1985),
acesta este foarte eficient ı̂n detect, ia complexului QRS. Este un algoritm ı̂n timp real, cu
o precizie de 99,3 pe baza de date MIT. Acesta foloses, te filtre simple s, i necesită putere
de procesare foarte mică, lucru dovedit de faptul că init, ial acesta a fost implementat pe
un microprocesor Z80 produs de către compania Zilog. O referint, ă pentru implementarea
acestuia se poate găsi ı̂n (Lascu and Lascu, 2007)

Pentru a implementa acest algoritm este necesar să trecem semnalul mai ı̂ntâi
printr-un filtru trece-jos, apoi printr-un filtru trece-sus. După aceea semnalul trebuie
derivat, apoi ridicat la pătrat s, i ı̂n cele din urmă integrat pe 150ms.

Filtru trece-banda

Filtru trece bandă are ca principal scop reducerea influent, ei zgomotului produs
de către mus, chi, a celui introdus de ret, eaua electrică, a variat, iei componentei continue s, i
a undei T. Banda de trecere uzuală pentru a face acest lucru este de 5-15Hz. Pentru a
implementa acest lucru, am folosit două filtre Cebâs, ev de ordin 3 cu riplu setat la 0.1 .

Derivativa

După filtrare, semnalul este derivat pentru a afla informat, ia necesară despre
pantă. Derivata de ordin ı̂ntâi se comportă bine dar folosind derivata de ordin doi, se pot
obt, ine rezultate mai bune.

Ridicarea la pătrat

După derivare, semnalul este ridicat la pătrat ı̂n fiecare punct. Acest lucru face
ca toate punctele să fie pozitive s, i amplifică frecvent, ele pozitive scoase de derivare.

Integrarea

Scopul integrării este de a obt, ine informat, ii despre forma de undă, pe lângă cea
legată de panta undei R. În general lungimea intervalului pe care se face integrarea trebuie
să fie egală ca lungimea complexului QRS

Figure 5.1: Schema bloc a algoritmului Pan-Tomkins

Ajustarea pragului

40
După ce au fost efectuate toate aceste operat, ii asupra semnalului, este necesar
găsirea unui prag de la care putem spune că a fost detectat un complex QRS. Acesta
trebuie ajustat permanent ı̂n funct, ie de semnalul de la EKG, pentru a obt, ine rezultate
acceptabile. Există multe tehnici inteligente pentru a determina acest prag dar se pare
că dacă aplicăm o fereastră dreptunghiulară pe ultimele es, antioane, apoi facem o medie,
obt, inem o valoare acceptabilă. Fereastra este absolut necesara deoarece primele es, antioane
ale filtrării vor avea o valoare foarte mare iar acest lucru va seta pragul la o valoare
nerealistă.

În concluzie, pot spune că acest algoritm oferă rezultate foarte bune s, i are marele
avantaj că funct, ionează ı̂n timp real. Din păcate, el nu ne poate ajuta să determinăm
cu exactitate pozit, ia undei R. De aceea, ı̂n continuare am ales să explorez s, i alte metode
pentru a determina acest lucru.

Figure 5.2: Rezultatul ı̂n urma procesării semnalului cu algoritmul Pan-Tomkins. După
cum se vede, este necesară aplicarea unei ferestre pentru a determina un prag.

În aplicat, ia finală ı̂n Labview, am folosit acest algoritm pentru a afis, a ı̂n timp
real intervalul R-R s, i implicit numărul de bătăi pe minut. De asemenea, am folosit acest
algoritm s, i pentru a produce un efect sonor de fiecare dată când este detectată o bătaie
a inimii.

5.1.2. Transformata Fourier de timp scurt

Transformata Fourier clasică este o unealtă foarte utilă pentru analiza spectrului
unui semnal dar din păcate nu poate oferi informat, ii despre pozit, ia ı̂n timp a acestor
frecvent, e. Dacă semnalul este nestat, ionar, transformata nu mai oferă informat, ii satisfăcătoare.

Pentru a rezolva problema semnalelor nestat, ionare Dennis Gabor(1946) a venit


cu următoarea solut, ie. Putem presupune că unele port, iuni ale semnalului sunt stat, ionare.

41
Acest lucru este realizat alegând o fereastră pentru care va fi aplicată transformata Fourier.
Fereastra este mutată dea lungul ı̂ntregului semnal s, i ı̂n fiecare pozit, ie noua este aplicată
o nouă transformată. Prin această metodă obt, inem informat, ie atât despre frecvent, a dar
cât s, i despre momentul de timp la care sunt ı̂ntâlnite acestea.

STFT reprezintă un fel de compromis ı̂ntre timp s, i frecvent, ă a vederii asupra


semnalului. Oferă informat, ii atât despre ce frecvent, e apar cât s, i despre când apar
acestea. Din păcate, aceste informat, ii se pot obt, ine cu precizie limitată iar precizia este
determinată de lungimea ferestrei. În general pentru analiza acestui tip de semnal este
utilizată o fereastră Hanning de 3,4s.

Des, i compromisul STFT dintre timp s, i frecvent, ă poate fi util, dezavantajul este
dat de faptul că odată aleasă dimensiunea ferestrei, aceasta va fi aceeas, i pentru toate
frecvent, ele. Multe semnale necesită o abordare mai flexibilă, una ı̂n care se poate varia
lungimea ferestrei pentru a determina mai cu acuratet, e fie timpul, fie frecvent, a.

Figure 5.3: Aplicarea ferestrei in cazul STFT.

Să presupunem ca avem un semnal f(t) compus din mai multe frecvent, e s, i având o
caracteristică nestat, ionară. Abordarea folosită este să ı̂mpărt, im f ı̂n port, iuni de lungime
aproximativ egale s, i să o analizăm pe fiecare ı̂n mod individual. Această analiză are
dezavantajul evident de a fi oarecum aleatorie, deoarece este imposibil să afirmăm că o
frecvent, ă aleasă ı̂ncepe s, i când se termină. În funct, ie de natura semnalului, trebuie să
alegem o fereastră de dimensiune corespunzătoare, iar acest lucru este destul de dificil.

Informat, ie legată de domeniul frecvent, ei s, i domeniul timp trebuie obt, inută ı̂n
acelas, i timp. Prin urmare. ies, irea funct, iei rezultate depinde atât de timp cât s, i de
frecvent, ă.

Făcut faimos de către aplicarea lui ı̂n mecanica cuantică, principiul de incertitudine
a lui Heisenberg poate fi formulat ı̂n diferite moduri. Totus, i, indiferent de ce formă va lua,

42
esent, a este aceeas, i: măsurarea precisă a timpului s, i a frecvent, ei sunt ı̂n mod fundamental
incompatibile, deoarece frecvent, a nu poate fi măsurată instantaneu. As, adar, dacă vrem să
afirmăm că un semnal are o frecvent, ă ω0 putem face acest lucru dacă observăm semnalul
pentru un anumit moment de timp ( cu cât mai mare această perioadă, cu atât putem
afirma mai sigur acest lucru). As, adar nu putem specifica când exact un semnal are o
anumită frecvent, ă, ci doar un interval pentru acest lucru.

Într-o lucrare publicată de doi tailandezi (Uchaipichat and Inban, 2010) , folosind
STFT aces, tia afirmă că au ajuns la o precizie de 99”%” pe baza de date MIT-BIH. Acest
lucru dovedes, te faptul că metoda are performant, e suficient de bune.

5.1.3. Undine

Transformata Fourier de timp scurt este o unealtă foarte utilă pentru analiza timp
frecvent, ă a semnalelor biomedicale dar din păcate are un defect foarte mare. Lungimea
ferestrei limitează rezolut, ia ı̂n frecvent, ă a acesteia. O alternativă a transformatei Fourier
este transformata wavelet (sau undină ı̂n română)

”Transformata undine a fost recunoscută ı̂n ultimii ca o puternică unealtă pentru


analiza timp-frecvent, a s, i codarea semnalelor, preferată pentru interogarea semnalelor
nestat, ionare complexe. Aplicarea ei ı̂n domeniul prelucrării semnalelor biologice poate
fi considerat principalul motiv pentru acest lucru.”(Addison, 2005)

Transformata undine a fost aplicată cu succes la o gamă foarte largă de semnale


biomedicale, printre care se numără EMG-ul, EKG-ul, EEG-ul, analiza respirat, iei, analiza
variat, iei presiunii sângelui, analiza ADN. De asemenea, undinele au fost utilizate cu succes
s, i pentru compresia datelor. Dovada a acestui lucru stă ı̂n faptul că baza de date a FBI-ului
este comprimată folosind undine.

Transformata undine folosita ı̂n prezent se ı̂mparte ı̂n două mari categorii: transformata
continuă undine s, i transformata discretă undine. Des, i principiul care stă la baza acestora
este acelas, i, diferent, a dintre aceste transformate este foarte mare.

Transformata continuă - CWT Transformata continuă undine (CWT) este o


metodă de analiză timp-frecvent, a care diferă de tradit, ionala STFT prin faptul că permite
localizarea precisă ı̂n timp a frecvent, elor ı̂nalte. Transformata continuă undine a unui
semnal continuu x(t) poate fi definită ı̂n felul următor.
Z+∞  
1 ∗ t−b
T (a, b) = √ x(t)ψ dt
a a
−∞

unde ψ este complex conjugatul funct, iei de analiză ψ,variabila a este denumită parametru
de scală (factor de scală), iar variabila b parametru de translat, ie.Variabila a joacă rolul
inversului frecvent, ei: cu cât a este mai mică funct, ia wavelet este mai ı̂ngustă şi frecvenţa
centrală a spectrului său este mai mare. Pentru a fi clasificat ca o undină, o funct, ie trebuie
să ı̂ndeplinească anumite criterii. Acestea sunt:

43
(1) Trebuie să aibă energie finită:

Z+∞
E= |ψ|2 dt < inf ty
−∞

(2) Nu trebuie să cont, ină o componentă continuă, adică transformata Fourier a
acestuia să aibă valoarea 0 ı̂n origine.

(3) Pentru undine complexe, transformata Fourier trebuie să fie reală s, i să nu
cont, ină valori negative.

Figure 5.4: Aplicarea CWT asupra semnalului

Figura 5.4 a fost obt, inută aplicând transformata continuă undine (folosind o
undină de tipul ”haar”) asupra unui semnal EKG. După cum se poate observa, au fost
identificate undele R ca având frecvent, a mult mai ı̂naltă decât restul undelor. Des, i oferă
rezultate foarte bune, acest tip de transformată este destul de lentă s, i din acest motiv
este mai des utilizată transformata discretă.

Transformata discretă - DWT ”Fundat, iile transformatei discrete undine provin


din 1976 când Croiser,Esteban s, i Galand explorau metode pentru a descompune semnale

44
discrete. Crochiere, Weber s, i Flanagan au realizat un lucru similar ı̂ncercând să codifice
semnalele audio ı̂n acelas, i an.” (Polikar, 1999)

Ideea de bază este aceeas, i ca s, i la CWT. O reprezentare timp-scală a unui semnal


digital este obt, inută folosind tehnici de filtrare digitală. Transformata continuă a fost
calculată schimbând scala ferestrei de analiză, mutând fereastra ı̂n timp, ı̂nmult, ind-o cu
semnalul s, i integrând peste tot timpul. În cazul discret, filtre cu diferite frecvent, e de
tăiere sunt folosite pentru a analiza semnalul la diferite scale. Semnalul este pasat print-o
serie de filtre trece-jos pentru a analiza frecvent, ele joase s, i printr-o serie de filtre trece-sus
pentru a analiza frecvent, ele ı̂nalte.

Rezolut, ia semnalului, care este o măsură a cât de detaliat este semnalul, este
schimbat de operat, ia de filtrare iar scalarea este schimbată de către interpolare s, i decimare.

Figure 5.5: Rezultatul căutării vârfului undei R folosind undine. Se poate observa precizia
foarte bună a acestei metode.

Tipul de undină utilizat

În general este recomandat să se utilizeze o undină care să aibă o formă similară cu
a complexului căutat. Într-un articol (Senhadji et al., 1995) este comparată performant, a
diferitelor tipuri de undine pentru găsirea undei R. Undinele de tipul Daubechies, spline
s, i Morlet s-au dovedit foarte eficiente pentru acest lucru.

Pentru a evita localizarea inexactă datorată alegerii necorespunzătoare a undinei,


am realizat o căutare a maximului pe ı̂n proximitatea zonei suerate de către transformata
undine.

45
5.2. Detect, ia altor caracteristici

Există tehnici foarte avansate de detect, ie a diferitelor intervale din cadrul semnalului
EKG dar majoritatea se bazează pe detect, ia ı̂n prealabil a undei R. Astfel, cu cât unda
R este găsită cu precizie mai bună, cu atât s, ansele de identificare corectă a celorlalte
caracteristici cres, te.

5.2.1. Amplitudinea s, i pozit, ia

Detect, ia undei P

După ce am găsit vârful undelor R, am căutat la stânga pe un domeniu de 0.3


secunde pentru a găsi maximul. Aici m-am bazat pe faptul că ı̂n general, distant, a dintre
unda P s, i unda R nu este mai mare de 0.2s. Pentru a fi sigur de faptul că această
undă a fost găsită, putem seta un prag minim de amplitudine. Dacă acesta undă nu a
fost găsită ı̂n acest interval, pacientul este suspect de anumite afect, iuni, printre care se
numără sindromul Wolff-Parkinson-White.

Detect, ia undei Q

Similar, după găsirea vârfurilor undelor R, am căutat la stânga pe un domeniu


de 0.1 secunde pentru a găsi minimul.

Detect, ia undei S

În cazul ı̂n care este utilă detect, ia undei S, aceasta se poate determina printr-o
metodă asemănătoare. Întrucât nu am considerat unda relevantă, detect, ia acesteia nu a
fost implementată ı̂n program.

Detect, ia undei T

Unda T este singura care poate crea probleme. Deoarece are o frecvent, a similară
cu a undei R, poate fi confundată cu aceasta. Din fericire, aceasta are o amplitudine mult
mai mică decât unda R s, i dacă pragul pentru detect, ia undei R este setat corespunzător,
confuzia nu va avea loc. Pentru a detecta aceasta undă, am căutat la dreapta undei R,
pe un interval de 0.3 secunde.

5.2.2. Detect, ia intervalelor

După detect, ia pozit, iei fiecărui unde, putem ı̂ncepe măsurarea intervalelor de
interes.

46
Figure 5.6: Rezultatul căutării celorlalte caracteristici. Cu ros, u sunt marcate vârful
undelor R, cu verde vârful undelor P, cu galben undele Q, cu albastru undele S iar cu
negru undele T

Intervalul RR

Intervalul RR este util pentru determinarea timpului ı̂ntre două depolarizări ale
ventriculilor. Durata acestuia se măsoară ca distant, a dintre două vârfuri consecutive ale
undei R.

Intervalul PP

Intervalul PP este util pentru determinarea timpului ı̂ntre două depolarizări ale
atriilor. Durata acestuia se măsoară ı̂ntre două vârfuri ale undei P.

Intervalul PR

Intervalul PR oferi informat, ii despre circulat, ia dintre atriu s, i ventricul. Determinarea


acestuia este us, or mai dificilă deoarece trebuie determinat ı̂n prealabil momentul ı̂nceperii
depolarizării atriului s, i a depolarizării ventriculului. Pentru a face acest lucru, este
necesară determinarea momentului ı̂n care unda P ı̂ncepe să crească s, i a momentului
ı̂n care unda Q ı̂ncepe să scadă.

Intervalul QT

Pentru determinarea intervalului QT, este necesar determinarea momentului ı̂nceperii


depolarizării ventriculului s, i momentul sfârs, irii repolarizării ventriculului. Pentru afla cest
lucru, trebui să găsim momentul ı̂n care unda Q ı̂ncepe să scadă s, i momentul sfârs, irii undei
T.

Durata undei P

47
Durata undei P ne poate oferi informat, ii despre starea atriului. Similar metodelor
anterioare, se poate determina s, i acesta

48
6. Implementare Labview

După studiere a filtrelor s, i a diverselor tehnici de detect, ie a componentelor semnalului


urmează partea de implementare a celor descrise. Des, i init, ial am dorit să fac init, ial
implementarea ı̂n Matlab, posibilităt, ile superioare de procesare s, i plotare ı̂n timp real ale
suitei de programe Labview m-au făcut să migrez spre acesta.

Pentru a facilita tranzit, ia ı̂ntre cele două programe am folosit un modul de


Labview numit MathScript RT Module. Acesta mi-a permis să apelez de fiecare dată
când am avut nevoie cod de Matlab. Astfel pentru a funct, iona corect, avem nevoie să fie
instalat atât Labview cât s, i Matlab.

Figure 6.1: Interfata Labview creata

6.1. Structura programului

Pentru a obt, ine o procesare eficientă a semnalului EKG, programul a fost structurat
ı̂n următoarele etape:

1. Achizit, ia de date prin intermediul protocolului serial

2. Filtrarea zgomotului de ret, ea

49
3. Filtrarea prin intermediul filtrului Savitzky-Golay

4. Detect, ia bătăilor inimii cu ajutorul algoritmului Pan-Tomkins

5. Eliminarea variat, iei componentei continue

6. Detect, ia undelor R din cadrul semnalului

7. Detect, ia celorlalte intervale de interes

Figure 6.2: Schema bloc a programului Labview

Achizit, ia de date prin intermediul protocolului serial

Prima etapă, cea de achizit, ie de semnal prin intermediul protocolului serial putem
spune că este cea care face legătura ı̂ntre componenta hardware s, i cea software a sistemului.
Pentru a nu avea probleme legate de ı̂ntârzierea transmisiei, am folosit viteza de transmisie
mare de 115200 bauds. Restul opt, iunilor au fost setate pe valorile implicite. Totus, i,
pentru eventualele modificări am inclus ı̂n interfat, a posibilitatea de a modifica parametrii
transmisiei.

Filtrarea zgomotului de ret, ea

Pentru filtrarea zgomotului de ret, ea am ales să las la dispozit, ia utilizatorului


alegerea tipului de filtru. Des, i filtrul neliniar s-a comportat cel mai bine pe semnalul
simulat, există unele cazuri ı̂n care frecvent, a ret, elei variază foarte mult. În aceste cazuri,
filtrul Butterworth se comportă mult mai bine. Alegând unul din cele trei tipuri de filtre
puse la dispozit, ie se poate elimina cu succes zgomotul.

După cum am ment, ionat ı̂n capitolul 3, filtrul neliniar se comportă foarte bine
atunci când frecvent, a ret, elei de alimentare nu variază foarte tare. În acest caz, filtrul
neliniar nu introduce zgomot după complexul QRS. Dacă ı̂nsă frecvent, a ret, elei variază
foarte mult, atunci un filtru de tip Butterworth sau Cebâs, ev este de dorit. Din păcate,
ı̂n acest caz trebuie să acceptăm perturbat, iile introduse de acesta.

50
Aplicarea filtrului Savitzky–Golay

După eliminarea zgomotului de ret, ea, a urmat aplicarea filtrului Savitzky-Golay.


Cu ajutorul acestuia am reus, it să netezesc semnalul rezultat. Din păcate, a trebuit să
realizez un compromis ı̂ntre gradul de netezire s, i păstrarea formei originale a semnalului.
Dacă fort, ez filtrul să realizeze o netezire foarte agresivă a datelor, atunci pierd s, i din
amplitudinea undei R.

Detect, ia bătăilor inimii cu ajutorul algoritmului Pan-Tomkins

Folosind algoritmul Pan-Tomkins se pot detecta ı̂n timp real bătăile inimii. Cu
ajutorul acestui algoritm am putut realiza sunetul caracteristic al unui aparat EKG la
fiecare aparit, ie a complexului QRS. Dacă acest sunet devine obositor, el poate fi oprit
us, or cu ajutorul unui buton prezent ı̂n interfat, ă.

Eliminarea variat, iei componentei continue

Acest pas marchează renunt, area la timpul real s, i acceptarea unui timp ”aproape
real”. Pentru a face acest lucru, am aplicat tehnica ”forward-backward IIR filtering”
pe ultimele 1000 de es, antioane achizit, ionate. Din păcate a trebuit să elimin ultimele
es, antioane, deoarece acestea au fost perturbate de către filtru.

Detect, ia undelor R din cadrul semnalului

Folosind transformata undine pe două nivele am putut să detectez momentul


ı̂n care apare unda R. Pentru a nu instala un nou toolkit labview anume ”Advanced
signal processing toolkit” am făcut acest lucru aproape ı̂n totalitate ı̂n Matlab, apelând
scripturile create anterior.

Detect, ia celorlalte intervale de interes

Pe baza detect, iei undei R de către pasul anterior se face detect, ia s, i intervalele de
interes. Acest lucru se face căutând ı̂n proximitatea undei găsite.

6.2. Rezultate filtrare

Filtrarea s-a dovedit a fi o parte esent, ială a realizării EKG-ului care depinde
foare mult de sistemul hardware folosit. Prin această filtrare ı̂ncerc să elimin pe cât
posibil imperfect, iunile care nu au putut fi eliminate de către filtrele analogice.

După ce am realizat filtrarea zgomotului de ret, ea, a urmat aplicarea filtrului


Savitzky-golay iar ı̂n cele din urmă am aplicat filtrul pentru eliminarea componentei
continue. Rezultatele acestor operat, ii pot fi văzute ı̂n figura 6.3.

51
Figure 6.3: Rezultatele finale ale filtrării. Cu albastru este reprezentat semnalul original,
nefiltrat iar cu ros, u este reprezentat semnalul final

6.3. Interpretarea rezultatelor

Pe baza pozit, iei fiecărei unde găsite la anterior, se poate face o interpretare
minimală a stării de sănătate a pacientului. Des, i acest sistem nu poate substitui un
medic, el poate oferi un indicator al posibilelor afect, iuni ale pacientului.

Table 6.1: Interpretarea rezultatelor

Simptom Diagnostic
Interval R-R sub 0.6 s Inima bate prea repede, pacient suspect de tahicardie
Interval R-R peste 1.2 s Inima bate prea ı̂ncet, pacient suspect de bradicardie
Diferent, a mare ı̂ntre R-R s, i P-P Risc de blocaj atrio-ventricular
Interval PR peste 0.2 s Risc de torsada vârfurilor
Interval PR sub 0.12 s Risc de preexcitat, ie

În urma detectării unei afect, iuni cardiace, programul va emite o avertizare s, i va
anunt, a utilizatorul de posibilitatea unei afect, iuni cardiace. Acest tabel poate fi modificat
cu us, urint, ă pentru a adăuga sau elimina diverse afect, iuni.

Pentru a elimina detectarea falsă a unei afect, iuni, am ales să procesez datele pe
un interval de timp mai larg. Astfel sistemul nu va emite avertizări dacă de exemplu
pacientul se mis, că prea tare s, i apar perturbat, ii semnificative ı̂n semnal.

52
7. Concluzii s, i direct, ii de continuare

Prin tehnicile implementate, am reus, it să obt, in o condit, ionare bună a semnalului,
extragerea principalelor caracteristici de interes s, i oferirea unui diagnostic minimal. În
concluzie, pot spune că am reus, it să ı̂ndeplinesc ce mi-am propus s, i ı̂n plus am reus, it să
realizez o interfat, ă intuitivă pentru utilizator.

În urma testelor pot spune că pentru eliminarea zgomotului de ret, ea, filtrul
neliniar a oferit rezultatele cele mai bune, ı̂ntrucât nu a introdus perturbat, ii după complexul
QRS. Eliminarea variat, iei componentei continue a fost mai dificilă dar ı̂n cele din urmă,
am reus, it să scap de aceasta folosind tehnica ”forward-backwards IIR filtering”. Filtrul
Savitzky-Golay s-a dovedit a fi o unealtă indispensabilă deoarece prin intermediul acestuia
am reus, it să elimin restul de zgomot nedorit.

Algoritmul Pan-Tomkins este destul de vechi dar tot rămâne un algoritm ce


poate fi utilizat cu ı̂ncredere pentru detect, ia ı̂n timp real a bătăilor inimii. Des, i STFT
este eficientă ı̂n detectarea caracteristicilor semnalului electrocardiogramei, undinele s-au
dovedit a mult mai precise s, i sigure. Chiar s, i atunci când semnalul este perturbat de către
zgomot, informat, ia extrasă este foarte bună.

Programul funct, ionează corespunzător s, i poate oferi date importante despre pacientul
monitorizat. Des, i niciodată nu va ı̂nlocui un medic, un astfel de program oferă indicat, ii
utile pentru diagnosticare. Pe semnalele testate, sistemul se comportă corespunzător ;i,
ca orice unealtă utilizată de către medici, trebuie testată intensiv ı̂nainte de a fi utilizată.

Ca direct, ie de continuare, ment, ionez că se poate utiliza o ret, ea neurală, dar
pentru o astfel de implementare avem nevoie de un set de date destul de mare pentru
antrenare. De altfel, mult, i algoritmi ce se bazează pe tehnici de inteligent, a artificială ar
putea fi utilizat, i ı̂ntr-o astfel de aplicat, ie.

Pentru evaluarea stării de sănătate a pacientului pot fi utilizat, i algoritmi mult


mai evoluat, i precum sisteme fuzzy sau algoritmi genetici.

Filtrarea semnalului se poate realiza de asemenea ı̂ntr-un mod mult mai inteligent.
Există filtre neliniare pentru eliminarea zgomotului de ret, ea s, i pentru eliminarea variat, iei
componentei continue cu performant, e mult superioare. Modelarea semnalului ar putea
de asemenea să aducă un spor de performant, a foarte bun. Există tehnici moderne ce

53
utilizează undine care s-au dovedit a fi extraordinar de eficiente ı̂n eliminarea zgomotului.

Având ı̂n vedere evolut, ia spectaculoasă a puterii de procesare a dispozitivelor


mobile, sistemul ar putea fi portat us, or pe un astfel dispozitiv. Monitorizarea permanentă
a pacient, ilor care suferă de afect, iuni cardiace s-ar putea dovedi o unealta foarte utilă. Des, i
capacitatea de stocare s-a mărit considerabil ı̂n ultima perioadă, un astfel de sistem ar
beneficia enorm dacă ar include un algoritm de compresie a datelor. Momentan există
foarte multe tehnici de compresie care profită de natura redundantă a semnalului EKG s, i
produc rezultate foarte bune.

54
A. Cod Matlab

function [ noisy signal ] = add noise( signal, Fs,noise freq, noise amp)
%% Functie ce poate fi folosita pentru a simula zgomotul de retea sau orice
% fel de zgomot la o anumita frecventa.

%% Time specification
dt= 1/Fs;
N = size(signal,1);
t = (0:dt:N*dt−dt)';
%% Noise
noise = noise amp*sin(2*pi.*t.*noise freq);
noisy signal = signal + noise;
%% Plots
figure();

subplot(3,1,1);
plot(t, signal);
xlabel('Timp [s]');
ylabel('Amplitudine');
title('Semnal original');
subplot(3,1,2);
plot(t, noise);
xlabel('Timp [s]');
ylabel('Amplitudine');
title('Zgomot');
subplot(3,1,3);
plot(t, noisy signal);
xlabel('Timp [s]');
ylabel('Amplitudine');
title('Semnal original + Zgomot');
end

function [ ] = cmp filters( original, noisy, filtered1,filtered2, Fs )


%% Functie utilizata pentru compararea semnalelor ce au rezultat in urma
% filtrarii cu diverse filtre

%% Time specification
dt= 1/Fs;
N = size(original, 1);
N1 = size(noisy, 1);
N2 = size(filtered1, 1);
N3 = size(filtered2, 1);

55
if (N˜=N1)
error('Dimenisiunea semnalului zgomotos nu e buna');
end
if (N˜=N2)
error('Dimenisiunea primului semnal filtrat nu e buna');
end
if (N˜=N3)
error('Dimenisiunea celui de−al doilea semnal filtrat nu e buna');
end
t = (0:dt:N*dt−dt)';
%% Fourier Transform:
X = fftshift(fft(original));
X1 = fftshift(fft(noisy));
X2 = fftshift(fft(filtered1));
X3 = fftshift(fft(filtered2));
%% Frequency specifications:
dF = Fs/N; % hertz
f = −Fs/2:dF:Fs/2−dF; % hertz
%% Plot the spectrum:
figure;
subplot(1,2,1);
hold on;
plot(t, original,'b');
plot(t,noisy,'r');
% plot(t,filtered1,'b');
% plot(t,filtered2,'m');
hold off;
xlabel('Timp [s]');
ylabel('Amplitudine');
title('Domeniu timp');
subplot(1,2,2);
hold on;
plot(f,10*log(abs(X)/N), 'b');
plot(f,10*log(abs(X1)/N),'r');
% plot(f,10*log(abs(X2)/N),'b');
% plot(f,10*log(abs(X3)/N),'m');
xlabel('Frecventa (in hertz)');
ylabel('Decibeli');
title('Domeniu frecventa');
end

function [ ] = fft analyse( signal, Fs)


%% Functie utilizata pentru plotarea spectrului unui semnal

%% Time specification
dt= 1/Fs;
N = size(signal,1);
t = (0:dt:N*dt−dt)';
%% Fourier Transform:
X = fftshift(fft(signal));
%% Frequency specifications:
dF = Fs/N; % hertz
f = −Fs/2:dF:Fs/2−dF; % hertz
%% Plot the spectrum:
figure;

56
subplot(1,2,1);
plot(t, signal);
xlabel('Timp [s]');
ylabel('Amplitudine');
title('Semnal original');
subplot(1,2,2);
plot(f,10*log(abs(X)/N));
xlabel('Frecventa (in hertz)');
title('Magnitude Response');
end

function [ filtered ] = ne linear( signal, Fs, alpha,Fc)


%Filtru de 50Hz nelinear

%% Time specification
dt= 1/Fs;
Fn = Fc/Fs;
N = size(signal,1);
t = (0:dt:N*dt−dt)';
%% Initial conditions
v a = 1;
v b = 2 * cos(2*pi* Fn);
filtered = signal;
vect = signal;
vect(1) = v a;
vect(2) = v b;

for i=3:N
v = 2 * cos(2 * pi * Fn ) * v b − v a;
e = signal(i) − signal(i−1) − v + v b;
v hat = v + alpha * sign(e);
filtered(i) = signal(i) − v hat;
v a = v b;
v b= v hat;
vect(i)=v hat;
end

end

function [Rloc,Ramp,Ploc,Pamp,Pon,Qloc,Qamp,Qon,Sloc,Samp..
,Tloc,Tamp,Toff]=wavelet(voltage,Fs)
B f = 0.5; % Variatiei componentei continue
W b = B f/ (Fs/2);
[B b,A b]=cheby1(3,0.1,W b,'high');
voltage=filtfilt(B b,A b,voltage);
voltage=voltage(200:end−200); % Eliminarea portiunii deformate

A =voltage;
z=zeros(1,200); % Zero padding

A=[z A z];

57
[ca1,cd1] = dwt(A,'haar'); % Transformata undine pe primul nivel
[ca2,cd2] = dwt(ca1,'haar'); % Transformata undine pe al doilea nivel

%% Gaseste R
y1=ca2;
m1=max(y1)*0.5;
P=find(y1>=m1);

P1=P;
P2=[];
last=P1(1);
P2=[P2 last];
for(i=2:1:length(P1))
if(P1(i)>(last+10))
last=P1(i);
P2=[P2 last];
end
end
Rt=y1(P2);

%% Gaseste R in semnalul original


P3=P2*4;
Rloc=[];
for(i=1:length(P3))
range = [P3(i)−20:P3(i)+20];
m=max(A(range));
l=find(A(range)==m);
pos=range(l);
Rloc=[Rloc pos];
end
Ramp=A(Rloc);

%% Dupa detectarea undei R, gaseste restul undelor si intervalelor


X=Rloc;
y1=A;

for(j=1:length(X))
% P Peak
range=Rloc(j)−round(0.3*Fs):Rloc(j)−round(0.05*Fs);
m=max(y1(range));
b=find(y1(range)==m);
b=b(1);
b=range(b);
Ploc(j)=b;
Pamp(j)=m;

%P onset
range=Ploc(j)−round(0.08*Fs):Ploc(j)−10;
m=min(y1(range));
b=find(y1(range)==m);

58
b=b(end);
b=range(b);
Pon(j)=b;
Ponamp(j)=m;

% Q Peak
range=Rloc(j)−round(0.05*Fs):Rloc(j)−5;
m=min(y1(range));
b=find(y1(range)==m);
b=b(1);
b=range(b);
Qloc(j)=b;
Qamp(j)=m;

%Q onset
range=Qloc(j)−round(0.03*Fs):Qloc(j)−5;
m=max(y1(range));
b=find(y1(range)==m);
b=b(end);
b=range(b);
Qon(j)=b;
Qonamp(j)=m;

% S Peak
range=Rloc(j)+5:Rloc(j)+50;
m=min(y1(range));
b=find(y1(range)==m);
b=b(1);
b=range(b);
Sloc(j)=b;
Samp(j)=m;

% T Peak
range=Rloc(j)+25:Rloc(j)+150;
m=max(y1(range));
b=find(y1(range)==m);
b=b(1);
b=range(b);
Tloc(j)=b;
Tamp(j)=m;

%T offset
range=Tloc(j)+5:Tloc(j)+round(0.1*Fs);
m=min(y1(range));
b=find(y1(range)==m);
b=b(1);
b=range(b);
Toff(j)=b;
Toffamp(j)=m;

end

figure;
plot(y1); hold on;
plot(Rloc,Ramp,'r*','MarkerSize',25);

59
plot(Ploc,Pamp,'g.','MarkerSize',25);
% plot(Pon,Ponamp,'gd','MarkerSize',15);
plot(Qloc,Qamp,'y+','MarkerSize',25);
% plot(Qon,Qonamp,'yd','MarkerSize',15);
plot(Sloc,Samp,'c+','MarkerSize',25);
plot(Tloc,Tamp,'kˆ','MarkerSize',25);
% plot(Toff,Toffamp,'kd','MarkerSize',15);
end

%%Calcularea intervalelor dupa ce pozitia lor a fost calculata anterior

RR = diff(Rloc);
RR = RR(2:end);
RR=mean(RR);
PR=mean(Rloc−Ploc);
QT=mean(Tloc−Qloc);
PP=diff(Ploc);
PP=PP(2:end);
PP=mean(PP);
PQ=mean(Qloc−Ploc);

%%Diagnoza pacientului

Stare = 'Pacient sanatos';


if (RR<0.6)
Stare=' Risc de tahicardie'
end
if (RR>1.2)
Stare=' Risc de brahicardie'
end
if (abs(RR−PP)<0.1)
Stare=' Pacient suspect de blocaj atrioventricular'
end
if (QT>0.42)
Stare=' Risc de torsada Varfurilor'
end
if (PR>0.2)
Stare=' Risc de blocaj atrioventricular'
end
if (PR<0.12)
Stare=' Risc de preexcitatie'
end

60
B. Cod Labview

Figure B.1: Achizitia de date

61
Figure B.2: Aplicarea algoritmului Pan-Tomkins

62
Figure B.3: Aplicarea transformatei undine

63
Bibliografie

Addison, P. S. (2005), ‘Wavelet transforms and the ecg: a review’, Physiol. Meas 26.

Afonsor, V. X. (2004), ‘Method and apparatus for catheter navigation and location and
mapping in the heart’.

Clifford, G. D., Azuaje, F. and McSharry, P. E. (2006), Advanced Methods and Tools for
ECG Data Analysis, Artech House.

Gupta, R., Bera, J. and Mitra, M. (2010), ‘Development of an embedded system and
matlab-based gui for online acquisition and analysis of ecg signal’, Elsevir Journal. .

Islam, M. K., Haque, A. N. M. M., Tangim, G., Ahammad, T. and Khondokar, M. R. H.


(2012), ‘Study and analysis of ecg signal using matlab and labview as effective tools’,
International Journal of Computer and Electrical Engineering. 4.

Lascu, M. and Lascu, D. (2007), ‘Labview event detection using pan –tompkins algorithm’,
Proceedings of the 7th WSEAS Int. Conf. on Signal Processing. .

Oppenheim, A. V., Schafer, R. W. and Buck, J. R. (1999), Discrete-Time Signal


Processing, 2 edn, Prentice Hall.

Pan, J. and Tomkins, W. J. (1985), ‘A real-time qrs detection algorithm’, IEEE


Transactions on biomedical engineering 32(3).

Polikar, R. (1999), ‘The wavelet tutorial’, Rowan University, College of Engineering, Web
Servers .

Prandoni, P. and Vetterlli, M. (2008), Signal Processing for Communications, Elsevier


Academic Press.

Schafer, R. W. (2011), ‘What is a savitzky-golay filter?’, IEEE Signal Processing


Magazine. .

Senhadji, L., Carrault, G., Bellanger, J. and Passariello, G. (1995), ‘Comparing wavelet
transforms for recognizing cardiac patterns’, IEEE Trans. Med. Biol. pp. 167–173.

Senior, K. (2013), ‘Senior kathryn “facts and figures:


Heart disease worldwide’. Accessed: 2013-05-21. URL:
http://www.cardiacmatters.co.uk/facts-figures-heart-disease-worldwide.html

64
Sörnmo, L. (1993), ‘Time-varying digital filtering of ecg baseline wander’, Med. & Biol.
Eng & Comput. 14(3), 342–351.

Sörnmo, L. and Laguna, P. (2005), Bioelectrical Signal Processing in Cardiac and


Neurological Applications, Elsevier Academic Press.

The WFDB Toolbox for MATLAB (2013). Accessed: 2013-03-11. URL:


http://physionet.org/physiotools/matlab/wfdb-swig-matlab/

Uchaipichat, N. and Inban, S. (2010), ‘Development of qrs detection using short-time


fourier transform based technique’, IJCA Special Issue on Computer Aided Soft
Computing Techniques for Imaging and Biomedical Applications .

65

S-ar putea să vă placă și