LabVIEW и вариабельность сердечного ритма

в 13:08, , рубрики: вариабельность сердечного ритма, Песочница, Программирование, метки: ,

Добрый день, всем! Учусь я в техническом вузе и занимаюсь разработкой программных и аппаратных средств для обработки и регистрации биомедицинских сигналов и данных. Поскольку начал этим заниматься около трех лет назад, в настоящее время скопились некоторые наработки, с одной из которых я бы хотел вас и познакомить.

История развития

Наверное, одним из самых распространенных биомедсигналов является электрокардиосигнал. Именно его обработкой и занимается наш преподавательский состав. Сигнал этот относительно легко получить. В настоящее время достаточно всего лишь двух электродов, прикладываемых к телу человека, чтобы увидеть электрокардиограмму. Но в нашей работе мы использовали три электрода по стандартной схеме Эйнтховена:

LabVIEW и вариабельность сердечного ритма

Работа началась с построения аппаратной части устройства. Вся схема была собрана сначала на макетнице. Сама по себе схема простая: усилитель AD620, контроллер вообще типичнее некуда – Atmega16, а вот АЦП AD7739(сигма-дельта, 8 каналов и аж 24 разряда, но мы использовали 16). До моего подключения к работе схема была уже рабочей, как я сказал, собрана на макетке. Но посмотреть, что же выдает АЦП можно было только через звуковой редактор с применением фильтрации. То есть режима реального времени никакого не было. Писали в файл, смотрели и всё тут.

В начале было страшновато за всё это браться, поскольку опыта не было никакого. Но стоять на месте тоже не хотелось, поскольку бесконечные лабораторки и лекции были привычной обыденностью и хотелось чего-то еще. Началось все, что называется, по-маленьку. Начал разбираться с программой для контроллера, где проводилась инициализация АЦП, прием выборок и передача их в порт. Система команд, книжки по микроконтроллерам, баловство со светодиодам…Потом постепенно с руководителем начали ставить мини-задачки по данному девайсу, которые я решал за разные временные интервалы.

И в один прекрасный день было принято решение визуализировать сигнал и проделать его дальнейшую обработку. Поскольку наши кафедральные однополчане имеют некий опыт в разработке систем в среде LabVIEW, то и мы решили также дерзнуть и разобраться в данной среде. Я далеко-далеко не первый, кто может говорит об этом, но изучение того или иного программного продукта, среды, языка программирования в разы быстрее, когда перед тобой стоит конкретная задача. Ты набираешься опыта решая, обдумывая те или иные структуры, алгоритмы, когда есть к чему стремиться, а не когда просто что-то читаешь. Да и запоминается решением гораздо эффективнее. Впрочем это и ежику понятно.

Софт для анализа ритма сердца

Хотелось бы перейти непосредственно к самому программному продукту, который получился в результате наших трудов. Когда я спросил одного опытного LabVIEW-разработчика, сколько он в среднем времени тратит на написание софта, он ответил, что программу можно писать от двух недель до бесконечности. И действительно, всегда хочется что-то подработать в своем якобы конечном варианте…это правда.
Итак, программа для анализа вариабельности сердечного ритма включает в себя два основных режима. Это регистрация ЭКГ-сигнала и его последующий анализ. В первом режиме происходит регистрация ЭКГ и ритмограммы и параллельная запись данных в файл. Посмотрим как это выглядит на лицевой панели:

LabVIEW и вариабельность сердечного ритма

и блок-диаграмме:

LabVIEW и вариабельность сердечного ритма

Режим обработки кардиоинтевалограммы намного сложнее, чем сама регистрация. И включает в себя несколько составляющих. Во-первых происходит расчет статистических характеристик ритмограммы, таких как HR, MxDMn, Mn, Mx, SDNN, CV, D, RRср, RMSSD, PNN50, SI. Последний из перечислимых – индекс напряженности регуляторных систем (SI), вычисляется на основе сформированной методом вариационной пульсометрии гистограммы. Формула для него следующая:

LabVIEW и вариабельность сердечного ритма

Где Amo – амплитуда моды гистограммы, Mo – мода гистограммы, MxDMn – разница между наибольшим и наименьшим RR-интервалами.

Под гистограммой понимается графическое изображение сгруппированных значений сердечных интервалов, где по оси абсцисс откладываются временные значения, по оси ординат их количество в процентах [1]. Для построения гистограммы использовалась функция General Histogram.
Фактически всё это множество различных параметров представляют собой ничто иное, как статистическую обработку ритма сердца. А ритм сердца или ритмограмма — это массив значений длительностей RR-интервалов, т.е. временного расстояния между двумя самыми большими пиками ЭКГ.(но можно брать не только RR, но и другие зубцы). Так вот эти параметры – это те же самые СКО, дисперсия, max и min, которые повсеместно используются в статистике. Просто некоторые из них названы по-другому, а некоторые немного «накручены». Вот так выглядит БД для вытаскивания из ЭКГ непосредственно ритма.

