AF Atrial fibrilation Fibrilație atrială [309989]
Listă acronime
AF Atrial fibrilation= Fibrilație atrială
AV Atrioventricular
BPM Beats Per Minute= Bătăi pe minut
CWT Continous Wavelet Transforms= Transformata continuă Wavelet
DCT Discret Cosine Transform= Transformata Cosinusului Discretă
DFT Discrete Fourier Transform=Transformata Fourier Discretă
DWT Discrete Wavelet Transform = Transformata discretă Wavelet
ECG Electrocardiogramă
GPL General public license
HF High Frequency= Filtru trece sus
HR Heart Rate= Ritm cardiac
HRV Heart rate variability= Variabilitatea ritmului cardiac
LF Low Frequency=Filtru trece jos
MFCC Coeficienții cepstrali ai frecvenței MEL
PPG Fotopletismografie
SA Sinoatrial
STFT Short time Fourier Transform= Transformare Fourier de scurtă durată
VT Ventricular tachycardia= Tahicardie ventriculară
WFDB Wave Form Database= Baza de date a formelor de undă
WT Transformata Wavelet
Introducere
1. Fiziologia inimii. Electrocardiograma. Fotopletismograma.
1.1 [anonimizat] , [anonimizat].
Această funcție de a pompa se datorează țesutului muscular al inimii numit miocard (myo=mușchi, cardia=inimă). [anonimizat], numite camere superioare separte de un perete numit septum. [anonimizat]. Sângele încărcat cu oxigen părăsește ventriculul stâng prin aortă. Circulă prin corp și se întoarce dezoxigenat în atriul drept prin venele cave superioară și inferioară. [anonimizat]. [anonimizat], [anonimizat] o nouă circulație arterială.
Figura 1.1 Structura inimii [1]
[anonimizat] a miocardului atrial urmată de cea a miocardului ventricular. [anonimizat], iar la inimă aceast impuls este generat chiar de muschiul inimii în sine. Această proprietate de a [anonimizat].
[anonimizat]. Acestea generează impulsuri electrice ce se transmit în toată inima prin țesuturile conductive.
[anonimizat]: [anonimizat], cu ramurile aferente: [anonimizat].
[anonimizat]. [anonimizat], celelalte se vor ”reseta” odata ce impulsul generat de celulele din nodul sinoatrial va ajunge la ele. Astfel, bătăile inimii vor fi dictate de celulele pacemaker din nodul sinoatrial. [2]
[anonimizat] o frecvență de 65-80 bătăi/min, [anonimizat] 180 bătăi/min, sau chiar mai mult.
Ciclul cardiac este descris prin două faze distincte: sistola și diastola. Sistola reprezintă faza de contracție a mușchilor ce formează camerele inimii, iar diastola reprezintă revenirea celulelor la potențialul de repaus, deci relaxarea inimii.
1.2 Electrocardiograma
Inima mai este denumită și “Pompa musculară” deoarece pompează continuu sânge de-a lungul vieții. Dacă inima se oprește pentru câteva minute, moartea este inevitabilă. Așadar, este foarte important să cunoaștem starea inimii pentru a preveni situațiile nevrute. Electrocardiograma (ECG) reprezintă o evaluare non-invazivă, transtoracică a activității electrice a inimii într-o anumită perioadă de timp prin intermediul electrozilor de pe piele.
ECG-ul indică ritmul total al inimii și slăbiciunile în diferite părti ale musculaturii inimii. Este una dintre cele mai bune metode pentru a masura si diagnostica rimurile anormale ale inimii. Este folosit pentru a măsura ritmul și regularitatea bătăilor inimii precum și dimensiunea și poziționarea camerelor inimii, dar și prezența unei leziuni la nivelul inimii.
Figura 1.2 ECG caracteristicile formei de undă și pozițiile lor corespunzătoare în inimă
Plasând într-un mod selectiv electrozii pe piele, undele electrice care trec prin diferite părți ale inimii pot fi măsurate. O ECG indică tensiunea care este luată din perechile acestor electrozi. Fiecare pereche ar trebui să măsoare un set specific de mușchi, dintr-o direcție diferită. Unda electrică are magnitudine, direcție și prin urmare poate fi reprezentată ca un vector care continuă să se schimbe atât în magnitudine cât și direcție într-un ciclu cardiac sau o singură bătaie a inimii. O ECG folosește perechi de electrozi numiți sonde și aceștia colectează componentele vectorului din diferite direcții. Este cea mai bună metodă pentru măsurarea și diagnosticarea ritmurilor anormale.
1.2.1 Sonde
Termenul de sondă în electrocardiografie este folosit pentru a face referință la două lucruri distincte. În general, termenul poate fi folosit ca și referință la cablul electric care se atașează electrozii la aparatul de măsurare ECG. De obicei, sunt 10 electrozi într-un ECG standard cu 12 sonde. Alternativ, termenul de sondă se poate referi (adesea la ECG) la urmărirea diferenței de tensiune dintre doi electrozi și este de fapt produs de aparatul de măsurare ECG. Fiecare va avea un nume specific.
Plasarea Electrozilor: un sistem ECG cu 12 sonde folosește 10 electrozi. Electrozii, de obicei constau într-un gel conductor, încorporat în mijlocul unui suport autoadeziv pe care sunt clemele cablurilor. Câteodată gelul formează adezivul. Ei sunt etichetați și sunt plasați pe corpul pacientului, dupa cum este prezentat în figura 1.3. Aceasta indică o amplasare corectă a electrozilor pe membru.
Figura 1.3 Poziționarea electrozilor
Sondele de pe membre: Sondele I, II și III sunt denumite sonde pentru membre în configurițiile cu 5 și 12 sonde. Electrozii sunt plasați pe membre – unul pe fiecare braț și unul pe piciorul stâng. Sonda I reprezintă tensiunea dintre electrodul de pe brațul stâng (LA) și electrodul de pe bratul drept (RA)
I = LA – RA
II= LL – RA
III= LL – LA
Sondele unipolare și bipolare: sunt două tipuri de sonde: unipolare și bipolare. Sondele bipolare au un pol negativ și unul negativ. În configurația ECG cu 12 sonde, sondele de pe membre (I, II si III) sunt sonde bipolare. Sondele unipolare au două poluri, pe măsură ce se măsoară o tensiune; cu toate acestea, polul negativ este un pol compozit compus din semnale de la mai mulți electrozi. Într-un sistem ECG cu 12 sonde, toate sondele în afară de cele ale membrelor, sunt unipolare.
Terminalul central al lui Wilson Vw este produs prin conectarea electrozilor RA; LA; și LL printr-o rețea rezistivă, pentru a oferi un potențial constant de-a lungul corpului:
Vw=1/3 (RA+LA+LL)
1.2.2 Undele și intervalele ECG
O monitorizare ECG a ritmului cardiac constă într-o undă P, a complexului QRS și a undei T. Tensiunea de bază a electrocardiogramei este cunoscută sub denumirea de linie izoelectrică. În mod normal, linia izoelectrică este măsurată ca și porțiune a monitorizării urmând unda T și precedând următoarea unda P.
Figura 1.4 Semnalul ECG și componentele sale diferite
Intervalul RR reprezintă durata unei revoluții cardiace. Durata acestuia depinde de puls; dacă pulsul este ridicat, durata intervalului RR este scăzută și vice-versa (de exemplu, la un ritm cardiac de 70 bătăi pe minut, durata intervalului RR este de aproximativ 0.86 secunde). Frecvența cardiac de repaus normal este cuprinsă între 60 – 100 bpm, iar durata între 0.6 – 1.2 s. [4]
Unda P este formată ca urmare a răspândirii semnalului electric prin mușchii atriului; acest lucru face ca atriul să se contracteze. Valoarea P este normal între 0,08 și 0,1 secunde (80 100ms) în timp. În timpul contracției atriale normale, vectorul electric principal se deplasează de la nodul Sinoatrial (SA) spre nodul Atrioventricular (AV) și se extinde de la atriul drept la atriul stâng. Aceasta se transformă în unda P al ECG. Forma și durata undelor P pot indica mărirea atrială. Perioada scurtă după unda P reprezintă timpul în care impulsul se deplasează în nodul AV. În nodul AV viteza semnalului electric este redusă considerabil. Perioada de debut de timp a undei P la începutul complexului QRS este denumită intervalul P-R. În mod normal, durata este de 0,12 până la 0,2 secunde. Intervalul P-R este timpul dintre contracția atriilor și contracția ventriculilor. Deformarea sa cu o crestătură pronunțată cu un interval vârf la vârf de peste 0,04 secunde sugerează mărirea atriului stâng.[4]
QRS reprezintă răspândirea impulsului electric prin mușchiul ventriculelor. Complexul QRS este o structură pe ECG care corespunde depolarizării (contracției) ventricolelor. Mușchii ventriculilor sunt mai mari decât mușchii atriilor: acest lucru înseamnă că complexul QRS este mai mare decât valul P. Complexul QRS este în mod normal între 0,06 și 0,1 secunde; aceasta este o perioadă foarte scurtă de timp și arată că depolarizarea ventriculară are loc foarte rapid. Durata și amplitudinea complexului QRS sunt utile în diagnosticarea problemelor cardiace și a altor stări de boală. Durata anormală (0,1 secunde) poate indica o blocare a ventriculului. O amplitudine anormală poate indica boală coronariană, emfizem și obezitate. În interiorul valului QRS este un val mai mic. Acest val este relaxarea atriului; seamănă cu un val P invers. Este mult mai mică decât magnitudinea QRS și, prin urmare, este ocolită de aceasta. [4]
Unda T reprezintă partea terminală rapidă și relaxarea ventriculilor. Valoarea T este examinată pentru direcția sa (A), pentru forma (B) și pentru înălțimea (C). O undă normală T este ușor rotundă și asimetrică. O undă ascuțită este cauza îngrijorării, iar dacă este mai înaltă este un indicator clar al anumitor boli de inimă. Durata undei T este de sub 0.2 secunde și are amplitudinea de sub 0.4mV (0.2mV – 0.4mV). [4]
Unda U este atribuită existenței unor diferențe de potențial la sfârșitul sistolei electrice. Aceasta devine mai pronunțată în cazul în care există o deficiență de potasiu. este văzută ocazional, este o undă pozitivă care apare după unda T. Amplitudinea sa este, în general, o pătrime din amplitudinea undei T. Unda U este cel mai frecvent observată în conductorii V2 V4. Persoanele cu unda T proeminentă, precum și cele cu ritm lent al inimii, afișează unde U de multe ori. [4]
Acest segment ST este o perioadă de zero tensiune care urmează complexului QRS. Aceasta este perioada de timp dintre contracția ventriculilor . Segmentul ST trebuie întotdeauna studiat cu atenție, deoarece este modificat într-o gamă largă de condiții. Pentru anumite boli, segmentul ST poate deveni depresiv sau ridicat reprezintă întârzierea suferită de stimulul excitator în propagarea sa la nivelul joncțiunii atrio-ventriculare. Este de interes deosebit în stabilirea ischemiei miocardice acuteDurata sa este de aproximativ 0.08 secunde. [4]
Intervalul PR reprezintă durata activității atriale și a conducerii atrio-ventriculare și este măsurat de la începutul undei P până la inceputul complexului QRS , iar durata este cuprinsă între 0.12 – 0.22 secunde. [4]
Intervalul QT se măsoara de la începutul complexului QRS până la terminarea unde T și reprezintă durata depolarizării și repolarizării ventriculare. Cea mai lungă durată a QT este uzual în derivațiile precordiale drepte. Prelungirea intervalului QT poate duce la tahicardie ventriculară. [4]
1.2.3 Importanța Electrocardiogramei
Riscul bolilor cardiovasculare crește în lumea modernă și duce la moartea persoanelor din cauza atacurilor cardiace. În același timp, un număr mare de persoane moare din cauza întârzierilor sau a erorilor în diagnosticarea bolilor cardiace. Specialiștii cardiologi folosesc semnalul ECG pentru a diagnostica într-un mod efectiv bolile cardiovasculare. ECG este un semnal reprezentativ care conține informații despre starea inimii. Forma și dimensiunea undei P-QRS-T și intervalele de timp dintre anumite vârfuri conțin informații folositoare despre natura și anormalitățile inimii. Prezența anormalităților cardiace sunt reflectate în forma undei ECG-ului și a ritmului cardiac. Este cea mai bună metoda pentru a măsura și a diagnostica ritmurile cardiace anormale.
ECG-ul este unul din cele mai comune folosite teste cardiace. Acest lucru se datorează faptulului că electrocariograma este folosită ca un instrument pentru ecranizarea anormalităților cardiace; aparatele ECG sunt prezente în majoritatea unităților medicale; testul este simplu de efectuat, fără riscuri și ieftin. De la efectuarea ECG-ului, pot fi determinate următoarele informații despre:
– ritmul cardiac;
– dacă există anormalități ale dispersiei impulsului electric pe inimă
– predispunerea la atac cardiac
– posibilă existență a unor boli coronariene
– dacă mușchiul cardiac prezintă anormalități.
ECG-ul arată ritmul cardiac doar în timpul în care se efectuează testul. Dacă sunt prezente anormalități intermitente ale ritmului cardiac, este foarte probabil ca testul ECG să nu le depisteze. Monitorizarea ambulatorie este necesară pentru a observa aritmiile tranzitorii.
Poate fi deseori normal sau aproape normal la pacienții cu boli coronariene nediagnosticate sau la alte forme ale bolilor cardiace. Multe anormalități care apar la ECG se dovedesc a nu fi de mare importanță, după ce evaluarea s-a efectuat (rezultate fals pozitive).
1.2.4 Forma undelor ECG care descriu anormalități cardiace
Figura 1.5 Semnalul ECG și componentele sale diferite
Unda P în ECG reprezintă startul ciclului cardiac sau a unei bătai a inimii. Forma și durata acesteia ajută la determinarea multor condiții medicale: aritmiile cardiace(bătăile inimii pot fi prea rapide sau prea lente, sau pot fi regulare sau iregulare), hipertrofia atrială (înseamnă mărire atrială), fibrilație atrială (este indicată de absența undei P care relevă o afecțiune care implică un tremur al mușchiului cardiac atrial), palpitațiile atriale (unda P este de forma unui dinte, lucru care se datorează unei contracții rapide, necoordonate a atriului).
Undele QRS: Complexul QRS este compus din trei puncte caracteristice Q,R și S de pe ECG care corespund depolarizării ventriculelor. Durata, amplitudinea și morfologia complexului QRS sunt folositoare în diagnosticare multor anormalități cardiace cum ar fi aritmiile cardiace, hipertrofia ventriculară, și infactul miocardic.
Intervalul PR/PQ: Intervalul PR este măsurat de la începutul undei P până la începutul complexului QRS. Mai multe condiții ale inimii pot fi diagnosticate din intervalul PR. De exemplu un interval PR de peste 0.2 secunde poate indica un blocaj cardiac de gradul întâi, iar un interval PR scurt poate indica un sindrom de pre-excitare.
Segementul ST: Aceste segment conectează complexul QRS și unda ST. Un segment ST plat sau depresiv poate indica o Ischemie Coronariană. De asemnea o elevație a segementului ST poate indica un Infarct Miorcardic.
Unda T: Aceasta undă se caracterizează prin repolarizarea sau recuperarea ventriculelor. O undă T inversă poate fi un semn care indică Ischemie Coronariană sau Hipertrofie a ventricului stâng. O undă T înaltă și simetrică indică Hiperkalemie, iar o undă T plată indica Hipokalemia.
Intervalul QT: Acesta este măsurat de la începutul complexului QRS până la sfârșitul undei T. Acestea sunt folositoare în a furniza informații despre sindromul QT. Un sindrom este alcătuit dintr-un grup de simptome care împreună sunt caracteristice unei afecțiuni sau a unei boli specifice.
Unda U: O astfel de undă proeminentă poate indica Hipokalemie, Hipercalcemie
1.3 Fotopletismografia
Fotopletismografia (PPG) este o tehnică optică simplă, non-invazivă și ieftină care poate fi folosită să detecteze schimbările volumetrice ale sângelui în țesuturi. Cele două cerințe de bază ale fotopletismografiei sunt: o sursă de lumină pentru a ilumina țesutul (spre exemplu pielea), și un foto detector pentru a măsura variațiile mici ale intensității luminii asociate cu schimbările ce intervin în recipientul perfuziei. PPG este deseori folosit la lungimi de undă infraroșii sau la valori apropiate de aceasta. Pulsul periferic, care este sincronizat cu fiecare bătaie a inimii, este caracteristica cea mai cunoscuta. În ciuda simplității diferitelor componente ce alcătuiesc semnalul PPG, acestea încă nu sunt pe deplin înțelese. Este universal valabil faptul că ele pot furniza informații importante despre sistemul cardiovascular . [5]
1.3.1 Considerații optice asupra originii formei de undă a PPG
Componenta pulsatilă a formei de undă PPG este denumită componenta ‘AC’ și de obicei are o frecvență fundamentală în jur de 1 Hz, depinzând de ritmul cardiac. Această componentă AC este suprapusă pe o componentp cvasi-DC care se referă la țesuturi și la volumul de sânge mediu. Această componentă DC variază puțin datorită respirației, activității vasomotoare, a undelor vasoconstructoare precum și alți câțiva factori. Interacția luminii cu țesutul biologic este complexă și include numeroase procese optice, precum împrăștierea, absorbția, reflexia, transmisia și fluorescența. S-a subliniat faptul că factorii cheie care pot afecta cantitatea de lumină primitp de fotodetector sunt: volumul de sânge, tensiunea la perete a vaselor de sange precum și orientarea celulelor roșii. Există trei motive principale pentru aceasta:
a) Fereastra optică de apă: Principalul constituent al țesutului este apa care absoarbe foarte puternic lumina în lungimile de undă cu radiații ultraviolete și mai lungi. Lungimile de undă mai scurte sunt, de asemenea, puternic absorbite de melanină. Există totuși o fereastră în spectrul de absorbție al apei, care permite ca lumina vizibilă (roșie) și apropiată de infraroșu să treacă mai ușor, facilitând astfel măsurarea fluxului sanguin sau a volumului la aceste lungimi de undă. Acestea sunt de obicei alese pentru sursa de lumină a pletismografiei.
b) Lungimea de undă Isobestic: Există o diferență semnificativă în absorbția între oxihemoglobină (HBO2) și reducerea hemoglobinei (Hb), cu excepția lungimilor de undă Isobestic. Pentru măsurătorile efectuate la o lungime de undă Isobistic, semnalul nu ar trebui să fie în mare măsură afectat de modificările saturației oxigenului din sânge.
c) Adâncimea de penetrare a țesuturilor : Adâncimea la care lumina pătrunde în țesut pentru o anumită intensitate a radiației optice depinde de lungimea de undă de operare. În PPG, volumul de captare, în funcție de designul sondei, poate fi de ordinul 1 cm.[5]
1.3.2 Instrumentația fotopletismografiei
Majoritatea senzorilor moderni PPG utilizează tehnologie semiconductoare cu cost scăzut cu LED și dipozitive cu fotodetectoare montate ce funcționează la lungimi de undă infraroșii sau apropiate de acestea.. Ledurile convertesc energia electrică în energie luminoasă și au o lungime de bandă singulară și limitată (de obicei 50 nm). Marele avantaj în folosirea ledurilor ca și sursă de lumină este faptul că acestea sunt compacte, cu o durată de viață care de obicei este mai mare de 105 ore, sunt funcționale la intervale mari de temperatură și sunt robuști din punct de vedere mecanic, precum și siguri.
Figura 1.6 Treapta de amplificare transimpedanță a unui senzor PPG
Cu toate acestea, trebuie luat în considerare faptul că intensitatea medie a ledurilor este constantă și suficient de scăzută pentru a minimiza încălzirea locală a țesutului și de asemenea pentru a reduce riscul unui pericol de radiații non-ionizante. Alegerea fotodetectorului depinde de caracteristicile spectrului sau care sunt alese încât să se potrivească cu sursa de lumină. Fotodetectorul convertește energia luminoasă în curent electric. Acestea sunt compacte, ieftine, sensibile, și au un timp de răspuns foarte rapid. Dispozitivele cu infraroșu pot fi “îmbrăcate” cu filtre pentru lumină naturală.[5]
Fig 1.7 Diagrama bloc a etapelor de condiționare a semnalului unui standard PPG
1.3.3 Tipuri de configurații PPG și artefacte corelate cu PPG
Sunt două configurații PPG principale: operarea prin transmisie (‘trans-iluminare’) unde proba de țesut (spre exemplu vârful degetului) este plasată între sursa de lumină și detector, și operarea prin reflecție unde ledul și detectorul sunt plasate unul lângă altul. Operarea prin transmisie impune mai multe restricții decât modul de operare prin reflecție, în ceea ce privește zonele corpului disponibile pentru acest studiu. Proba PPG ar trebui să fie ținută fix pentru a minimiza artefactul datorat mișcării probei țesut. Sunt și alte surse ale artefactelor ce trebuiesc luate în considerare atunci când se execută măsurarea. Un artefact poate proveni de la interferența luminii ambientale, dar poate fi redus prin mai multe moduri: atașamentul probei pe piele sau prin filtrare electronică[5].
1.3.4 Tehnici de diagnostic
Există mai multe metode non-invazive de măsurare a undei pulsatile bazate pe diferite principii și depinzând de tipul undei pulsatile. Unda pulsatilă care se dispersează pe suprafața arterelor are un impact asupra senzorului fie direct fie implicit, modulând un impuls energetic care se transmite către corp.
1.3.4.1 Unda pulsatilă de presiune
Unda pulsatilă de presiune se schimbă în timp ce se deplasează către arterele distale. Se consideră că aceste schimbări se datorează în mare parte reflexiei undei pulsatile. Unda pulsatilă de presiune este similară cu unda pulsatilă de volum, în consecință apar schimbări asemănătoare în conjuncția cu bolile vasculare, cum ar fi pierderea pulsatilității datorită absorbției frecvențelor mari de către mișcarea la peretele arterelor, acesta fiind rigid. O metodă folosită și non-invazivă pentru evaluarea undei pulsatile de presiune este folosirea unei manșete aplicată la nivelul degetului, ca și răspuns al senzorului de fotopletismografie, pentru a controla presiunea constanta.
1.3.4.2 Unda pulsatilă de volum
Există două tehnici principale pentru a măsura și înregistra unda pulsatilă de volum. Cea mai ușoară modalitate este reprezentată de folosirea manșetei brahiale ce înconjoară membrul, aceasta fiind atașată de un traductor de presiune. Această tehnică nu este foarte precisă doarece, adițional sunt măsurate și undele pulsatile ale arterelor ce se află sub manșetă. Cea de a doua tehnică și cea mai folosită este fotopletismografia. Aceasta este o tehnică de măsurare optică, care este folosită pentru a detecta schimbările volumetrice ale sângelui în microvasculatura țesutului. Acest principiu este folosit în oximetre sau în sistemele de măsurare a tensiunii arteriale.
Figura 1.8 PPG analiza degetului
4.2.3 Unda pulsatilă de flux
Debimetrul cu ultrasunete Doppler este adesea folosit pentru a măsura fluxul. Această tehnică poate fi folosită și pe suprafața corpului și are o mulțime de avantaje. Eritrocitele sunt structuri cu rezonanță de bază și sunt folosite frecvențe începând cu 2 MHz până la 10 MHz. Tehnicile de colorare Doppler combinate cu emisia pulsată, putem măsura viteza fluxului într-un anumit vas. Cu toate acestea, forma undei pulsatile de flux nu este corelată cu undele de volum și de presiune.
Tulburările cardio-respiratorii ale inimii
Inima în mod normal bate de aproximativ 70 de ori pe minut în repaus. O rată mai mică de 60 de bătăi pe minut este numită bradicardie, în timp ce termenul de tahicardie este rezervat pentru rate mai mari de 100 de bătăi pe minut.
2.1 Bradicardia
Acest lucru este în mod normal prezent în timpul somnului și la atleții în formă (sindromul inimii la sportivi). Receptorii de presiune (baroceptorii) din arterele aortei și carotidei răspund la presiunea arterială, modificând tonul vagal prin eliberarea acetilcolinei. În sindromul sinusului carotidian, crește sensibilitatea baroceptorilor localizați în regiunea sinusului carotidic din artera carotidă. Prin urmare, presiunea asupra gâtului poate duce la bradicardie, amețeli și sincopă. Uneori, poate declanșa asistolă timp de până la 10 secunde. Ritmul cardiac variază de asemenea cu faza de respirație; acest lucru se numește "aritmie sinusală".[7]
2.2 Blocul atrioventricular (AV)
2.2.1 Blocul de gradul I
Blocul de gradul I: acesta este caracterizat printr-un interval PR prelungit (> 0.20 secunde) și se datorează întârzierii constante, mai degrabă decât blocării conducerii impulsului de la atrium la ventricul. Blocul de gradul întâi este adesea prezent la sportivi, dar poate fi asociat cu boli cardiace ischemice, cardiace reumatice acute și medicamente precum digitalis și b-blocante. Nu provoacă simptome și nu necesită alt tratament decât observarea. [7]
2.2.2 Blocul de gradul II
Blocul AV de tip 1 de gradul doi (Wenckebach, Mobitz de tip I); există o prelungire progresivă a intervalului PR, înainte ca un complex QRS să nu apară după unda P. Blocul este, de obicei, în nodul AV, iar QRS are o durată normală. Cauzele sunt infarct miocardic de perete inferior, intoxicație cu beta-blocante, digoxină și blocante ale canalelor de calciu. Blocul de tip 1 poate fi prezent la persoanele normale cu ton vagal crescut, în general noaptea. Dacă rata ventriculară este adecvată și pacientul este asimptomatic, observarea este suficientă. [7]
Blocul AV de tip 2 de gradul 2 (Mobitz tip II) intervalul PR rămâne constant înaintea unei eșecuri bruște și neașteptate a undei P de a se efectua. Aceasta se datorează de obicei bolii sistemului HisePurkinje și este adesea asociată cu un val anormal QRS. Atunci când două sau mai multe unde P succesive sunt blocate, acest lucru se numește bloc AV de grad înalt. Blocul de tip 2 poate apărea la stabilirea infarctului miocardic anteroseptal sau a bolii sclerodegenerative a scheletului fibros al inimii. Este foarte probabil ca acest lucru să progreseze până la blocul simptomatic de gradul 3 sau starea ventriculară, astfel încât stimularea permanentă este indicată. Blocul fiziologic de gradul doi este observat cu ritmuri supraventriculare rapide, cum ar fi tahicardia atrială și flutterul atrial. [7]
Figura 2.1 Bradicardia a blocului AV de tip 2 de gradul 2 [7]
2.2.3 Blocul de gradul III (bloc complet al inimii)
Aceasta se caracterizează prin întreruperea completă a impulsurilor electrice de la atriu la ventricul. Undele P sunt disociate de complexul ventricular și cele două sunt controlate asincron de stimulatoare cardiace independente. Aceasta este cea mai avansată formă de bloc AV. Aceasta se datorează în principal schimbărilor degenerative cronice ale ramurilor legat de leziunile Lev și Lenegre. De asemenea, poate apărea cu cardiomiopatie și infarct miocardic inferior. Blocul cardiac complet poate fi congenital datorită transmiterii materne a anticorpilor anticucleari (Ro / SSA și / sau La / SSB). Tratamentul este o stimulare permanentă deoarece blocul de gradul trei poartă o mortalitate semnificativă. [7]
2.3 Tahicardia
În mod normal, celulele miocardice nu se evacuează spontan. Tahiaritmiile pot apărea din orice parte a inimii. Acestea pot fi tulburări de formare a impulsurilor (automatizare sporită) datorate catecolaminelor exoene, hiperkaliemiei, hipoxiei și digitalisului; ele pot apărea și din tulburări de răspândire a impulsului (reintrare), cum ar fi în tahicardiile supraventriculare susținute. Tahiaritmiile pot fi clasificate în continuare ca (1) regulate sau neregulate și (2) complexe înguste sau largi, în funcție de morfologia QRS. O aritmie neregulată este, de obicei, fibrilația atrială (sau flutter cu bloc variabil), fie îngustă, fie complexă. O tahicardie îngustă complexă obișnuită este în general originea SVT, în timp ce tahicardia obișnuită complexă obișnuită provine de obicei din ventricul. [7]
2.4 Fibrilația atrială
Aceasta este cea mai frecventă aritmie susținută. Răspândirea generală este de 1% până la 1,5%, dar crește odată cu vârsta, afectând aproximativ 10% dintre persoanele cu vârsta peste 70 de ani. Cauzele sunt variate, deși multe cazuri sunt idiopatice. Prognoza este legată de cauza principală; este excelent atunci când se datorează fibrilației atriale idiopatice și relativ slab atunci când este cauzată de cardiomiopatie ischemică. Conducerea impulsurilor atriale în ventricule este variabilă și imprevizibilă. Numai câteva dintre impulsuri transmit prin nodul atrioventricular pentru a produce un răspuns ventricular neregulat. Această combinație de valori P absente, oscilații de undă fine de bază f și complexe ventriculare neregulate este caracteristică pentru fibrilația atrială. Viteza ventriculară depinde de gradul de conducere atrioventriculară și cu conductivitate normală variază între 100 și 180 biți / min. Ratele mai mici sugerează un grad mai mare de bloc atrioventricular sau pacientul poate lua medicamente, cum ar fi digoxina.
Fibrilația atrială rapidă poate fi dificil de diferențiat de alte tahicardii. Cu toate acestea, intervalul RR rămâne neregulat, iar rata globală fluctuează adesea. Maparea undelor R împotriva unei bucăți de hârtie sau a etrierilor confirmă, de obicei, diagnosticul.
Fibrilația atrială (AF) poate fi paroxistică sau persistentă și se caracterizează prin activitate atrială dezorganizată, fără unde P discrete pe ECG. Mecanismul AF este neclar, dar se crede că există numeroase circuite micro-re-intrare sau stimuli care excită atria, de obicei de unde venele pulmonare intră în atriul stâng. Rata atrială este cuprinsă între 350 și 600 de bătăi pe minut (bpm), iar această activitate determină o linie de undă inductivă. Impulsurile ajung la nodul AV prin mai multe căi la intervale frecvente și neregulate. Introducerea rapidă a impulsurilor atriale face ca nodul AV parțial refractar la impulsurile ulterioare, astfel încât rata ventriculară să fie oarecum mai lentă și neregulată. AF acute pot fi precipitate prin infecție, alcool, deshidratare, insuficiență cardiacă congestivă și embolie pulmonară. În AF acute, tratarea cauzei primare rezolvă de obicei aritmia. Dacă pacientul este compromis, se poate efectua cardioversia electrică sau chimică. [7]
2.5 Flutter-ul atrial
Filarea atrială este caracterizată de o activitate atrială rapidă și regulată, care determină un aspect dinte de fierăstrău sau piatră, de obicei în conductele inferioare. Mecanismul este, în general, un circuit de re-intrare în dreptul atriului. Rata atrială este de 250 – 350 bpm; rata ventriculară este de obicei jumătate din rata atrială, de obicei în jur de 150 bpm. Filarea atrială, când durează mai mult de o săptămână, se convertește frecvent la AF. Deși riscul de emobolizare sistematică este mai mic decât pentru AF, managementul este același pentru ambele.
Figura 2.2 Semnalul flutterului atrial[7]
Cauzele flutterului atrial sunt similare cu cele ale fibrilației atriale, deși flutterul atrial idiopatic este mai puțin frecvente. Se poate transforma în fibrilație atrială în timp sau după administrarea de medicamente, cum ar fi digoxina.
2.6 Tahicardia ventriculară
Tahicardia ventriculară (VT) este definită ca trei sau mai multe complexe QRS ventriculare ectopice consecutive care apar la o rată > 100 bpm. Se numește VT susținută dacă durează mai mult de 30 de secunde sau necesită intervenție. Este complexă și destul de regulată, apărută ca urmare a automatizării anormale sau (mai frecvent) re-intrare distală față de pachetul său. Tahicardia complexă este cel mai frecvent vT, în special dacă există o boală cardiacă structurală. Anumite criterii ECG suportă VT în comparație cu SVT cu conducere aberantă. [7]
Figura 2.3 Semnalul tahicardiei ventriculare[7]
2.7 Tahicardia sinusală
Tahicardia sinusală este de obicei un răspuns fiziologic, dar poate fi precipitată prin medicamente simpatomimetice sau tulburări endocrine. Rata depășește rar 200 batăi / min la adulți. Rata crește treptat și poate arăta variații. Fiecare undă P este urmată de un complex QRS. Morfologia undelor P și axa sunt normale, deși înălțimea undei P poate crește cu frecvența cardiacă și intervalul PR se va scurta. Cu o tahicardie rapidă, undele P se pot pierde în unda T anterior.
Recunoașterea cauzei care determină, de obicei, facilitează diagnosticarea tahicardiei sinusale. O tahicardie persistentă, în absența unei cauze evidente, ar trebui să determine examinarea flutterului atrial sau a tahicardiei atriale. Rar, tahicardia sinusală poate fi cauzată de un fenomen de reintrare în sindromul sinoatrial. Acest lucru este recunoscut prin debut brusc și terminare, o rată foarte regulată și absența unui stimulent fiziologic de bază. Caracteristicile electrocardiografice sunt altfel identice. Rata este de obicei de 130-140 bătăi / min, iar manevrele vagale pot avea succes în stoparea aritmiilor. [7]
Descrierea mediului și a bazei de date de prelucrare de semnal
3.1 MATLAB
În capitolul acesta va fi descries programul software în care se va realize prelucrarea semnalului PPG și ECG achiziționate din baza de date PhysioNet, pentru a determina tulburările cardio respiratorii ce pot apărea pe parcurs. Programul este intitulat MATLAB(MATrix LABoratory) și a fost creat la sfârșitul anului 1970 de compania MathWorks pentru a oferi acces atât studenților cât și persoanelor pasionate de partea medical, la librăriile de calcul create la acea vreme, făra a fi nevoie de cunoașterea limbajului Fortran. [6]
Este un mediu de dezvoltare pentru calculul numeric și analiza statistic, devoltat ân limbajul de programare C. Acesta permite implementarea algoritmilor, crearea de interfețe, manipularea matricilor, vizualizarea funcțiilor, dar și posibilitatea comunicării în vederea schimbului de date cu alte aplicații. Este un mediu de programare modern, care folosește structure de date sofisticate, include posibilități de editare și rezolvare a erorilor, și tolerează programarea orientată pe obiect. Avantajul față de alte limbaje de programare este elementul principal al acestuia și anume tabloul de date ce nu impune dimensionarea în momentul introducerii. [6]
Mediul de lucru este alcătuit din 4 zone sau ferestre : zona directorului curent, fereastra de comenzi, zona variabilelor de lucru și fereastra în care este afișat istoricul comenzilor. Situată în partea stângă, zona directorului curent, permite vizualizarea folderului curent. Este folosită când se dorește schimbarea directorului de lucru sau când se dorește deschiderea unui fișier Matlab fără a trebui părăsită interfața. Zona de comenzi mai este denumită și fereastra centrală, unde pot fi introduce comenzi simple,rulate fără a fi creat un fișier de cod deoare rezultatul apare imediat după executarea comenzii și permite utilizatorului să verifice o comandă înainte de introducerea ei într-un cod mai compex. Penultima fereastră, zona variabilelor de lucru se găsește în partea dreapta sus, unde se pot observa toate variabilele create și folosite de un cod scris în editor sau variabilele introduse prin intermediul ferestrei de comenzi. Crearea de noi varibile se realizează tot prin intermediul acestei ferestre, la fel și deschiderea unora deja existente, salvarea, redenumirea sau ștergerea lor. Ultima zonă , se află în partea dreapta jos, și arată istoricul comenzilor realizate în diferite sesiuni de lucru și permite reintroducerea acestora în fereastra de comandă prin alegerea acestora. [6]
Printre cele mai importante aspecte ale programului, se numără și existența interfețelor specifice unui anumit domeniu „toolbox”. Ele pot fi folosite prin comanda „nnstart” sau prin meniul „Start” din partea stângă jos si selectarea opțiunii “Toolboxes”. Domeniile incluse în aceste toolboxes sunt numeroase : de la inginerie aerospațială, la baze de date, procesare de imagini la optimizare și statistice. Scopul lor fiind de a ajuta cu informații asupra domeniului , și a putea observa aplicarea principiilor și folosirea parametrilor oferiți. [6]
3.2 Physionet
Din 1999, PhysioNet (http://physionet.org/) a oferit acces gratuit prin intermediul web-ului către colecții mari de semnale înregistrate și software asociat cu surse deschise fiind o bună resursă pentru cercetătorii care studiază semnalele fiziologice și serii de timp. Resursa, destinată să stimuleze și să susțină cercetările actuale și cercetările noi în studiul semnalelor complexe biomedicale și fiziologice, are trei componente strâns interdependente:
PhysioBank este o arhivă vastă și în creștere a înregistrărilor digitale bine caracterizate de semnale fiziologice, serii de timp și date aferente pentru utilizarea de către comunitatea de cercetare biomedicală;
PhysioToolkit este o bibliotecă vastă și în creștere a software-ului open source pentru procesarea, analiza și simularea fiziologică a semnalului;
PhysioNet nu este numai numele Resurselor, ci și al site-ului său web, physionet.org, care oferă acces gratuit la PhysioBank, PhysioToolkit și materiale și facilități de cercetare conexe.
Aproximativ 30.000 de vizitatori folosesc PhysioNet în fiecare lună, iar serverul principal PhysioNet de la MIT furnizează peste un teraabyte de date (aproximativ 4 milioane de clicuri) în fiecare lună.
3.2.1 PhysioBank
În prezent include baze de date pentru semnale biomedicale cardiopulmonare, neuronale și alte semne biomedicale multiparametrice de la subiecții sănătoși și la pacienții cu diverse afecțiuni cu implicații majore asupra sănătății publice, inclusiv moartea subită cardiacă, insuficiența cardiacă congestivă, epilepsia, tulburări de mers, apnee în somn și îmbătrânire. Aceste colecții includ date dintr-o gamă largă de studii, dezvoltate și contribuite de membrii comunității de cercetare. PhysioBank conține peste 7000 de înregistrări de semnale fiziologice și serii temporale adnotate, digitalizate, organizate în peste 40 de baze de date (colecții de înregistrări). În acest context, o bază de date este pur și simplu o colecție de înregistrări (înregistrări), disponibilă ca un set de fișiere plate. Spre deosebire de bazele de date relaționale tipice, bazele de date PhysioBank constau în numere relativ mici (zeci și mii) de înregistrări care pot fi destul de mari (în unele baze de date PhysioBank, înregistrările sunt de 500 Mb fiecare, deși dimensiunile tipice sunt de câteva Mb) . Multe dintre bazele de date aflate în prezent în Arhivele PhysioBank au fost dezvoltate la MIT și la Spitalul Beth Israel din Boston.[9]
Fiecare bază de date constă dintr-un set de înregistrări identificate prin numele înregistrării. În majoritatea cazurilor, o înregistrare constă din cel puțin trei fișiere, folosind numele de înregistrare urmat de sufixe distincte (extensii) care indică conținutul acestora. De exemplu, baza noastră de date aritmie MIT-BIH include înregistrarea 100; cele trei fișiere 100.atr, 100.dat și 100.hea împreună cuprind înregistrarea 100. Aproape toate înregistrările includ un fișier binar (semnal) care conține eșantioane digitalizate ale unuia sau mai multor semnale; aceste fișiere pot fi foarte mari. Fișierul .hea (header) este un fișier text scurt care descrie semnalele (inclusiv numele sau adresa URL a fișierului de semnal, formatul de stocare, numărul și tipul semnalelor, frecvența de eșantionare, datele de calibrare, caracteristicile digitizatorului, durata înregistrării și timpul de pornire ).[9]
Cele mai multe înregistrări includ unul sau mai multe fișiere de adnotare binare (.atr), care conțin seturi de etichete ce descriu o caracteristică a unuia sau mai multor semnale la un anumit moment din înregistrare; de exemplu, 100.atr conține o adnotare pentru fiecare complex QRS (bătăi de inimă) în înregistrare, indicând locația sa (timpul de apariție) și tipul (normal, ectopic ventricular etc.), precum și alte adnotări care indică modificări în ritmul cardiac predominant și în calitatea semnalului. [9]
3.2.2 PhysioToolkit
Oferă software pentru explorarea și studiul PhysioBank. Printre componentele sale se numără algoritmii de detectare a evenimentelor semnificative fiziologic utilizând atât tehnici clasice, cât și metode noi bazate pe fizica statistică și dinamica neliniară, afișarea și caracterizarea interactivă a semnalelor, crearea de noi baze de date, simularea semnalelor fiziologice și a altor semnale, evaluarea și compararea cantitativă a metodelor de analiză și analiza proceselor non-echilibrate și non-staționare. O temă unificatoare a multora dintre proiectele de cercetare care contribuie cu software pentru PhysioToolkit este extragerea informațiilor "ascunse" din semnalele biomedicale, informații care pot avea o valoare diagnostică sau prognostică în medicină sau o putere explicativă sau predictivă în cercetarea fundamentală. Toate programele PhysioToolkit sunt disponibile sub formă sursă, sub licența GNU General Public License (GPL). [9]
3.2.3 Site-ul PhysioNet
Este un serviciu public al resurselor PhysioNet, stabilit ca mecanism pentru diseminarea și schimbul liber și deschis de semnale biomedicale înregistrate și software open source pentru analiza lor. Acesta oferă acces electronic gratuit la date PhysioBank și software PhysioToolkit, precum și facilități pentru analiza cooperativă a datelor și evaluarea noilor algoritmi propuși. În plus, site-ul PhysioNet oferă servicii și instruire prin tutoriale on-line pentru a ajuta utilizatorii la intrare și la niveluri mai avansate. Tutorialele PhysioNet oferă introducerea manuală a datelor și a software-ului disponibile de la PhysioBank și PhysioToolkit. În prezent, peste 20 de tutoriale discută subiecte cum ar fi variabilitatea ritmului cardiac, dinamica neliniară, seria temporală multifractală, entropia multiscala, dinamica mersului uman, prelucrarea și analiza fiziologică a semnalelor, ghiduri "how-to" pentru utilizarea și personalizarea software-ului PhysioToolkit, o oglindă a PhysioNet.[9]
Figura 3.1 Componentele Physionet[9]
Metode de analiză a semnalului ECG
Analiza și detectarea semnalelor ECG au reprezentat un subiect interesant din mai mulți ani și continuă cercetările în acest domeniu. Au fost dezvoltate diferite metode pentru analiza ECG ca de exemplu transformata Fourier rapidă, transformata Fourier de scurtă durată.
4.1 Tehnici pentru comprimarea semnalelor ECG
În trecut, cercetările au propus numeroase metode de transformare, cum ar fi Transformarea Cosinus Discretă (DCT), Transformata Fourier Rapidă (FFT) și Transformata Wavelet Discretă (DWT), datorită faptului că se schimbă drastic în domeniul compresiei datelor. FFT este un algoritm discret de transformare Fourier (DFT) care reduce numărul de calcule necesare pentru punctele N de la la DFT este folosită în analiza Fourier a unui semnal în domeniul frecvenței. Pe baza FFT, s-au propus numeroase metode de analiză și comprimare a semnalului ECG. Transformata discretă a cosinusului este exploatată pe scară largă pentru comprimarea datelor, cum ar fi compresia vorbirii, compresia imaginilor și comprimarea ECG. DCT se calculează utilizând algoritmul FFT, deoarece este DFT. Cu toate acestea, DCT dă mai multă greutate coeficienților de joasă frecvență decât la coeficienții de înaltă frecvență. DCT oferă o performanță aproape optimă în semnalul tipic având corelații mari în probele adiacente. Mai mulți cercetători au dezvoltat algoritmi unici pentru comprimarea semnalului ECG bazat pe Transformarea discretă a cosinusului.
În decursul ultimului deceniu, Transformata Wavelet, în special Transformata Wavelet Discretă, a apărut ca un instrument puternic și robust pentru analiza și extragerea informațiilor din semnalul non-staționar, cum ar fi semnalul vocal și semnalul ECG, datorită naturii variate a acestor semnale. Semnalele non-staționare sunt caracterizate de numeroase schimbări bruște, de transferuri tranzitorii și direcții. Wavelet are o caracteristică de localizare împreună cu proprietățile de rezoluție a frecvenței de timp, ceea ce îl face potrivit pentru analiza semnalelor non-staționare.
4.1.1 Transformata Fourier
Analiza Fourier este o familie de tehnici matematice; toate bazate pe semnale de descompunere în funcții de sin și cosinus. Analiza Fourier și transformarea sa sunt numite după Joseph Fourier, un matematician și fizician francez în anii 1800. În 1822 a publicat faimoasa sa lucrare, Theorie analytique de La chaleur (teoria analitică a căldurii). Aceasta a fost prima lucrare care a folosit seriile Fourier. El este, de asemenea, creditat cu descoperirea efectului de seră în 1824. Fourier a pus temelia transformării rapide Fourier care este folosită astăzi de cercetători și ingineri. Pentru sistemele digitale se utilizează transformarea discretă Fourier. Formula pentru transformarea discrete Fourier este:
k=0,…,N-1
Transformă semnalul de la domeniul de timp la reprezentarea domeniului de frecvență. Formula pentru transformarea Fourier discretă inversă este:
n=0,…,N-1
Transformă semnalul din domeniul frecvenței înapoi la reprezentarea domeniului de timp. Ambele formule necesită un calcul foarte lung.[16]
4.1.2 Transformata Fourier Rapidă
În 1965 J.W. Cooley și J. Tukey au venit cu o metodă de accelerare a calculelor transformării discrete Fourier. Acum se numește algoritmul Cooley-Tukey pentru Transformata Fourier rapidă. Mai târziu, s-a constatat că algoritmul era cunoscut deja sub numele de Carl Friedrick Gauss în jurul anului 1805. Din păcate, lucrarea sa a fost publicată în limba latină după moartea sa și nu avea o audiență largă.
Transformarea rapidă Fourier este un algoritm pentru a calcula transformarea discretă Fourier și inversa acesteia, reducând timpul de calcul cu un factor de sute. Diferența de viteză poate fi substanțială, în special pentru cantități mari de date. Transformarea Fourier rapidă este utilizată într-o gamă largă de aplicații, de la procesarea semnalelor digitale și ecuațiile diferențiale parțiale la algoritmi pentru multiplicarea numerelor întregi mari.
Există mulți algoritmi FFT distinctivi care implică o gamă largă de matematică, de la simplă aritmetică complexă la teoria grupurilor și teoria numerelor. Transformarea rapidă Fourier este o procedură extrem de eficientă pentru calcularea DFT a unei serii finite și necesită un număr mai mic de calcule decât cel al evaluării directe a DFT. Reduce calculele, profitând de faptul că calculul coeficienților DFT poate fi efectuat în mod iterativ. Datorită acestui fapt, tehnica de calcul FFT este utilizată în analiza spectrală digitală, simularea filtrelor, autocorelația și recunoașterea modelului.
FFT se bazează pe descompunerea și împărțirea transformatei în transformări mai mici și combinarea acestora pentru a obține transformata totală; aceasta reduce timpul de calcul necesar pentru a calcula o transformare Fourier discretă și îmbunătățește performanța cu un factor de 100 sau mai mult față de evaluarea directă a DFT.
O transformare discretă Fourier descompune o secvență de valori în componente de frecvențe diferite, calculând o transformare discretă Fourier din definiție necesită operații O(n2) o transformare Fourier rapidă poate găsi același rezultat în operațiile .
Algoritmii cei mai cunoscuți FFT depind de factorizarea N, dar există FFT cu complexitate O (N log N) pentru toate N, chiar și pentru primul N. Mulți algoritmi FFT depind numai de faptul că este o rădăcină primitivă a N unități și, astfel, poate fi aplicată transformărilor analogice peste orice câmp finit, cum ar fi transformările numerice-teoretice.
Figura 4.1 Corelația și Transformata Fourier Rapidă
Din figură se observă că punctul 4096 DFT va fi calculat în ultima secundă cu o transformată rapidă Fourier, dar va dura aproape 1000 de secunde cu metoda original.
Diferența de viteză poate fi substanțială, în special pentru seturile de date lungi unde N poate fi în mii sau milioane; în practică, timpul de calcul poate fi redus cu câteva ordine de mărime în astfel de cazuri, iar îmbunătățirea este aproximativ proporțională cu N / . Această îmbunătățire imensă a făcut mulți algoritmi bazați pe DFT practice. Un semnal care are funcția periodică în timp poate fi analizat sau sintetizat ca un număr de semnale armonice legate de semnalele sinusoidale și cosinus. Un semnal periodic f (t) cu perioada poate fi reprezentat de seria Fourier ca:
+ (1)
unde este media sau valoarea medie a semnalului iar și sunt coeficienții din seria Fourier. t este timpul și n este coeficientul index. Coeficienții de serie Fourier de mai sus sunt găsiți de FFT.
(2,3)
unde, sunt coeficienti complexi. Mai se pot scrie și sub forma:
dt n=0, (4)
Pentru semnalul periodic eșantionat, coeficienții complexi discreți ai seriei în timp sunt:
(5)
și
(6)
unde, k este indicele de timp discret. N este numărul probelor de semnal ECG. Din ecuațiile (1), (2) și (4) se atribuie coeficienții seriei Fourier de ecuație (5) calculați folosind tehnica FFT. Deoarece se presupune că descompunerea semnalului ECG este variabilă din cauza tulburărilor cardiace, ecuația (5) trebuie efectuată pe fiecare ciclu detectat. Coeficienții seriei Fourier utilizați pentru a sintetiza semnalul original se calculează folosind ecuația (6).
Algoritmul FFT se bazează pe principiul fundamental al descompunerii calculului transformării discrete Fourier a unei secvențe de lungime N în transformări Fourier discrete succesive mai mici. Există în principiu două clase de algoritmi FFT.
A) algoritmul decimare în timp
B) algoritmul decimare în frecvență
În decimarea în timp, secvența pentru care avem nevoie de DFT este divizată succesiv în secvențe mai mici și DFT-urile acestor subsecvențe sunt combinate într-un anumit model pentru a obține DFT-ul necesar al întregii secvențe.
În abordarea de decimare în frecvență, probele de frecvență ale DFT sunt descompuse în subsecvențe mai mici și mai mici într-un mod similar.
Numărul operațiilor complexe de multiplicare și adiție cerute de formele simple, atât Transformata discretă Fourier (DFT), cât și Transformata Discreta Fourier Inversă (IDFT) este de ordinul N2 deoarece există date N pentru a calcula, iar fiecare dintre acestea necesită operații aritmetice complexe N .[16]
4.1.3 Transformata Discretă a cosinusului
DCT a utilizat pe scară largă compresia datelor. În descompunerea semnalului bazat pe algoritmi DCT au patru etape esențiale:
– împărțirea semnalului în sub-părți N;
– calculul DCT pentru fiecare bloc;
– pragul și cuantificarea coeficienților DCT;
– codificarea coeficienților DCT cuantificați.
Transformarea cosinusului discret este definită ca:
În timp ce inversul DCT (IDCT) este definit ca:
DCT dă coeficientul descompus al semnalului original și dă mai multă greutate coeficienților cu frecvență joasă față de coeficienții de înaltă frecvență. [16]
4.1.4 Transformata Wavelet
Teoria Wavelet oferă un cadru unificat pentru o serie de tehnici, care au fost dezvoltate independent pentru diferite aplicații de prelucrare a semnalului. De exemplu, procesarea semnalului multiresoluție utilizat în viziunea calculatorului; sub-codarea benzii dezvoltată pentru compresie de vorbire și imagine; expansiunile din seriile wavelet, dezvoltate în matematica aplicată au fost recent recunoscute ca viziuni diferite ale unei singure teorii. De fapt, teoria wavelet acoperă o zonă destul de mare. Ea tratează atât cazurile continue, cât și cele discrete. Acesta oferă tehnici foarte generale care pot fi aplicate la multe atribuții în procesarea semnalelor și, prin urmare, au numeroase aplicații potențiale.
În special, transformata "wavelet" (WT) este de interes pentru analiza semnalelor staționare, deoarece oferă o alternativă la transformarea clasică Fourier scurtă (STFT) sau transformarea Gabor. Diferența de bază este după cum urmează: în contrast cu STFT, care utilizează o singură fereastră de analiză, WT folosește ferestre scurte la frecvențe înalte și ferestre lungi la frecvențe joase. WT este, de asemenea, legată de analiza timp-frecvență bazată pe distribuția Wigner-Ville. Pentru unele aplicații, este de dorit WT ca descompunerea semnalului să devină un set de funcții de bază numite wavelets. Acestea sunt obținute dintr-un singur prototip prin dilatări și contracții, precum și schimbări.
Transformata Wavelet nu este dificil de aplicat ca instrument matematic pentru descompunerea semnalelor, dificultatea reală vine în alegerea unui wavelet mamă care se potrivește optim semnalului în funcție de aplicație și de semnalul însuși. Transformarea discretă a wavelet-ului are avantajele sale naturale atunci când este aplicată analizei ECG. În mod convențional, extracția caracteristicilor ECG este precedată de o trecere de bandă sau de un filtru potrivit pentru suprimarea undelor și a zgomotelor P și T înainte de a trimite semnalul pentru detectarea caracteristicilor. Prin utilizarea Transformatei discretă Wavelet, se efectuează implicit filtrarea domeniului de frecvență, făcând sistemul robust și permițând aplicarea directă asupra semnalelor ECG brute. [17]
4.1.4.1 Transformata continuă Wavelet (CWT)
Este definită ca sumă pe toată durata semnalului înmulțită cu versiunile scalate, schimbate ale funcției wavelet sau alternativ așa cum se arată în cele ce urmează:
În această ecuație, parametrul "a" este factorul de scalare care întinde sau comprimă funcția. Parametrul τ este factorul de translație care schimbă waveletul mamă de-a lungul axei. Parametrul s (t) este un semnal integrat al cărui sumă trebuie să fie înmulțită cu waveletul mamă traduse. Și în cele din urmă, wavelet-ul mamă este notat cu ψ (t), care este o funcție a factorilor de scalare și de translație, la fel ca și rezultatul wavelet-ului continuu, cu cât este mai largă transformarea funcției de bază CWT. Este adesea de dorit să se lucreze cu semnale discretizate.[17]
4.1.4.2 Transformata discretă Wavelet (DWT)
Prin trecerea în domeniul discret, este posibil să nu se salveze doar o cantitate echitabilă de muncă, ci și prin alegerea cu atenție a gamei și a pozițiilor bazate pe puterile a două, să se obțină rezultate la fel de precise. Aceasta se numește transformarea discretă a waveletului (DWT) definită ca:
Adesea, Transformarea Wavelet discretă este denumită și descompunere prin filtre bănci wavelet. Acest lucru se datorează faptului că DWT utilizează două filtre, un filtru trece-jos (LPF) și un filtru trece-sus (HPF) pentru a descompune semnalul în diferite scale. Coeficienții de ieșire ai LPF-lui se numesc aproximări, în timp ce coeficienții de ieșire ai HPF-lui sunt numiți detalii. Aproximarea semnalului este ceea ce definește identitatea sa, în timp ce detaliile conferă doar nuanțe. Mai mult, procesul de descompunere este iterativ.
Semnalul de aproximare poate fi trecut în jos pentru a fi descompus din nou prin separarea semnalului în mai multe niveluri ale componentelor cu rezoluție inferioară. Aceasta se numește descompunere la niveluri multiple și poate fi reprezentată într-un arbore de descompunere wavelet. Numai ultimul nivel de aproximare este salvat între toate nivelurile de detalii, care oferă date suficiente pentru a reconstrui complet semnalul original folosind filtre complementare.[17]
4.2 Filtrarea semnalelor
4.2.1 Filtru trece jos (LPF)
Operația de filtrare a unui semnal reprezintă modificarea sau chiar eliminarea unor componente armonice ale acestuia. Astfel, se poate face o selecție a componentelor de care este nevoie într-o anumintă aplicație, eliminând componentele armonice care depășesc o anumită frecvență , cunoscută și frecvență critică.
Figura 4.2 Răspunsul în frecvență al unui LPF ideal [8]
Figura 4.3 Răspunsul în frecvență al unui LPF [8]
Componentele spectrale cu frecvențele aparținând intervalului nu sunt afectate, însă cele cu frecvență în afara intervalului sunt anulate. Acest tip de filtru este irezistibil fizic și poate fi reprezentat prin intermediul unui circuit RC.
4.2.2 Filtru trece sus (HPF)
În comparație cu filtru trece jos, acest filtru trece sus ideal va elimina fiecare componentă armonică care va fi mai mică decât frecvența critică .
Figura 4.4 Răspunsul în frecvență al unui HPF ideal [8]
Componentele spectrale cu frecvențele aparținând intervalului sunt afectate, însă cele cu frecvență în afara intervalului nu sunt anulate. Acest tip de filtru , la fel ca și cel de mai sus, este irezistibil fizic și poate fi reprezentat prin intermediul unui circuit RC.
Figura 4.5 Răspunsul în frecvență al unui HPF [8]
4.2.3 Filtru trece bandă (BPF)
Răspunsul în frecvență a unui filtru trece bandă ideal este prezentat în figura de mai jos:
Figura 4.6 Răspunsul în frecvență al unui filtru BPF
Este o combinație între filtru trece jos și un filtru trece sus în serie. Permite să treacă semnalele cuprinse între două limite de frecvență, una inferioara dată de filtru trece sus și una superioară dată de filtru trece jos.
5. Descrierea Datelor
Lucrarea de față reprezintă dezvoltarea unui algoritm Matlab în vederea obtinerii unei diagnoze a tulburărilor cardio-respiratorii cu ajutorul caracteristicilor extrase din semnalele EKG și PPG, pe baza algoritmului de FFT cât și a coeficienților frecvenței cepstrale Mel (MFCCs). Aritmiile cardiace afișează o condiție a activității electrice anormale în inimă, care reprezintă o amenințare pentru om.
Datele au fost obținute din 12 înregistrări (6 pentru cei sănătoși și 6 bolnavi) din baza de date Physiobank privind aritmia MIT-BIH. Aritmiile cardiace care se găsesc sunt tahicardia, bradicardia, tahicardia supraventriculară, blocul ramificațiilor incomplete, blocul ramificat al măduvei, tahicardia ventriculară. Toți subiecții sunt analizați executând același lucru: sunt înregistrate semnalele în timp ce aceștia merg normal.
Orice semnal poate fi caracterizat prin intermediul unor parametri, iar extragerea acestora realizează practic o traducere a semnalului pentru a putea fi înțeles de sistemul de lucru. Acești parametri pot fi extrași din semnal pe baza unor metode de prelucrare, metode ce se bazează pe unele modele matematice. Câteva dintre aceste modele vor fi prezentate în continuare pentru a oferi o mai bună viziune asupra procesării semnalelor ECG și PPG.
Majoritatea informațiilor importante din ECG se găsesc în intervalele și amplitudinile definite de caracteristicile sale (caracteristicile vârfurilor ale undelor, componenta de frecvență și durata de timp). În această lucrare, caracteristicile semnalului ECG, PPG au fost extrase utilizând metodele FFT. Metoda FFT de procesare a semnalului este superioară semnalului convențional în găsirea anomaliilor în semnalele ECG.
Natura semnalelor ca fiind liniară sau neliniară este identificată prin aplicarea metodelor liniare, cum ar fi transformata Fourier și funcția de autocorelație. Dovada liniarității / nelinearității semnalului ajută la determinarea faptului că metodele de analiză a semnalului liniar sau neliniar ar descrie cel mai bine comportamentul sistemului. Aplicarea transformării Fourier produce un spectru larg de frecvențe suprapuse, dovedind existența dinamicii neliniare în semnal iar funcția de autocorelație dezvăluie, nelinearitatea în semnalele HRV, deoarece, după un decalaj redus, tinde la zero.
După ce am selectat în prima fază semnalele pe care le voi folosi ulterior , a fost necesar să folosesc biblioteca de pe Physionet numită mcode. Bibliotecă cu ajutorul căreia am putut să convertesc semnalele găsite în formatul MIT.
Acest format nu este compatibil cu programul Matlab, prin urmare toate fișierele folosite de tip .hea si .dat au fost convertite în fișiere de tip .mat. Funcția prin intermediul căreia am realizat acest pas se numeste wfdb2mat.
Folosind acest ‘tool’de instrumente WFDB, utilizatorii MATLAB au acces la peste 50 de baze de date PhysioBank (peste 3 TB de semnale fiziologice, inclusiv ECG, EEG, EMG, ECG fetal, PLETH (PPG), ABP, respirație și altele).
Acestea pot include, de exemplu, adnotările baterii și ritmului cardiologilor ale ECG sau hipnogramele experților de somn (adnotări în stadiile de somn) ale polisomnogramelor iar funcția permite codului să analizeze o gamă largă de semnale fiziologice disponibile de la PhysioBank fără a fi nevoie să descărcăm înregistrări întregi și să le stocăm local.
5.1 Analiza semnalelor PPG
Această analiză este realizată în scriptul analyse_ppg.m. în care au fost extrase semnalele PPG prin conversia din .hea, .dat în .mat si am realizat o analiză în frecvență folosind transformata Fourier(FFT) . Mai multe caracteristici ale domeniului de timp și de frecvență sunt extrase pentru analiza câtorva parametri ai corpului. Semnalele PPG nu se repetă strict și periodic deoarece există fluctuații ușoare în linia de bază și în perioada de amplitudine a semnalului.
Forma semnalului PPG conține anumite informații codificate privind starea cardiovasculară și respiratorie a subiectului și o analiză a formei detaliate oferă în cele din urmă date clinice pentru anomalii cardiovasculare și respiratorii precoce.
Au fost investigate mai multe caracteristici ale domeniului timp, cum ar fi timpul de creștere a vârfului PPG de la vârf la vârf, amplitudinea vârfului până la vârf (ppt), forma și variabilitatea în acestea. Studiile au arătat că semnalul PPG are informații despre mecanismul vascular. În timpul apneei, apare vasoconstricția și se reflectă în semnalul PPG printr-o scădere a fluctuației amplitudinii. Variabilitatea ratei cardiace este un semnal electrofiziologic foarte larg studiat pentru diagnosticarea apneei. HRV prezintă componente de frecvență de la 0-0,5 Hz care sunt asociate cu ramurile sistemului nervos autonom. Componentele de frecvență de la 0.15-0.4 Hz reprezintă tonul vagal și aceste frecvențe sunt cunoscute ca și componente de înaltă frecvență(HF). Frecvențele de la 0.04-0.15 HZ manifestă activarea nervilor parasimpatici și simpatici fiind etichetați componenți de frecvență joasă(LF). Raportul dintre LF și HF este definit echilibrul simpatovagal.
5.1.1 Analiza în timp și frecvență a semnalului PPG
Ideea analizei realizate în acest punct a fost să stabilesc o frecvență fundamentală a semnalului PPG, iar acest lucru se poate determina în 2 moduri diferite: prin analiza în frecvență și analiza în timp.
Aceste metode pot fi mai bune sau mai puțin bune în functie de semnal,însă trebuie aleasă o arie mai exactă.
Pentru a putea observa natura semnalului în primul rând am realizat o spectogramă a semnalelor pentru a observa caracteristicile de staționaritate ale acestora:
Figura 5.1 Spectograma PPG pentru subiectul 1
Figura 5.2 Spectograma PPG pentru subiectul 2
Figura 5.3 Spectograma PPG pentru subiectul 3
Figura 5.4 Spectograma PPG pentru subiectul 4
Figura 5.5 Spectograma PPG pentru subiectul 5
Figura 5.6 Spectograma PPG pentru subiectul 6
În urma analizei acestor spectograme, frecvența fundamentală poate fi un bun criteriu de diferențiere între semnalele de la fiecare subiect în parte, însă am ajuns la concluzia la care ne așteptam , si anume că semnalele prezintă o puternică varianță a frecvenței; de altfel ca orice semnal din natură care nu are o caracteristică de staționaritate. Din imagini se poate observa că frecvența lor fundamental se regăsește într-o bandă de frecventă de 0.5- 5Hz iar în urma calculelor se regăseau cam 72% din puterea spectrală.
Având în vedere că banda de frecvență este la un nivel foarte scăzut, iar frecvența de eșantionare este undeva la 256Hz, nu putem avea o rezoluție foarte bună în frecvență, de aceea am analizat semnalele în timp folosindu-ne de funcția de autocorelație.
5.1.2 Autocorelația semnalului PPG
Funcția de autocorelație a unui semnal poate identifica și extrage periodicitățile semnalului. Calitativ, autocorelația compară un semnal cu sine în raport cu timpul, furnizând astfel informații dacă acest semnal este periodic. Această comparație este realizată prin întârzierea debutului ei de către τ, cunoscută sub denumirea de decalaj temporal. Prin urmare, obiectivul este de a găsi cât de mult semnalul X (t) este asemănător cu semnalul X (t-τ).
Autocorelarea unui semnal periodic este ea însăși o funcție periodică, în timp ce autocorelarea unui semnal aleatoriu este o funcție care tinde asimptotic la zero. În afară de capacitatea de a discerne periodicitățile într-un semnal, autocorelația oferă, de asemenea, o estimare a timpului decorativ, care este intervalul de timp pentru care funcția autocorelare începe să tindă la zero. Timpul de decorare produce informații valoroase care sunt folosite în analiza neliniară a HRV, deoarece reprezintă momentul în care dincolo de semnal nu mai prezintă periodicități. Se așteaptă ca un semnal aleator să producă timpi de decorare care sunt foarte aproape de zero.
Aplicând funcția de autocorelație pe întregul semnal, putem determina cu mai multă exactitate valoarea frecvenței fundamentale calculând valoarea medie dintre maximele locale, acesta reprezentând chiar pulsul. Apropiind anumite zone din poză am putut vedea valoarea cea mai apropiată a componentei principale.
5.1.3 Frecvența pulsului și ritmul cardiac semnalului PPG
Ritmul cardiac și frecvența pulsului sunt factori cheie pentru asigurarea tensiunii arteriale suficient de ridicate pentru a susține perfuzia sângelui către toate organele corpului uman. În timp ce ambele sunt considerate similare fiecare reprezintă un mod mecanic diferit în care organismul răspunde la diferențele de tensiune arterială.
În condiții normale, atât ritmul cardiac, cât și frecvența pulsului tind să fie aceleași, dar în condiții care afectează numai inima sau numai vasele de sânge, aceste valori pot fi diferite. Ritmul cardiac este valoarea măsurată obținută pe minut când ascultați sunetele pe care le produce inima. Rata pulsului este valoarea măsurată pe minut atunci când se palpează vasele arteriale prin simțul atingerii și este un bun indicator al diferitelor presiuni sanguine în tot corpul.
Rata pulsului depinde de ritmul cardiac. Căci dacă inima voastră ar înceta să bată, nu veți produce un puls, deoarece nu există nici un sânge care să fie pompat prin sistemul vascular arterial. O frecvență cardiacă normală a nou-născutului scade între 70-190 bătăi pe minut, în timp ce o rată a inimii la adulți scade între 60-100 bătăi pe minut. Această referință pentru adulți poate fi mai variabilă, după cum se vede în cazul unui individ atletic care are o frecvență normală a ritmului cardiac de repaus, atingând un nivel inferior celui normal, datorită nivelului mai ridicat de fitness.
Figura 5.7 Autocorelație PPG pentru Subiectul 1
Din semnalul de bază al autocorelației am selectat doar 10 secunde pentru a reprezenta graficul de mai sus, ajutându-mă să obțin un semnal ușor de urmărit.
Frecvența pulsului subiectului 1 : 256/210=1.22
Ritm cardiac subiect 1: 1.22*60=73,2 bătai pe minut
Figura 5.8 Autocorelație PPG pentru Subiectul 2
Frecvența pulsului subiectului 2 : 256/364= 0.70
Ritm cardiac subiect 1: 0.70*60= 42 bătai pe minut
Figura 5.9 Autocorelație PPG pentru Subiectul 3
Frecvența pulsului subiectului 3 : 256/177=1.45
Ritm cardiac subiect 1: 1.45*60= 87 bătai pe minut
Figura 5.10 Autocorelație PPG pentru Subiectul 4
Frecvența pulsului subiectului 4: la acel subiect nu s-a putut determina o frecvență fundamental drept urmare nici ritmul cardiac.
Figura 5.11 Autocorelație PPG pentru Subiectul 5
Frecvența pulsului subiectului 5 : 256/163=1.58
Ritmul cardiac subiect 5: 1.58*60= 95 bătai pe minut
Figura 5.12 Autocorelație PPG pentru Subiectul 6
Frecvența pulsului subiectului 5 : 256/157=1.63
Ritmul cardiac subiect 1: 1.58*60= 98 bătai pe minut
5.2 Analiza semnalelor ECG
Această analiză este realizată în scripturile ecg_negative_analyse.m, ecg_positive_analyse.m și get_mfcc_array.m în care au fost extrase semnalele ECG prin conversia din .hea, .dat în .mat si am realizat o analiză în frecvență folosind transformata Fourier(FFT). În semnalele ECG informația este codificată în amplitudinea semnalului(morfologia complexului PQRST), ritmicitate, formă și spectru. În consecințǎ, la analiza și procesarea unui semnal EKG trebuie discutate mai multe aspecte, care sǎ faciliteze procesul medical de diagnosticare. Aceste aspecte vor fi dezbǎtute în cele ce urmeazǎ. De cele mai multe ori, abordarea aspectelor de ritmicitate ale inimii vizeazǎ calculul variabilitǎții ritmului cardiac (HRV – Heart Rate Variability), adicǎ a intervalelor dintre douǎ vârfuri R-R consecutive.
Fig. 5.13 Măsurarea intervalelor R-R pentru determinarea HRV
Descriptorii morfologici de timp și de frecvență reprezintă două caracteristici populare ale ECG-ului utilizate în identificarea umană. În general, descriptorii morfologici sunt trăsăturile intuitive ale formei, incluzând înălțimea și durata QRS, înălțimea undei P și înălțimea undei T.
Descriptorii de timp-frecvență sunt caracterizați, de regulă, prin intermediul informațiilor de sincronizare (intervalul PR, intervalul RR, intervalul QT etc.) și coeficienții frecvenței de timp (coeficienți wavelet etc.) în ciclul ECG. În interval, parametrii amplitudinii și unghiului au fost extrase ca trăsături morfologice și de frecvență de timp pentru a efectua sarcina de identificare a persoanei.
5.2.1 Analiza în timp și frecvență a semnalului ECG
Există situații când o anumită porțiune a informației dintr-un semnal nu poate fi observată în totalitate în domeniul timp, ci doar în domeniul frecvență; de exemplu, pentru semnalul ECG, manifestările patologice (abateri de la morfologia repreyentativă) pot fi uneori mai ușor de diagnosticat prin analiza în domeniul frecvență. În plus, forma semnalului în domeniul timp poate să difere de la un ciclu la altul al semnalui.
Așadar, majoritatea semnalelor biomedicale prezintă periodicități și ritmuri mai ușor de perceput în termeni de frecvență decât în unități de timp. De exemplu, activitatea cardiacă este mult mai ușor de exprimat în bătăi pe minut (un marker al frecvenței cu care are loc), decât în termeni legați de durata unei bătăi (intervalul R-R exprimat în secunde): un ritm cardiac se observă mai bine dacă este exprimat ca fiind 72 bătăi pe minut, decât dacă i s-ar preciza durata R-R corespunzătoare ca fiind 0,833s; în cazul semnalului ECG, cunoașterea este mult mai bună la exprimarea ritmului alfa ca fiind 11,5 Hz, decât echivalența din domeniul timp de 0,087 s.
De aceea, utilizarea transformatei Fourier ușurează – prin distribuția de energie și putere a semnalului în domeniul frecvență, dar si prin analiza fazei acestuia – o mai bună analiză și descriere a caracteristicilor semnalului.
Analiza spectrală ajunge să fie o problem delicată la investigarea semnalelor când se ia în calcul staționaritatea acestora. Astfel, dacă transformata Fourier oferă doar conținutul spectral al semnalului și nicio informație cu privire la momentele la care apar diversele componente spectral (aplicându-se analiza semnalelor staționare), lucrurile se complică în cazul investigării semnalelor nestaționare. Deoarece semnalele biomedicale, majoritatea sunt nestaționare (ECG,EEG) este nevoie de găsirea unor metode noi de investigare: o component sepctrală care intervine la un moment dat și care poate fi de mare interes.
Aceste cauze de staționaritate impugn analiza semnalului ECG prin algoritmul FFT și evidențierea unor corespondențe a semnalului ECG din domeniul timp și spectogramă. Aceste metode pot fi mai bune sau mai puțin bune în functie de semnal,însă trebuie aleasă o arie mai exactă.
Pentru a putea observa natura semnalului în primul rând am realizat o spectogramă a semnalelor pentru a observa caracteristicile de staționaritate ale acestora:
În acest sens, s-au analizat 12 înregistrări (6 subiecti sănătoși și 6 subiecși cu diferite afecțiuni cardiace și diverse trecuturi medicale) în timp ce aceștia mergeau normal. Datele fiind prelucrate în matlab după ce s-a realizat conversia.
Voi afișa una sub alta spectograma unui subiect sănătos și imediat după spectograma unui subiect cu afecțiuni cardiace:
Figura 5.14 Spectograma ECG subiectul 1 sănătos
.
Figura 5.15 Spectograma ECG subiectul 1 bolnav
Figura 5.16 Spectograma ECG subiectul 2 sănătos
Figura 5.17 Spectograma ECG subiectul 2 bolnav
Figura 5.18 Spectograma ECG subiectul 3 sănătos
Figura 5.19 Spectograma ECG subiectul 3 bolnav
Figura 5.20 Spectograma ECG subiectul 4 sănătos
Figura 5.21 Spectograma ECG subiectul 4 bolnav
Figura 5.22 Spectograma ECG subiectul 5 sănătos
Figura 5.23 Spectograma ECG subiectul 5 bolnav
Figura 5.24 Spectograma ECG subiectul 6 sănătos
Figura 5.25 Spectograma ECG subiectul 6 bolnav
În urma analizei acestor spectograme, am constatat că frecvența fundamentală în cazul acestor semnale nu poate fi considerată un bun criteriu de diferențiere între semnalele achiziționate de la oamenii bolnavi cât și sănătoși deoarece ambele clase de spectograme au o frecvență fundamentală într-o bandă de 0.5-5Hz iar în urma calculelor se regăseau cam 72% din puterea spectrală.
Având în vedere că banda de frecvență este la un nivel foarte scăzut, iar frecvența de eșantionare este undeva la 256Hz, nu putem avea o rezoluție foarte bună în frecvență, de aceea am analizat semnalele în timp folosindu-ne de funcția de autocorelație
5.2.2 Autocorelatia semnalului ECG
Pentru a obține estimarea frecvenței semnalului sinusoidal, mai multe metode digitale au fost prezentate în ultimele decenii. Metodele de estimare a frecvenței existente sunt în principal împărțite în două categorii: metodele domeniului de frecvență și metodele domeniului temporal. Metodele de domeniu de frecvență transformă semnalul selectat din domeniul temporal în domeniul frecvenței prin transformarea discretă Fourier (DFT) și obținând estimarea frecvenței prin corecția discretă a spectrului de coeficienți DFT. Metodele sunt computațional simple și au o bună performanță anti-interferență. Cu toate acestea, metodele de domeniu de frecvență care suferă de scurgere spectrală au dificultăți în obținerea estimării frecvenței imparțiale atunci când se ocupă cu sinusoid real cu o lungime finală a semnalului ceea ce s-a întâmplat și in analiza noastră. Metodele în domeniu timp obțin frecvența estimată prin autocorelație, predicție liniară și așa mai departe.
Pentru cele 12 semnale am încercat sa scot rezultatele dorite din spectogramele de mai sus aplicând autocorelatia. Semnalele le voi separa ca și la spectograme, cel sănătos deasupra iar cel bonav mai jos.
Figura 5.26 Autocorelația ECG subiect 1 sănătos
Figura 5.27 Autocorelația ECG subiect 1 bolnav
Figura 5.28 Autocorelația ECG subiect 2 sănătos
Figura 5.29 Autocorelația ECG subiect 2 bolnav
Figura 5.30 Autocorelația ECG subiect 3 sănătos
Figura 5.31Autocorelația ECG subiect 3 bolnav
Figura 5.32 Autocorelația ECG subiect 4 sănătos
Figura 5.33 Autocorelatia ECG subiect 4 bolnav
Figura 5.34 Autocorelația ECG subiect 5 sănătos
Figura 5.35 Autocorelația ECG subiect 5 bolnav
Figura 5.36 Autocorelația ECG subiect 6 sănătos
Figura 5.37 Autocorelația ECG subiect 6 bolnav
Funcția de autocorelare este acceptată ca fiind cea mai potrivită pentru a rezuma ideile emise în cadrul unei dezbateri în aplicațiile medicale și a arăta consecințele , dar nu reușește și în clasificarea exactă a subiecților în acest studiu. Funcția de autocorelație și transformata Fourier sunt legate de teorema lui Weiner-Krintchine, care afirmă că funcția de densitate spectrală a unui semnal poate fi exprimată ca transformată Fourier a funcției de utocorelație. Prin urmare, informația extrasă din semnal utilizând transformata Fourier este coerentă cu cea obținută din funcția de autocorelație, cu diferența că este în domeniul timp Astfel, ambele metode pot fi folosite în caracterizarea semnalelor pentru nonlinearitate, dar ele nu pot fi folosite singure pentru a identifica semnalele stochastice sau zgomotoase din cele haotice.
Făcând o paralelă cu analiza semnalului PPG din care am reusit să extragem ușor parametrii care au ajutat la o clasificare a subiecților, în cazul semnalelor ECG, chiar și prin autocorelație nu se poate distinge cu ușurință caracteristicile acestuia :R-R, segmentul QRST.
5.2.3 COMPLEXUL QRS
Performanța unor astfel de sisteme automate se bazează în mare măsură pe acuratețea și fiabilitatea în detectarea complexului QRS, care este necesar pentru a determina frecvența cardiacă și ca referință pentru alinierea bate. Complexul QRS este forma cea mai caracteristică a semnalului cu amplitudini mai mari. Acesta poate fi utilizat ca referință pentru detectarea altor unde, cum ar fi complexele P și T, care sunt, de asemenea, utile în anumite momente. Transformarea Wavelet este percepută ca o tehnică foarte promițătoare pentru acest tip de aplicații, deoarece este localizată atât în domeniul frecvenței cât și în cel al timpului. Poate fi folosit pentru a distinge undele ECG de zgomotele serioase, artefactele și deviația de bază; reprezintă trăsăturile temporale ale unui semnal la o rezoluție diferită, oferind o mai bună analiză a semnalelor ECG, care este caracterizată de tiparele ciclice la frecvențe diferențiale.
Punctul stâng indică punctul Q, iar cel din dreapta indică punctul S. Calcularea distanței de la punctul zero sau aproape de zero la partea stângă a vârfului R în limita pragului indică punctul Q. În mod similar, partea dreaptă desemnează punctul S. Lățimea QRS se calculează de la debutul și de la dispariția complexului QRS. Debutul este începutul valului Q, iar decalajul este sfârșitul valului S.
În mod normal, începutul complexului QRS conține componentele de înaltă frecvență, detectate la scări mai fine. Pentru a identifica debutul și decalajul undei, unda este făcută la zero. Debutul este începutul și offsetul este sfârșitul primei perechi de module maxima. Odată ce acest complex QRS este localizat, următorul pas este de a determina punctele de debut și de compensare pentru fiecare complex QRS și de a identifica undele componente ale complexului QRS.
5.2.4 Detecția vârfului R
Pentru a detecta vârfurile, sunt selectate detalii specifice ale semnalului, fiind primul pas al extracției caracteristicilor. R vârful semnalului are cea mai mare amplitudine dintre toate valurile în comparație cu alte vârfuri. Un complex QRS normal indică faptul că impulsul electric a progresat în mod normal din pachetul rețelei sale în rețeaua Purkinje prin ramificațiile din dreapta și din stânga și că a apărut depolarizarea normală a ventriculelor din dreapta și din stânga. Cea mai mare parte a energiei complexului QRS se situează între 3 Hz și 40 Hz. Frecvențele de 3 dB ale transformării Fourier ale wavelet indică faptul că cea mai mare parte a energiei complexului QRS se află între scări de 23 și 24, cu cea mai mare valoare la 24. Energia scade dacă scara este mai mare de 24. Energia artefactelor de mișcare și creșterea bruscă a valorii inițiale se măsoară pentru scale mai mari de 25 prin urmare, alegem să folosim scări caracteristice de la 21 la 24 pentru wavelet. Detecția complexului QRS se bazează pe modulul maxim al transformării Wavelet. Acest lucru se datorează faptului că maximul modulului și traversarea punctului zero a transformatei Wavelet corespund marginilor ascuțite ale semnalului. De aceea, regula de detecție a fost aplicată transformatei Wavelet a semnalului ECG. Punctele Q și S au loc în jurul vârfului R cu 0,1 secunde.
O altă metodă folosită pentru diferențierea oamenilor sănătoși de oamenii bolnavi a fost realizată prin analiza parametrilor semnalului, și anume a distanței intervalului R-R, amplitudinea undelor R. Baza de date a fost formată din subiecți bărbați în vârsta de 32 până la 89 de ani și 2 de femei în vârstă de 23 până la 89 ani. Dintre acesția am extras doar câte 10 secunde din anumite semnale cu diferite tulburări cardio respiratorii. În cele mai multe înregistrări, semnalul superior este un cordon modificat al membrelor II (MLII), obținut prin plasarea electrozilor pe piept. Această configurație este utilizată în mod obișnuit de Laboratorul de aritmie BIH. Complexele QRS normale sunt de obicei proeminente în semnalul superior. Semnalele ECG au fost înregistrate la o frecvență de 360Hz.
Prima dată am afișat semnalul normal ECG, și am făcut o analiză a lui pe baza parametrilor.
După achiziția semnalului ECG, și înaintea extragerii parametrilor din acesta, este necesară o filtrare a sa. Acest lucru este necesar deoarece semnalul achiziționat este afectat de zgomot din mai multe surse ca: sistemul de achiziție, conectarea slabă a electrozilor, rețeaua de alimentare, activitatea electrică a creierului, activitatea electrică a mușchilor feței, etc. Toate aceste lucruri fac ca informația din semnal să nu fie în totalitate corectă și deci rezultatele obținute să nu fie la înalțimea așteptărilor pentru aplicația dorită.
Figura 5.38 Semnal normal și semnal filtrat
Semnalele au fost filtrate cu ajutorul unui filtru de bandă în domeniul de frecvență de la 2 la 40 Hz. Apoi pe baza acestuia a fost selectat un interval de 10 secunde din semnalul electrocardiografic înregistrat la fiecare subiect selectat. Acest semnal a fost filtrat și după aceea i-au fost identificate undele R, fiind de asemenea calculat și intevalul R-R, măsurat în secunde.
Figura 5.39 Semnal ECG filtrat normal și detecția undelor R
Pe baza acestuia am scos următoarele caracteristici:
Tabel 5.1 Intervale R-R pentru un om sănătos
Din baza de date cu aritmii, am selectat câteva semnale care conțineau tulburări cardio-respiratorii, una din ele este tahicardia ventriculară cu un ritm grăbit al contracției ventriculilor, peste 100 batăi pe minut, în general între 120-250 batăi pe minut cu originea localizată în ventriculi.
Fig 5.40. Semnal tahicardie ventriculară și semnal filtrat
Figura 5.41. Semnal ECG tahicardie ventriculară filtrat și detecția undelor R
Caracteristicile din acest semnal sunt:
Tabel 5.2 Intervale R-R pentru un om cu tahicardie ventriculară
Fibrilația atrială, este cea mai frecventă aritmie susținută și afecteaza aproximativ 1-2% din populație și presupune un ritm al bătăilor inimii complet dezordonat producând un ritm cardiac cu frecvență de cel puțin 100 bătăi/minut; o altă tulburare este și Flutter-ul atrial care apare atunci când impulsurile electrice (plecate de la nodulul sinoatrial) merg pe o cale anormală prin atrii. Impulsurile electrice anormale fac ca atriile să se contracte foarte rapid, de obicei aproximativ 250-350 de bătăi minut.
Figura 5.42 Fibrilație arterială și Flutter atrial normal și semnal filtrat
Figura 5.43 Fibrilație arterială și Flutter atrial filtrat și detecția undelor R
Figura 5.44 Flutter atrial normal și semnal filtrat
Figura 5.45 Flutter atrial filtrat și detecția undelor R
Figura 5.46 Tahicardia supraventriculară normal și semnal filtrat
Figura 5.47 Tahicardie supraventriculară filtrat și detecția undelor R
Din ultimele semnale, semnalul este foarte distorsionat și nu s-au putut detecta undele R pentru a putea scoate un raportul conținând caracteristicile acestora. Din acest motiv nu am putut realiza o clasificare a acestora pe baza caracteristicilor undelor.
Prin urmare, am optat către o diferențiere care are la bază coeficienții MFCC; coeficienți care sunt capabili să descrie întreg spectrul.
5.3 Reprezentarea parametrilor MFCC
În ultimele două decenii, caracteristicile bayate pe spectru au devenit populare în special datorită faptului că provin direct din transformata Fourir, caracteristici bazate pe spectru sunt coeficienții cepstrali în scara Mel (MFCC) și succesul lor se datorează faptului că utilizează un banc de filter, cu o scară perceptuală similară cu sistemul auditiv uman, pentru a procesa transformata Fourier. De asemenea acești coeficienți prezintă o anduranță la zgomot și flexibilitate datorită procesării cepstrale.
Obținerea coeficienților presupune următoarele procesări:
Transformata Fourier: se aplică transformata Fourier rapida (FFT) pentru a obține N/2 valori spectrale complexe egal distanțele de la 0 la Fs/2. Se ignoră informația despre fază deoarece aceasta diferă foarte mult de la cadru la cadru și se păstrează amplitudinea spectrului.
Filtrarea prin bancul de filtre: cele N/2 amplitudini obținute sunt convertite într-un banc de filtre de ordin K pentru a reduce dimensiunea și pentru a reprezenta mai eficient coeficienții, de asemenea filtrarea se poate face algoritmic în loc de linear din motive perceptuale. Bancul de filtre este astfel proiectat încât să diferențieze mai bine frecventțele joase și să grupeze cât mai multe frecvențe înalte, centrele filtrele triunghiulare sunt distanțate conform formule:
) (4.1)
Ieșirea fiecărui filtru este notată cu ,k=1,2,…,K, iar datorită faptului că sistemul auditiv are caracter logaritmic se logaritmează această ieșire, în plus logaritmarea are și rolul de a transforma distorsiunile multiplicative, provocate de filtrarea în frecvență, în efecte aditive ce pot fi compensate mai ușor.
Analiza cepstrală: pasul final este de a converti cele K valori spectrale de la ieșirea filtrului în L coeficienți cepstrali folosind transformata cosinus discrete (DCT):
=
De obicei doar L=12 coeficienți sunt suficienți pentru fiecare fereastră de analiză
Figura 5.48 Obținerea coeficienților MFCC
Figura 5.49 Bancul de filtre în scara Mel
Pentru calculul acestor coeficienți, am ales o fereastră cu 256 eșantioane pentru semnalele subiecților sănătoși și 250 eșantioane pentru semnalele subiecților bolnavi. Numărul eșantioanelor a fost ales în funcție de frecvența de eșantioane. Practic acești coeficienți se calculează pentru o fereastră cu o perioadă de 1 secundă, iar pentru fiecare semnal în parte vom avea atâtea perechi de coeficienți câte secunde va avea semnalul.
Pentru extragerea coeficienților cepstrali Mel, am folosit funcția get_mfcc_array care are la intrare semnalul în timp cât și frecvența de eșantionare, iar la ieșire vom obține o matrice de coeficienți MFCC.
În codul matlab, atât pentru semnalele subiecților sănătoși cât și bolnavi am folosit funția mean(s1_pos_mfcc,1) fiind media pe coloane a matricei de coeficienți( medie ce reprezintă o pondere a coeficienților); iar după ce i-am ponderat se foloseste pos_mfcc_mean(1;) unde sunt agregați coeficienții ponderați de la toți subscriberii sănătoși si la fel am făcut și pentru celelalte semnale.
Apoi generăm un mFCC_pos , fiind un vector de 6 elemente , fiecare element corespunzând unui subiect pozitiv și constituie produsul coeficienților corespunzători unui subiect. Odată realizat produsul , vom avea 2 vectori unul care corespunde pentru cei sănătoși și unul pentru bolnavi, pe care îi plotăm, pentru a observa dacă există un nivel de prag între cele 2 mulțimi de coeficienți.
Figura 5.50 Clasificarea subiecților sănătoși și bolnavi
Prin alegerea unui nivel de prag de 7,45*10^5 , pentru coeficienții MFCC prelucrați, obținem o acuratețe de clasificare de 66,6% (8 subiecți clasificati corrct peste pragul mentionat mai sus/ 12-totalul de subiecți).
8/12=66% acuratețea
Criteriul de clasificare ales este următorul: coeficienții care sunt peste prag sunt considerați ca fiind din clasa oamenilor sănatăsi (positive) iar tot ce este sub prag sunt considerați ca fiind din clasa oamenilor bolnavi (negative).
Analiza semnalelor ECG în frecvență pe baza coeficienților MFCC poate reprezenta un criteriu de clasificare nu doar pentru acest tip de boală insuficiență cardiacă congestivă ci și pentru alte disfuncții cardiace.
Concluzii
asdkjadada
Perspective de viitor
În urma acestui studiu, s-a reușit identificarea episoadelor cu probleme cardio respiratorii pentru diferite semnale electrocardiografice înregistrate la 12 persoane (6 sănătoase, 6 bolnave), semnale colectate din cadrul Spitalulului Beth Israel din Boston;.
Pe viitor, pe lângă ce a fost realizat până în prezent în această lucrare, se mai dorește și: prelucrarea și interpretarea tuturor semnalelor atât electroencefalografice cât și respiratorii, identificarea tuturor episoadelor de aritmii din cadrul semnalelor, realizarea unui algoritm automat de detecție al acestora:bradicardie,apnee, tahicardie, fibrilație arterială. Flutter atrială etc. și detectarea epioadelor în timp real.
Un lot mai mare de subiecți de pe care să se înregistreze semnalele electrocardiografice ce pot fi folosite pentru extragerea informațiilor pe baza cărora să se realizeze identificarea tulburărilor cardio respiratorii ar putea oferi o acuratețe de clasificare mai mare, ceea ce ar ajuta la o siguranță a clasificării mai mare.
Pe viitor se dorește și analizarea semnalelor respiratorii înregistrate în paralel cu înregistrarea semnalelor electrocardiografice. Acest lucru ar ajuta la o corelare între episoadele diferitelor tipuri de aritmii.
O altă îmbunătățire care ar putea fi adusă ar fi implementarea unui clasificator mult mai complex, ce folosește rețele neural sau arbori de decizie. (random forest, adaboost)
Una dintre cele mai importante perspective de viitor în ceea ce privește analiza semnalului electrocardiografic constă în realizarea unei alerte care să preceadă episodul de tulburare cardio respiratorie. Aceasta este una dintre cele mai practice implementări ale acestei aplicații.
Bibliografie
[1] http://anatomie.romedic.ro/inima-cordul
[2] R. Negoescu, Instrumentația Electronică Biomedicală, Editura Tehnică, 1985.
[3] http://tudr.thapar.edu:8080/jspui/bitstream/10266/1941/3/1941.pdf
[4] R. Popa, Electronică Medicală,Editura Matrix Rom, 2006.
[5]http://dspace.thapar.edu:8080/jspui/bitstream/10266/1793/3/1793.pdf
[6] David Houcque , Introduction to MATLAB for engineering students
[7] Malcolm S. Thaler, The Only EKG Book You'll Ever Need, The, 5th Edition
[8] http://www.tc.etc.upt.ro/docs/cercetare/carti/Filtre.pdf
[9] https://www.physionet.org/
[10] D. Isar, A. Isar, Filtre, Editura Politehnica, 2003.
[11] D. Stanomir, Semnale și Sisteme, Editura Politehnica Press, 2005.
[12] Kamal et al, „Skin Plethzsmography – A review,” Computer methods and Programs in Biomedicine, vol. 28, issue 4, pp. 257-269, April 1989.
[13] http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.674.9642&rep=rep1&type=pdf
[14]https://waset.org/publications/9997734/analysis-of-electrocardiograph-ecg-signal-for-the-detection-of-abnormalities-using-matlab
[15] http://circ.ahajournals.org/content/101/23/e215.full
[16]https://www.sciencedirect.com/science/article/pii/S1532046403000716
[17]https://www.researchgate.net/profile/Annepu_Bhujanga_rao/publication/277798823_Wavelet_based_QRS_detection_in_ECG_using_MATLAB/links/55d6a85708aed6a199a4e160/Wavelet-based-QRS-detection-in-ECG-using-MATLAB.pdf
[18] S. L. Pingale and N. Daimiwal, "Detection of various diseases using ECG signal in Matlab," International Journal of Recent Technology and Engineering (IJRTE) ISSN (2014): 2277-3878, 2014.
Anexa
clear all; close all; clc;
%% transformarea setului de date în date compatibile cu matlab
%pozitive(subiecți sănătoși)
wfdb2mat('dataset/pozitive/MIT-Format/s1_walk');
wfdb2mat('dataset/pozitive/MIT-Format/s2_walk');
wfdb2mat('dataset/pozitive/MIT-Format/s3_walk');
wfdb2mat('dataset/pozitive/MIT-Format/s6_walk');
wfdb2mat('dataset/pozitive/MIT-Format/s8_walk');
wfdb2mat('dataset/pozitive/MIT-Format/s9_walk');
%negative(subiecți bolnavi)
wfdb2mat('dataset/negative/chf01');
wfdb2mat('dataset/negative/chf02');
wfdb2mat('dataset/negative/chf03');
wfdb2mat('dataset/negative/chf04');
wfdb2mat('dataset/negative/chf05');
wfdb2mat('dataset/negative/chf06');
clear all; close all; clc;
%%Analiza semnalului PPG
%% setarea variabilelor
Fs = 256;
window = 256;
nfft = 512;
noverlap = 4;
%% Încărcare semnale positive(subiecți sănătoși)
subiect_pos_1 = load('dataset/pozitive/Matlab-Format/s1_walkm');
subiect_pos_2 = load('dataset/pozitive/Matlab-Format/s2_walkm');
subiect_pos_3 = load('dataset/pozitive/Matlab-Format/s3_walkm');
subiect_pos_4 = load('dataset/pozitive/Matlab-Format/s6_walkm');
subiect_pos_5 = load('dataset/pozitive/Matlab-Format/s8_walkm');
subiect_pos_6 = load('dataset/pozitive/Matlab-Format/s9_walkm');
%% Extrage semnalele PPG
s1_ppg = subiect_pos_1.val(2,:);
s2_ppg = subiect_pos_2.val(2,:);
s3_ppg = subiect_pos_3.val(2,:);
s4_ppg = subiect_pos_4.val(2,:);
s5_ppg = subiect_pos_5.val(2,:);
s6_ppg = subiect_pos_6.val(2,:);
%% Analiza în frecvență a semnalelor PPG
figure(1)
set(gcf,'color','w');
spectrogram(s1_ppg,window,noverlap,nfft,Fs)
title('Spectrograma PPG pentru subiectul 1')
shading interp
colormap('bone')
xlim([0 50])
figure(2)
set(gcf,'color','w');
spectrogram(s2_ppg,window,noverlap,nfft,Fs)
title('Spectrograma PPG pentru subiectul 2')
shading interp
colormap('bone')
xlim([0 50])
figure(3)
set(gcf,'color','w');
spectrogram(s3_ppg,window,noverlap,nfft,Fs)
title('Spectrograma PPG pentru subiectul 3')
shading interp
colormap('bone')
xlim([0 50])
figure(4)
set(gcf,'color','w');
spectrogram(s4_ppg,window,noverlap,nfft,Fs)
title('Spectrograma PPG pentru subiectul 4')
shading interp
colormap('bone')
xlim([0 50])
figure(5)
set(gcf,'color','w');
spectrogram(s5_ppg,window,noverlap,nfft,Fs)
title('Spectrograma PPG pentru subiectul 5')
shading interp
colormap('bone')
xlim([0 50])
figure(6)
set(gcf,'color','w');
spectrogram(s6_ppg,window,noverlap,nfft,Fs)
title('Spectrograma PPG pentru subiectul 6')
shading interp
colormap('bone')
xlim([0 50])
%% Analiza în timp bazată pe funcția de autocorelare
s1_cor = abs(xcorr(s1_ppg));
s1_cor = s1_cor(size(s1_ppg,2):size(s1_ppg,2) + Fs*10);
s2_cor = abs(xcorr(s2_ppg));
s2_cor = s2_cor(size(s2_ppg,2):size(s2_ppg,2) + Fs*10);
s3_cor = abs(xcorr(s3_ppg));
s3_cor = s3_cor(size(s3_ppg,2):size(s3_ppg,2) + Fs*10);
s4_cor = abs(xcorr(s4_ppg));
s4_cor = s4_cor(size(s4_ppg,2):size(s4_ppg,2) + Fs*10);
s5_cor = abs(xcorr(s5_ppg));
s5_cor = s5_cor(size(s5_ppg,2):size(s5_ppg,2) + Fs*10);
s6_cor = abs(xcorr(s6_ppg));
s6_cor = s6_cor(size(s6_ppg,2):size(s6_ppg,2) + Fs*10);
figure(7)
plot(s1_cor),ylabel('Amplitudine'),xlabel('Esantioane'),
title('Rezultatul functiei de autocorelatie al PPG pentru Subiectul 1')
figure(8)
plot(s2_cor),ylabel('Amplitudine'),xlabel('Esantioane'),
title('Rezultatul functiei de autocorelatie al PPG pentru Subiectul 2')
figure(9)
plot(s3_cor),ylabel('Amplitudine'),xlabel('Esantioane'),
title('Rezultatul functiei de autocorelatie al PPG pentru Subiectul 3')
figure(10)
plot(s4_cor),ylabel('Amplitudine'),xlabel('Esantioane'),
title('Rezultatul functiei de autocorelatie al PPG pentru Subiectul 4')
figure(11)
plot(s5_cor),ylabel('Amplitudine'),xlabel('Esantioane'),
title('Rezultatul functiei de autocorelatie al PPG pentru Subiectul 5')
figure(12)
plot(s6_cor),ylabel('Amplitudine'),xlabel('Esantioane'),
title('Rezultatul functiei de autocorelatie al PPG pentru Subiectul 6')
clear all; close all; clc;
clear all; close all; clc;
%% Încărcare semnale pozitive(subiecți sănătoși)
subiect_pos_1 = load('dataset/pozitive/Matlab-Format/s1_walkm');
subiect_pos_2 = load('dataset/pozitive/Matlab-Format/s2_walkm');
subiect_pos_3 = load('dataset/pozitive/Matlab-Format/s3_walkm');
subiect_pos_4 = load('dataset/pozitive/Matlab-Format/s6_walkm');
subiect_pos_5 = load('dataset/pozitive/Matlab-Format/s8_walkm');
subiect_pos_6 = load('dataset/pozitive/Matlab-Format/s9_walkm');
%% Extragere parametri ECG din rezultatele pozitive
Fs = 256;
window = 256;
nfft = 512;
noverlap = 4;
s1_ppg = subiect_pos_1.val(1,:);
s2_ppg = subiect_pos_2.val(1,:);
s3_ppg = subiect_pos_3.val(1,:);
s4_ppg = subiect_pos_4.val(1,:);
s5_ppg = subiect_pos_5.val(1,:);
s6_ppg = subiect_pos_6.val(1,:);
figure(1)
set(gcf,'color','w');
spectrogram(s1_ppg,window,noverlap,nfft,Fs)
title('Spectrograma ECG pentru subiectul 1')
shading interp
colormap('bone')
xlim([0 50])
figure(2)
set(gcf,'color','w');
spectrogram(s2_ppg,window,noverlap,nfft,Fs)
title('Spectrograma ECG pentru subiectul 2')
shading interp
colormap('bone')
xlim([0 50])
figure(3)
set(gcf,'color','w');
spectrogram(s3_ppg,window,noverlap,nfft,Fs)
title('Spectrograma ECG pentru subiectul 3')
shading interp
colormap('bone')
xlim([0 50])
figure(4)
set(gcf,'color','w');
spectrogram(s4_ppg,window,noverlap,nfft,Fs)
title('Spectrograma ECG pentru subiectul 4')
shading interp
colormap('bone')
xlim([0 50])
figure(5)
set(gcf,'color','w');
spectrogram(s5_ppg,window,noverlap,nfft,Fs)
title('Spectrograma ECG pentru subiectul 5')
shading interp
colormap('bone')
xlim([0 50])
figure(6)
set(gcf,'color','w');
spectrogram(s6_ppg,window,noverlap,nfft,Fs)
title('Spectrograma ECG pentru subiectul 6')
shading interp
colormap('bone')
xlim([0 50])
%% Analiza în timp bazată pe funcția de autocorelare
s1_cor = abs(xcorr(s1_ppg));
s1_cor = s1_cor(size(s1_ppg,2):size(s1_ppg,2) + Fs*30);
s2_cor = abs(xcorr(s2_ppg));
s2_cor = s2_cor(size(s2_ppg,2):size(s2_ppg,2) + Fs*30);
s3_cor = abs(xcorr(s3_ppg));
s3_cor = s3_cor(size(s3_ppg,2):size(s3_ppg,2) + Fs*30);
s4_cor = abs(xcorr(s4_ppg));
s4_cor = s4_cor(size(s4_ppg,2):size(s4_ppg,2) + Fs*30);
s5_cor = abs(xcorr(s5_ppg));
s5_cor = s5_cor(size(s5_ppg,2):size(s5_ppg,2) + Fs*30);
s6_cor = abs(xcorr(s6_ppg));
s6_cor = s6_cor(size(s6_ppg,2):size(s6_ppg,2) + Fs*30);
figure(7)
plot(s1_cor),ylabel('Amplitudine'),xlabel('Esantioane'),
title('Rezultatul functiei de autocorelatie al ECG pentru Subiectul 1')
figure(8)
plot(s2_cor),ylabel('Amplitudine'),xlabel('Esantioane'),
title('Rezultatul functiei de autocorelatie al ECG pentru Subiectul 2')
figure(9)
plot(s3_cor),ylabel('Amplitudine'),xlabel('Esantioane'),
title('Rezultatul functiei de autocorelatie al ECG pentru Subiectul 3')
figure(10)
plot(s4_cor),ylabel('Amplitudine'),xlabel('Esantioane'),
title('Rezultatul functiei de autocorelatie al ECG pentru Subiectul 4')
figure(11)
plot(s5_cor),ylabel('Amplitudine'),xlabel('Esantioane'),
title('Rezultatul functiei de autocorelatie al ECG pentru Subiectul 5')
figure(12)
plot(s6_cor),ylabel('Amplitudine'),xlabel('Esantioane'),
title('Rezultatul functiei de autocorelatie al ECG pentru Subiectul 6')
clear all; close all; clc;
%% Încărcare semnale negative
subiect_neg_1 = load('dataset/negative/Matlab-Format/chf01m');
subiect_neg_2 = load('dataset/negative/Matlab-Format/chf02m');
subiect_neg_3 = load('dataset/negative/Matlab-Format/chf03m');
subiect_neg_4 = load('dataset/negative/Matlab-Format/chf04m');
subiect_neg_5 = load('dataset/negative/Matlab-Format/chf05m');
subiect_neg_6 = load('dataset/negative/Matlab-Format/chf06m');
%% Extragerea parametrilor ECG din semnalele negative
Fs = 256;
window = 256;
nfft = 512;
noverlap = 4;
s1_ppg = subiect_neg_1.val(1,:);
s1_ppg = s1_ppg(1:10000);
s2_ppg = subiect_neg_2.val(1,:);
s2_ppg = s2_ppg(1:10000);
s3_ppg = subiect_neg_3.val(1,:);
s3_ppg = s3_ppg(1:10000);
s4_ppg = subiect_neg_4.val(1,:);
s4_ppg = s4_ppg(1:10000);
s5_ppg = subiect_neg_5.val(1,:);
s5_ppg = s5_ppg(1:10000);
s6_ppg = subiect_neg_6.val(1,:);
s6_ppg = s6_ppg(1:10000);
figure(1)
set(gcf,'color','w');
spectrogram(s1_ppg,window,noverlap,nfft,Fs)
title('Spectrograma ECG pentru subiectul 1')
shading interp
colormap('bone')
xlim([0 50])
figure(2)
set(gcf,'color','w');
spectrogram(s2_ppg,window,noverlap,nfft,Fs)
title('Spectrograma ECG pentru subiectul 2')
shading interp
colormap('bone')
xlim([0 50])
figure(3)
set(gcf,'color','w');
spectrogram(s3_ppg,window,noverlap,nfft,Fs)
title('Spectrograma ECG pentru subiectul 3')
shading interp
colormap('bone')
xlim([0 50])
figure(4)
set(gcf,'color','w');
spectrogram(s4_ppg,window,noverlap,nfft,Fs)
title('Spectrograma ECG pentru subiectul 4')
shading interp
colormap('bone')
xlim([0 50])
figure(5)
set(gcf,'color','w');
spectrogram(s5_ppg,window,noverlap,nfft,Fs)
title('Spectrograma ECG pentru subiectul 5')
shading interp
colormap('bone')
xlim([0 50])
figure(6)
set(gcf,'color','w');
spectrogram(s6_ppg,window,noverlap,nfft,Fs)
title('Spectrograma ECG pentru subiectul 6')
shading interp
colormap('bone')
xlim([0 50])
%% Analiza în timp pe baza funcției de autocorelație
s1_cor = abs(xcorr(s1_ppg));
s1_cor = s1_cor(size(s1_ppg,2):size(s1_ppg,2) + Fs*30);
s2_cor = abs(xcorr(s2_ppg));
s2_cor = s2_cor(size(s2_ppg,2):size(s2_ppg,2) + Fs*30);
s3_cor = abs(xcorr(s3_ppg));
s3_cor = s3_cor(size(s3_ppg,2):size(s3_ppg,2) + Fs*30);
s4_cor = abs(xcorr(s4_ppg));
s4_cor = s4_cor(size(s4_ppg,2):size(s4_ppg,2) + Fs*30);
s5_cor = abs(xcorr(s5_ppg));
s5_cor = s5_cor(size(s5_ppg,2):size(s5_ppg,2) + Fs*30);
s6_cor = abs(xcorr(s6_ppg));
s6_cor = s6_cor(size(s6_ppg,2):size(s6_ppg,2) + Fs*30);
figure(7)
plot(s1_cor),ylabel('Amplitudine'),xlabel('Esantioane'),
title('Rezultatul functiei de autocorelatie al ECG pentru Subiectul 1')
figure(8)
plot(s2_cor),ylabel('Amplitudine'),xlabel('Esantioane'),
title('Rezultatul functiei de autocorelatie al ECG pentru Subiectul 2')
figure(9)
plot(s3_cor),ylabel('Amplitudine'),xlabel('Esantioane'),
title('Rezultatul functiei de autocorelatie al ECG pentru Subiectul 3')
figure(10)
plot(s4_cor),ylabel('Amplitudine'),xlabel('Esantioane'),
title('Rezultatul functiei de autocorelatie al ECG pentru Subiectul 4')
figure(11)
plot(s5_cor),ylabel('Amplitudine'),xlabel('Esantioane'),
title('Rezultatul functiei de autocorelatie al ECG pentru Subiectul 5')
figure(12)
plot(s6_cor),ylabel('Amplitudine'),xlabel('Esantioane'),
title('Rezultatul functiei de autocorelatie al ECG pentru Subiectul 6')
%% Încărcare semnale pozitive
subiect_pos_1 = load('dataset/pozitive/Matlab-Format/s1_walkm');
subiect_pos_2 = load('dataset/pozitive/Matlab-Format/s2_walkm');
subiect_pos_3 = load('dataset/pozitive/Matlab-Format/s3_walkm');
subiect_pos_4 = load('dataset/pozitive/Matlab-Format/s6_walkm');
subiect_pos_5 = load('dataset/pozitive/Matlab-Format/s8_walkm');
subiect_pos_6 = load('dataset/pozitive/Matlab-Format/s9_walkm');
%% Încărcare semnale negative
subiect_neg_1 = load('dataset/negative/Matlab-Format/chf01m');
subiect_neg_2 = load('dataset/negative/Matlab-Format/chf02m');
subiect_neg_3 = load('dataset/negative/Matlab-Format/chf03m');
subiect_neg_4 = load('dataset/negative/Matlab-Format/chf04m');
subiect_neg_5 = load('dataset/negative/Matlab-Format/chf05m');
subiect_neg_6 = load('dataset/negative/Matlab-Format/chf06m');
%% Extragerea parametrilor ECG pentru semnalele pozitive
Fs_pos = 256;
Fs_neg = 250;
s1_pos = subiect_pos_1.val(1,:);
s2_pos = subiect_pos_2.val(1,:);
s3_pos = subiect_pos_3.val(1,:);
s4_pos = subiect_pos_4.val(1,:);
s5_pos = subiect_pos_5.val(1,:);
s6_pos = subiect_pos_6.val(1,:);
%% Extragerea parametrilor ECG pentru semnalele negative
s1_neg = subiect_neg_1.val(1,:);
s1_neg = s1_neg(1:10000);
s2_neg = subiect_neg_2.val(1,:);
s2_neg = s2_neg(1:10000);
s3_neg = subiect_neg_3.val(1,:);
s3_neg = s3_neg(1:10000);
s4_neg = subiect_neg_4.val(1,:);
s4_neg = s4_neg(1:10000);
s5_neg = subiect_neg_5.val(1,:);
s5_neg = s5_neg(1:10000);
s6_neg = subiect_neg_6.val(1,:);
s6_neg = s6_neg(1:10000);
%% Obținerea matricei caracteristică MFCC pentru semnalele pozitive
s1_pos_mfcc = get_mfcc_array(s1_pos, Fs_pos);
pos_mfcc_mean(1,:) = mean(s1_pos_mfcc,1);
s2_pos_mfcc = get_mfcc_array(s2_pos, Fs_pos);
pos_mfcc_mean(2,:) = mean(s2_pos_mfcc,1);
s3_pos_mfcc = get_mfcc_array(s3_pos, Fs_pos);
pos_mfcc_mean(3,:) = mean(s3_pos_mfcc,1);
s4_pos_mfcc = get_mfcc_array(s4_pos, Fs_pos);
pos_mfcc_mean(4,:) = mean(s4_pos_mfcc,1);
s5_pos_mfcc = get_mfcc_array(s5_pos, Fs_pos);
pos_mfcc_mean(5,:) = mean(s5_pos_mfcc,1);
s6_pos_mfcc = get_mfcc_array(s6_pos, Fs_pos);
pos_mfcc_mean(6,:) = mean(s6_pos_mfcc,1);
%% Obținerea matricei caracteristică MFCC pentru semnalele negative
s1_neg_mfcc = get_mfcc_array(s1_neg, Fs_neg);
neg_mfcc_mean(1,:) = mean(s1_neg_mfcc,1);
s2_neg_mfcc = get_mfcc_array(s2_neg, Fs_neg);
neg_mfcc_mean(2,:) = mean(s2_neg_mfcc,1);
s3_neg_mfcc = get_mfcc_array(s3_neg, Fs_neg);
neg_mfcc_mean(3,:) = mean(s3_neg_mfcc,1);
s4_neg_mfcc = get_mfcc_array(s4_neg, Fs_neg);
neg_mfcc_mean(4,:) = mean(s4_neg_mfcc,1);
s5_neg_mfcc = get_mfcc_array(s5_neg, Fs_neg);
neg_mfcc_mean(5,:) = mean(s5_neg_mfcc,1);
s6_neg_mfcc = get_mfcc_array(s6_neg, Fs_neg);
neg_mfcc_mean(6,:) = mean(s1_neg_mfcc,1);
%% Analiza coeficienților MFCC
for i=1:size(pos_mfcc_mean,1)
crt_mfcc_row = 1;
crt_mfcc_prod = prod(pos_mfcc_mean(i,:));
mfcc_pos(i) = crt_mfcc_prod;
end
for i=1:size(neg_mfcc_mean,1)
crt_mfcc_row = 1;
crt_mfcc_prod = prod(neg_mfcc_mean(i,:));
mfcc_neg(i) = crt_mfcc_prod;
end
%% Di
figure(1),
plot(mfcc_pos,'r'), title('Coeficientii MFCC Ponderati')
hold on
plot(mfcc_neg)
legend('Subiecti Sanatosi', 'Subiecti Bolnavi')
function [ ft_array ] = get_mfcc_array(input_signal, Fs)
[ft_array,aspc] = melcepst(input_signal, Fs);
end
% Programul meu
clc;
clear all;
close all;
load('tahicardiam');
ecg=(val)/200;
f_s=360;
fs=360;
N=length(ecg);
t=[0:N-1]/f_s; %time period(total sample/Fs )
gr=1;
figure
plot(t,ecg); title('ECG Fibrilatie atriala')
xlabel('time')
ylabel('amplitude')
w=50/(360/2);
bw=w;
[num,den]=iirnotch(w,bw); % notch filter implementation
ecg_notch=filter(num,den,ecg);
figure,
N1=length(ecg_notch);
t1=[0:N1-1]/f_s;
plot(t1,ecg_notch,'r'); title('ECG Fibrilatie atriala filtrat')
xlabel('time')
ylabel('amplitude')
%% Semnal original si semnal filtrat
figure, subplot 211
plot(t,ecg); title('ECG Fibrilatie atriala')
xlabel('time')
ylabel('amplitude')
legend('ORIGINAL ECG SIGNAL')
subplot 212
plot(t1,ecg_notch,'r'); title('ECG Fibrilatie atriala filtrat')
xlabel('time')
ylabel('amplitude')
legend(' Flitered ECG SIGNAL')
w=50/(360/2);
bw=w;
[num,den]=iirnotch(w,bw); % notch filter implementation
ecg_notch=filter(num,den,ecg);
figure,
N1=length(ecg_notch);
t1=[0:N1-1]/f_s;
plot(t1,ecg_notch,'r'); title('ECG Fibrilatie atriala filtrat ')
xlabel('time')
ylabel('amplitude')
EKG = ecg_notch; % Gain From the ‘info’ File
Fs = 360; % Fs From the ‘info’ File
tv = linspace(0,size(EKG,2),size(EKG,2))/Fs;
[pks,t] = findpeaks(ecg_notch(1,:), Fs, 'MinPeakHeight',1); % See ‘findpeaks’ Documentation
RR = diff(t); % RR Intervals (sec)
BBRate = 1./RR; % Beat-To-Beat Rate (Beats/sec)
HR=BBRate.*60;
Rate = mean(BBRate); % Mean Rate (Beats/sec)
figure
plot(tv,ecg_notch(1,:)) % Plot EKG
hold on
plot(t, pks, 'o') % Plot R Peaks
hold off
grid
xlabel('Time (s)')
ylabel('Amplitude (mV)')
legend('ECG signal', 'R-wave', 'Location','SE')
title('ECG Fibrilatie atriala R peak')
Copyright Notice
© Licențiada.org respectă drepturile de proprietate intelectuală și așteaptă ca toți utilizatorii să facă același lucru. Dacă consideri că un conținut de pe site încalcă drepturile tale de autor, te rugăm să trimiți o notificare DMCA.
Acest articol: AF Atrial fibrilation Fibrilație atrială [309989] (ID: 309989)
Dacă considerați că acest conținut vă încalcă drepturile de autor, vă rugăm să depuneți o cerere pe pagina noastră Copyright Takedown.
