lucrare de licent a - acse...

66
Universitatea Politehnica Bucures , ti Facultatea de Automatic˘ as , i Calculatoarei Departamentul de Automatic˘a ¸ si Ingineria Sistemelori Lucrare de licent , ˘ a Procesare de semnal ECG Coordonator: Prof. dr. ing. Radu V ˘ arbanescu Asis. drd. ing. Daniel Rosner Absolvent: Dan Iorga Bucures , ti, 2013

Upload: phunghuong

Post on 08-Feb-2018

302 views

Category:

Documents


5 download

TRANSCRIPT

Page 1: Lucrare de licent a - ACSE Departmentacse.pub.ro/wp-content/uploads/2013/07/Licenta_Iorga_Dan_341B2.pdf · 1 Introducere 6 2 Inima s ... i proiectarea ltrelor am folosit Matlab iar

Universitatea Politehnica Bucures,tiFacultatea de Automatica s, i Calculatoarei

Departamentul de Automatica si Ingineria Sistemelori

Lucrare de licent, aProcesare de semnal ECG

Coordonator:Prof. dr. ing. Radu Varbanescu

Asis. drd. ing. Daniel Rosner

Absolvent:Dan Iorga

Bucures,ti, 2013

Page 2: Lucrare de licent a - ACSE Departmentacse.pub.ro/wp-content/uploads/2013/07/Licenta_Iorga_Dan_341B2.pdf · 1 Introducere 6 2 Inima s ... i proiectarea ltrelor am folosit Matlab iar

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 alternativa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 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

Page 3: Lucrare de licent a - ACSE Departmentacse.pub.ro/wp-content/uploads/2013/07/Licenta_Iorga_Dan_341B2.pdf · 1 Introducere 6 2 Inima s ... i proiectarea ltrelor am folosit Matlab iar

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

4.2.2 Filtru linear - Cebas,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

Page 4: Lucrare de licent a - ACSE Departmentacse.pub.ro/wp-content/uploads/2013/07/Licenta_Iorga_Dan_341B2.pdf · 1 Introducere 6 2 Inima s ... i proiectarea ltrelor am folosit Matlab iar

Lista de figuri

2.1 Fat,a diafragmatica a cordului. . . . . . . . . . . . . . . . . . . . . . . . . . 11

2.2 Sistemul excitoconducator. . . . . . . . . . . . . . . . . . . . . . . . . . . . 13

2.3 Forma generala 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 Brat, arile antistatice necesare pentru EKG. . . . . . . . . . . . . . . . . . . 19

3.4 Interfat,a ElectricGuru disponibila 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 folosindo fereastra gausiana. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24

4.2 Caracteristica de modul a unui filtrul FIR de ordinul 100, proiectat folosindo fereastra gausiana. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25

4.3 Caracteristica de modul a unui filtrul FIR de ordinul 1800, proiectat folosindo fereastra gausiana. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 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. Dupa cum sevede, este foarte perturbat de catre zgomotul de ret,ea. . . . . . . . . . . . 28

3

Page 5: Lucrare de licent a - ACSE Departmentacse.pub.ro/wp-content/uploads/2013/07/Licenta_Iorga_Dan_341B2.pdf · 1 Introducere 6 2 Inima s ... i proiectarea ltrelor am folosit Matlab iar

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 filtrarii de 50Hz . . . . . . . . . . . . . . . . . . . . . . . . . . . 35

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

4.16 Rezultatul filtrarii 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 cautarii varfului undei R folosind undine . . . . . . . . . . . . . 45

5.6 Rezultatul cautarii celorlalte caracteristici . . . . . . . . . . . . . . . . . . 47

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

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

6.3 Rezultatele finale ale filtrarii . . . . . . . . . . . . . . . . . . . . . . . . . . 52

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

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

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

4

Page 6: Lucrare de licent a - ACSE Departmentacse.pub.ro/wp-content/uploads/2013/07/Licenta_Iorga_Dan_341B2.pdf · 1 Introducere 6 2 Inima s ... i proiectarea ltrelor am folosit Matlab iar

Lista de tabele

2.1 Scurta descriere a caracteristicilor semnalului EKG . . . . . . . . . . . . . 16

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

5

Page 7: Lucrare de licent a - ACSE Departmentacse.pub.ro/wp-content/uploads/2013/07/Licenta_Iorga_Dan_341B2.pdf · 1 Introducere 6 2 Inima s ... i proiectarea ltrelor am folosit Matlab iar

1. Introducere

Prin aceasta lucrare am dorit sa gasesc o metoda care sa monitorizeze ın timp realstarea de sanatate a pacient, ilor ce sufera de afect, iuni cardiace. Am analizat s, i ulteriorimplementat diferite tehnici de filtrare de zgomot s, i extragere de caracteristici pentrurealizarea unui sistem eficient, care sa ajute medicii sa identifice mai us,or posibilele bolice pot afecta pacient, i. Pentru analiza semnalelor s, i proiectarea filtrelor am folosit Matlabiar pentru implementarea softului de monitorizare am folosit Labview ın care am inseratcod de Matlab.

Funct, ionarea corpului uman se bazeaza pe semnale de origine electrica, chimicasau acustica. Astfel de semnale ofera informat, ie ce nu poate fi perceputa imediat, aceastafiind codata ın structura semnalului. Informat, ia trebuie descifrata ınainte ca semnaluluisa ıi fie atribuita o interpretare. Aceasta informat, ie este utila pentru diagnosticareadiverselor boli. Uneori diagnosticarea este facila deoarece presupune doar inspect, ia vizualaa semnalului tiparit pe hartie sau afis,at pe monitorul unui calculator. Dar, exista s, isemnale a caror complexitate este sporita s, i care necesita o procesare suplimentara.

Des, i electrocardiograma a fost descoperita acum mai bine de 100 de ani, earamane una dintre cele mai importante unelte pentru medici. Studiul EKG-ului poate oferiinformat, ie relevanta despre starea de sanatate a pacientului. In prezent analiza acestuisemnal se face pe hartie milimetrica de catre un medic specialist, acest proces necesitandmult timp s, i efort. Am dorit sa realizez un sistem care sa us,ureze munca medicilor s, i chiarsa ofere informat, ii de baza neinit, iat, ilor. Des, i tehnicile de procesare de semnal au evoluatsemnificat ın ultima perioada iar automatizarea diagnosticarii afect, iunilor pacient, ilor estefacilitata din ce ın ce mai mult, niciodata nu va fi eliminat complet medicul din procesul dediagnosticare. Astfel, nu am ıncercat sa realizez o diagnosticare completa a pacientului(deoarece acest lucru ar fi imposibil) dar am ıncercat sa ofer cat mai multe informat, iirelevante despre pacient s, i sa semnalez posibilele anomalii care apar ın electrocardiogramapacientului.

Unu din motivele principale pentru utilizarea analizei asiste de calculator a semnaluluiECG este capacitatea de a ımbunatat, ii calitatea semnalului.Indiferent de performant,aechipamentului fizic, semnalul obt, inut nu va fi niciodata perfect. Dificultatea realizariifiltrelor analogice de ordin mare face indispensabila procesarea digitala a semnalului.Discretizarea s, i cuantificarea produc aliere ce trebuie eliminat pe cat posibil. Dezvoltareaechipamentelor numerice s, i marirea semnificativa a puterii de calcul a us,urat considerabil

6

Page 8: Lucrare de licent a - ACSE Departmentacse.pub.ro/wp-content/uploads/2013/07/Licenta_Iorga_Dan_341B2.pdf · 1 Introducere 6 2 Inima s ... i proiectarea ltrelor am folosit Matlab iar

tot procesul de prelucrare. Pana s, i dispozitivele de foarte mici dimensiuni, precumtelefoanele mobile, au suficienta putere pentru a procesa cantitat, i mari de semnal.

Motivul principal pentru care am vrut sa realizez aceasta lucrare de licent, a afost dorint,a de a aplica ın practica cunos,tint,ele de prelucrare de semnal acumulate ınfacultate. A durat destul de mult pana mi-am consolidat cunos,tint,ele teoretice s, i amreus, it sa implementez primul filtru digital, dar dupa acel moment, totul a mers destul defluid iar rezultatele au ınceput sa apara. Init, ial am dorit sa realizez ıntreaga implementareın Matlab dar ulterior am realizat ca Labview ofera posibilitat, i de procesare ın timp realsuperioare Matlab.

Implementarea hardware este explicata foarte pe scurt. Am dorit sa ma axezdoar pe partea de procesare de semnal. In momentul de fat, a exista suficient de multesolut, ii pe piat, a care faciliteaza achizit, ia de semnal. Printre producatorii care ofera unastfel de sistem se numara Olimex, Texas Instruments sau Freescale.

Testele au fost realizate init, ial pe semnalele din baza de date MIT ce se poategasi la adresa www.physionet.org iar ulterior au fost realizate pe semnale culese de la undispozitiv hardware. Au existat anumite probleme ın tranzit, ia de la semnalele din bazade date la semnale achizit, ionate ın timp real, iar unele filtre s-au comportat diferit dar ıncele din urma, problemele au fost rezolvate. In foarte multe teste am folosit o placut, a dedezvoltare Arduino ımpreuna cu un scut de EKG produs de Olimex .

O mare problema a fost condit, ionarea semnalului. Des, i aparent neimportanta,condit, ionare semnalului este un proces esent, ial pentru analiza ulterioara a semnalului.Dorint,a principala a fost sa nu distorsionez semnalul achizit, ionat s, i sa lucrez pe catposibil ın timp real. Pentru partea de extragere de caracteristici din semnal, dupa destulde multa documentat, ie, am ajuns la concluzia ca des, i algoritmi precum cel publicat ın(Pan and Tomkins, 1985), sau utilizarea STFT ofera rezultate bune, tehnici moderne deanaliza timp-frecvent, a precum Tranformata Discreta Undine ofera cele mai bune rezultate.Dupa ce am extras aceste caracteristici,am ıncercat sa raportez orice fel de anomalieıntampinata. Aceste anomalii trebuie verificate de catre medic, deoarece un inginer nupoate pune un diagnostic asupra pacientului.

Dupa ce am ınceput sa utilizez undine, precizia masuratorilor s-a ımbunatat, itconsiderabil iar rezultatele au fost peste as,teptari. Pe viitor, solut, ia poate fi portata ınalt limbaj de programare mai portabil precum C s, i implementata pe un telefon mobil,realizand astfel un sistem mobil care sa ajute la monitorizarea pacient, ilor ce sufera deafect, iuni cardiace.

Identificarea pacient, ilor care sufera de anumite boli cardiace a devenit un factorimportant pentru multe t, ari. Detectarea bolilor ın indivizi care nu prezinta semne sausimptome poate fi critic ın prevenirea deteriorarii calitat, ii viet, i. In ultimii ani s-audezvoltat din ce ın ce mai multe unelte pentru identificarea anumitor afect, iuni. Diagnosticareatimpurie poate mari considerabil s,ansa de ınsanatos, ire. As,adar rolul inginerului este dince ın ce mai important ın medicina.

7

Page 9: Lucrare de licent a - ACSE Departmentacse.pub.ro/wp-content/uploads/2013/07/Licenta_Iorga_Dan_341B2.pdf · 1 Introducere 6 2 Inima s ... i proiectarea ltrelor am folosit Matlab iar

O alta ramura a medicinii care devine din ce ın ce mai importanta este telemedicina.In unele zone greu accesibile precum Delta Dunarii la noi ın Romania, accesul mediciloreste ıngreunat considerabil. Din acest motiv, unelte eficiente pentru diagnosticarea ladistant, a devin din ce ın ce mai importante. Echipaje ce nu cont, in un medic specialistsunt folosite ın acest caz pentru deplasarea la pacient. Aces,tia trebuie sa fie dotat, i ınschimb cu echipamente precise cu posibilitatea de a transmite informat, ia achizit, ionata ladistant, a.

Bolile de inima sunt unele dintre cele mai raspandite boli din ıntreaga lume. Stilulde viat, a nesanatos, concretizat prin sedentarism s, i alimentat, ie nesanatoasa au contribuitla acest lucru. Poluarea este de asemenea un motiv ce a contribuit la scaderea niveluluide sanatate general al populat, iei. Aproximativ 17 milioane de oameni mor ın fiecare andin cauza afect, iunilor cardiace(Senior, 2013).

8

Page 10: Lucrare de licent a - ACSE Departmentacse.pub.ro/wp-content/uploads/2013/07/Licenta_Iorga_Dan_341B2.pdf · 1 Introducere 6 2 Inima s ... i proiectarea ltrelor am folosit Matlab iar

2. Inima s, i Electrocardiografia

Inainte de a efectua orice fel de interpretare a datelor, este necesar cunoas,tereaminimala a structurii s, i funct, ionarii inimii.

2.1. Anatomia cordului

