You are on page 1of 10

МІНІСТЕРСТВО ОСВІТИ I НАУКИ УКРАЇНИ

НАЦІОНАЛЬНИЙ ТЕХНІЧНИЙ УНІВЕРСИТЕТ


УКРАЇНИ
«КИЇВСЬКИЙ ПОЛІТЕХНІЧНИЙ ІНСТИТУТ
ІМЕНІ ІГОРЯ СІКОРСЬКОГО»
ФАКУЛЬТЕТ БІОМЕДИЧНОЇ ІНЖЕНЕРІЇ
КАФЕДРА БІОМЕДИЧНОЇ КІБЕРНЕТИКИ

Комп’ютерний практикум №8
з дисципліни «Методи та системи штучного інтелекту»
на тему: «Оцінка варіабельності серцевого ритму»

Варіант №14

Виконав:
студент гр. БС-11
Косачевський А. О.
Перевірив:
Піднебесна Г.А.

Зараховано від ___.___._______

___________________________
(підпис викладача)

Київ-2023
Мета роботи: програмно реалізувати визначення та відображення параметрів
серцевого ритму.

Основні задачі роботи:


1. Освоїти процедуру введення інформації з текстових файлів.
2. Побудувати цикли електрокардіограми, використовуючи числові дані з
текстових файлів.
3. Навчитись будувати та відображати ритмограму, скатерограму та
гістограму.
4. Реалізувати процедуру розрахунку індексу напруги (ІН).

Теоретичні відомості

Порушення серцевого ритму можуть періодично реєструвати у здорових


людей, здебільшого вони мають доброякісний перебіг, не позначаючись
негативно на якості їх життя. Однак, порушення ритму серця можуть значно
вплинути на перебіг основного захворювання, несприятливо позначитись на
якості та тривалості життя пацієнтів. Вони можуть набувати загрозливого
характеру, а в ряді випадків бути причиною смерті.
Переважна більшість порушень серцевого ритму може бути розпізнана за
клінічними та електрокардіографічними ознаками. В окремих випадках проводять
спеціальні електрофізіологічні дослідження.
У ряді випадків причиною порушень серцевого ритму є вегетативна
дисфункція, тобто різноманітні за походженням і проявами порушення
вегетативних функцій організму, обумовлені розладом їх регуляції. В одних
випадках вона формується як перманентний патологічний стан, в інших – набуває
пароксизмального або змішаного перебігу.
Аналіз варіабельності ритму серця (ВСР) – це сучасна методика, яка
використовується для визначення вегетативних впливів на серце, а також
напруженості регуляторно-адаптаційних механізмів. Робота серця, у тому числі
частота серцевих скорочень (ЧСС), не є сталою константою та змінюється
залежно від зовнішніх та внутрішніх факторів. Саме ці коливання можуть
охарактеризувати і вегетативну регуляцію серцево-судинної системи (ССС).
Варіабельність ритму можна охарактеризувати як виразність коливань частоти
ЧСС по відношенню до її середньої. Також завдяки ВРС можна визначити ступінь
та можливості адаптаційних процесів.
Аналіз ВРС здійснюється за допомогою часової (статистичної) та частотної
(спектральної) характеристик. Тривалість інтервалів NN може бути оцінена за
допомогою двох підходів: пряме вимірювання інтервалу та визначення по ЧСС у
кожний конкретний момент.
У методиці часового аналізу ВРС використовуються наступні показники
ритмограми:
 NN ( R−R ) середня тривалість інтервалів R−R ;
 SDNN стандартне відхилення всіх нормальних інтервалів R−R . В умовах
гетерогенного ритму характеризує частотну його адаптацію. Також його величина
(дисперсія) корелює з тривалістю оцінки ВСР – чим довше проводиться
реєстрація інтервалів NN, тим більший буде SDNN за рахунок змін варіабельності
у періоди різної активності;
 та інші.
