Import heartpy as hp hrdata = hp get data('data csv') Oldindan ishlov berish import heartpy as hp



Yüklə 223,57 Kb.
səhifə1/10
tarix26.07.2023
ölçüsü223,57 Kb.
#137540
  1   2   3   4   5   6   7   8   9   10
Algoritmning ishlashi


Algoritmning ishlashi 
Ushbu bo'limda algoritm funktsiyalarining tafsilotlari tasvirlangan.


import heartpy as hp

hrdata = hp.get_data('data.csv')


Oldindan ishlov berish 
import heartpy as hp


#load example data
data, _ = hp.load_exampledata(0) #this example set is sampled at 100Hz

working_data, measures = hp.process(data, 100.0)


Oldindan ishlov berish uchun turli xil variantlar mavjud. Bular quyida tavsiflanadi 


process(dataset, sample_rate, windowsize=0.75, report_time=False, calc_freq=False, freq_method=’welch’, interp_clipping=False, clipping_scale=False, interp_threshold=1020, hampel_correct=False, bpmmin=40, bpmmax=180, reject_segmentwise=False, high_precision=False, high_precision_fs=1000.0, measures = {}, working_data = {})




  • import heartpy as hp


  • data = hp.get_data('data.csv')

  • working_data, measures = hp.process(data, 100.0)

  • hp.plotter(working_data, measures)

Kesishni aniqlash va interpolyatsiya qilish 


Har doim o'lchangan xususiyat sensorning sezgirlik diapazonidan oshib ketganda yoki analog signalni raqamlashtirishda kesish mumkin. Bu holatda kesish tepaliklarning tekislanganligini anglatadi, chunki signal siz foydalanayotgan sensor chegaralaridan tashqarida davom etadi: 

Signalning maksimal (deyarli) tekis qismlarini, oldingi va keyin ikkala uchida tik burchak ostida aniqlash orqali kesish funktsiyalari. "Yo'qolgan" signal cho'qqisi signalning kesish qismining har ikki uchida 100 ms ma'lumotni hisobga oladigan kubik splayn yordamida interpolyatsiya qilinadi. Qayta tiklangan R-cho'qqisi dastlabki signalning ustiga qo'yiladi va keyingi tahlil uchun ishlatiladi. 





Peakni kuchaytirish 
Amplitudani normallashtirishga, so'ngra signalning qolgan qismiga nisbatan R-pik amplitudasini oshirishga harakat qiladigan tepalikni kuchaytirish funktsiyasi mavjud. U faqat chiziqli transformatsiyalardan foydalanadi, ya'ni mutlaq tepalik pozitsiyalari buzilmaydi (FIR filtrlaridan farqli o'laroq). U oldindan belgilangan takroriy sonlarni bajaradi. Odatda ikkita takrorlash etarli. Haddan tashqari takrorlashdan ehtiyot bo'ling, chunki bu qiziqish cho'qqilarini ham bostirishga kirishadi. 

Butterworth filtri 


Yuqori chastotali shovqinlarni olib tashlash uchun Butterworth filtri ilovasi mavjud. E'tibor bering, bu mutlaq tepalik pozitsiyalarini biroz bezovta qiladi va chiqish o'lchovlariga ta'sir qiladi. Biroq, kuchli shovqin holatlarida bu signaldan foydali ma'lumotlarni olishning yagona yo'li. 

Signalda yuqori shovqin bo'lmasa, filtrlash odatda tavsiya etilmaydi. Ekstremal misol quyida ko'rsatilgan: 


Hampel tuzatish 


Hampel tuzatishi Hampel filtrining kengaytirilgan versiyasi sifatida ishlaydi, standart ma'lumot nuqtasidan kattaroq oyna o'lchamiga ega + har bir tomonda 3 ta ma'lumot nuqtasi (=7). Salbiy tomoni shundaki, u (hech bo'lmaganda joriy dastur) katta ishlov berish vaqtini oladi, chunki har bir ma'lumot nuqtasi uchun oyna medianasi va median mutlaq og'ishini hisoblash kerak. 
Joriy amalga oshirishda, agar chaqirilsa, yurak urish tezligi signalining 1 soniyali oynasida median filtr olinadi. Filtrning chiqishi keyinchalik asl signaldan chiqariladi. Bunday holda, shovqinni bostirish xususiyati paydo bo'ladi: 