Cordul este un organ cavitar, cu structura fibromusculara, de forma conica.Prezinta o baza, un apex, trei fet,e s, i o margine. Cordul prezinta patru cavitat, i:

- doua cavitat, i mai mici - atriile (stang s, i drept), situate ın partea superioara, sprebaza organului,

- doua cavitat, i mai mari - ventriculele (stang s, i drept), situate ın partea inferioara,spre varful organului.

Cordul se afla ın sacul pericardic ımpreuna cu care se gases,te ın mediastinulmijlociu. Pozit, ia oblica a cordului poate fi descrisa prin asemanarea cu o piramidadeformata, cu baza dispusa posterior s, i la dreapta, iar apexul - anterior s, i la stanga.Cordul adult masoara, ın medie, 12 cm de la baza la apex, 8-9 cm diametrul transversals, i 6 cm diametrul anteroposterior. Greutatea cordului, la adult, variaza ın limitele de 325± 75 g la barbat s, i 275 ± 75 g la femeie.

Baza cordului

- forma patrulatera orientata posterior s, i spre dreapta

- situata ın dreptul vertebrelor toracice T4-T8,

- corespunde atriului stang s, i unei mici port, iuni din partea posterioara a atriuluidrept.

- limita superioara se afla la nivelul bifurcat, iei arterei pulmonare, iar cea inferioaracorespunde s,ant,ului coronar.

9

Page 11: Lucrare de licent a - ACSE Departmentacse.pub.ro/wp-content/uploads/2013/07/Licenta_Iorga_Dan_341B2.pdf · 1 Introducere 6 2 Inima s ... i proiectarea ltrelor am folosit Matlab iar

Apexul cardiac - corespunde varfului ventriculului stang, orientat inferior,anterior s, i la stanga. Obis,nuit, se proiecteaza ın spat, iul intercostal V stang, pe liniamedioclaviculara, sau put, in medial de acesta.

Fat,a sternocostala este orientata anterior s, i superior s, i este alcatuita, ın raportcu s,ant,ul coronar, dintr-o port, iune atriala, situata superior s, i la dreapta, s, i o port, iuneventriculara, inferior s, i la stanga. Port, iunea atriala apart, ine aproape ın ıntregime atriuluidrept, atriul stang fiind ın mare parte acoperit de aorta ascendenta s, i trunchiul artereipulmonare.

Intre cele doua auricule, prelungite lateral, se formeaza o concavitate deschisaanterior, numita coroana cordului (corona cordis), care cuprinde aorta ascendenta s, itrunchiul pulmonar. Din port, iunea ventriculara a fetei sternocostale, o treime apart, ineventriculului stang, iar restul de doua treimi celui drept. Septului interventricular ıicorespunde pe aceasta fat, a s,ant,ul interventricular anterior.

Fat,a diafragmatica este o suprafat, a orizontala mare care ın apropierea varfului,se curbeaza spre inferior s, i anterior. Este reprezentata de ventriculi, ın principal cel stang,limita dintre cei doi ventriculi fiind marcata prin s,ant,ul interventricular posterior.

Fat,a diafragmatica se sprijina, ın cea mai mare parte, pe centru tendinos aldiafragmei, iar o mica parte, pe partea musculara stanga a acestuia. Astfel, aceasta fat, aare raporturi cu fat,a diafragmatica a lobului stang hepatic s, i fornixul gastric. Posteriorse gases,te o mica zona, formata din atrii.

Fat,a pulmonara formata, ın cea mai mare parte, de ventriculul stang; doar omica zona, situata posterior de s,ant,ul coronar, este formata de atriul stang. La acestnivel, ıntre pleura si pericard, se gasesc nervul frenic stang s, i vasele pericardofrenice.

Marginea dreapta vizibila pe cordul formolizat, este situata ıntre fet,ele sternocostalas, i diafragmatica s, i apart, ine ventriculului drept.

S, ant,ul coronar este dispus ıntre atrii s, i ventricule. Pe fat,a sternocostala, elcoboara spre dreapta, separand atriul drept de marginea dreapta a cordului, pe care odepas,es,te trecand pe fat,a diafragmatica; cont, ine artera coronara dreapta s, i vena coronaramica. In continuare, se curbeaza spre stanga, trece pe fat,a pulmonara, sfars, ind pe fat,adiafragmatica; aceasta port, iune cont, ine artera circumflexa.

2.2. Structura inimii

Atriul drept este situat posterolateral, spre dreapta. Pe imaginea radiologicaantero-posterioara, el formeaza marginea laterala dreapta. Atriul drept primes,te atatsangele drenat de sistemul venos prin venele cave superioara s, i inferioara, cat s, i cea maimare parte a sangelui venos cardiac, colectat de sinusul coronarian. Vena cava superioara

10

Page 12: Lucrare de licent a - ACSE Departmentacse.pub.ro/wp-content/uploads/2013/07/Licenta_Iorga_Dan_341B2.pdf · 1 Introducere 6 2 Inima s ... i proiectarea ltrelor am folosit Matlab iar

Figure 2.1: Fat,a diafragmatica a cordului.

se deschide ın partea superioara s, i posterioara, iar vena cava inferioara se varsa ın parteapostero-inferioara.

Ventriculul drept are forma de piramida triunghiulara, cu baza - ostiuluiatrioventricular drept s, i trei peret, i, anterior, posterior s, i septal. Lungimea de la apexla inelul tricuspidian este ın sistola, de 6,5 ± 1 cm, iar ın diastola de 8 ± 1 cm. Cavitateaventriculara dreapta are un volum diastolic de 120 ± 20 ml si unul sistolic de 40 ±10 cm. Ventriculul drept este ımpart, it ıntr-un compartiment de recept, ie al sangeluis, i unul de eject, ie, prin benzi musculare grupate ıntr-o format, iune inelara formata dintrabecula septomarginala numita s, i banda moderatoare (ımpiedica distensia exagerata aventriculului ın timpul diastolei) care se continua superior, pe peretele septal cu creastasupraventriculara .

Atriul stang este situat pe linia mediana, ın partea postero-superioara. Areforma cuboidala s, i se prelunges,te ın spatele atriului drept, de care este separat prinseptul interatrial. Auriculul stang este lung, subt, ire s, i mai curbat decat cel drept, iarmarginile sale prezinta crestaturi mai adanci. Are un volum mai mic decat atriul drept,dar prezinta peret, i mai gros, i.

Ventriculul stang are forma unei jumatat, i de elipsoid, conica sau de piramidatriunghiulara, fiind mai lung s, i mai ıngust decat cel drept; are o pozit, ie posterioara s, ila stanga, iar pe imaginea radiologica formeaza marginea stanga. Cavitatea ventriculara

11

Page 13: Lucrare de licent a - ACSE Departmentacse.pub.ro/wp-content/uploads/2013/07/Licenta_Iorga_Dan_341B2.pdf · 1 Introducere 6 2 Inima s ... i proiectarea ltrelor am folosit Matlab iar

stanga are un volum de 125 ±15 ml ın sistola; volumul de sange evacuat ın timpul sistoleide 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 parteasuperioara a s,ant,ului terminal, la dreapta ostiului venei cave superioare, la jonct, iuneadintre cele doua part, i ale atriului drept, cea derivata din sinusul venos embrionar s, i ceadin atriul primitiv.

- ın mod fiziologic nodulul sinoatrial imprima frecvent,a batailor cordului

- are forma alungita, cu un traiect postero-inferior pana ın partea superioara a cristeiterminalis.

- dimensiunile sale sunt, ın general, de 20 mm lungime, 2 mm grosime s, i 3 mm lat, ime

- el are o parte superioara, subepicardica si o parte inferioara, subendocardica.

Miocitele nodale (celulele P) - de forma rotunda, poligonala, fusiforma saustelata - se gasesc doar la centrul nodului sinoatrial, dispuse circumferent, iar ın jurul artereinodale s, i neregulat ın exteriorul ei. Se considera ca aceste celule au un rol de pacemaker;ele realizeaza un contact funct, ional cu miocitele tranzit, ionale adiacente, care sunt multmai mici decat 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 miocardicesau celulele Purkinje.

Celulele Purkinje conduc rapid impulsul electric; acesta este transmis apoimiocardului atrial contractil, prin unde de depolarizare concentrice sau “ ca o pata deulei pe apa “ cu o viteza de aproximativ 1m/s s, i prin intermediul acestuia, mai departenodului atrioventricular.

Nodul atrioventricular este alcatuit din miocite tranzit, ionale, dispuse neregulatın partea dorsala, dar ordonandu-se progresiv ın tracturi longitudinale prelungite sprefasciculul atrioventricular. ıntreaga suprafat,a a nodului atrioventricular este acoperita decelulele Purkinje.

- Numarul mare de miocite tranzit, ionale, cu conducere lenta, din nodul atrioventriculareste responsabil de ıntarzierea impulsului electric de la nivelul acestui nod ( vitezaimpulsului scade la aproximativ 0,2 m/s) ceea ce asigura o ıntarziere minima,necesara departajarii s, i succesiunii sistolelor atriala s, i ventriculara.

12

Page 14: Lucrare de licent a - ACSE Departmentacse.pub.ro/wp-content/uploads/2013/07/Licenta_Iorga_Dan_341B2.pdf · 1 Introducere 6 2 Inima s ... i proiectarea ltrelor am folosit Matlab iar

Figure 2.2: Sistemul excitoconducator.

- cand activitatea nodulului sinoatrial este afectata, funct, ia sa poate fi preluata denodulul atrioventricular, care va imprima astfel cordului un ritm nodal.

2.4. Electrocardiograma

”Ca un rezultat al activitat, ii electrice a celulelor, curentul curge prin corp s, idiferent,e potent, iale sunt stabilite pe suprafat,a pielii care pot fi masurate folosind echipamentcorespunzator. Cel mai simplu model matematic pentru a face legatura dintre sistemulcardiac s, i potent, ialele de la suprafat,a pielii este cel dipol. Acest model simplu este foarteutil 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 electrica a activitat, iiinimii ıntr-o perioada de timp, detectata de electrozi atas,at, i pe suprafat,a pielii s, i ınregistratade un dispozitiv ın exteriorul corpului. Inregistrarea produsa de catre aceasta proceduraneinvaziva se numes,te electrocardiograma ( ECG sau EKG)

Un ECG este folosit pentru masurarea ritmul s, i regularitat, ii batailor inimii precums, i a dimensiunii s, i pozit, iei compartimentelor. Acesta mai poate fi folosit s, i pentrudetectarea oricarui defect aparut dar s, i pentru monitorizarea efectul medicamentelor saudispozitivelor folosite pentru a regla ritmul inimii, cum ar fi pacemakerul.

13

Page 15: Lucrare de licent a - ACSE Departmentacse.pub.ro/wp-content/uploads/2013/07/Licenta_Iorga_Dan_341B2.pdf · 1 Introducere 6 2 Inima s ... i proiectarea ltrelor am folosit Matlab iar

Majoritatea ECG-urilor sunt folosite pentru diagnoza sau cercetari asupra inimiiumane, dar pot fi folosite s, i asupra animalelor, de obicei pentru diagnoza anomaliilor saupentru cercetari.

Pentru realizarea electrocardiogramei, pacientul este ıntins pe un pat ıntr-o cameracu temperatura de aproximativ 20 de grade. Pielea pe care se aplica electrozi va fidegresata cu alcool, iar electrozii vor fi aplicat, i ın zone fara par peste fas, ii de panzaudate cu solut, ie salina. Electrozii pentru derivat, iile precordiale sunt fixat, i de torace cu ocurea.

Pentru studiul fenomenelor electrice ale inimii se aplica electrozi, adica piesemetalice care se fixeaza pe membre s, i torace prin benzi de cauciuc. Aces,tia sunt conectat, ila electrocardiograf prin conductori electrici. Locul diferit de aplicare a electrozilorın funct, ie de pozit, ia cordului se defines,te derivat, ia. Astfel, exista derivat, ii directe acaror electrozi sunt as,ezat, i ın interiorul cavitat, ii cardiace prin cateterism, semidirecte(esofagiene) s, i indirecte, ın care electrozii sunt plasat, i pe membre sau pe regiunea precordiala.

2.5. Unde s, i intervale

Figure 2.3: Forma generala a unui semnal de EKG.

”Un semnal tipic produs de un ciclu cardiac ( o bataie) este alcatuit dintr-o undaP, un complex QRS, o unda T, si o unda U (care este vizibila doar ın 50-75% din cazuri).

14

Page 16: Lucrare de licent a - ACSE Departmentacse.pub.ro/wp-content/uploads/2013/07/Licenta_Iorga_Dan_341B2.pdf · 1 Introducere 6 2 Inima s ... i proiectarea ltrelor am folosit Matlab iar

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

Componenta continua a electrocardiogramei este masurata ca port, iunea dintre unda T s, iunda P sau ca port, iunea dintre unda P s, i complexul QRS ( segmentul PR).”(Islam et al.,2012)