LabVIEW и вариабельность сердечного ритма

А это лицевая панель вкладки анализа статистических характеристик:

LabVIEW и вариабельность сердечного ритма

Наряду с вышеперечисленными характеристиками в этом же окне отображается скаттерграмма, представляющая реализацию метода корреляционной ритмографии. Это метод графического представления динамического ряда кардиоинтервалов в виде «облака» путем построение ряда точек в прямоугольной системе координат. При этом по оси ординат откладывается каждый текущий RR-интервал, а по оси абсцисс каждый последующий [2]. Блок-диаграмма выглядит следующим образом:

LabVIEW и вариабельность сердечного ритма

Немало времени было уделено на разработку спектрального анализа ритма. При спектральном анализе оценивается вклад тех или иных периодических составляющих в динамику изменений ЧСС. С этой целью оценивается так называемая спектральная мощность колебаний, соответствующая каждому выявленному периоду. Спектральные методы применяются почти исключительно для анализа коротких участков ритмограммы — от 2 до 5 минут [3]. Границы каждого периоды в отечественной врачебной практике недавно были нормированы на одном из крупных собраний специалистов этой области. Теперь есть конкретные значения для каждого частотного диапазона. К сожалению, блок-диаграмма спектрального анализа настолько огромная, что выложить ее не получиться. Но вот картинку привести можно.

LabVIEW и вариабельность сердечного ритма

Ну и вкратце про автокорреляционный анализ. Автокорреляционная функция (АКФ) графически представляет собой статистическую взаимосвязь каждого последующего интервала RR с предыдущими и отражает степень централизации управления процессами регуляции. При создании АКФ использовалась функция Correlation Coefficient из палитры Probability and Statistics. На самом деле по стандарту, на который я опирался, мне так и не удалось получить результаты данной функции похожие на истинные значения. Так что есть, над чем поработать.

LabVIEW и вариабельность сердечного ритма

Как-то после летнего отпуска и прочтения книги Блюма «Стиль программирования» мне сразу захотелось приукрасить и оформить свой проект, что бы глаз радовался. Вот что приблизительно получилось. Это кстати блок-диаграмма для анализа ритмограммы.

LabVIEW и вариабельность сердечного ритма

Немного о фильтрации

Как видите в обоих режимах большое количество подприборов, ну а куда без них. Сопряжение с железом сделано на VISA. Скорость порта максимальная 115200. Для выбора режимов я поставил case-структуру и завел на логический вход Tab-панель. Это конечно не лучший вариант. Но пока вот так. Спектр кардиосигнала, по последним данным, может достигать максимальных частот в районе 500 Гц. Но учитывая, что в наших районных больницах кардиографы «режут» всё где-то после 30 Гц, то мы настроили цифровые фильтры на ограничение ширины спектра от 0 до 100 Гц. Да…сколько мы с этими фильтрами возились!!! И БИХ, и КИХ, и что только не перепробовали. Но результат есть. Устройство работает и производит регистрацию ЭКГ в режиме реального времени с одновременной визуализацией данных, записью массива данных в файл и с записью результатов проведенного исследования и данных о пациенте в файл.

В последнее время мы включили в программу анализ данных еще и с помощью нелинейных методик. Хочется отметить также, что некоторые компоненты данной обработки служат нам для оценки эмоционального состояния испытуемого, но над этим мы только начали работать. Да, совсем забыл… аппаратную часть мы решили сделать нормально на печатной плате, поскольку на макетницы бывают часты замыкания и разрывы. В итоге в этой работе я еще и с ЛУТом потренировался, да и пайки не мало было. К тому же устройство мы спрятали в корпус, довольно красивый. А само устройство выглядит вот так:

LabVIEW и вариабельность сердечного ритма

В ходе проектирования данной программы я опирался вот на эти стандарты ВСР. www.vestar.ru/article_print.jsp?id=1267

Литература

1. Клиническое значение исследования вариабельности сердечного ритма и методики ее оценки. www.hrv.rcbkb.com/2010/05/klinicheskoe-znachenie-issledovanija_7695.html
2. Дембо А.Г., Земцовский Э.В. Спортивная кардиология: Руководство для врачей. ─ Л.: Медицина, 1989. – 464 с.
3. Беляев К.Р. Методы анализа вариабельности сердца. konstb.newmail.ru/liter/hrv/UchPos2.htm

Автор: Kvanto25

Источник

  1. Адиль:

    Kvanto25 нужно поговорить

* - обязательные к заполнению поля


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js