З метою отримання інформації, необхідної для математичного аналізу
серцевого ритму (тобто для оцінки напруги регуляторних механізмів),
проводиться безперервний запис ЕКГ у пацієнтів протягом 2-3 хвилин. Після
вимірювання величини інтервалів R−R (у мм, не менше 100 інтервалів)
складається динамічний ряд, який і піддається статистичній обробці, для цього
розраховуються наступні додаткові показники:
 Мода (Мо, с) – величина довжини інтервалу R−R , яка зустрічається
найчастіше;
 Амплітуда моди (АМо, %) – число інтервалів R−R , відповідних
значенням Мо, яка виражена у відсотках;
 Варіаційний розмах (∆Х, с) – різниця між максимальним і мінімальним

значеннями інтервалів R−R , яка характеризує діяльність автономної регуляції


ритму серця;
 АМо/∆х або індекс вегетативної рівноваги (ІВР, у.о.) – співвідношення
між симпатичною і парасимпатичною регуляціями серцевого ритму.
Отримані дані дають змогу розрахувати індекс напруги (ІН), який
характеризує ступінь функціональної напруги регуляторних механізмів системи
кровообігу. Згідно з одержаними кількісними значеннями ІН, виділяють такі
функціональні стани системи регуляції серцевого ритму:
 Норма. 50 ≤ ІН ≤ 200.
 Переважання активності симпатичного відділу вегетативної нервової
системи. ІН ≥ 200.
 Переважання активності парасимпатичного відділу вегетативної
нервової системи. ІН ≤ 50.

Завдання для комп’ютерного практикуму


1. Реалізувати процедуру введення інформації з текстових файлів Ритм 1.txt
та Ритм 2.txt. Файли містять дискретні відліки реальних ритмограм ( R−R
інтервалів). Дані розміщено в одну колонку (зверху до низу).
2. Необхідно реалізувати наступні процедури:
a) відображення графіків ритмограм;
б) побудова та відображення скатерограм у координатах R−R [i+1 ] ,
R−R [i ] ;
в) побудова та відображення гістограм;
д) розрахунок та відображення параметрів ритму серця відповідно до
табл. 1. Індекс напруги (ІН) обчислити за формулою, приведеною на лекції.

Таблиця 1
Параметри серцевого ритму
Показник Визначення Характеристика

Середня частота серцевих Середній рівень функціонування


ЧСС, уд/хв
скорочень системи кровообігу

Середнє значення тривалості Величина зворотна ЧСС


NN, мс R−R інтервалу

Стандартне відхилення Сумарний ефект впливу


повного масиву симпатичного та парасимпатичного
SDNN, мс
кардіоінтервалів відділів вегетативної системи на
синусів вузол

Мода (найбільш ймовірне Найбільш ймовірний рівень


Mo, мс значення тривалості R−R функціонування ССС
інтервалів)

Амплітуда моди Умовний показник активності


AMo, %
симпатичної ланки регуляції

Різниця між максимальним Максимальна амплітуда


MxDMn,
та мінімальним значеннями регуляторних впливів
мс
кардіоінтервалів

Індекс напруги регуляторних Ступінь напруги регуляторних


ІН
систем систем

3. Результати відобразити в одному графічному вікні з розміткою


координатних осей як показано на рис. 1.
Рис. 1. Скатерограма та гістограма

4. Зробити якісний висновок про характер оброблених ритмограм (ритм


нормальний, регідний або аритмія).

Лістинг програми
from collections import Counter
import statistics
import matplotlib.pyplot as plt

rhythm1 = []
with open('rhythm1.txt') as f:
for line in f:
rhythm1.append(float(line))

rhythm2 = []
with open('rhythm2.txt') as f:
for line in f:
rhythm2.append(float(line))

f.close()
i=0
tt = 0
t1 = []
while i < len(rhythm1):
t1.append(tt)
tt+=0.05
i+=1
i=0
tt = 0
t2 = []
while i < len(rhythm2):
t2.append(tt)
tt+=0.05
i+=1