Intr-o inima normala sanatoasa, componenta continua este echivalenta cu liniaizoelectrica (0mV) s, i reprezinta perioada din ciclul cardiac cand nu circula nici un felde curent spre sonda pozitiva sau negativa a aparatului ECG-ului. ınsa, ıntr-o inimabolnava componenta continua poate fi ridicata ( ex ischemie cardiaca) sau scazuta ( exinfarctul miocardic ) relativ la linia izoelectrica. Segmentul ST ramane ın mod tipic ınchisliniei izoelectrice deoarece ın aceasta perioada ambii ventriculi sunt complet depolarizat, is, i as,adar nici un curent nu poate circula catre sondele.

In aceasta lucrare de licent,a am ıncercat sa monitorizez cele mai importanteintervale din cadrul semnalului pentru a oferi un diagnostic minimal asupra starii desanatate a pacientului. Daca oricare din aceste intervale nu se afla ın limita corespunzatoare,atunci pacientul este suspect de o anumita afect, iune cardiaca. In mod normal, acest lucrueste efectual manual de catre medic, pe hartie milimetrica

La ınceput, au fost observate doar patru unde, dar dupa corect, ia matematicaa artefactelor introduse de amplificatoarele timpurii, a fost observata s, i a cincea unda.Einthoven a ales literele P, Q, R, S s, i T pentru a identifica undele.

In electrocardiogramele intra-cardiace, ca cele obt, inute de la senzorii pacemakerului,o unda adit, ionala poate fi observata, anume unda H, care reflecta depolarizarea firelorHis. Intervalul H-V, in schimb, reprezinta durata de la unda H pana la prima detectarea depolarizarii ventriculare, ınregistrata ın orice electrod.

15

Page 17: Lucrare de licent a - ACSE Departmentacse.pub.ro/wp-content/uploads/2013/07/Licenta_Iorga_Dan_341B2.pdf · 1 Introducere 6 2 Inima s ... i proiectarea ltrelor am folosit Matlab iar

Table 2.1: Scurta descriere a caracteristicilor semnalului EKG

Caracteristica Descriere DurataInterval RR Intervalul dintre doua unde R. Acest interval ne poate

ajuta sa determinam numarul de batai pe minut aleinimii care de obicei se afla ıntre ıntre 60 s, i 100

0.6 - 1.2s

Unda P In timpul unei depolarizari normale a atriului, vectorulelectric principal este direct, ionat dinspre nodul SA catrenodul AV. Astfel se formeaza unda P

80ms

Intervalul PR Intervalul PR este masurat de la ınceputul undei P panala ınceputul complexului QRS. Intervalul PR reflectatimpul necesar impulsului electric sa ajunga de la nodulSA la nodul AV s, i sa intre ın ventricul. Intervalul PReste o estimare buna a funct, ionarii nodului AV

120-200ms

SegmentulPR

Segmentul PR conecteaza unda P de complexul QRS.Vectorul impuls este de la nodul AV catre fibrele Hiscatre fibrele Purkinje. Aceasta activitate electrica nuproduce o contract, ie directa.

50-120ms

ComplexulQRS

Complexul QRS reflecta depolarizarea rapida aventriculului stang s, i a celui drept. Aces,tia au o masamusculara mare ın comparat, ie cu atriul, prin urmarecomplexul QRS are o amplitudine mult mai mare decatunda P.

80-120ms

Punctul J Punctul ın care complexul QRS se termina s, i ıncepesegmentul ST. Acest punct este folosit ca referint, apentru masurarea elevarii sau scaderii segmentului ST.

N/A

Segmentul ST Segmentul ST conecteaza complexul QRS s, i undaT. Segmentul ST reprezinta perioada cand ambeleventricule sunt depolarizat, i. Este izoelectric

80-120ms

Unda T Unda T reprezinta repolarizarea (sau recuperarea)ventriculelor.

160 ms

Intervalul ST Intervalul ST este masurat de la punctul J pana lasfars, itul undei T

320ms

Intervalul QT Intervalul QT este masurat de la ınceputul complexuluiQRS pana la sfars, itul undei T. Un interval QT prelungitreprezinta un risc de tahicardie ventriculara s, i chiarmoarte. .

Pana la420 ms la60 bpm

Unda U Unda U are de obicei o aptitudine mica s, i ın foartemult cazuri lipses,te. Intotdeauna urmeaza dupa undaT s, i urmares,te aceeas, i direct, ie ın amplitudine. Aceastareprezinta repolarizarea septului inter-ventricular Dacaeste prea proeminenta, pacientul este suspect dehypokalemia, hypercalcemia sau hyperthyroidism

Unda J Unda J apare ca o unda delta tarzie dupa QRS sau ca ounda R secundara. In acest caz pacientul e suspect dehipotermie sau hipocalcemie.

16

Page 18: Lucrare de licent a - ACSE Departmentacse.pub.ro/wp-content/uploads/2013/07/Licenta_Iorga_Dan_341B2.pdf · 1 Introducere 6 2 Inima s ... i proiectarea ltrelor am folosit Matlab iar

3. Solut, ii hardware

”Odata cu cres,terea utilizarii microcontrolerelor ca dispozitive front-end programabile,achizit, ia de date bazata pe calculatoare personale a capatat o popularitate imensa ınultimul deceniu. Microcontrolerele sunt solut, ia preferata pentru ın achizit, ia de dateieftina datorita puterii puterii consumate foarte mici, a pret,ului foarte mic s, i a vitezeifoarte mari. Ies, irea senzorilor este amplificata ınainte de discretizare s, i ın final unmicrocontroler genereaza protocolul de comunicat, ie catre PC. Astfel se creaza o conect, iunedintre front-endul compact s, i PC. In multe configurat, ii, microcontrolerul ”vorbes,te” cugazda pentru a primi diverse comenzi. Acest lucru face sistemul de achizit, ie flexibil s, icontrolabilde la un PC.” (Gupta et al., 2010)

Pentru testarea aplicat, iei este indispensabila o sursa de semnal medical. Des, iinit, ial am folosit baza de date MIT de semnale medicale, care este foarte comprehensivas, i utila, ın cele din urma am simt, it nevoia de un semnal ın timp real pentru a vedea dacaobt, in rezultate similare.

Datorita popularitat, ii acestui tip de semnal medical, ın momentul de fat, a exista omultitudine de oferte de solut, ii de achizit, ie a semnalului pe piat, a. Pret,urile sunt mai multdecat acceptabile iar dezvoltarea de algoritmi poate ıncepe foarte repede. Voi prezentape scurt solut, iile hardware utilizate.

3.1. Olimex Shield

Aceasta este solut, ia pe care am realizat cele mai teste. Este ieftina (aproximativ20 de euro) s, i us,or de obt, inut. Este necesar o placut, a de dezvoltare de genul Arduino(cu un pret, aproximativ de 25 de euro) pentru a obt, ine semnal. Poate fi folosita s, i altaplacut, a echivalenta Arduino precum Pinguino sau Maple.

Transmisia de date catre calculator se realizeaza cu ajutorul protocolului serialın pachete de dimensiune fixa. Frecvent,a de es,antionare este de 256Hz, o frecvent,a maimult decat suficienta pentru acest tip de semnal.

Din pacate semnalul obt, inut nu este de calitate foarte buna s, i este necesardezvoltarea unei sistem de prefiltrare eficient . Filtrarea hardware a zgomotului de ret,ea

17

Page 19: Lucrare de licent a - ACSE Departmentacse.pub.ro/wp-content/uploads/2013/07/Licenta_Iorga_Dan_341B2.pdf · 1 Introducere 6 2 Inima s ... i proiectarea ltrelor am folosit Matlab iar

Figure 3.1: Scutul de EKG disponibil de la Olimex.

este foarte ineficienta s, i dupa cum se vede din figura 3.2, ın jurul frecvent,ei de 50Hz avemun zgomot foarte pronunt,at.

Din pacate zgomotul de ret,ea nu este centrat la frecvent,a de 50Hz. Centrulzgomotului variaza tot timpul, ceea ce face ca multe din filtrele proiectate sa nu secomporte as,a cum am dorit. Banuiesc ca acest lucru se datoreaza faptului ca ret,eauaelectrica nu se comporta as,a cum am dori dar s, i datorita faptului ca es,antionarea nu estefacuta la intervale exacte de timp. Totus, i ın cele din urma dupa aplicarea filtrelor descriseın capitolele urmatoare, am reus, it sa obt, in un semnal de calitate acceptabila.

Scutul necesita de asemenea brat, ari antistatice pentru colectarea semnalului de laom. Acestea sunt disponibile pe site-ul oficial la pret,ul de 10 euro. De asemenea, acestease pot achizit, iona s, i ın magazine romanes,ti la pret,uri mai mult decat accesibile.

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

Pe site-ul oficial este disponibila o aplicat, ie numita ”Electric guru” (figura 3.4)pentru vizionarea semnalului obt, inut, dar calitatea acestuia nu este cea dorita. Semnalulnu este filtrat digital pentru eliminarea zgomotului de ret,ea sau pentru eliminarea oricarui

18

Page 20: Lucrare de licent a - ACSE Departmentacse.pub.ro/wp-content/uploads/2013/07/Licenta_Iorga_Dan_341B2.pdf · 1 Introducere 6 2 Inima s ... i proiectarea ltrelor am folosit Matlab iar

Figure 3.2: Semnalul EKG nefiltrat obt, inut cu ajutorul placut,ei Olimex. Se poateobserva us,or ca zgomotul de ret,ea este foarte pronunt,at din cauza unei filtrari hardwarenecorespunzatoare.

Figure 3.3: Brat, arile antistatice necesare pentru EKG.

19

Page 21: Lucrare de licent a - ACSE Departmentacse.pub.ro/wp-content/uploads/2013/07/Licenta_Iorga_Dan_341B2.pdf · 1 Introducere 6 2 Inima s ... i proiectarea ltrelor am folosit Matlab iar

Figure 3.4: Interfat,a ElectricGuru disponibila pe site-ul Olimex .

alt tip de zgomot. Intervalele interesante nu sunt ment, ionate s, i nu se poate obt, ine niciun altfel de informat, ie despre pacient. Este de apreciat faptul ca aceasta aplicat, ie estedisponibila gratuit.

3.2. Solut, ie alternativa

Pentru a obt, ine un semnal de calitate mai buna, am folosit un sistem hardwarerealizat de catre studentul Dumitru-Cristian Tranca, grupa 342C2. Acesta ofera un semnalde calitate superioara solut, iei Olimex s, i astfel us,ureaza interpretarea starii de sanatate apacientului.

Figure 3.5: Schema circuitului de achizit, ie de semnal. Montaj realizat de catreDumitru-Cristian Tranca.

Sistemul utilizat foloses,te un amplificator de instrumentat, ie INA129, cu cas,tig

20

Page 22: Lucrare de licent a - ACSE Departmentacse.pub.ro/wp-content/uploads/2013/07/Licenta_Iorga_Dan_341B2.pdf · 1 Introducere 6 2 Inima s ... i proiectarea ltrelor am folosit Matlab iar

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. Primafiltrare este realizata folosind un filtru de ordinul 2, activ, ın topologie Sallen-Key, iara doua etapa de filtrare este realizata folosind un filtru de ordin 1. Filtrele include s, iamplificarea semnalului.

Semnalul este amplificat, iar ies, irea are componenta continua la jumatate dintensiunea de alimentare. Sistemul ıs, i genereaza tensiunea de referint, a folosind un repetors, i un divizor de tensiune.

Pentru a ment, ine linia izoelectrica constanta, fara ca aceasta sa se deplasezedatorita mis,carilor pacientului monitorizat, este creat un sistem de generare de tensiune,a carui ies, ire este folosita pe post de masa pentru pacient.

21

Page 23: Lucrare de licent a - ACSE Departmentacse.pub.ro/wp-content/uploads/2013/07/Licenta_Iorga_Dan_341B2.pdf · 1 Introducere 6 2 Inima s ... i proiectarea ltrelor am folosit Matlab iar

4. Filtrarea zgomotului

Ca orice semnal achizit, ionat din natura, ECG-ul poate fi afectat de catre zgomotAcesta poate fi cauzat de ret,eaua de alimentare, de mis,carile pacientului sau de de catrealte semnale electrice prezente ın corpul uman, cum ar fi cel produs de sistemul muscular.Aceste elemente trebuie ınlaturate ınainte ca semnalul sa fie folosit pentru procesareaefectiva. Filtrele digitale s, i procesarea de semnal trebui proiectate foarte eficient pentrua funct, iona ın timp real pe un sistem integrat.

Pentru a testa filtrele implementate, am folosit init, ial semnale reale din bazade date a universitat, ii MIT ce pot fi accesate utilizand urmatorul toolbox (The WFDBToolbox for MATLAB, 2013). A fost uneori necesar sa introduc un zgomot artificialpentru a face testele, ıntrucat echipamentul utilizat de aces,tia este de calitate superioaras, i introduce foarte put, in zgomot.