Ushbu turdagi filtrdan foydalanganda mutlaq tepalik pozitsiyalari biroz o'zgarishini unutmang. Uning yordamida chiqish o'lchovlari xatolik yuzaga kelganda og'ishni boshlaydi. Odatda xatolik unchalik katta emas, lekin sukut bo'yicha hampel filtrlash o'chirilgan. Uni faqat algoritm to'g'ri bajara olmaydigan og'ir shovqin segmentlariga duch 
Peakni aniqlash 
Pikni aniqlash bosqichi adaptiv cho'qqilarni aniqlash chegarasidan foydalangan holda PPG komplekslarining amplituda o'zgarishi va morfologik o'zgarishlariga moslashishga harakat qiladi (3, III-rasm), so'ngra bir necha bosqichlarni aniqlash va rad etish. Yurak urishlarini aniqlash uchun har bir ma'lumot nuqtasining har ikki tomonida 0,75 soniyali oyna yordamida harakatlanuvchi o'rtacha hisoblab chiqiladi. Signalning birinchi va oxirgi 0,75 soniyasi signalning o'rtacha qiymati bilan to'ldiriladi, bu bo'limlar uchun harakatlanuvchi o'rtacha hosil bo'lmaydi. Qiziqarli hududlar (ROI) cho'qqilarni aniqlashning standart usuli bo'lgan signal amplitudasi harakatlanuvchi o'rtacha qiymatdan kattaroq bo'lgan ikkita kesishish nuqtasi o'rtasida belgilanadi (3-rasm, I-II). R-cho'qqilari har bir ROI maksimalida belgilanadi. 


Pik ekstraktsiya jarayonini ko'rsatadigan rasm. Harakatlanuvchi o'rtacha kesishish chegarasi (II) sifatida ishlatiladi. Nomzod cho'qqilari kesishmalar (III) orasidagi maksimal darajada belgilanadi. Harakatlanuvchi o'rtacha o'zgaruvchan PPG to'lqin shakli morfologiyasini (I) qoplash uchun bosqichma-bosqich o'rnatiladi. 
Pikni aniqlash bosqichida algoritm hisoblangan polning amplitudasini bosqichma-bosqich sozlaydi. Eng yaxshi moslikni topish uchun ketma-ket farqlar orasidagi standart og'ish (SDSD, shuningdek, 2.2 ga qarang) minimallashtiriladi va signalning BPM qiymati tekshiriladi. Bu yurak urish tezligi signalining nisbiy muntazamligidan foydalangan holda optimal chegarani yaqinlashtirishning tezkor usulini ifodalaydi. Quyidagi rasmda ko'rsatilganidek, bitta R-cho'qqisi (III.) yo'qolishi allaqachon optimal moslik (II.) bilan solishtirganda SDSDning sezilarli darajada oshishiga olib keladi. Noto'g'ri R-cho'qqilarini belgilash ham SDSD (I.) ning oshishiga olib keladi. Nolga teng bo'lmagan eng past SDSD qiymati, ehtimol, BPM qiymati bilan birgalikda, eng mos deb tanlanadi. BPM oldindan belgilangan diapazonda bo'lishi kerak (standart: 40 <= BPM <= 180, diapazon foydalanuvchi tomonidan o'rnatiladi). 
Quyidagi rasmda SDSD maksimal moslama bilan qanday bog'liqligi ko'rsatilgan. Aslini olganda, fitting funktsiyasi yurak urish tezligi signalida kutilgan kuchli muntazamlikdan foydalanadi. 


