Professional Documents
Culture Documents
Прак 8 штуч інтел
Прак 8 штуч інтел
Комп’ютерний практикум №8
з дисципліни «Методи та системи штучного інтелекту»
на тему: «Оцінка варіабельності серцевого ритму»
Варіант №14
Виконав:
студент гр. БС-11
Косачевський А. О.
Перевірив:
Піднебесна Г.А.
___________________________
(підпис викладача)
Київ-2023
Мета роботи: програмно реалізувати визначення та відображення параметрів
серцевого ритму.
Теоретичні відомості
Таблиця 1
Параметри серцевого ритму
Показник Визначення Характеристика
Лістинг програми
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
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) – аритмія. Це
обосновано тим, що в першій ритмограмі значення кардіоінтервалів стабільні
(хоча і є різкий скачок в середині), а в другій вони дуже різко змінюються. Також,
якщо подивитись на гістограми, то можна сказати, що другий пацієнт більш
здоровий, ніж перший, оскільки в нього вона ближче до нормального розподілу.