Ulterior am folosit date achizit, ionate cu diverse sisteme hardware. Uneori, ams-a observat o diferent, a foarte mare ıntre datele din baza de date MIT s, i cele achizit, ionatede mine. Imperfect, iunile hardware au fost mult mai mari decat m-as, fi as,teptat.

4.1. Variat, ia componentei continue

Datorita mis,carii corpului pacientului este foarte posibil sa avem o variat, ie destulde puternica a componentei continue a semnalului obt, inut. Din acest motiv ar fi necesarca semnalul sa fie filtrat cu un filtru trece sus. Frecvent,a de taiere a acestui filtru ar trebuisa fie mai mica decat a oricarui semnal produs de catre inima.

O valoarea sigura pentru acest filtru ar fi undeva ıntre 0.5Hz si 0.8Hz. Existatotus, i s, i tehnici mult mai avansate de eliminare a componentei continue. In articolul”Time-varying digital filtering of ECG baseline wander””, propune o tehnica prin carefrecvent,a de taiere a a filtrului este determinata de ritmul inimii. Astfel, cand un pacientdepune efort fizic sust, inut, bataile inimii vor avea un ritm mult mai ridicat, miscareaacestuia va determina o variat, ie mai rapida a componentei continue s, i prin urmare ar fifoarte sa marim frecvent,a de taiere a filtrului. Un astfel de filtrul necesita ın prealabildetect, ia batailor inimii s, i este mai greu de implementat(Sornmo, 1993). In aceasta lucraream ales sa evit implementarea acestui filtru, axandu-ma pe tehnici mult mai facile.

22

Page 24: Lucrare de licent a - ACSE Departmentacse.pub.ro/wp-content/uploads/2013/07/Licenta_Iorga_Dan_341B2.pdf · 1 Introducere 6 2 Inima s ... i proiectarea ltrelor am folosit Matlab iar

Pentru a proiecta filtrul trece-sus propus, putem porni de la raspunsul ın frecvent, aideal a acestuia.

H(ejω) =