Rasmda SDSD hatto bitta oʻtkazib yuborilgan zarbaga (pastki chizma) qanday kuchli taʼsir koʻrsatishi va barcha choʻqqilar toʻgʻri aniqlanganda eng past (oʻrta chiziq) koʻrsatilgan. 
Har safar kesish sodir bo'lganda, algoritm buni aniqlaydi va spline interpolyatsiyasi orqali to'lqin shaklini qayta tiklashga harakat qiladi. Bu kesishni aniqlash va interpolyatsiya bo'limida muhokama qilinadi 
Ixtiyoriy “yuqori aniqlik rejimi” mavjud boʻlib, u har bir aniqlangan choʻqqi (har ikki uchida +/- 100ms) atrofidagi signalni qabul qiladi va choʻqqi holatini aniqroq baholash uchun yuqori namuna olish tezligini taqlid qilish uchun uni takrorlaydi. Sukut bo'yicha u ms-aniq cho'qqi pozitsiyasini baholashni ta'minlash uchun 1000 Gts ga ko'tariladi. 
Eng yuqori rad etish 
O'rnatish bosqichidan so'ng, turli omillar tufayli bir nechta noto'g'ri aniqlangan tepaliklar saqlanib qolishi mumkin. Ular sinovdan o'tkaziladi va bo'limdagi RR intervallari uchun chegara qiymatiga asoslanib rad etiladi: 
Eshiklar segmentlardagi RR-intervallarning o'rtacha qiymatiga qarab hisoblanadi. Eshiklar RR_mean +/- (RR_meanning 30%, minimal qiymati 300) sifatida aniqlanadi (+ yoki - mos ravishda yuqori va pastki chegara uchun). Agar RR oralig'i chegaralardan biridan oshsa, u e'tiborga olinmaydi. 
Choralarni hisoblash 
Barcha o'lchovlar segmentdagi aniqlangan va qabul qilingan tepaliklar bo'yicha hisoblanadi. Hisoblashda RR-intervallardan foydalanilganda, faqat ikkita qo'shni, qabul qilingan, cho'qqilar tomonidan yaratilgan intervallar qo'llaniladi. RR-intervallaridagi farqlar kerak bo'lganda (masalan, RMSSDda), faqat ikkita qo'shni RR-intervallari orasidagi intervallar qo'llaniladi, ular o'z navbatida uchta qo'shni, qabul qilingan cho'qqilar tomonidan yaratiladi. Bu har qanday rad etilgan cho'qqilarning keyingi o'lchov hisoblarida o'lchov xatosini kiritmasligini ta'minlaydi. 

Vaqt seriyasi 


Vaqt seriyalarining o'lchovlari aniqlangan tepaliklardan hisoblanadi. Chiqarish choralari quyidagilardan iborat: 

  • daqiqada urish (BPM) 

  • interbeat interval (IBI) 

  • RR intervallarining standart og'ishi (SDNN) 

  • ketma-ket farqlarning standart og'ishi (SDSD) 

  • ketma-ket farqlarning o'rtacha ildiz kvadrati (RMSSD) 

  • 20ms dan yuqori ketma-ket farqlar nisbati (pNN20) 

  • 50ms dan yuqori ketma-ket farqlar nisbati (pNN50) 

  • RR intervallarining o'rtacha mutlaq og'ishi (MAD) 

Chastotalar domeni 
Hisoblangan chastotalar domeni o'lchovlari: 

  • past chastotali, 0,05-0,15 Gts (LF) oralig'idagi chastota spektri 

  • yuqori chastotali, chastota spektri 0,15-0,5 Gts (HF) 

  • ratsion yuqori chastotali / past chastotali (HF / LF) 

O'lchovlar PSD (Power Spectral Density) dan hisoblab chiqiladi, uning o'zi FFT, Periodogram yoki Welchga asoslangan usullar yordamida baholanadi. Standart Welch usuli hisoblanadi. 
Nafas olish tezligini hisoblash 
Yurakning qiziqarli xususiyatlaridan biri shundaki, uning urish chastotasi avtonom asab tizimi orqali nafas olish orqali kuchli ta'sir qiladi. Bu chuqur nafas nervlarni tinchlantirishining sabablaridan biridir. Shuningdek, biz yurak urish tezligi ma'lumotlari segmentidan nafas olish tezligini olish uchun ushbu munosabatdan foydalanishimiz mumkin. Masalan, CO2 kapnometriya signallari va PPG signallarini o'z ichiga olgan [1] ma'lumotlar to'plamidan foydalanib, biz nafas olish va RR-intervallari o'rtasidagi munosabatni aniq ko'rishimiz mumkin. Quyida CO2 kapnometriya signali (burunda o'lchanadigan nafas olish signali), shuningdek, RR-intervallari tomonidan yaratilgan (yuqori namunali) signal chizilgan: 

Muammo endi chastota domenini o'zgartirishdan biriga qisqartirildi. Nafas olish tezligini asboblar to'plami yordamida chiqarish mumkin. "Jarayon" funksiyasini chaqirgandan so'ng, qaytariladigan dict{} ob'ektida nafas olish tezligi (Gts da) mavjud. 

Bu quyidagilarga olib keladi: 


Tepalik pozitsiyasining aniqligi haqida 


