Sn. sasahes06,
Size MATLAB'in script dosyasını verebilirim ki bunu forumu inceleseydiniz siz de bulabilirdiniz. Ancak yöntem ve metod düşünmeniz sizin için iyi olacaktır. MATLAB kısmına geçmeden konuyu tartışalım..
Varsayalım hiç programlama bilgisine sahip olmayan birisiyim. Kodu ilk yazmadan önce aklıma gelen yöntemi size anlatayım.
Bir EKG sinyali aşağıdaki resimde de olduğu gibi, belli noktalarla veya dalgalarla ifade edilir.
QRS kompleksi diye adlandırılan aksiyon potansiyelini nasıl bulabilirize en iyi cevap herhalde analitik yaklaşımla olur. Q noktasına kadar değerler geliyor ve birden artmaya başlıyor. Sonra R noktasına kadar değerler geliyor ve birden azalmaya başlıyor. Aynı şekilde S noktasına kadar değerler gelip birden artmaya başlıyor. Bu ani değişikliklerin tespiti bize Q,R ve S noktalarını verir.
Ancak akla ilk gelmesi gereken soru şu olmalıdır: Sinyalde gürültü varsa ne olacak?
İşte sinyal işleme aşamaları bunun için çok kritiktir. EKG sinyalleri mV mertebesinde olduğu için aksırma, ani hareket bile o anlık kalpteki kasların hareketini etkileyebiliyor. FFT (Fast Fourier Transform) uygulanıp frekans karakteristiği incelenip kullanılacak filtrenin karakteristiği iyi tespit edilmeli. (Geçiş bandı mı daha önemli yoksa durdurma bandı mı karar verilmeli.) Uygun filtre kesim frekansı eş zamanlı olarak frekans ve zaman uzayı incelenerek yapılmalıdır. (PSD (Power Spectral Density) incelemesi yapmak en yaygın yöntemdir.)
Gürültüden kaynaklanan değişimleri filtre ile hallettiğimizi varsayalım. Sonraki adımlarda artık Q, R ve S noktalarına arzu ettiğimiz yöntemle ulaşabiliriz.
Örneğin Q noktasını bulalım.
* QRS kompleksini bütün olarak 1000 parça düşünelim. Q noktasından 50 parça öncesinden başlasın ve S noktasından 50 parça sonra bitsin. QRS[1] ile QRS[100] arasında bir algoritma yazalım.
Varsayalım Q noktası 50. nokta, R noktası 500. nokta ve S noktası 950. nokta olsun.
** Aralık [1,100] **
QRS[2], QRS[1]'den küçük müdür ? Evet ise devam et. Hayır ise dur.
QRS[3], QRS[2]'den küçük müdür ? Evet ise devam et. Hayır ise dur.
QRS[4], QRS[3]'den küçük müdür ? Evet ise devam et. Hayır ise dur.
..
..
..
QRS[51], QRS[50]'den küçük müdür ? Evet ise devam et. Hayır ise dur.
Hayır olduğu görüldü ve durdu. QRS[50] değerinin Q noktası olduğu tespit edildi.
Şimdi de R noktasını bulalım;
** Aralık [101,899] **
QRS[101], QRS[100]'den büyük müdür ? && QRS[101], QRS[102]'den büyük müdür? Evet ise devam et. Hayır ise dur.
QRS[102], QRS[101]'den büyük müdür ? && QRS[102], QRS[103]'den büyük müdür? Evet ise devam et. Hayır ise dur.
QRS[103], QRS[102]'den büyük müdür ? && QRS[103], QRS[104]'den büyük müdür? Evet ise devam et. Hayır ise dur.
..
..
..
..
QRS[500], QRS[499]'den büyük müdür ? && QRS[500], QRS[501]'den büyük müdür? Evet ise devam et. Hayır ise dur.
QRS[500] değeri QRS[499]'dan ve QRS[501]'den büyük olduğu için QRS[500] değerinin R noktası olduğu tespit edildi. Yani aslında o sivri olan köşe noktası bulunmuş oldu.
Şimdi de S noktasını bulalım;
** Aralık [900,1000] **
QRS[901], QRS[900]'den küçük müdür ? Evet ise devam et. Hayır ise dur.
QRS[902], QRS[901]'den küçük müdür ? Evet ise devam et. Hayır ise dur.
QRS[903], QRS[902]'den küçük müdür ? Evet ise devam et. Hayır ise dur.
..
..
..
QRS[950], QRS[949]'den küçük müdür ? Evet ise devam et. Hayır ise dur.
Hayır olduğu görüldü ve durdu. QRS[950] değerinin S noktası olduğu tespit edildi.
Böylelikle QRS kompleksinin parçaları bulunmuş oldu. Programlama kısmı için kodları sitemizde bulabilirsiniz.
Bazı durumlarda algoritmayı oluşturmak korkutucu gelebilir ama pes etmeden çalışmak, araştırmak ve kafa yormak en iyi çözümdür.
Saygılarımla,