{0 , 0 ≤ |ω| ≤ ωc

1 , ωc < |ω| < π

unde ωc = 2 ∗ π ∗ fc , fc fiind frecvet,a de taiere normalizata, adica

fc =Fc

Fs

Pentru a estima acest filtru am ıncercat diverse metode.

4.1.1. Filtru FIR

Un filtru cu raspuns finit la impuls este primul tip de filtru pe care am decis satestez. Filtrele cu raspuns finit la impuls (prescurtat RFI ın romana sau FIR ın engleza)au functia pondere h[n] nenula pentru n ∈ {0, 1, . . . , N − 1}. Se spune ca N reprezintalungimea raspunsului la impuls. Pentru aceste filtre implementarea operatiei de filtrareare la baza produsul de convolutie particularizat corespunzator:

y[n] = x[n] ∗ h[n] =N−1∑k=0

h[k]x[n− k]

In aceasta situat, ie funct, ia de transfer devine

H(z) =N−1∑n=0

h[n]z−n

Deci funct, ia de transfer nu prezinta poli, fiind o funct, ie polinomiala de ordinul N - 1 ınz−1. Coeficient, ii filtrului sunt chiar valorile raspunsului la impuls.

Posibilitatea filtrelor FIR de a avea o caracteristica de faza lineara permiterealizarea operat, iei de filtrare fara a introduce distorsiuni de faza, aspect important ınreconstruct, ia fidela a semnalelor.

Transformata Fourier a raspunsului la impuls, denumita raspuns ın frecvent, a saufunct, ie de transfer Fourier, se obt, ine prin evaluarea lui H(z) de-a lungul cercului de razaunitate din planul Z.

H(ejω) = H(z)z=ejω =N−1∑n=0

h[n]ejnω

unde

ω = 2πf = 2πF

Fs

Frecvent,a normala f se calculeaza ca raportul dintre valoarea frecvent,ei (F exprimataın Hz) s, i valoarea frecvent,ei de es,antionare (Fs exprimata ın Hz).

23

Page 25: Lucrare de licent a - ACSE Departmentacse.pub.ro/wp-content/uploads/2013/07/Licenta_Iorga_Dan_341B2.pdf · 1 Introducere 6 2 Inima s ... i proiectarea ltrelor am folosit Matlab iar

Funct, ia de transfer evaluata la frecvent,e fizice, periodica ın frecvent, a cu perioada2π, poate fi exprimata ın forma polara:

H(ejω) = |H(ejω)|ejϕ(ω)

unde |H(ejω)| s, i ϕ(ω) sunt part, i ale funct, iei de sistem, purtand denumirea de caracteristicade modul ( de amplitudine), respectiv caracteristica de faza. In practica ne intereseazafiltrele cu coeficient, i reali, adicp cu h[n] ∈ R. Pentru aceste filtre caracteristica de moduleste o funct, ie para iar cea de faza, o funct, ie impara, adica:

|H(e−jω)| = |H(ejω)|;ϕ(−ω) = −ϕ(ω)

Filtrele FIR pot avea o caracteristica de faza liniara prin obligarea funct, iei pondereh[n] sa prezinte proprietatea de simetrie sau de antisimetrie fat, a de axa sa centrala.

”Filtrele FIR sunt aproape ıntotdeauna restrictionate la implementari discrete.Prin urmare, metodele de proiectare pentru filtrele FIR sunt bazate pe tehnici de aproximaredirecta a raspunsului ın frecvent, a dorit. Mai mult, cele mai multe tehnici pentru pentruaproximarea magnitudinii raspunsului unui sitem FIR ıncearca sa aiba o faza constanta,astfel evitand problema factorizarii spectrului care complica designul filtrelor IIR.” (Oppenheimet al., 1999)

Caracteristica de faza lineara este foarte tentanta deoarece ca inginer nu potaprecia efectul oricarui zgomot introdus asupra semnalului ECG. Folosind ”Filter Designand 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 ofereastra gausiana.

Experimental am observat ( dupa cum se vede poate observa ın figura 4.3 ) ca estenecesar un filtru de ordin cel put, in 1800 pentru a obt, ine o atenuare satisfacatoare.Schimbarea tipului de fereastra folosit la proiectare nu a ajutat la reducerea graduluifiltrului. Experimentand cu diverse alte tehnici de proiectare rezultatele au fost similare.

Un astfel de filtru este impractic pentru o aplicat, ie de timp. Resursele consumates, i ıntarzierea introdusa nu sunt acceptabile. Exista totus, i metode de reducere a ordinuluifiltrului, precum insert, ia de zerouri ın filtru sau alternarea ratei de es,antionare dar ele nusunt scopul acestei lucrari.

24

Page 26: Lucrare de licent a - ACSE Departmentacse.pub.ro/wp-content/uploads/2013/07/Licenta_Iorga_Dan_341B2.pdf · 1 Introducere 6 2 Inima s ... i proiectarea ltrelor am folosit Matlab iar

Figure 4.2: Caracteristica de modul a unui filtrul FIR de ordinul 100, proiectat folosindo fereastra gausiana.

Figure 4.3: Caracteristica de modul a unui filtrul FIR de ordinul 1800, proiectat folosindo fereastra gausiana.

4.1.2. Filtru IIR

Filtrele cu raspuns infinit la impuls(RII ın romana sau IIR ın engleza) se dovedescın anumite aplicat, ii mai avantajoase decat filtrele FIR datorita faptului ca pot realizacaracteristici de selectivitate excelente cu un ordin mult mai mic al funct, iei de transfer.Spre deosebire de filtrele FIR, filtrele IIR nu pot avea caracteristica de faza lineara.

Imposibilitatea realizarii unei faze liniare are implicat, ii ın ceea ce prives,te proiectareafiltrelor IIR, ın sensul ca acesta presupune fie aproximarea simultana atat a specificat, iilorpentru caracteristica de amplitudine cat s, i a celor referitoare la faza, fie corect, ia ulterioaraa distorsiunilor de faza ın ipoteza ca proiectarea s-a bazat numai pe aproximarea caracteristiciide amplitudine. Exista un singur tip de filtru IIR la care una din cele doua caracteristicieste constanta ( filtrul trece tot ).

Filtrul IIR este descris ın domeniul timp prin ecuat, iile cu diferent,e finite:

y[n] =M∑i=0

bix[n− i]−N∑i=1

aiy[n− i]

25

Page 27: Lucrare de licent a - ACSE Departmentacse.pub.ro/wp-content/uploads/2013/07/Licenta_Iorga_Dan_341B2.pdf · 1 Introducere 6 2 Inima s ... i proiectarea ltrelor am folosit Matlab iar

In aceasta situat, ie funct, ia de transfer devine

H(z) =

M∑i=0

biz−i

1 +N∑i=1

aiz−i

ın care s-a presupus ca a0 = 1.

Proiectarea unui filtru digital IIR consta ın determinarea coeficient, ilor ai s, i biastfel ıncat raspunsul la impuls al acestuia sau raspunsul ın frecvent, a, H(ejω), sa aproximezeıntr-un anumit mod specificat, iile ın timp discret sau ın frecvent, a impuse la proiectare.Domeniul ın care este rezolvata problema aproximarii (timp sau ın frecvent, a) este determinatde aplicat, ia specifica.

Am ıncercat filtrarea variat, iei componentei continue folosind un filtru IIR de tipCebasev. Din pacate, faza nelineara a acestuia a produs rezultate dorite. Dupa cum seobserva din figura 4.5 distorsiunile produse sunt prea mari. Din acest mtiv am cautatalta metoda 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 distorsionezesemnalul. O metoda prin care putem obt, ine acest lucru este renunt, and la timpul reals, i acceptarea ın schimb a unui timp pseudo-real care sa produca rezultate dorite. Aiciintervine tehnica de filtrare numita ”forward-backward IIR filtering”, o tehnica neacauzalacare produce o filtrare de faza zero. Implementarea unei astfel de filtru implica trei pas, i:

26

Page 28: Lucrare de licent a - ACSE Departmentacse.pub.ro/wp-content/uploads/2013/07/Licenta_Iorga_Dan_341B2.pdf · 1 Introducere 6 2 Inima s ... i proiectarea ltrelor am folosit Matlab iar

Figure 4.5: Eliminarea variat, iei componentei continue cu doua tipuri de filtre. Cu albastruavem un filtru care nu produce distorsiuni (prin metoda forward-backwords IIR filtering)iar cu ros,u avem un filtru IIR de tip Cebasev. In stanga avem semnalul ın domeniul timpiar ın dreapta avem semnalul ın domeniul frecvent, a.

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 filtrarii folosind aceasta tehnica.

Des, i aceasta este o tehnica destinata ın special prelucrarii offline, ea se poateutilza s, i online, acceptand o ıntarziere a semnalului. Pentru implementare, am ales safolosesc ın continuare aceasta tehnica.

4.2. Zgomotul de ret,ea

Din cauza faptului ca tensiunile ce se afla la suprafat,a corpului uman au oamplitudine foarte mica, acestea pot fi foarte us,or perturbate de zgomotul de ret,ea.

27

Page 29: Lucrare de licent a - ACSE Departmentacse.pub.ro/wp-content/uploads/2013/07/Licenta_Iorga_Dan_341B2.pdf · 1 Introducere 6 2 Inima s ... i proiectarea ltrelor am folosit Matlab iar

Chiar daca dispozitivul ar fi alimentat folosind o baterie, numeroasele dispozitive ce sunt ınmomentul de fata conectate la ret,eaua electrica pot crea interferent,e ce ar afecta sistemul.Din acest motiv am ıncercat cateva metode de a filtra acest zgomot. In proiectarea filtrelors-a urmarit minimizarea artefactelor introduse de catre filtru, pastrarea caracteristicii detimp real s, i eliminarea cat mai eficienta a zgomotelor.

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

Din pacate, ın Romania frecvent,a ret,elei de alimentare variaza destul de mult s, ise poate observa ca avem zgomot de la aproximativ 47Hz pana pe la 53Hz. Acest lucruse datoreaza s, i faptului ca es,antionarea nu este facuta cu precizie infinita. Ideal ar fica filtrul proiectat sa elimine toate aceste frecvent,e parazite, daca nu sa elimine macarcomponenta cea mai puternica, centrata la 50Hz.

Se pot observa de asemenea cateva armonice 100Hz s, i la 150Hz. Acestea auintensitate mai mica s, i des, i ar fi ideal sa le eliminam, acest lucru nu este ın mod obligatoriunecesar.

In continuare sunt prezentate trei tipuri de filtre. Primul filtru a fost creat prinalocarea manuala a polilor s, i a zerourilor, al doi filtru este bazat pe extragerea uneisinusoide de frecvent, a egala cu ret,eaua din semnal iar al treilea filtru este creat folosindfunt, ia cheby1 ın Matlab.

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

O prima metoda simpla de filtrare poate fi realizata folosind un filtru linear ın carese amplaseaza doua zerouri, complex conjugate pe cercul unitate la pozit, ia corespunzatoare

28

Page 30: Lucrare de licent a - ACSE Departmentacse.pub.ro/wp-content/uploads/2013/07/Licenta_Iorga_Dan_341B2.pdf · 1 Introducere 6 2 Inima s ... i proiectarea ltrelor am folosit Matlab iar

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

pentru 50Hz, dupa cum este sugerat ın (Prandoni and Vetterlli, 2008) ( sau 60Hz dacane-am fi aflat ın America).

z1,2 = e±jω0

Filtrul creat opres,te o banda destul de larga, din acest motiv este necesar adaugareaunei perechi de poli complex conjugat, i ın apropierea zerourilor cu o raza mai mica decata acestora. Cu cat se apropie raza polilor de cercul unitate cu atat lungimea benzii vascade.

p1,2 = re±jω0

Obt, inem astfel un filtru de ordin 2 stabil cu urmatoarea funct, ie de transfer.

H(z) =(1− z1z−1)(1− z2z−1)(1− p1z−1)(1− p2z−1)

Din pacate, dupa cum se poate observa din funct, ia pondere, filtrul nu are untimp tranzitoriu foarte bun s, i poate sa produca zgomot ce ar putea deteriora semnalul.Am testat filtrul pe un semnal de ECG corupt cu zgomot de 50Hz iar dupa mai multeıncercari, am gasit o valoare acceptabila pentru raza r a polilor.

Dupa cum se observa din figura 4.10 filtrul nu ofera rezultate foarte bune dupaun complex QRS, ba chiar creaza oscilat, ii similare cu cele care apar atunci cand se

29

Page 31: Lucrare de licent a - ACSE Departmentacse.pub.ro/wp-content/uploads/2013/07/Licenta_Iorga_Dan_341B2.pdf · 1 Introducere 6 2 Inima s ... i proiectarea ltrelor am folosit Matlab iar

Figure 4.8: Functia pondere a filtrului proiectat.l

Figure 4.9: Caracteristica de modul a filtrului proiectat.

30

Page 32: Lucrare de licent a - ACSE Departmentacse.pub.ro/wp-content/uploads/2013/07/Licenta_Iorga_Dan_341B2.pdf · 1 Introducere 6 2 Inima s ... i proiectarea ltrelor am folosit Matlab iar

Figure 4.10: Rezultatul filtrarii in apropierea unui complexului QRS. Verde reprezintasemnalul original iar albastru reprezinta semnalu filtrat.

repolarizeaza ventricolii (unda T). De asemenea se poate observa ca zgomotul de ret,ea nua fost ın totalitate eliminat.

Rezultate similare am obt, inut folosind funct, ia ”butter” din Matlab. Cres,tereaordinului filtrului (s, i implicit a numarului de poli din jurul zeroului) nu a ajutat, observandu-seın continuare perturbat, ii la sfars, itul complexului QRS. Din acest motiv, am ıncercat saimplementez un alt tip de filtru, filtru detaliat ın lucrarea (Sornmo and Laguna, 2005)

4.2.2. Filtru linear - Cebas,ev

Filtrele Cebasev de tipul I sunt filtre polinomiale , avand o caracteristica de modulcu ripluri egale ın banda de trecere s, i monoton descrescatoare ın banda de oprire. Dintretoate filtrele polinomiale de ordinul N, filtrele Cebasev de tipul I au zona de tranzit, ie ceamai ıngusta.

In banda de oprire, caracteristica monoton descrescatoare a modulului funct, ieide transfer realizeaza o aproximare de tip maxim plat a valorii ideale zero, deoarece toatederivatele sale se anuleaza pentru ω →∞ . Panta de cadere a caracteristicii este cu atatmai mare cu cat ordinul filtrului este mai mare, iar pentru doua filtre de acelas, i ordinpanta este mai abrupta pentru cel cu ripluri mai mari ın banda de trecere. Performant,elefiltrului sunt complet precizate de parametrul ε ce fixeaza marimea riplului ın banda detrecere si de ordinul N ce determina cat de abrupta este caracteristica de modul (sauatenuare).

Dupa cum se observa din figura, rezultatele sunt us,or ımbunatat, ite. Artefacteleaparute imediat dupa complexul QRS sunt mai mici iar atenuarea frecvent,ei nedorite este

31

Page 33: Lucrare de licent a - ACSE Departmentacse.pub.ro/wp-content/uploads/2013/07/Licenta_Iorga_Dan_341B2.pdf · 1 Introducere 6 2 Inima s ... i proiectarea ltrelor am folosit Matlab iar

Figure 4.11: Functia pondere a filtrului proiectat.

Figure 4.12: Caracteristica amplitudine-pulsat, ie.

32

Page 34: Lucrare de licent a - ACSE Departmentacse.pub.ro/wp-content/uploads/2013/07/Licenta_Iorga_Dan_341B2.pdf · 1 Introducere 6 2 Inima s ... i proiectarea ltrelor am folosit Matlab iar

Figure 4.13: Rezultatul filtrarii in apropierea unui complex QRS. Verde reprezintasemnalul original iar albastru reprezinta semnalu filtrat.

mult mai buna

Des, i acest filtru nu a obt, inut cele mai bune rezultate, putem considera ca semnaluleste acceptabil. Aceasta este o varianta care ar putea fi implementata foarte us,or iarartefactele introduse ar fi neglijabile. Am explorat totus, i s, i alta varianta pentru eliminareazgomotului de ret,ea.

4.2.3. Filtru neliniar

Ideea care sta la baza acestui filtru este scaderea unei sinusoide generate de catrefiltru din cadrul semnalului. Amplitudinea sinusoidei este adaptata continuu ın funct, ie dezgomotul ret,elei electrice. Sinusoida interna este generata de catre urmatoarea ecuat, ie.

v[n] = A ∗ sin(won)

Pentru a genera recursiv sinusoida, avem nevoie de un sistem discret, simplu, deforma urmatoare. (Sornmo and Laguna, 2005)

H(z) =1

1− 2cosω0z−1 + z−2

Obt, inem astfel urmatoarea ecuat, ie de recurent, a.

33

Page 35: Lucrare de licent a - ACSE Departmentacse.pub.ro/wp-content/uploads/2013/07/Licenta_Iorga_Dan_341B2.pdf · 1 Introducere 6 2 Inima s ... i proiectarea ltrelor am folosit Matlab iar

v[n] = 2cosω0v[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 deeroare care ne va indica cum trebuie sa ajustam sinusoida generata.

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

Daca ın prealabil nu a fost filtrata componenta continua a semnalului, pentru anu fi afectata calculul, se poate folosi derivata erorii, care poate fi calculata folosind oscadere.

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

Obt, inem astfel urmatoarea ecuat, ie de actualizare.

v′[n] = v[n] + αsgn(e

′[n])

Unde prin valoarea lui alpha putem seta viteza de convergent, a a sinusoideigenerate intern. Similar cu alte metode iterative ( exemplu: metode de tip gradient),o valoare prea mica pentru alpha va seta un pas prea mic, iar viteza de convergent, a va fiprea mica, iar un pas prea mare poate face ca algoritmul sa sare peste valoarea optima,facand convergent,a imposibila. Experimentand, am observat un comportament foartebun cu alpha la valoarea de 0.1 pentru semnalele din baza de date a celor de la MIT s, i ovaloare de 40 pentru semnalul obt, inut de la EKG-ul nostru.

Spre deosebire de filtrul IIR, nu apar artefacte ın jurul complexului QRS. Dinpacate, filtrul fiind neliniar, analiza lui este mult mai grea decat a celui linear. In acestcaz, nu dispunem de unelte precum in Matlab precum fvtool care us,ureaza foarte multproiectarea filtrului.

Daca se dores,te, pentru liniarizarea filtrului se poate ınlocui ecuat, ia de actualizarea amplitudinii erorii cu una lineara.

v′[n] = v[n] + αe

′[n]

Se poate observa din figura 4.10 ca performant,ele sunt cu mult ımbunatat, ite.Atenuarea este aproape perfecta iar semnalul este recuperat. In literatura de specialitateexista tehnici mai inteligente dar ıntrucat momentan performant,ele sunt foarte bune iar

34

Page 36: Lucrare de licent a - ACSE Departmentacse.pub.ro/wp-content/uploads/2013/07/Licenta_Iorga_Dan_341B2.pdf · 1 Introducere 6 2 Inima s ... i proiectarea ltrelor am folosit Matlab iar

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

puterea de calcul necesara este relativ mica, am decis ca pentru partea de implementaresa ma opresc aici.

Ulterior am testat s, i pe prototip. Dupa cum se poate vedea din figura 4.14rezultatul filtrarii semnalului de pe prototip este acceptabil. Des, i semnalul obt, inut decatre noi are zgomot s, i ın vecinatatea frecvent,ei de 50Hz, se pare ca acestea nu suntfoarte deranjante. Am ales ca ın varianta finala a proiectului sa implementez acest tip defiltru deoarece nu introduce nici un fel de perturbat, ii.

4.3. Filtru Savitzky-Golay

Exista totus, i s, i imperfect, iuni pe care filtrele proiectate anterior nu reus,esc sa leelimine. Aici intervine filtrul Savitzky-Golay pentru netezirea datelor. Acest filtru a fostpentru prima data descris ın anul 1964 de catre Savitzky s, i Golay ın lucrarea ”Soothingand differentiation of data by simplified least squares procedures” ın jurnalul ”AnalyticalChemistry”. Acestia aveau nevoie de un filtru pentru a netezii datele achizit, ionate ınurma a diverse experimente de chimie. Ulterior s-a dovedit ca acest tip de filtru poate fifolosit cu succes s, i ın prelucrarea datelor de la electrocardiograma s, i inevitabil acesta adevenit indispensabil pentru aplicat, ii similare.

Acest tip de filtru se bazeaza pe ideea aproximarii ın sensul celor mai mici patratea unor bucat, i din semnal. Potrivirea unui polinom la un set de date de intrare s, i apoievaluarea polinomului rezultat la un singur punct ın cadrul intervalului de aproximareeste echivalent cu filtrarea cu un filtru FIR. Filtrul trece-jos obt, inut prin aceasta metoda

35

Page 37: Lucrare de licent a - ACSE Departmentacse.pub.ro/wp-content/uploads/2013/07/Licenta_Iorga_Dan_341B2.pdf · 1 Introducere 6 2 Inima s ... i proiectarea ltrelor am folosit Matlab iar

sunt foarte cunoscute ın unele sectoare ca filtre Savitzky-Golay. Savitzky s, i Golay aureus, it sa netezeasca datele cu zgomot obt, inute ın urma analizei spectrale chimice, s, i audemonstrat ca netezirea ın sensul celor mai mici patrate reduce zgomotul ment, inand formas, i ınalt, imea varfurilor semnalului . Unii cercetatori au recunoscut important,a proprietat, iide conservare a varfurilor semnalului ın diverse aplicat, ii medicale. De asemenea conceptulde baza de netezire polinomiala ın sensul celor mai mici patrate a fost extins la douadimensiuni s, i aplicat la procesarea imaginilor cum ar fi cele obt, inute prin ultrasunete sauradar.

Ideea de baza din spatele aproximarii polinomiale ın sensul celor mai mici patrateeste prezentata ın figura 4.15, care arata o secvent, a de es,antioane x[n] ale unui semnalca puncte pline. Considerand pentru moment grupul de 2M + 1 es,antioane centrate lan=0, vrem sa obt, inem coeficient, ii polinomului

p(n) =N∑k=0

aknk

care minimizeaza eroarea ın sensul celor mai mici patrate a grupului de es,antioane centratela n=0,

εN =M∑

n=−M

(p(n)− x[n])2 =M∑

n=−M

(N∑k=0

aknk − x[n])2

Analiza este aceeas, i pentru orice alt grup de 2M + 1 es,antioane de intrare. Infigura 4.15, unde N=2 s, i M=2, linia plina este polinomul p(n) evaluat ıntre punctele -2 s, i+2, s, i ies, irea netezita este obt, inuta evaluand 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 egala cu coeficientul de ordin zero al polinomului. Ingeneral, intervalul de aproximarea nu trebuie sa fie ın mod necesar simetric punctuluiın care se face evaluarea. Acest lucru conduce la filtre cu faza nelineara, care pot fiutile pentru netezirea la sfars, itul secvent,elor de dimensiune finita. Ies, irea la urmatorules,antion este obt, inut prin mutarea intervalului de analiza la dreapta cu un es,antion,redefinind originea la pozit, ia mijlocului noului bloc de date de dimensiune 2M+1, s, irepetand aproximarea polinomiala s, i evaluand ın pozit, ia centrala.

Derivand eroarea ın funct, ie de coeficient, ii polinomului obt, inem un set de ecuat, iicare pot fi rezolvate atat timp cat lungimea ferestrei este mai mare decat gradul polinomului.Pentru a obt, ine totus, i o netezire, este necesar ca gradul polinomului sa fie mult mai micdecat lungimea ferestrei. Ajungem astfel la o ecuat, ie normala.

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

Pentru aflarea coeficient, ilor filtrului se poate rezolva ecuat, ia normala specificanumarului 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

Page 38: Lucrare de licent a - ACSE Departmentacse.pub.ro/wp-content/uploads/2013/07/Licenta_Iorga_Dan_341B2.pdf · 1 Introducere 6 2 Inima s ... i proiectarea ltrelor am folosit Matlab iar

Figure 4.15: Imagine obt, inuta din (Schafer, 2011).Ilustrare a netezirii folosind cele maimici patrate 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, irilefiltrului iar cu x raspunsul la impuls a filtrului

Figure 4.16: Rezultatele filtrarii a datelor achizit, ionate. Am folosit o fereastra de 31 dees,antioane s, i un polinom de gradul 7.Cu albastru semnalul nefiltrat iar cu ros,u cel filtrat.

37

Page 39: Lucrare de licent a - ACSE Departmentacse.pub.ro/wp-content/uploads/2013/07/Licenta_Iorga_Dan_341B2.pdf · 1 Introducere 6 2 Inima s ... i proiectarea ltrelor am folosit Matlab iar

In urma filtrarii datelor, se poate observa atenuarea semnificativa a frecvent,elorınalte, fara a se pierde informat, ii utile din cadrul semnalului. Se observa cum forma s, iınalt, imea au fost conservate iar zgomotul de frecvent, a ınalta a fost eliminat. Daca dorim,putem mics,ora gradul polinomului pentru a obt, ine o netezire mai pronunt,ata. Din pacate,acest lucru poate duce la pierderea de date utile, precum ınalt, imea undei R.

38

Page 40: Lucrare de licent a - ACSE Departmentacse.pub.ro/wp-content/uploads/2013/07/Licenta_Iorga_Dan_341B2.pdf · 1 Introducere 6 2 Inima s ... i proiectarea ltrelor am folosit Matlab iar

5. Detect, ia caracteristicilor

Electrocardiograma este un element ce poate oferi foarte multe informat, ii desprestarea de sanatate a unui pacient. Numarul de batai pe minut este cel mai importantfactor, care poate indica daca pacientul este ıntr-un risc imediat, precum tahicardie saubradicardie, dar exista multe alte elemente care pot oferi informat, ii relevante desprecondit, ia inimii. In mod normal, acestea sunt masurate pe hartie milimetrica de catre unmedic cardiolog, dar progresul tehnologic din ultimii ani a facut posibil detect, ia automataa unor numar semnificativ de elemente.

Mult, i algoritmi pentru monitorizarea ritmului cardiac sunt bazat, i pe detect, iacomplexului QRS apoi calcularea distant,ei dintre aceste complexe. Complexele QRSpot fi detectate de exemplu algoritmi din sfera ret,elelor neuronale artificiale, algoritmigenetici, undine sau bancuri de filtre.

5.1. Detect, ia complexului QRS

Detect, ia complexului QRS este un element ce poate oferii date foarte importantedespre starea de sanatate a pacientului. Masurarea acestuia este folosita ın multe aplicat, iimedicale sau aplicat, ii sportive cum ar fi teste de stres sau predict, ia situat, iilor ce potamenint,a viat,a. O metoda de a obt, ine ritmul cardiac este de a-l extrage din semnalulECG.In momentul de fat, a exista 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 dincauza variat, iei amplitudinii complexului, dar s, i din cauza zgomotului care poate afectasemnalul. 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, a ınaltasimilar cu cea a complexului.

Majoritatea tehnicilor pentru detect, ia intervalelor importante din cadrul ECG-uluise bazeaza pe detect, ia ın prealabil a complexului QRS. In funct, ie de pozit, ia acestuia sepoate estima cu o precizie relativ buna locat, ia celorlalte unde de interes. Din acest motiv,trebuie ales un algoritm cu o precizie cat mai buna.

39

Page 41: Lucrare de licent a - ACSE Departmentacse.pub.ro/wp-content/uploads/2013/07/Licenta_Iorga_Dan_341B2.pdf · 1 Introducere 6 2 Inima s ... i proiectarea ltrelor am folosit Matlab iar

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, cuo precizie de 99,3 pe baza de date MIT. Acesta foloses,te filtre simple s, i necesita puterede procesare foarte mica, lucru dovedit de faptul ca init, ial acesta a fost implementat peun microprocesor Z80 produs de catre compania Zilog. O referint, a pentru implementareaacestuia se poate gasi ın (Lascu and Lascu, 2007)

Pentru a implementa acest algoritm este necesar sa trecem semnalul mai ıntaiprintr-un filtru trece-jos, apoi printr-un filtru trece-sus. Dupa aceea semnalul trebuiederivat, apoi ridicat la patrat s, i ın cele din urma integrat pe 150ms.

Filtru trece-banda

Filtru trece banda are ca principal scop reducerea influent,ei zgomotului produsde catre mus,chi, a celui introdus de ret,eaua electrica, a variat, iei componentei continue s, ia undei T. Banda de trecere uzuala pentru a face acest lucru este de 5-15Hz. Pentru aimplementa acest lucru, am folosit doua filtre Cebas,ev de ordin 3 cu riplu setat la 0.1 .

Derivativa

Dupa filtrare, semnalul este derivat pentru a afla informat, ia necesara desprepanta. Derivata de ordin ıntai se comporta bine dar folosind derivata de ordin doi, se potobt, ine rezultate mai bune.

Ridicarea la patrat

Dupa derivare, semnalul este ridicat la patrat ın fiecare punct. Acest lucru faceca toate punctele sa fie pozitive s, i amplifica frecvent,ele pozitive scoase de derivare.

Integrarea

Scopul integrarii este de a obt, ine informat, ii despre forma de unda, pe langa cealegata de panta undei R. In general lungimea intervalului pe care se face integrarea trebuiesa fie egala ca lungimea complexului QRS

Figure 5.1: Schema bloc a algoritmului Pan-Tomkins

Ajustarea pragului

40

Page 42: Lucrare de licent a - ACSE Departmentacse.pub.ro/wp-content/uploads/2013/07/Licenta_Iorga_Dan_341B2.pdf · 1 Introducere 6 2 Inima s ... i proiectarea ltrelor am folosit Matlab iar

Dupa ce au fost efectuate toate aceste operat, ii asupra semnalului, este necesargasirea unui prag de la care putem spune ca a fost detectat un complex QRS. Acestatrebuie ajustat permanent ın funct, ie de semnalul de la EKG, pentru a obt, ine rezultateacceptabile. Exista multe tehnici inteligente pentru a determina acest prag dar se pareca daca aplicam o fereastra dreptunghiulara pe ultimele es,antioane, apoi facem o medie,obt, inem o valoare acceptabila. Fereastra este absolut necesara deoarece primele es,antioaneale filtrarii vor avea o valoare foarte mare iar acest lucru va seta pragul la o valoarenerealista.

In concluzie, pot spune ca acest algoritm ofera rezultate foarte bune s, i are mareleavantaj ca funct, ioneaza ın timp real. Din pacate, el nu ne poate ajuta sa determinamcu exactitate pozit, ia undei R. De aceea, ın continuare am ales sa explorez s, i alte metodepentru a determina acest lucru.

Figure 5.2: Rezultatul ın urma procesarii semnalului cu algoritmul Pan-Tomkins. Dupacum se vede, este necesara aplicarea unei ferestre pentru a determina un prag.

In aplicat, ia finala ın Labview, am folosit acest algoritm pentru a afis,a ın timpreal intervalul R-R s, i implicit numarul de batai pe minut. De asemenea, am folosit acestalgoritm s, i pentru a produce un efect sonor de fiecare data cand este detectata o bataiea inimii.

5.1.2. Transformata Fourier de timp scurt

Transformata Fourier clasica este o unealta foarte utila pentru analiza spectruluiunui semnal dar din pacate nu poate oferi informat, ii despre pozit, ia ın timp a acestorfrecvent,e. Daca semnalul este nestat, ionar, transformata nu mai ofera informat, ii satisfacatoare.

Pentru a rezolva problema semnalelor nestat, ionare Dennis Gabor(1946) a venitcu urmatoarea solut, ie. Putem presupune ca unele port, iuni ale semnalului sunt stat, ionare.

41

Page 43: Lucrare de licent a - ACSE Departmentacse.pub.ro/wp-content/uploads/2013/07/Licenta_Iorga_Dan_341B2.pdf · 1 Introducere 6 2 Inima s ... i proiectarea ltrelor am folosit Matlab iar

Acest lucru este realizat alegand o fereastra pentru care va fi aplicata transformata Fourier.Fereastra este mutata dea lungul ıntregului semnal s, i ın fiecare pozit, ie noua este aplicatao noua transformata. Prin aceasta metoda obt, inem informat, ie atat despre frecvent,a darcat s, i despre momentul de timp la care sunt ıntalnite acestea.

STFT reprezinta un fel de compromis ıntre timp s, i frecvent, a a vederii asuprasemnalului. Ofera informat, ii atat despre ce frecvent,e apar cat s, i despre cand aparacestea. Din pacate, aceste informat, ii se pot obt, ine cu precizie limitata iar precizia estedeterminata de lungimea ferestrei. In general pentru analiza acestui tip de semnal esteutilizata o fereastra Hanning de 3,4s.

Des, i compromisul STFT dintre timp s, i frecvent, a poate fi util, dezavantajul estedat de faptul ca odata aleasa dimensiunea ferestrei, aceasta va fi aceeas, i pentru toatefrecvent,ele. Multe semnale necesita o abordare mai flexibila, una ın care se poate varialungimea ferestrei pentru a determina mai cu acuratet,e fie timpul, fie frecvent,a.

Figure 5.3: Aplicarea ferestrei in cazul STFT.

Sa presupunem ca avem un semnal f(t) compus din mai multe frecvent,e s, i avand ocaracteristica nestat, ionara. Abordarea folosita este sa ımpart, im f ın port, iuni de lungimeaproximativ egale s, i sa o analizam pe fiecare ın mod individual. Aceasta analiza aredezavantajul evident de a fi oarecum aleatorie, deoarece este imposibil sa afirmam ca ofrecvent, a aleasa ıncepe s, i cand se termina. In funct, ie de natura semnalului, trebuie saalegem o fereastra de dimensiune corespunzatoare, iar acest lucru este destul de dificil.

Informat, ie legata de domeniul frecvent,ei s, i domeniul timp trebuie obt, inuta ınacelas, i timp. Prin urmare. ies, irea funct, iei rezultate depinde atat de timp cat s, i defrecvent, a.

Facut faimos de catre aplicarea lui ın mecanica cuantica, principiul de incertitudinea lui Heisenberg poate fi formulat ın diferite moduri. Totus, i, indiferent de ce forma va lua,

42

Page 44: Lucrare de licent a - ACSE Departmentacse.pub.ro/wp-content/uploads/2013/07/Licenta_Iorga_Dan_341B2.pdf · 1 Introducere 6 2 Inima s ... i proiectarea ltrelor am folosit Matlab iar

esent,a este aceeas, i: masurarea precisa a timpului s, i a frecvent,ei sunt ın mod fundamentalincompatibile, deoarece frecvent,a nu poate fi masurata instantaneu. As,adar, daca vrem saafirmam ca un semnal are o frecvent, a ω0 putem face acest lucru daca observam semnalulpentru un anumit moment de timp ( cu cat mai mare aceasta perioada, cu atat putemafirma mai sigur acest lucru). As,adar nu putem specifica cand exact un semnal are oanumita frecvent, a, ci doar un interval pentru acest lucru.

Intr-o lucrare publicata de doi tailandezi (Uchaipichat and Inban, 2010) , folosindSTFT aces,tia afirma ca au ajuns la o precizie de 99”%” pe baza de date MIT-BIH. Acestlucru dovedes,te faptul ca metoda are performant,e suficient de bune.

5.1.3. Undine

Transformata Fourier de timp scurt este o unealta foarte utila pentru analiza timpfrecvent, a a semnalelor biomedicale dar din pacate are un defect foarte mare. Lungimeaferestrei limiteaza rezolut, ia ın frecvent, a a acesteia. O alternativa a transformatei Fouriereste transformata wavelet (sau undina ın romana)

”Transformata undine a fost recunoscuta ın ultimii ca o puternica unealta pentruanaliza timp-frecvent,a s, i codarea semnalelor, preferata pentru interogarea semnalelornestat, ionare complexe. Aplicarea ei ın domeniul prelucrarii semnalelor biologice poatefi considerat principalul motiv pentru acest lucru.”(Addison, 2005)

Transformata undine a fost aplicata cu succes la o gama foarte larga de semnalebiomedicale, printre care se numara EMG-ul, EKG-ul, EEG-ul, analiza respirat, iei, analizavariat, iei presiunii sangelui, analiza ADN. De asemenea, undinele au fost utilizate cu success, i pentru compresia datelor. Dovada a acestui lucru sta ın faptul ca baza de date a FBI-uluieste comprimata folosind undine.

Transformata undine folosita ın prezent se ımparte ın doua mari categorii: transformatacontinua undine s, i transformata discreta undine. Des, i principiul care sta la baza acestoraeste acelas, i, diferent,a dintre aceste transformate este foarte mare.

Transformata continua - CWT Transformata continua undine (CWT) este ometoda de analiza timp-frecvent,a care difera de tradit, ionala STFT prin faptul ca permitelocalizarea precisa ın timp a frecvent,elor ınalte. Transformata continua undine a unuisemnal continuu x(t) poate fi definita ın felul urmator.

T (a, b) =1√a

+∞∫−∞

x(t)ψ∗(t− ba

)dt

unde ψ∗ este complex conjugatul funct, iei de analiza ψ,variabila a este denumita parametrude scala (factor de scala), iar variabila b parametru de translat, ie.Variabila a joaca rolulinversului frecvent,ei: cu cat a este mai mica funct, ia wavelet este mai ıngusta si frecventacentrala a spectrului sau este mai mare. Pentru a fi clasificat ca o undina, o funct, ie trebuiesa ındeplineasca anumite criterii. Acestea sunt:

43

Page 45: Lucrare de licent a - ACSE Departmentacse.pub.ro/wp-content/uploads/2013/07/Licenta_Iorga_Dan_341B2.pdf · 1 Introducere 6 2 Inima s ... i proiectarea ltrelor am folosit Matlab iar

(1) Trebuie sa aiba energie finita:

E =

+∞∫−∞

|ψ|2dt < infty

(2) Nu trebuie sa cont, ina o componenta continua, adica transformata Fourier aacestuia sa aiba valoarea 0 ın origine.

(3) Pentru undine complexe, transformata Fourier trebuie sa fie reala s, i sa nucont, ina valori negative.

Figure 5.4: Aplicarea CWT asupra semnalului

Figura 5.4 a fost obt, inuta aplicand transformata continua undine (folosind oundina de tipul ”haar”) asupra unui semnal EKG. Dupa cum se poate observa, au fostidentificate undele R ca avand frecvent,a mult mai ınalta decat restul undelor. Des, i oferarezultate foarte bune, acest tip de transformata este destul de lenta s, i din acest motiveste mai des utilizata transformata discreta.

Transformata discreta - DWT ”Fundat, iile transformatei discrete undine provindin 1976 cand Croiser,Esteban s, i Galand explorau metode pentru a descompune semnale

44

Page 46: Lucrare de licent a - ACSE Departmentacse.pub.ro/wp-content/uploads/2013/07/Licenta_Iorga_Dan_341B2.pdf · 1 Introducere 6 2 Inima s ... i proiectarea ltrelor am folosit Matlab iar

discrete. Crochiere, Weber s, i Flanagan au realizat un lucru similar ıncercand sa codificesemnalele audio ın acelas, i an.” (Polikar, 1999)

Ideea de baza este aceeas, i ca s, i la CWT. O reprezentare timp-scala a unui semnaldigital este obt, inuta folosind tehnici de filtrare digitala. Transformata continua a fostcalculata schimband scala ferestrei de analiza, mutand fereastra ın timp, ınmult, ind-o cusemnalul s, i integrand peste tot timpul. In cazul discret, filtre cu diferite frecvent,e detaiere sunt folosite pentru a analiza semnalul la diferite scale. Semnalul este pasat print-oserie de filtre trece-jos pentru a analiza frecvent,ele joase s, i printr-o serie de filtre trece-suspentru a analiza frecvent,ele ınalte.

Rezolut, ia semnalului, care este o masura a cat de detaliat este semnalul, esteschimbat de operat, ia de filtrare iar scalarea este schimbata de catre interpolare s, i decimare.

Figure 5.5: Rezultatul cautarii varfului undei R folosind undine. Se poate observa preciziafoarte buna a acestei metode.

Tipul de undina utilizat

In general este recomandat sa se utilizeze o undina care sa aiba o forma similara cua complexului cautat. Intr-un articol (Senhadji et al., 1995) este comparata performant,adiferitelor tipuri de undine pentru gasirea undei R. Undinele de tipul Daubechies, splines, i Morlet s-au dovedit foarte eficiente pentru acest lucru.

Pentru a evita localizarea inexacta datorata alegerii necorespunzatoare a undinei,am realizat o cautare a maximului pe ın proximitatea zonei suerate de catre transformataundine.

45

Page 47: Lucrare de licent a - ACSE Departmentacse.pub.ro/wp-content/uploads/2013/07/Licenta_Iorga_Dan_341B2.pdf · 1 Introducere 6 2 Inima s ... i proiectarea ltrelor am folosit Matlab iar

5.2. Detect, ia altor caracteristici

Exista tehnici foarte avansate de detect, ie a diferitelor intervale din cadrul semnaluluiEKG dar majoritatea se bazeaza pe detect, ia ın prealabil a undei R. Astfel, cu cat undaR este gasita cu precizie mai buna, cu atat s,ansele de identificare corecta a celorlaltecaracteristici cres,te.

5.2.1. Amplitudinea s, i pozit, ia

Detect, ia undei P

Dupa ce am gasit varful undelor R, am cautat la stanga pe un domeniu de 0.3secunde pentru a gasi maximul. Aici m-am bazat pe faptul ca ın general, distant,a dintreunda P s, i unda R nu este mai mare de 0.2s. Pentru a fi sigur de faptul ca aceastaunda a fost gasita, putem seta un prag minim de amplitudine. Daca acesta unda nu afost gasita ın acest interval, pacientul este suspect de anumite afect, iuni, printre care senumara sindromul Wolff-Parkinson-White.

Detect, ia undei Q

Similar, dupa gasirea varfurilor undelor R, am cautat la stanga pe un domeniude 0.1 secunde pentru a gasi minimul.

Detect, ia undei S

In cazul ın care este utila detect, ia undei S, aceasta se poate determina printr-ometoda asemanatoare. Intrucat nu am considerat unda relevanta, detect, ia acesteia nu afost implementata ın program.

Detect, ia undei T

Unda T este singura care poate crea probleme. Deoarece are o frecvent,a similaracu a undei R, poate fi confundata cu aceasta. Din fericire, aceasta are o amplitudine multmai mica decat unda R s, i daca pragul pentru detect, ia undei R este setat corespunzator,confuzia nu va avea loc. Pentru a detecta aceasta unda, am cautat la dreapta undei R,pe un interval de 0.3 secunde.

5.2.2. Detect, ia intervalelor

Dupa detect, ia pozit, iei fiecarui unde, putem ıncepe masurarea intervalelor deinteres.

46

Page 48: Lucrare de licent a - ACSE Departmentacse.pub.ro/wp-content/uploads/2013/07/Licenta_Iorga_Dan_341B2.pdf · 1 Introducere 6 2 Inima s ... i proiectarea ltrelor am folosit Matlab iar

Figure 5.6: Rezultatul cautarii celorlalte caracteristici. Cu ros,u sunt marcate varfulundelor R, cu verde varful undelor P, cu galben undele Q, cu albastru undele S iar cunegru undele T

Intervalul RR

Intervalul RR este util pentru determinarea timpului ıntre doua depolarizari aleventriculilor. Durata acestuia se masoara ca distant,a dintre doua varfuri consecutive aleundei R.

Intervalul PP

Intervalul PP este util pentru determinarea timpului ıntre doua depolarizari aleatriilor. Durata acestuia se masoara ıntre doua varfuri ale undei P.

Intervalul PR

Intervalul PR oferi informat, ii despre circulat, ia dintre atriu s, i ventricul. Determinareaacestuia este us,or mai dificila deoarece trebuie determinat ın prealabil momentul ınceperiidepolarizarii atriului s, i a depolarizarii ventriculului. Pentru a face acest lucru, estenecesara determinarea momentului ın care unda P ıncepe sa creasca s, i a momentuluiın care unda Q ıncepe sa scada.

Intervalul QT

Pentru determinarea intervalului QT, este necesar determinarea momentului ınceperiidepolarizarii ventriculului s, i momentul sfars, irii repolarizarii ventriculului. Pentru afla cestlucru, trebui sa gasim momentul ın care unda Q ıncepe sa scada s, i momentul sfars, irii undeiT.

Durata undei P

47

Page 49: Lucrare de licent a - ACSE Departmentacse.pub.ro/wp-content/uploads/2013/07/Licenta_Iorga_Dan_341B2.pdf · 1 Introducere 6 2 Inima s ... i proiectarea ltrelor am folosit Matlab iar

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

48

Page 50: Lucrare de licent a - ACSE Departmentacse.pub.ro/wp-content/uploads/2013/07/Licenta_Iorga_Dan_341B2.pdf · 1 Introducere 6 2 Inima s ... i proiectarea ltrelor am folosit Matlab iar

6. Implementare Labview

Dupa studiere a filtrelor s, i a diverselor tehnici de detect, ie a componentelor semnaluluiurmeaza partea de implementare a celor descrise. Des, i init, ial am dorit sa fac init, ialimplementarea ın Matlab, posibilitat, ile superioare de procesare s, i plotare ın timp real alesuitei de programe Labview m-au facut sa migrez spre acesta.

Pentru a facilita tranzit, ia ıntre cele doua programe am folosit un modul deLabview numit MathScript RT Module. Acesta mi-a permis sa apelez de fiecare datacand am avut nevoie cod de Matlab. Astfel pentru a funct, iona corect, avem nevoie sa fieinstalat atat Labview cat s, i Matlab.

Figure 6.1: Interfata Labview creata

6.1. Structura programului

Pentru a obt, ine o procesare eficienta a semnalului EKG, programul a fost structuratın urmatoarele etape:

1. Achizit, ia de date prin intermediul protocolului serial

2. Filtrarea zgomotului de ret,ea

49

Page 51: Lucrare de licent a - ACSE Departmentacse.pub.ro/wp-content/uploads/2013/07/Licenta_Iorga_Dan_341B2.pdf · 1 Introducere 6 2 Inima s ... i proiectarea ltrelor am folosit Matlab iar

3. Filtrarea prin intermediul filtrului Savitzky-Golay

4. Detect, ia batailor 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 etapa, cea de achizit, ie de semnal prin intermediul protocolului serial putemspune ca este cea care face legatura ıntre componenta hardware s, i cea software a sistemului.Pentru a nu avea probleme legate de ıntarzierea transmisiei, am folosit viteza de transmisiemare de 115200 bauds. Restul opt, iunilor au fost setate pe valorile implicite. Totus, i,pentru eventualele modificari am inclus ın interfat,a posibilitatea de a modifica parametriitransmisiei.

Filtrarea zgomotului de ret,ea

Pentru filtrarea zgomotului de ret,ea am ales sa las la dispozit, ia utilizatoruluialegerea tipului de filtru. Des, i filtrul neliniar s-a comportat cel mai bine pe semnalulsimulat, exista unele cazuri ın care frecvent,a ret,elei variaza foarte mult. In aceste cazuri,filtrul Butterworth se comporta mult mai bine. Alegand unul din cele trei tipuri de filtrepuse la dispozit, ie se poate elimina cu succes zgomotul.

Dupa cum am ment, ionat ın capitolul 3, filtrul neliniar se comporta foarte bineatunci cand frecvent,a ret,elei de alimentare nu variaza foarte tare. In acest caz, filtrulneliniar nu introduce zgomot dupa complexul QRS. Daca ınsa frecvent,a ret,elei variazafoarte mult, atunci un filtru de tip Butterworth sau Cebas,ev este de dorit. Din pacate,ın acest caz trebuie sa acceptam perturbat, iile introduse de acesta.

50

Page 52: Lucrare de licent a - ACSE Departmentacse.pub.ro/wp-content/uploads/2013/07/Licenta_Iorga_Dan_341B2.pdf · 1 Introducere 6 2 Inima s ... i proiectarea ltrelor am folosit Matlab iar

Aplicarea filtrului Savitzky–Golay

Dupa eliminarea zgomotului de ret,ea, a urmat aplicarea filtrului Savitzky-Golay.Cu ajutorul acestuia am reus, it sa netezesc semnalul rezultat. Din pacate, a trebuit sarealizez un compromis ıntre gradul de netezire s, i pastrarea formei originale a semnalului.Daca fort,ez filtrul sa realizeze o netezire foarte agresiva a datelor, atunci pierd s, i dinamplitudinea undei R.

Detect, ia batailor inimii cu ajutorul algoritmului Pan-Tomkins

Folosind algoritmul Pan-Tomkins se pot detecta ın timp real bataile inimii. Cuajutorul acestui algoritm am putut realiza sunetul caracteristic al unui aparat EKG lafiecare aparit, ie a complexului QRS. Daca acest sunet devine obositor, el poate fi opritus,or cu ajutorul unui buton prezent ın interfat, a.

Eliminarea variat, iei componentei continue

Acest pas marcheaza renunt,area la timpul real s, i acceptarea unui timp ”aproapereal”. Pentru a face acest lucru, am aplicat tehnica ”forward-backward IIR filtering”pe ultimele 1000 de es,antioane achizit, ionate. Din pacate a trebuit sa elimin ultimelees,antioane, deoarece acestea au fost perturbate de catre filtru.

Detect, ia undelor R din cadrul semnalului

Folosind transformata undine pe doua nivele am putut sa detectez momentulın care apare unda R. Pentru a nu instala un nou toolkit labview anume ”Advancedsignal processing toolkit” am facut acest lucru aproape ın totalitate ın Matlab, apelandscripturile create anterior.

Detect, ia celorlalte intervale de interes

Pe baza detect, iei undei R de catre pasul anterior se face detect, ia s, i intervalele deinteres. Acest lucru se face cautand ın proximitatea undei gasite.

6.2. Rezultate filtrare

Filtrarea s-a dovedit a fi o parte esent, iala a realizarii EKG-ului care depindefoare mult de sistemul hardware folosit. Prin aceasta filtrare ıncerc sa elimin pe catposibil imperfect, iunile care nu au putut fi eliminate de catre filtrele analogice.

Dupa ce am realizat filtrarea zgomotului de ret,ea, a urmat aplicarea filtruluiSavitzky-golay iar ın cele din urma am aplicat filtrul pentru eliminarea componenteicontinue. Rezultatele acestor operat, ii pot fi vazute ın figura 6.3.

51

Page 53: Lucrare de licent a - ACSE Departmentacse.pub.ro/wp-content/uploads/2013/07/Licenta_Iorga_Dan_341B2.pdf · 1 Introducere 6 2 Inima s ... i proiectarea ltrelor am folosit Matlab iar

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

6.3. Interpretarea rezultatelor

Pe baza pozit, iei fiecarei unde gasite la anterior, se poate face o interpretareminimala a starii de sanatate a pacientului. Des, i acest sistem nu poate substitui unmedic, 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 tahicardieInterval 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-ventricularInterval PR peste 0.2 s Risc de torsada varfurilorInterval PR sub 0.12 s Risc de preexcitat, ie

In urma detectarii unei afect, iuni cardiace, programul va emite o avertizare s, i vaanunt,a utilizatorul de posibilitatea unei afect, iuni cardiace. Acest tabel poate fi modificatcu us,urint, a pentru a adauga sau elimina diverse afect, iuni.

Pentru a elimina detectarea falsa a unei afect, iuni, am ales sa procesez datele peun interval de timp mai larg. Astfel sistemul nu va emite avertizari daca de exemplupacientul se mis,ca prea tare s, i apar perturbat, ii semnificative ın semnal.

52

Page 54: Lucrare de licent a - ACSE Departmentacse.pub.ro/wp-content/uploads/2013/07/Licenta_Iorga_Dan_341B2.pdf · 1 Introducere 6 2 Inima s ... i proiectarea ltrelor am folosit Matlab iar

7. Concluzii s, i direct, ii de continuare

Prin tehnicile implementate, am reus, it sa obt, in o condit, ionare buna a semnalului,extragerea principalelor caracteristici de interes s, i oferirea unui diagnostic minimal. Inconcluzie, pot spune ca am reus, it sa ındeplinesc ce mi-am propus s, i ın plus am reus, it sarealizez o interfat, a intuitiva pentru utilizator.

In urma testelor pot spune ca pentru eliminarea zgomotului de ret,ea, filtrulneliniar a oferit rezultatele cele mai bune, ıntrucat nu a introdus perturbat, ii dupa complexulQRS. Eliminarea variat, iei componentei continue a fost mai dificila dar ın cele din urma,am reus, it sa scap de aceasta folosind tehnica ”forward-backwards IIR filtering”. FiltrulSavitzky-Golay s-a dovedit a fi o unealta indispensabila deoarece prin intermediul acestuiaam reus, it sa elimin restul de zgomot nedorit.

Algoritmul Pan-Tomkins este destul de vechi dar tot ramane un algoritm cepoate fi utilizat cu ıncredere pentru detect, ia ın timp real a batailor inimii. Des, i STFTeste eficienta ın detectarea caracteristicilor semnalului electrocardiogramei, undinele s-audovedit a mult mai precise s, i sigure. Chiar s, i atunci cand semnalul este perturbat de catrezgomot, informat, ia extrasa este foarte buna.

Programul funct, ioneaza corespunzator s, i poate oferi date importante despre pacientulmonitorizat. Des, i niciodata nu va ınlocui un medic, un astfel de program ofera indicat, iiutile pentru diagnosticare. Pe semnalele testate, sistemul se comporta corespunzator ;i,ca orice unealta utilizata de catre medici, trebuie testata intensiv ınainte de a fi utilizata.

Ca direct, ie de continuare, ment, ionez ca se poate utiliza o ret,ea neurala, darpentru o astfel de implementare avem nevoie de un set de date destul de mare pentruantrenare. De altfel, mult, i algoritmi ce se bazeaza pe tehnici de inteligent,a artificiala arputea fi utilizat, i ıntr-o astfel de aplicat, ie.

Pentru evaluarea starii de sanatate a pacientului pot fi utilizat, i algoritmi multmai evoluat, i precum sisteme fuzzy sau algoritmi genetici.

Filtrarea semnalului se poate realiza de asemenea ıntr-un mod mult mai inteligent.Exista filtre neliniare pentru eliminarea zgomotului de ret,ea s, i pentru eliminarea variat, ieicomponentei continue cu performant,e mult superioare. Modelarea semnalului ar puteade asemenea sa aduca un spor de performant,a foarte bun. Exista tehnici moderne ce

53

Page 55: Lucrare de licent a - ACSE Departmentacse.pub.ro/wp-content/uploads/2013/07/Licenta_Iorga_Dan_341B2.pdf · 1 Introducere 6 2 Inima s ... i proiectarea ltrelor am folosit Matlab iar

utilizeaza undine care s-au dovedit a fi extraordinar de eficiente ın eliminarea zgomotului.

Avand ın vedere evolut, ia spectaculoasa a puterii de procesare a dispozitivelormobile, sistemul ar putea fi portat us,or pe un astfel dispozitiv. Monitorizarea permanentaa pacient, ilor care sufera de afect, iuni cardiace s-ar putea dovedi o unealta foarte utila. Des, icapacitatea de stocare s-a marit considerabil ın ultima perioada, un astfel de sistem arbeneficia enorm daca ar include un algoritm de compresie a datelor. Momentan existafoarte multe tehnici de compresie care profita de natura redundanta a semnalului EKG s, iproduc rezultate foarte bune.

54

Page 56: Lucrare de licent a - ACSE Departmentacse.pub.ro/wp-content/uploads/2013/07/Licenta_Iorga_Dan_341B2.pdf · 1 Introducere 6 2 Inima s ... i proiectarea ltrelor am folosit Matlab iar

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 specificationdt= 1/Fs;N = size(signal,1);t = (0:dt:N*dt−dt)';

%% Noisenoise = noise amp*sin(2*pi.*t.*noise freq);noisy signal = signal + noise;

%% Plotsfigure();

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 specificationdt= 1/Fs;N = size(original, 1);N1 = size(noisy, 1);N2 = size(filtered1, 1);N3 = size(filtered2, 1);

55

Page 57: Lucrare de licent a - ACSE Departmentacse.pub.ro/wp-content/uploads/2013/07/Licenta_Iorga_Dan_341B2.pdf · 1 Introducere 6 2 Inima s ... i proiectarea ltrelor am folosit Matlab iar

if (N˜=N1)error('Dimenisiunea semnalului zgomotos nu e buna');

endif (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');

endt = (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; % hertzf = −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 specificationdt= 1/Fs;N = size(signal,1);t = (0:dt:N*dt−dt)';

%% Fourier Transform:X = fftshift(fft(signal));

%% Frequency specifications:dF = Fs/N; % hertzf = −Fs/2:dF:Fs/2−dF; % hertz

%% Plot the spectrum:figure;

56

Page 58: Lucrare de licent a - ACSE Departmentacse.pub.ro/wp-content/uploads/2013/07/Licenta_Iorga_Dan_341B2.pdf · 1 Introducere 6 2 Inima s ... i proiectarea ltrelor am folosit Matlab iar

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 specificationdt= 1/Fs;Fn = Fc/Fs;N = size(signal,1);t = (0:dt:N*dt−dt)';

%% Initial conditionsv a = 1;v b = 2 * cos(2*pi* Fn);filtered = signal;vect = signal;vect(1) = v a;vect(2) = v b;

for i=3:Nv = 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 continueW 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

Page 59: Lucrare de licent a - ACSE Departmentacse.pub.ro/wp-content/uploads/2013/07/Licenta_Iorga_Dan_341B2.pdf · 1 Introducere 6 2 Inima s ... i proiectarea ltrelor am folosit Matlab iar

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

%% Gaseste Ry1=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];

endendRt=y1(P2);

%% Gaseste R in semnalul originalP3=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];

endRamp=A(Rloc);

%% Dupa detectarea undei R, gaseste restul undelor si intervalelorX=Rloc;y1=A;

for(j=1:length(X))% P Peakrange=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 onsetrange=Ploc(j)−round(0.08*Fs):Ploc(j)−10;m=min(y1(range));b=find(y1(range)==m);

58

Page 60: Lucrare de licent a - ACSE Departmentacse.pub.ro/wp-content/uploads/2013/07/Licenta_Iorga_Dan_341B2.pdf · 1 Introducere 6 2 Inima s ... i proiectarea ltrelor am folosit Matlab iar

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

% Q Peakrange=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 onsetrange=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 Peakrange=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 Peakrange=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 offsetrange=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

Page 61: Lucrare de licent a - ACSE Departmentacse.pub.ro/wp-content/uploads/2013/07/Licenta_Iorga_Dan_341B2.pdf · 1 Introducere 6 2 Inima s ... i proiectarea ltrelor am folosit Matlab iar

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'endif (RR>1.2)Stare=' Risc de brahicardie'endif (abs(RR−PP)<0.1)Stare=' Pacient suspect de blocaj atrioventricular'endif (QT>0.42)Stare=' Risc de torsada Varfurilor'endif (PR>0.2)Stare=' Risc de blocaj atrioventricular'endif (PR<0.12)Stare=' Risc de preexcitatie'end

60

Page 62: Lucrare de licent a - ACSE Departmentacse.pub.ro/wp-content/uploads/2013/07/Licenta_Iorga_Dan_341B2.pdf · 1 Introducere 6 2 Inima s ... i proiectarea ltrelor am folosit Matlab iar

B. Cod Labview

Figure B.1: Achizitia de date

61

Page 63: Lucrare de licent a - ACSE Departmentacse.pub.ro/wp-content/uploads/2013/07/Licenta_Iorga_Dan_341B2.pdf · 1 Introducere 6 2 Inima s ... i proiectarea ltrelor am folosit Matlab iar

Figure B.2: Aplicarea algoritmului Pan-Tomkins

62

Page 64: Lucrare de licent a - ACSE Departmentacse.pub.ro/wp-content/uploads/2013/07/Licenta_Iorga_Dan_341B2.pdf · 1 Introducere 6 2 Inima s ... i proiectarea ltrelor am folosit Matlab iar

Figure B.3: Aplicarea transformatei undine

63

Page 65: Lucrare de licent a - ACSE Departmentacse.pub.ro/wp-content/uploads/2013/07/Licenta_Iorga_Dan_341B2.pdf · 1 Introducere 6 2 Inima s ... i proiectarea ltrelor am folosit Matlab iar

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 andmapping in the heart’.

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

Gupta, R., Bera, J. and Mitra, M. (2010), ‘Development of an embedded system andmatlab-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 SignalProcessing, 2 edn, Prentice Hall.

Pan, J. and Tomkins, W. J. (1985), ‘A real-time qrs detection algorithm’, IEEETransactions on biomedical engineering 32(3).

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

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

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

Senhadji, L., Carrault, G., Bellanger, J. and Passariello, G. (1995), ‘Comparing wavelettransforms 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

Page 66: Lucrare de licent a - ACSE Departmentacse.pub.ro/wp-content/uploads/2013/07/Licenta_Iorga_Dan_341B2.pdf · 1 Introducere 6 2 Inima s ... i proiectarea ltrelor am folosit Matlab iar

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

Sornmo, L. and Laguna, P. (2005), Bioelectrical Signal Processing in Cardiac andNeurological 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-timefourier transform based technique’, IJCA Special Issue on Computer Aided SoftComputing Techniques for Imaging and Biomedical Applications .

65