Yurak urish tezligini tahlil qilishda asosiy nuqta qo'llaniladigan eng yuqori pozitsiyani belgilashning to'g'riligiga bog'liq. Bir lahzali yurak urish tezligini (BPM) olishda eng yuqori nuqtani aniq joylashtirish muhim emas. BPM umumiy ko'rsatkich bo'lib, u butun tahlil qilingan signal (segment) bo'ylab o'rtacha urish oralig'i sifatida hisoblanadi. Bu uni begonalarga nisbatan ancha mustahkam qiladi. 
Biroq, yurak urish tezligi o'zgaruvchanligi (HRV) o'lchovlarini olishda eng yuqori pozitsiyalar juda muhimdir. Misol sifatida ikkita tez-tez qo'llaniladigan o'zgaruvchanlik o'lchovini oling, RMSSD (keyinchalik farqlarning o'rtacha kvadrati) va SDSD (keyinchalik farqlarning standart og'ishi). Quyidagi rasmda ko'rsatilgan yurak urish tezligi ma'lumotlarining segmentini hisobga olgan holda, RMSSD ko'rsatilgandek hisoblanadi. SDSD ketma-ket farqlar orasidagi standart og'ishdir. 

3-rasm - Istalgan cho'qqini aniqlash natijasini ko'rsatadigan rasm, shuningdek RMSSD o'lchovini hisoblash. SDSD o'lchovi ketma-ket farqlar orasidagi standart og'ishdir 
Endi ikkita xatoga yo'l qo'yish mumkinligini ko'rib chiqing: yoki zarba umuman aniqlanmagan (o'tkazib yuborilgan) yoki zarba noto'g'ri vaqt pozitsiyasiga joylashtirilgan (noto'g'ri joylashtirilgan). Bular hisoblangan HRV chiqish ko'rsatkichlariga ta'sir qiladi, ular chekka ko'rsatkichlarga juda sezgir, chunki ular yurak urish tezligi signalidagi cho'qqi-cho'qqi intervallari orasidagi ozgina tabiiy o'zgarishlarni qo'lga kiritish uchun mo'ljallangan! 
Muammoni ko'rsatish uchun biz bir nechta simulyatsiyalarni bajardik. Biz qo'lda izohlangan yurak urish tezligi signalining namunasini oldik va ikkita xato turini kiritdik: 

  • Biz n% cho'qqilarni signaldan tasodifiy tushirdik, faqat ikkita cho'qqi orasidagi intervallarni hisobga olgan holda tahlilni qayta o'tkazdik, ular orasida hech qanday qiymat yo'q edi. 

  • Biz n% cho'qqilarda tasodifiy joylashish xatosini (cho'qqi pozitsiyasining 0,1% - 10%, ya'ni taxminan 1 ms va 100 ms og'ish oralig'ida) kiritdik. 

  • Simulyatsiya n=[5, 10, 20] qiymatlari bilan 10 000 iteratsiya uchun yuklangan. 

Natijalar shuni ko'rsatadiki, noto'g'ri urishning ta'siri etishmayotgan qiymatlardan ancha ustundir . Yuqorida aytib o'tilganidek, lahzali yurak urish tezligi (BPM) deyarli hech qanday sezilarli og'ish ko'rinmaydigan chizmalarda ko'rsatilganidek, tashqi ko'rsatkichlarga sezgir emas. 


4-rasm - Qo'lda izohlangan o'lchovlar (asosiy haqiqat) va n% o'tkazib yuborilgan zarbalarning xato induksiyasi, shuningdek n% zarbalarning aniqlangan pozitsiyasidagi xato induksiyasi (tasodifiy xato 0,1% - 10% yoki 1-100ms) natijalari. 
RMSSD shkalasi odatda +/- 130 dan oshmasligini hisobga oling, SDSD unchalik farq qilmaydi. Bu shuni anglatadiki, hatto bir nechta noto'g'ri aniqlangan tepaliklar allaqachon chiqish o'zgaruvchilariga katta o'lchov xatolarini kiritmoqda. Bu erda tasvirlangan algoritm arzon sensorlardan shovqinli PPG ma'lumotlarini qayta ishlash uchun maxsus ishlab chiqilgan. Asosiy dizayn mezonlari chiqish ko'rsatkichlariga kiritilgan xatolikni minimallashtirish uchun noto'g'ri joylashtirilgan tepaliklar sonini kamaytirish edi. 
Funktsiya haqida ko'proq ma'lumotni hujjatlarning qolgan qismida, shuningdek, bu erdagi texnik hujjatda topish mumkin [6] . Tasdiqlash haqidagi ma'lumotni [5] da topish mumkin . 


Yüklə 223,57 Kb.

Dostları ilə paylaş:
  1   2   3   4   5   6   7   8   9   10




Verilənlər bazası müəlliflik hüququ ilə müdafiə olunur ©azkurs.org 2024
rəhbərliyinə müraciət

gir | qeydiyyatdan keç
    Ana səhifə


yükləyin