i = min(rhythm1) - 50
x1 = []
y1 = []
while i < max(rhythm1):
x1.append(i)
y1.append(i)
i+=1

i = min(rhythm2) - 50
x2 = []
y2 = []
while i < max(rhythm2):
x2.append(i)
y2.append(i)
i+=1

attr12 = sum(rhythm1)/len(rhythm1) #NN


attr11 = 60000/attr12 #ЧСС
attr13 = statistics.stdev(rhythm1) #SDNN
b = Counter(rhythm1)
attr14 = b.most_common(1) #Mo
attr15 = attr14[0][1]/len(rhythm1) #AMo
attr16 = max(rhythm1) - min(rhythm1) #MxDMn
attr17 = attr15/(2*attr14[0][0]*attr16)*60000 # ІН

attr22 = sum(rhythm2)/len(rhythm2)
attr21 = 60000/attr22
attr23 = statistics.stdev(rhythm2)
b = Counter(rhythm2)
attr24 = b.most_common(1)
attr25 = attr24[0][1]/len(rhythm2)
attr26 = max(rhythm2) - min(rhythm2)
attr27 = attr25/(2*attr24[0][0]*attr26)

plt.figure(1,figsize=(16,2))
plt.title('Ритмограма №1')
plt.plot(t1,rhythm1), plt.grid

plt.figure(2,figsize=(12,6))
plt.title('Скатерограма №1')
plt.xlabel('RRi+1, сек')
plt.ylabel('RRi, сек')
plt.plot(x1,y1,'r--'), plt.grid
plt.scatter(rhythm1[1:len(rhythm1)],rhythm1[0:len(rhythm1)-1])

plt.figure(3,figsize=(16,2))
plt.title('Гістограма №1')
plt.xlabel('RRi, сек')
plt.ylabel('Кількість RR')
plt.hist(rhythm1,alpha=1)

print('Ритмограма №1')
print(['ЧСС, уд/хв', attr11])
print(['NN, мс', attr12])
print(['SDNN, мс', attr13])
print(['Mo, мс', attr14])
print(['AMo, %', attr15])
print(['MxDMn, мс', attr16])
print(['ІН', attr17],'\n')

plt.figure(4,figsize=(16,2))
plt.title('Ритмограма №2')
plt.plot(t2,rhythm2,'r'), plt.grid

plt.figure(5,figsize=(12,6))
plt.title('Скатерограма №2')
plt.xlabel('RRi+1, сек')
plt.ylabel('RRi, сек')
plt.plot(x2,y2,'g--'), plt.grid
plt.scatter(rhythm2[1:len(rhythm2)],rhythm2[0:len(rhythm2)-1])

plt.figure(6,figsize=(16,2))
plt.title('Гістограма №2')
plt.xlabel('RRi, сек')
plt.ylabel('Кількість RR')
plt.hist(rhythm2)

print('Ритмограма №2')
print(['ЧСС, уд/хв', attr21])
print(['NN, мс', attr22])
print(['SDNN, мс', attr23])
print(['Mo, мс', attr24])
print(['AMo, %', attr25])
print(['MxDMn, мс', attr26])
print(['ІН', attr27])

plt.show()
Результати роботи
Висновки
В результаті виконання комп’ютерного практикуму було програмно
реалізовано процедуру побудову циклі електрокардіограми, їх ритмограми,
скатерограми та гістограми, та розрахунку індексу напруги. Результати наведені
на скріншотах. По ним можна зробити припущення, що в одного пацієнта
(ритмограма №1) ригідний ритм серця, а в другого (ритмограма №2) – аритмія. Це
обосновано тим, що в першій ритмограмі значення кардіоінтервалів стабільні
(хоча і є різкий скачок в середині), а в другій вони дуже різко змінюються. Також,
якщо подивитись на гістограми, то можна сказати, що другий пацієнт більш
здоровий, ніж перший, оскільки в нього вона ближче до нормального розподілу.

You might also like