R hullámok lokalizálása – Identifying R waves

Előző bejegyzésemhez hasonló módon most az R hullámok azonosításáról szeretnék néhány szót ejteni. Az R hullámok a QRS komplexusok szerves és többnyire állandó részei, olyan hullámok, amelyek először “felfele” tartanak és utána “lefele” – megjelenésük a kamrai depolarizációhoz köthető. Mivel a kamrák depolarizációja a legsúlyosabb pitvari ritmuszavarok esetén is kialakul, az R hullámok közötti távolságot szokás használni a szívfrekvencia mérésére [1].

Ami az R hullám lokalizációját illeti, a Matlab honlapján is található olyan bemutató, amely ezt a célt szolgálja [2]. Nevezetesen a findpeaks függvénnyel lehetséges az EKG méréseken megjelölni az R hullámok pozícióját. Ez a megközelítés “több sebből is vérzik”:

  • a findpeaks függvény általános felhasználásra készült, semmilyen EKG-ra vonatkozó speciális információval nem rendelkezik;
  • mivel az általános felhsználhatóság volt a cél, a függvény paraméterezhető; a MinPeakHeight paraméterrel a detektált csúcsok minimális amplitúdója (“magassága”) állítható – nyilvánvaló, hogy ez a paraméter a rögzítés módjától és az EKG-géptől is függ, az elemzést megelőzően ismerni kell;
  • a MinPeakDistance paraméter két csúcs közötti minimális távolságot hivatott rögzíteni, ezt az értéket is szükséges ismerni még az elemzés előtti fázisban.

Egy valamennyire is pontos R hullám detektor az EKG alaptulajdonságait felhsználva kell képes legyen a kamrai depolarizációk időpillanatát azonosítani. Az általam javasolt megoldás lépései a következők:

  1. Az alapvonal-vándorlás eltávolítása. Ez a lépés az EKG uniformizálásához szükséges. Míg előtte az alacsony frekvenciás komponensek az R hullámok amplitúdójának lényeges változását eredményezték, az izoelektromos vonalra való visszahelyezés nagyban segíti az R hullámok amplitújának szűkebb intervallumba való helyezését;
  2. Ahhoz, hogy az R hullámok felismerése során ne zavarjanak más, magas frekvenciás komponensek, egy nem-lineáris zajszűrést végeztem el: kiszámoltam a jelnek megfelelő hisztogramot, azonosítottam a legnépesebb halmazt a 10 elemű hisztogramon, majd a jelben minden olyan értéket, amely a legnépesebb halmaz felső határánál kisebb volt, nullával helyettesítettem; így nem csak a nagyfrekvenciás komponenseket sikerült kiszűrni, hanem minden más értéket is, amely a jel átlaga körül volt – ezáltal nagyrészt az R hullámok maradtak meg;
  3. A megmaradt csúcsok között lelhetők fel az R hullámok. Mivel a kamrai szívizom képtelen 200-300 ms-nál rövidebb idő alatt repolarizálódni és újra depolarizálódni [3], elég, ha ennek az időintervallumnak megfelelő számú mintánként vizsgálom a jelet R hullámokat keresve.

Az algoritmus a legtöbb esetben működőképesnek bizonyult, ám nyilvánvalóan eredményezett néhány hamis pozitív pozíciót is. Az R hullámok felismerésének egyik haszna a már említettk szívfrekvencia meghatározhatósága, de segíthet különbüző arritmiák felismerésében is.

grad_red_right

In my previous post I presented a method for detecting T waves in ECG recordings. This time, Iád like to discuss some aspects on the detection of R waves.  R waves are part of the QRS complexes and they mostly appear in every ECG. They are waves that start with a rising front followed by a falling one. Their appearance is related to ventricular depolarization. Because the ventricles are getting depolarized even in the most severe cases of atrial arrhythmia, the distance between the R waves is used to determine the heart rate [1].

Matlab offers a demonstration on their website regarding the detection of R waves [2] by using the findpeaks function. Using this function has a series of disadvantages:

  • the findpeaks function was designed for general use, it does not take into consideration any particularities of the ECG signal;
  •  because of its general scope, the function takes quite a lot of parameters. The MinPeakHeight parameter, for instance can be used to set a lower limit for the amplitude of the peaks to be detected (i.e. the R waves). It is clear that the value of this parameter has to be known beforehand;
  • the MinPeakDistance parameter sets the minimum threshold for the distance between two consecutive peaks (i.e. R waves); similarly to the MinPeakHeight parameter, this values has to be known also before the whole detection process can be started.

A somewhat useful R wave detector should be able to mark the position of the R waves based on the characteristics of the ECG signal. Considering this criterion, I constructed an algorithm that goes through the following steps:

  1. Remove the baseline-wandering. This step is needed for the uniformization of the ECG. While initially the low frequency components caused the significant variation of the amplitude of the R waves, taking the ECG back to the isoelectric line helps to reduce this variation to a narrow interval;
  2. In order to recognize R waves, high frequency components have to be filtered. I used a non-linear filtering approach. I computed the histogram of the signal in 10 bins. Then I set to zero all the values in the signal that were less than the higher limit of the most populated bin. This way the high frequency components were filtered out as well as any other values that were close to the mean of the signal;
  3. The remaining values contain the R waves. Because the myocardium of the venctricles cannot depolarize and repolarize in less than 200-300 ms [3], I counted every peak considering a number of samples corresponding to this time interval.

The algorithm offered satisfactory results most of the time but naturally produced some false positive results too. The use of knowing the position of R waves is not only limited to the determination of the heart rate but it is also used to identify some types of arrhythmia.

Könyvészet – References

[1] A. R. Houghton and D. Gray, Making sense of the ECG, 2nd edition. CRC Press, 2003.

[2] Peak Analysis – http://www.mathworks.com/help/signal/examples/peak-analysis.html

[3] J. Malmivuo and R. Plonsey, Bioelectromagnetism – Principles and Applications of Bioelectric and Biomagnetic Fields. Oxford University Press, New York, 1995 (http://www.bem.fi/book).