EKG mérés és feldolgozás Tuboly Gergely Pannon Egyetem
Érzékelés és méréstechnika labor jegyzet
1. Elektrokardiográfiai alapok Fiziológiai háttér A szív (görögül „kardia”) keringési rendszerünk központi szabályozó szerve, mely a sejtek, szövetek egészséges működéséhez nélkülözhetetlen anyagokat szállító vér állandó körforgását teremti meg. Az egyik legfontosabb szervnek tekinthető, mivel leállása másodperceken belül eszméletvesztést, perceken belül pedig általában halált idéz elő. A szív különlegességét bizonyítja, hogy speciális izomszövetekből, úgynevezett szívizomszövetekből épül fel. Míg a vázizomzat harántcsíkolt szöveteire a rövid távú nagy erőkifejtés jellemző, illetve a belső szervek simaizomszövetei hosszan tartó kis összehúzódásokra képesek, a szívizomszövet a két előnyös tulajdonságot egyesíti: nagy erővel húzódik össze, és az egész életen át folyamatos munkában van. A keringési rendszer A keringés működésébe enged betekintést az 1.1. ábra.
1.1. ábra: A szív fontosabb részei és a keringési rendszer (szemből) Az ábrán jól láthatók a szív főbb részei: felül a pitvarok (atrium), alul a kamrák (ventriculus) helyezkednek el. Az úgynevezett nagy vérkör a bal kamrából indul: izmos falának összehúzódásával a benne tárolt oxigénben dús vér a fő ütőérbe (aorta) ömlik, ahonnét nagy nyomással kisebb ütőerek (artériák), majd hajszálerek (kapillárisok) útján jut el a test szöveteihez, sejtjeihez. A sejtek anyagcseréje után a széndioxidban gazdag vér kis nyomással egyre nagyobb gyűjtőerekbe kerül, melyek a fővénába torkollanak. Végül pedig a jobb pitvarban lezárul a nagy vérkör. -2-
A jobb pitvar összehúzódásakor az áramló vér megnyitja az úgynevezett vitorlás billentyűket, így szabad utat nyer a jobb kamrába, a kis vérkör kiindulópontjába. Innét a vér a tüdőverőérbe jut, mely kisebb erekké, majd a tüdővel közvetlen kapcsolatban levő kapillárisokká ágazik. A tüdő léghólyagocskáiban megtörténik a gázcsere, és az immár oxigénben gazdag vér gyűjtőereken keresztül a bal pitvarba kerül, ahonnét a megnyíló vitorlás billentyűk a bal kamrába engedik. Lényegében a nagy vérkör a test oxigén- és tápanyagellátásáért, a kis vérkör pedig a vér felfrissítéséért felelős. A szív ingerületvezető rendszere Ebben az alfejezetben a szívizom összehúzódásának hátterében nyugvó ingerületkeletkezést és -vezetést mutatom be az 1.2. ábra segítségével.
1.2. ábra: A szív ingerületvezetése A szív elsődleges ingerületkeltő központja a szinuszcsomó, mely önmagától, külső behatás nélkül képes az ingerület inicializálására. Normális működése esetén nyugalmi állapotban körülbelül 60 szívciklust kezdeményez. Hatására a körülötte lévő ingerelhető szívizomsejtek aktiválódnak (depolarizáció), és az ingerületet továbbadják a szomszédos, szintén ingerelhető sejteknek. A folyamat olyan gyorsan megy végbe, hogy minden ingerelhető pitvari izomsejt szinte azonnal depolarizálódik, mely a szívizom szintjén a pitvarok egyszerre történő összehúzódását jelenti. Annak érdekében, hogy a vérnek legyen elég ideje a pitvarokból a kamrákba áramolni, egy bizonyos ponton túl rövid ideig nem terjed ingerület a kamrák izomzata felé. Ez a pont a pitvarkamrai csomó, mely a szív másodlagos öningerlő központja. Ingerületkeltése esetén depolarizálódik a His-köteg, majd a bal és jobb Tawara-szárakon halad tovább az ingerület a Purkinje-rostok irányába. A Purkinje-rostok aktiválják a munkaizomzatot, mely a kamrák összehúzódását váltja ki. A szívizom elernyedése során a sejtek visszaállnak alapállapotba (repolarizáció) megteremtve az újbóli ingerelhetőség lehetőségét. A depolarizáció kezdetétől a repolarizáció végéig a sejt nem képes újra aktiválódni, ezt az időszakot refrakter fázisnak nevezzük.
-3-
Az EKG Maga az EKG szó a bioelektronika szakirodalmában többféle értelemben használatos. Az elektrokardiográfia röviden a szív bioelektromos működésének időben történő leírását és értelmezését jelenti testfelszínen elhelyezett elektródák potenciálmérései alapján. Noninvazív eljárás, mely annyit jelent, hogy a testet semmilyen károsodás nem éri a mérés során, ezáltal fájdalom- és sérülésmentes a páciens számára. Magát a mérőműszert – mely mind a mai napig az egyik legnépszerűbb eszköz az orvosi diagnosztikában – elektrokardiográfként, kimenetét pedig elektrokardiogramként, EKG jelként említi az irodalom. Az EKG jel a szívben lezajló bioelektromos folyamatok ábrázolására szolgál. Hatalmas információtartalommal bír, segítségével a kardiológus számos következtetést vonhat le a szívműködésről, annak egészséges, illetve patológiás mivoltáról. A leglényegesebb EKG hullámok felismerése és értelmezése azonban általában nem igényel mélyebb kardiológiai ismereteket. A hétköznapi ember számára is viszonylag könnyen elsajátítható egy rövid áttekintés során, melyre az alábbiakban sor kerül. Érdemes elsőként az 1.3. ábrát tekinteni.
1.3. ábra: Egy szívciklus EKG hullámainak sematikus ábrázolása Az ábra vázolja egy egészséges ember EKG jelét, mely a szívizomzat tevékenységét megelőző elektromos jelenség időben történő változását mutatja. A szívciklus első hulláma a P hullám, mely a pitvarok aktivációját (depolarizációját) jelenti. Ezt követi az úgynevezett QRS hullámcsoport (QRS komplexum), melynek során a kamrai izomzat depolarizációja történik meg. Végül pedig bekövetkezik a kamrai izomzat aktív állapotból normál állapotba való visszatérése (repolarizáció), mely a T hullámot eredményezi. A pitvari izomzat repolarizációjának testfelszínre történő elektromos kivetülése a többi komponenshez képest jelentéktelen, így nem látható az EKG jelen. Mivel a kamrai depolarizáció szakasza a legszignifikánsabb, az egyes szívciklusok azonosítása általában a QRS komplexummal történik az úgynevezett QRS-detektálás során. Fontos leszögezni, hogy a fenti ábrán egy „klasszikus” EKG jel látható a különböző hullámok jó elkülöníthetősége érdekében. Valójában azonban – a mérő elektródák pontos testfelszíni helyzetétől függően – a különböző hullámok amplitúdói elvezetésenként igen változékonyak lehetnek.
-4-
A hagyományos 12 elvezetéses EKG rendszer Az 1.4. ábra a korábban említett hagyományos 12 elvezetéses EKG példáján keresztül szemlélteti az egyes csatornák jeleinek különbözőségét:
1.4. ábra: Hagyományos 12 elvezetéses rendszer elektródáinak felhelyezése és az elvezetések EKG jelei Napjainkban az orvosi diagnosztikában az ábrán látható 12 elvezetéses rendszer a legelterjedtebb, ezért is szokták a „hagyományos”, illetve „klasszikus” jelzőkkel illetni. A 12 elvezetés a következőképpen áll össze: 1. Végtagi (bipoláris) elvezetések: I, II és III jelöléssel 2. Mellkasi (unipoláris) elvezetések: V1-V6 jelöléssel 3. Erősített („augmented”) elvezetések: aVR, aVL és aVF jelöléssel Méréstechnikailag legegyszerűbb az I elvezetés mérése, mely a bal és jobb karon (vagy vállon) mért potenciálkülönbségből adódik. Hosszú ideig tartó EKG monitorozásra használják az úgynevezett Holter EKG rendszereket. Jellemzőjük, hogy kicsi, mobil készülékek, kevés – általában 2-3 – elvezetéssel. Azonban az akár 48 órán keresztül tartó folyamatos vizsgálat eredménye általában ellensúlyozza a kis elvezetésszámot. Nem elhanyagolható szempont az EKG rendszerek mintavételi frekvenciája sem, mely megadja, hogy másodpercenként hány mintát vesz a mérőeszköz a jelből. Ezen érték az időbeli, az elektródák közötti távolság pedig a térbeli felbontást határozza meg. Minél magasabb az elvezetések száma, általában annál nagyobb a térbeli felbontás. A manapság orvosi diagnosztikában használt EKG rendszerek többsége pár száz Hz mintavételi frekvencián üzemel.
-5-
2. A digitális jelfeldolgozás elméleti alapjai Mintavételezés A mért jelek általában analóg formában állnak rendelkezésre. Ezért a számítógépes feldolgozás előtt diszkretizálni kell őket. Ez azt jelenti, hogy a folytonos jelet periodikus időközönként vett, pillanatszerű amplitúdó értékeivel reprezentáljuk. Ezt hívjuk mintavételezésnek. Bizonyos feltétel mellett az eredeti jel teljes egészében, információ veszteség nélkül visszaállítható ezekből a mintákból. A mintavételi tétel adja meg ezt a bizonyos feltételt. Ez a tétel azt mondja ki, hogy ha a jelben előforduló legnagyobb frekvencia kétszeresével vagy nagyobb frekvenciával történik a mintavétel, akkor a jel információ veszteség nélkül visszaállítható. Hogyan lehet az eredeti jelet visszaállítani? A megfelelő frekvenciával diszkterizált jel frekvencia spektrumának analízisekor látható, hogyha a diszkretizált jelet aluláteresztő szűrőn engedjük át, akkor visszakapható az eredeti jel. Az ideális aluláteresztő szűrő vágási frekvenciája a jelben megtalálható legnagyobb frekvencia és a mintavételi frekvencia fele között található. Amennyiben a mintavételi tétel feltétele nem teljesül, akkor a jel két frekvencia spektruma között átlapolás történik. Látható, hogy a jó mintavételi frekvencia megválasztásához ismerni kell a jelben megtalálható legnagyobb frekvencia értékét. Ám ez a feltétel az életben igen ritkán teljesül, mivel zaj is rárakódik a jelre. A zajnak minden frekvencián lehet összetevője, így meghamisítja a jel frekvenciaspektrumát. Ezért érdemes a jelet mintavételezés előtt megszűrni és különösen a nagyobb frekvencia összetevőket levágni. Ezzel ugyanis nem csak a zaj csökkenthető, de mivel kisebb mintavételi frekvenciára van szükség olcsóbb és egyszerűbb berendezést igényel, ill. kevesebb adatot kell tárolni. Néhány orvosi jel frekvencia tartománya: Elektroencephalogram (EEG): 0-100 Hz Elektromiogram (EMG): 10-200 Hz Elektrokardiogram (EKG): 0.05-100 Hz Vérnyomás: 0-200 Hz Szűrők tervezése Egy szűrő nem más, mint egy olyan szelektív erősítő, ami a bemeneti jel spektrumának bizonyos részét átengedi, más részét nem; frekvenciafüggő átvitele eredményeként szűrési feladatot lát el, de nem szükséges, hogy egyúttal erősítsen is. A szűrők tervezése két részre bontható. Először az átvitel és zárás határait és mértékét meghatározó előírások, más néven specifikáció alapján meg kell keresni azt az átviteli függvényt, amely teljesíti a követelményeket és áramkörileg megvalósítható. A tervezésnek ez a szakasza az approximáció. A következő részben meg kell tervezni azt az áramkört, amely megvalósítja az approximációval meghatározott átviteli függvényt. A gyakorlat során természetesen csak az első lépéssel foglalkozunk, és megvizsgáljuk, hogy egy approximáció elkészítéséhez és szoftveres megvalósításához milyen eszközök állnak rendelkezésre MATLAB programozási környezetben.
-6-
Specifikáció A tervezés kiindulási adatait a specifikáció tartalmazza. Az ún. ideális aluláteresztő (AÁ) szűrőt az alábbi ábrán látható első specifikáció jellemzi, amely az átviteli sávban A0 állandó erősítésű, a zárósávban az erősítése (átvitele) nulla. A két tartomány között (fH) az átmenet ugrásszerű.
2.1. ábra: Az ideális szűrők átvitelei (amplitúdókarakterisztikái) A fenti alapján látható az ábrán az ideális felüláteresztő (FÁ), sáváteresztő (SÁ) és sávzáró (SZ) szűrők specifikációi. A valódi szűrőknek mind az átviteli, mind a zárótartományban meg kell engedni erősítésváltozást, és a két tartomány között kell lenni egy átmeneti frekvenciatartománynak. Minél kisebb az átviteli sávban megengedett erősítésváltozás, minél kisebb a zárótartományban az erősítés és minél szűkebb az átmeneti frekvencia tartomány, annál szigorúbb a specifikáció. Azaz a berajzolt vonalak helyett sávokat definiálunk, toleranciasémákat alkalmazunk; ezt mutatja a 2.2. ábra.
-7-
2.2. ábra: Szűrők toleranciasémái Minden szűrő átviteli függvénye (A(s)) felírható az átviteli sáv A0 erősítésének és egy frekvenciafüggő átvitelnek (a(s)) a szorzataként:
A(s) A0 a(s) Mivel most a frekvenciafüggésen van a hangsúly, ezért csak az a(s) átvitelt ábrázoltuk a 2. ábrán. Approximáció Minden szűrőtípus approximációja visszavezethető az ún. referens aluláteresztő szűrő approximációjára. Keressük azt az a(S) relatív átviteli függvényt, amelynek |a(j)| függvénye belül marad a 2.3. ábrán látható toleranciasémán.
2.3. ábra: A referens AÁ toleranciasémája A feladatnak, mint minden egyenlőtlenség-típusú problémának, végtelen sok megoldása van. Ezek közül az áramkörileg megvalósítható és valamilyen szempontból optimális függvénycsaládokat soroljuk csak fel. Egy-egy család azonos jellegű, de különböző bonyolultságú függvényeket tartalmaz. A bonyolultságot az átvitel pólusainak számával (n) jellemezzük (n = a nevező fokszáma). A függvény család kiválasztása után mindig a minimálisan szükséges fokszám meghatározása a feladat. Minél szigorúbb az előírás, annál nagyobb fokszámmal valósítható csak meg. Ugyanazt a specifikációt a különböző függvénycsaládok más-más fokszámmal valósítják meg, mert más módon optimálisak. Ilyen optimalizálási szempontok: - minél simább (maximális laposságú) (Butterworth), - végig monoton (Legendre), - a zárótartományban monoton (Csebisev), - az áteresztőtartományban monoton (inverz Csebisev), -8-
- a legkisebb fokszámú (Cauer), - a legjobb ugrásjel-átvitelű és végig monoton (Thomson), - a legjobb ugrásjel-átvitelű és az áteresztő tartományban monoton (L szűrő). Ahhoz, hogy egy függvénycsaládot alkalmazni tudjunk, ismerni kell átviteli tulajdonságait, a specifikáció teljesítéséhez szükséges fokszám megállapításának módját és a pólus-zérus értékek meghatározását. Ez utóbbi feladat megoldását a MATLAB programra fogjuk bízni. A Butterworth approximáció A maximális laposságú vagy más néven Butterworth típusú referens aluláteresztő függvénycsalád átvitele
a( S )
1 1 B1 S B2 S 2 Bn S n
alakú, tehát csak pólusai vannak. Olyan módon optimalizált (a Bi együttható megválasztása által), hogy abszolút értéke az = 0 helyen a lehető legjobban simul a vízszintes tengelyhez. Ennek eredményeként az átvitel abszolút értéke a következő:
1
a( jΩ )
Ω 1 Ωc
2n
.
A függvény jellemző paraméterei az n fokszám és az együtthatókból adódód c törésponti frekvencia. Az átvitel Bode-diagramját különböző fokszámokra mutatja be a 4. ábra. Figyeljük meg, hogy az amplitúdómenet az < c tartományban a fokszám növelésével egyre jobban simul a tengelyhez, és > c-nél egyre nagyobb az aszimptota meredeksége. Jól látszik, hogy nagyobb fokszámú függvény szigorúbb specifikáció megvalósítására alkalmas. A szükséges fokszám lg
S H
lg
ΩS ΩH
n
érétkű egész szám, ahol H
1 aH
2
1 és S
-9-
1 aS
2
1 ingadozásparaméterek.
2.4. ábra: A különböző fokszámú Butterworth referens AÁ szűrők Bode amplitúdómenete Az c törésponti frekvenciát úgy kell megválasztani, hogy H = 1 frekvencián |a(j)| = aH legyen. Ilyenkor S–nél |a(j)| aS lesz az átvitel értéke. Ezek alapján: Ωc
ΩH n
εH
.
A további tervezéshez az átviteli függvény pólusait kell meghatározni. Ez nem okoz nehézséget, hiszen a MATLAB-ba beépített butter utasítás pontosan ezt teszi. Ennek az utasításnak a felhasználásával lehet AÁ, FÁ, SÁ és SZ szűrők átviteli függvényeit lehet tervezni, csak mindig jelezni kell, hogy milyen típusú szűrőt szeretnénk megvalósítani. Magát a konkrét szűrést a filter utasítás végzi (nem tesz mást, mint összekonvolválja a szűrendő jelet és a szűrő átviteli függvényét). Természetesen mivel nem ideális szűrőkkel dolgozunk, van valamilyen fázistoló hatása a szűrésnek. Ezt a hatást csökkentendő létezik a MATLAB-ban a filtfilt utasítás, amely két irányba végzi el egymás után a konvolúciót, és ezzel kompenzálja a nemkívánatos fázistoló effektust. MATLAB trükkök: function fejléc (függvény fejlécezés) function [kimeneti_valtozok]=fgvnev(bemeneti_valtozok); a meghívandó függvény elsős sora (fejléce); a kimeneti_valtozok–at szögletes zárójelben, szóközzel vagy vesszővel elválasztva kell felsorolni, mindegyiket definiálni kell a függvényen belül (ellenkező esetben a függvény hívása során hibaüzenetet kapunk); amennyiben csak egy kimenő paraméterünk van, elhagyható a szögletes zárójel a bemeneti_valtozok-at szóközzel vagy vesszővel elválasztva kell felsorolni, nem jelent hibát, ha valamelyiket nem használjuk a függvényben (de akkor kár behoznia a függvénybe!); ha csak egy bejövő változónk van, akkor is kell a zárójel; az egyes változók nevei azonosak kellenek, hogy legyenek a függvényen belül a fejlécben megadott névvel a fgvnev a meghívandó függvény neve (mentéskor automatikusan ez a név kínálkozik), valamint meghíváskor is ezt a nevet kell használnunk fügvény hívás [kimeneti_valtozok]=fgvnev(bemeneti_valtozok);
- 10 -
adott programból ezzel a módszerrel hívható meg a fgvnev nevű függvény; a kimeneti_valtozok-ra és a bemeneti_valtozok-ra ugyanaz érvényes, mint a függvény fejlécében leírtakra (természetesen minden bemeneti változót a függvény hívása előtt definiálni kell); fontos megjegyezni, hogy a függvényhívás során alkalmazott változó neveknek és a függvény fejlécében használt változó neveknek nem kell megegyezniük, csak a ki/bemeneti változók darabszámának kell azonosnak lenniük, és a megfeleltetést a változónevek sorrendje adja meg (ez persze logikus, ha arra gondolunk, hogy egy függvényt adott esetben többször is meghívhatunk egy programon belül, természetesen más bemeneti változókra, és így más kimeneti változókat fogunk kapni…) butter utasíás [B,A]=butter(fokszam,toresi_frekvencia, 'tipus'); a Butterworth approximációt megvalósító függvény; adott fokszam és toresi_frekvencia mellett kiszámítja a digitális AÁ szűrő B számlálóját és A nevezőjét (illetve annak koefficienseit) (a tipus elhagyható); fontos, hogy a toresi_frekvencia értékét normálni kell a mintavételi frekvencia felével, így a megadott szám 0 és 1 közé kell, hogy essen (érdemes gondolni a Nyquistkritériumra!); a tipus opcionális változó definiálja a szűrő típusát, ezt mutatja az alábbi kis táblázat: 'tipus' Szűrő típus 'high' FÁ 'low' AÁ (elhagyható) 'stop' SZ* *toresi_frekvencia=[frekv1, frekv2] amennyiben a toresi_frekvencia változó kételemű (toresi_frekvencia=[frekv1, frekv2]), és a tipus változó elhagyjuk, akkor egy SÁ szűrő átviteli függvényét kapjuk; filter utasítás szurtjel=filter(B,A,jel); a B és A által definiált átviteli függvénnyel konvolválja a jel változóban adott jelet, az eredményt pedig a szurtjel változónak adja át (gyakorlatilag végrehajtja a szűrést) filtfilt utasítás szurtjel=filtfilt(B,A,jel); ugyanazt hajtja végre, mint a filter utasítás, csak egymás után kétszer, két irányból, így a szűrő nem kívánatos fázistoló hatása csökken plot utasítás plot(X, 'szin') egy új ábrára (figure) kirajzolja az X változó értékeit a szin változó szerint definiált színnel hold utasítás hold on bekapcsolás esetén megtartja az utolsó ábrát, és következő plot utasítás eredményét erre az ábrára helyezi (egy új ábra nyitása helyett); kikapcsolni a hold off utasítással lehet
- 11 -