Добавил:
I want to die Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
2012.doc
Скачиваний:
27
Добавлен:
18.03.2023
Размер:
1.14 Mб
Скачать

6. Исследование алгоритма обнаружения qrs-комплекса

ЦПолотно 1 Полилиния 8

R

ель работы: Исследование алгоритмов формирования модельного сигнала ЭКГ и обнаружения QRS-комплексов.

О

T

сновные положения

Э

Рис. 6.1. Схематическое изображение ЭКГ кардоцикла (PQRST-комплекса)

S

P

Q

лектрокардиограмма (ЭКГ) – это запись колебаний разности потенциалов, возникающих на поверхности тела вследствие электрической активности сердца. На ЭКГ деполяризация предсердий регистрируется как P-зубец, деполяризация желудочков – QRS-комплекс, реполяризация желудочков – T-зубец (см. рис. 6.1). Общепринятыми единицами измерения напряжения в электрокардиографии являются «мВ», но в данной работе для удобства управления программами будут использоваться единицы измерения «мкВ».

В

Рис. 6.2. График кардиоцикла, сформированного моделью ECGSYN

литературе (см. список литературы) предложена модель для формирования морфологии кардиоцикла (ECGSYN), которая генерирует траекторию в трехмерном пространстве с координатами (x, y, z). Квазипериодичность ЭКГ реализуется движением траектории по окружности единичного радиуса в горизонтальной плоскости (x, y). Каждый оборот по этой окружности соответствует одному RR-интервалу. Зубцы P, Q, R, S, T моделируются гауссовыми кривыми в вертикальном направлении по оси z. Положения зубцов определяются соответственно заданным углам (см. рис. 6.2).

Вариабельность сердечного ритма (ВСР) моделируется путём создания модели сигнала, обладающей частотными свойствами, характерными для сигнала ВСР в норме (концентрация мощности в диапазонах частот VLF (0,003-0,04 Гц), LF (0,04-0,15 Гц) и HF (0,15-0,4 Гц)). Последовательность RR-интервалов, соответствующая рассчитанному сигналу, формируется с использованием концепции модели порождения сигнала сердечного ритма, известной как IPFM (Integral Pulse Frequency Modulation, интегральная импульсно-частотная модуляция). Она заключается в следующем – с каждым новым отсчетом сигнала водителя ритма происходит накопление текущего значения RR-интервала. Как только накапливаемое значение достигает уровня сигнала, оно принимается за длительность текущего RR-интервала. Затем алгоритм переходит к следующей итерации.

Задание

  • Создать программу для формирования модельного кардиосигнала.

  • Создать программу обнаружения QRS-комплексов по сигналу ЭКГ.

  • Исследовать алгоритмы формирования модельного сигнала ЭКГ и обнаружения QRS-комплексов.

Порядок выполнения работы

  1. Создайте папку и перепишите в нее библиотеку ВП «ЛР6.llb».

  2. Запустите среду LabVIEW. Создайте новый ВП и сохраните его под именем «Генератор.vi».

Создание программы для формирования модельного сигнала ЭКГ

  1. Для задания частоты дискретизации создайте численный элемент управления и придайте ему значение по умолчанию 250.

  2. Поместите на лицевую панель элемент «Tab Control», создайте у него 4 вкладки и назовите их соответственно «ЭКГ», «Морфология PQRST», «ВСР», «Шумы».

  3. П оместите на диаграмме цикл «While Loop», который останавливался бы при нажатии на кнопку. Продолжайте строить диаграмму внутри него.

  4. Для формирования значений RR-интервала поместите на диаграмму субВП «Генератор_RR.vi» из библиотеки «ЛР6.llb».

  5. Д ля формирования массива значений кардиоцикла поместите на диаграмму субВП «Генератор_кардиоцикл.vi» из библиотеки «ЛР6.llb». Подсоедините к его входным терминалам значения частоты дискретизации и текущего RR-интервала.

  6. Д ля добавления помех к сигналу ЭКГ поместите на диаграмму субВП «Генератор_помехи.vi» из библиотеки «ЛР6.llb». Подсоедините к его входным терминалам значение частоты дискретизации и массив значений текущего кардиоцикла.

  7. Р азмер массива значений кардиоцикла непостоянен, так как он зависит от длительности RR-интервала, принимающего на каждой итерации различные значения. Для того чтобы представить формируемый сигнал в виде фрагментов небольшого размера равной длины поместите на диаграмму субВП «Генератор_Фрагменты.vi» из библиотеки «ЛР6.llb». К входному терминалу «Размер фрагмента» создайте и подсоедините константу со значением 25. Подсоедините к соответствующим входным терминалам частоту дискретизации и сигнал с помехой. На выходе этого субВП будет сформирован массив фрагментов сигнала типа Waveform. Данные этого типа хранят отсчеты фрагмента сигнала, информацию о времени его начала и период дискретизации.

  8. Для отображения на графике формируемого сигнала поместите на диаграмме цикл «For Loop». Перейдите к лицевой панели и создайте на вкладке «ЭКГ» графический элемент «Waveform Chart», назовите его «Сигнал ЭКГ», поместите его на диаграмме внутри созданного цикла и подсоедините к нему массив фрагментов с соответствующего выходного терминала субВП «Генератор_Фрагменты.vi».

  9. Для настройки формата времени на оси «X» графика «Сигнал ЭКГ» вызовите на нем на лицевой панели контекстное меню, выберите пункт «Properties» и откройте вкладку «Display Format». В верхней части вкладки выберите из всплывающего списка ось «Time (X-Axis)». Во всплывающем списке настройки даты выберите пункт «Date unused». В поле «Type» выберите пункт «Relative time» и в правой части вкладки выберите формат времени «HH:MM:SS».

  10. Для отображения сигнала в режиме реального времени рассчитайте вне цикла «For Loop» значение времени , через которое должен выводиться каждый фрагмент сигнала ЭКГ. Оно будет представлять произведение периода дискретизации , размера фрагмента и 1000, для перевода значения в мс . Поместите внутри цикла «For Loop» функцию «Wait Until next ms Multiple» и подсоедините к ней рассчитанное значение времени.

  11. Запустите ВП, убедитесь, что сигнал формируется и выводится в режиме реального времени.

  12. Для интегрирования лицевой панели субВП «Генератор_кардиоцикл.vi» в панель главного ВП поместите на вкладке «Морфология PQRST» элемент «Sub Panel» (Controls >> Modern >> Containers), на диаграмме поместите его вне цикла «While Loop».

  13. Д ля получения ссылки на субВП «Генератор_кардиоцикл.vi» на диаграмме поместите вне цикла «While Loop» элемент «Static VI Reference» (Functions >> Programming >> Application Control). Дважды щелкните по нему мышью и выберите необходимый субВП. Соедините ссылку и входной терминал «Sub Panel».

  14. Аналогичным образом интегрируйте лицевые панели субВП «Генератор_RR.vi» на вкладку «ВСР» и «Генератор_помехи.vi» на вкладку «Шумы».

  15. Перед запуском ВП убедитесь, что были закрыты все субВП, лицевые панели которых будут интегрироваться в ВП.

  16. Запустите ВП и убедитесь, что программа работает. Настройте размер элементов «Sub Panel» так, чтобы интегрированные панели полностью помещалась в них.

  17. Для того чтобы обеспечить передачу данных между двумя ВП необходимо создать специальный буфер «очередь». В неё ВП «Генератор.vi» будет записывать данные, а ВП «Приемник.vi», который будет создан далее – считывать. Функции для работы с очередью находятся в палитре функций (Functions >> Programming >> Synchronization >> Queue Operations). Поместите вне цикла «While Loop» функцию для получения о череди «Obtain Queue». К входному терминалу «name» создайте строковую константу и придайте ей значение «ECG queue». Создайте с помощью функции «Array Constant» и численной константы с плавающей точкой пустой численный массив и подсоедините его к входному терминалу «element data type».

  18. Д ля того чтобы записать в очередь данные, поместите внутри цикла «For Loop» функцию «Enqueue Element». Подсоедините к его входному терминалу «queue» очередь с выходного терминала «queue out» у функции «Obtain Queue». Для извлечения массива значений из фрагмента сигнала ЭКГ поместите функцию «Get Waveform Components» (Functions >> Programming >> Waveform). Подсоедините к её входу фрагмент сигнала. Соедините выходной терминал «Y» с входным терминалом «element» у функции «Enqueue Element».

  19. Запустите ВП и убедитесь, что он работает.

Создание программы для обнаружения QRS-комплексов

  1. Создайте новый ВП и сохраните его под именем «Приемник.vi».

  2. Получите очередь аналогично тому, как это было сделано в ВП «Генератор.vi», с тем же самым именем.

  3. Д ля очистки очереди каждый раз при новом запуске ВП «Приемник.vi» установите функцию «Flush queue» и подсоедините к её входным терминалам очередь и кластер ошибок.

  4. Создайте элемент управления частотой дискретизации и придайте ей значение по умолчанию 250.

  5. Установите на диаграмме цикл «While Loop», который останавливался бы при нажатии на кнопку. Далее стройте диаграмму внутри этого цикла.

  6. Для считывания данных из очереди установите на диаграмме функцию «Dequeue Element». Подсоедините к её соответствующим входным терминалам очередь и кластер ошибок от функции «Flush queue».

  7. Для задания времени ожидания данных в очереди создайте и подсоедините к входному терминалу «time out in ms» у ВП «Dequeue Element» константу со значением 50.

  8. Для обработки ситуаций, связанных с задержкой и поступлением данных в очередь, создайте структуру «Case Structure». Подсоедините к её границе выходной терминал «element» у ВП «Dequeue Element», на который выводятся считанные из очереди данные. Подсоедините к входному терминалу «?» выходной терминал «timed out?» у ВП «Dequeue Element».

  9. Случай «true», будет соответствовать отсутствию данных в очереди, поэтому его оставьте пустым. Случай «false» будет соответствовать поступлению данных, поэтому дальнейшее построение диаграммы и все последующие вычисления будут осуществляться именно в случае «false».

  10. Д ля отображения графика принятого сигнала поместите на диаграмме субВП «Приемник_График.vi» из библиотеки «ЛР6.llb».

  11. П одайте на его соответствующие входные терминалы значение частоты дискретизации и массив значений сигнала ЭКГ из выходного терминала «element» у функции «Dequeue Element». Создайте элемент индикации для выходного терминала «График сигнала».

  12. Сохраните ВП. Запустите ВП «Генератор.vi» и «Приемник.vi». Убедитесь, что сигнал записывается в первом ВП, загружается и отображается во втором ВП.

  13. П ерейдите к диаграмме ВП «Приемник.vi». Для адаптивной фильтрации сетевой наводки поместите на диаграмме структуру «Case Structure». К её входному терминалу «?» создайте элемент управления, установите в случае «true» субВП «Адаптивный фильтр 50 Гц.vi» из библиотеки «ЛР6.llb».

  14. Создайте для входных терминалов «Шаг адаптации» и «Частота наводки» элементы управления. Подайте на входные терминалы «Сигнал» и «Частота дискр., Гц» соответственно массив значений ЭКГ и частоту дискретизации. В случае «false» проведите сигнал без изменений.

  15. Для осуществления обработки сигнала дифференцирующим фильтром установите на диаграмме структуру «Case Structure». Создайте элемент управления к её входному терминалу «?». Установите в случае «true» ВП «FIR Filter with I.C.» (Functions >> Signal Processing >> Filters >> Advanced FIR).

  16. Подайте на его входной терминал «X» сигнал ЭКГ после адаптивной фильтрации. К входному терминалу «FIR Coefficients» создайте и подсоедините константу, представляющую собой массив, и проинициализируйте первые три элемента соответственно значениями 1, 0, –1. Соедините выходной терминал «Final X Conditions» через узел обратной связи с входным терминалом «Initial X Conditions».

  17. Д ля того чтобы фильтрованный сигнал взять по модулю установите на диаграмме функцию «Absolute Value» (Functions >> Programming >> Numeric). Подайте ей на вход сигнал, обработанный дифференцирующим фильтром. В случае «false» проведите сигнал без изменений.

  18. Д ля определения положений R- зубцов установите на диаграмме субВП «Детектор QRS-комплекса.vi» из библиотеки «ЛР6.llb». Для обнаружения QRS-комплексов использован следующий алгоритм: последовательные отсчеты сигнала сравниваются со значением порога; если для какого-либо отсчета порог превышен, то зубец считается обнаруженным; следующие 200 мс сигнала пропускаются (это соответствует зоне нечувствительности алгоритма) и процедура поиска продолжается далее.

  19. П одсоедините к входному терминалу «Сигнал» у субВП «Детектор QRS-комплекса.vi» сигнал ЭКГ после обработки дифференцирующим фильтром, к «Частота дискр., Гц» – значение частоты дискретизации. Создайте для его входных терминалов «Порог, мкВ», «Зона нечувств-сти, мс» элементы управления, задайте для последнего значение по умолчанию 200 мс. Для иллюстрации работы детектора QRS-комплекса создайте графический индикатор к выходному терминалу «График» у субВП «Детектор QRS-комплекса.vi».

  20. Для построения графика ритмограммы установите на диаграмме субВП «Ритмограмма.vi» из библиотеки «ЛР6.llb».

  21. Подсоедините к его соответствующим входным терминалам частоту дискретизации и положения R-зубцов от субВП «Детектор QRS-комплекса.vi». Создайте элемент управления к входному терминалу «Очистить» для очистки графика ритмограммы.

  22. Создайте элемент индикации к выходному терминалу «R», который будет мигать при каждом обнаружении нового QRS-комплекса, и графический элемент к терминалу «Ритмограмма».

  23. Сохраните ВП. Разместите компактно и эргономично элементы индикации и управления на лицевой панели.

Исследование детектора QRS-комплекса

  1. Запустите генератор ЭКГ.

  2. Откройте вкладку «Морфология PQRST». Сохраните в отчет графики двухмерного и трехмерного представлений PQRST-комплекса, а также значения параметров морфологии зубцов кардиоцикла (амплитуда, ширина и положение зубцов).

  3. Откройте вкладку «ВСР». Установите ЧСС 60 уд/мин. Сохраните в отчет текущие настройки ВСР, график СПМ ВСР, и график, иллюстрирующий процесс формирования длительности RR-интервалов.

  4. Для того чтобы каждый последующий RR-интервал имел постоянную длительность, определяемую ЧСС, временно отключите ВСР.

  5. На вкладке «Шумы» отключите все помехи.

  6. Сохраните график формируемого сигнала ЭКГ в отчет.

ЭКГ без помех

  1. Запустите приемник сигнала.

  2. Сохраните в отчет график принятого сигнала ЭКГ.

  3. Отключите дифференцирующий фильтр.

  4. Очистите график ритмограммы.

  5. Попробуйте подобрать такое значение порога детектора QRS-комплекса, при котором значение RR-интервалов определялось бы корректно (ЧСС = 60 уд./мин соответствует RR-интервалу = 1000 мс). Сохраните это значение в отчет. Сохраните в отчет график, иллюстрирующий работу QRS-детектора.

  6. Накопите несколько значений RR-интервалов и сохраните в отчет график ритмограммы.

  7. Включите дифференцирующий фильтр. Повторите пункт 54-56.

  8. Сделайте вывод о том, как изменилась эффективность детектора QRS-комплекса при использовании дифференцирующего фильтра.

ЭКГ с помехами дыхания

  1. Откройте лицевую панель генератора ЭКГ.

  2. Откройте вкладку «Шумы» и добавьте к ЭКГ помеху, вызванную дыханием с частотой 15 вдох./мин. и амплитудой 1500 мкВ и смещением изолинии 1000 мкВ. Отключите другие помехи. Сохраните график формируемого сигнала в отчет.

  3. Откройте лицевую панель приемника ЭКГ и повторите пункты 52-58.

ЭКГ с измененной формой PQRST

  1. Откройте лицевую панель генератора ЭКГ. Откройте вкладку «Шумы». Добавьте к сигналу гауссовский шум и отключите другие помехи.

  2. Установите значение отношения сигнал/помеха SNR (signal to noise ratio), равным 30.

  3. На вкладке «Морфология PQRST» установите значения амплитуды зубцов в соответствии с вашим вариантом (см. табл. П.6). Значения ширины и положения зубцов оставьте прежними.

  4. Сохраните в отчет графики двухмерного и трехмерного представлений кардиоцикла, график ЭКГ.

  5. Откройте лицевую панель приемника ЭКГ и повторите пункты 52-58.

ЭКГ с гауссовским шумом

  1. Откройте лицевую панель генератора ЭКГ. Назначьте амплитуде зубцов PQRST-комплекса значения по умолчанию. Откройте вкладку «Шумы». Оставьте включенным гауссовский шум и выключенными другие помехи.

  2. Установите значение частоты среза фильтра для шума равное 100 Гц. Для этого либо передвиньте курсор на графике СПМ шума, либо установите значение с помощью соответствующего элемента управления.

  3. Установите значение SNR равным 75. Сохраните графики СПМ шума и формируемого сигнала в отчет.

  4. Откройте лицевую панель приемника ЭКГ, отключите дифференцирующий фильтр.

  5. Очистите график ритмограммы.

  6. Постепенно уменьшая значение SNR и подбирая значение порога детектора QRS-комплекса, определите минимальное значение SNR, при котором детектор способен эффективно определять QRS-комплекс.

  7. Для минимального значения SNR сохраните в отчет график СПМ шума, график, иллюстрирующий работу QRS-детектора, значения SNR и порога, график принятого сигнала.

  8. Установите значение SNR равным 75.

  9. Включите дифференцирующий фильтр. Повторите пункты 71-73.

  10. Сделайте вывод о том, как изменилась эффективность детектора QRS-комплекса, при использовании дифференцирующего фильтра.

ЭКГ со всеми помехами и ВСР

  1. Откройте лицевую панель генератора ЭКГ. Добавьте к ЭКГ сигналу помехи, вызванные дыханием (1500 мкВ), смещением изолинии (1000 мкВ); гауссовский шум (SNR 30, частота среза фильтра для шума 100 Гц); сетевую наводку (2000 мкВ, частота 50 Гц).

  2. Откройте вкладку «ВСР» и включите вариабельность сердечного ритма, задайте значение ЧСС 90 уд/мин, параметрам ВСР VLF = 500 мс2, LF = 1000 мс2, HF = 1500 мс2.

  3. Сохраните в отчет график СПМ ВСР, и график, иллюстрирующий процесс формирования длительности RR-интервалов.

  4. Сохраните график формируемого сигнала в отчет.

  5. Откройте лицевую панель приемника ЭКГ, включите и настройте адаптивный фильтр сетевой наводки, оставьте включенным дифференцирующий фильтр.

  6. Попробуйте подобрать такое значение порога детектора QRS-комплекса, при котором значение RR-интервалов определялось бы корректно, и сохраните его в отчет. Сохраните в отчет график, иллюстрирующий работу QRS-детектора.

  7. Для того чтобы сравнить графики ритмограмм, построенные генератором и приемником ЭКГ, откройте «Приемник.vi» и очистите график ритмограммы. Откройте ВП «Генератор.vi», перейдите к вкладке «ВСР» и также очистите график ритмограммы с помощью кнопки «Очистить», расположенной под графиком. Накопите 50 отсчетов RR-интервалов, и сохраните графики ритмограмм в отчет, сравните их визуально и сделайте вывод об эффективности работы детектора QRS-комплекса.

Список рекомендуемой литературы

Айфичер Э. С., Джервис Б. У. Цифровая обработка сигналов: практический подход. 2-е изд. / Пер. с англ. М.: ИД «Вильямс», 2004.

Дюк В., Эмануэль В. Информационные технологии в медико-биологи­ческих исследованиях. СПб.: Питер, 2003.

Марпл-мл. С. Л. Цифровой спектральный анализ и его приложения / Пер. с англ. М.: Мир, 1990.

Микрокомпьютерные медицинские системы: проектирование и применение / Под ред. У. Томпкинса, Дж. Уэбстера: пер. с англ. М.: Мир, 1983.

Основы цифровой обработки сигналов: курс лекций / А. И. Солонина, Д. А. Улахович, С. М. Арбузов и др. СПб.: БХВ-Петербург, 2003.

Рангайян Р. М. Анализ биомедицинских сигналов: пер. с англ. А. Н. Калиниченко / Под ред. А. П. Немирко. М.: Физматлит, 2007.

Сергиенко А. Б. Цифровая обработка сигналов. СПб.: Питер, 2007.

Тревис Дж., LabVIEW для всех. М.: ДМК Пресс; ПриборКомплект, 2005.

Уидроу Б., Стирнз С. Адаптивная обработка сигналов М.: Радио и связь, 1989.

Хемминг Р. В. Цифровые фильтры: пер. с англ. М.: Сов. радио, 1980.

Clifford G., Azuaje F., McSharry P. Advanced Methods and Tools for ECG Data Analysis: Artech House, 2006.

ПРИЛОЖЕНИЕ

ТАБЛИЦЫ ВАРИАНТОВ ДЛЯ РАБОТ

Таблица П.1

Вар.

Функция

1

2

3

4

5

6

7

8

9

10


Таблица П.2 Таблица П.3 Таблица П.4

Вар.

Файл

1

001.txt

2

002.txt

3

003.txt

4

004.txt

5

005.txt

6

006.txt

7

007.txt

8

008.txt

9

009.txt

10

010.txt


Вар.

Файл

1

1.dat

2

2.dat

3

3.dat

4

4.dat

5

5.dat

6

6.dat

7

7.dat

8

8.dat

9

9.dat

10

10.dat


Вар.

Файл

1

001.txt

2

002.txt

3

003.txt

4

004.txt

5

005.txt

6

006.txt

7

007.txt

8

008.txt

9

009.txt

10

010.txt


Таблица П.5

Вар.

Файл

Нач. точка 1, с

Нач. точка 2, с

Длина, с

1

1.txt

300

800

300

2

2. txt

100

700

300

3

3. txt

200

800

300

4

4. txt

400

900

300

5

5. txt

500

1300

300

6

6. txt

200

1000

300

7

7. txt

200

800

300

8

8. txt

400

900

300

9

9. txt

600

1500

300

10

10. txt

400

800

300

Таблица П.6

Вар.

Амплитуда зубцов, мкВ

P

Q

R

S

T-

T+

1

130

-100

300

-900

100

200

2

120

-110

350

-850

120

220

3

110

-120

400

-825

130

260

4

100

-130

450

-800

160

280

5

90

-140

500

-775

200

320

6

80

-150

300

-750

100

200

7

70

-160

350

-725

120

220

8

60

-170

400

-700

130

260

9

50

-180

450

-675

160

280

10

40

-190

500

-650

200

320

ОГЛАВЛЕНИЕ

Введение

Общие указания 4

Лабораторная работа №1. СОЗДАНИЕ ВИРТУАЛЬНЫХ ПРИБОРОВ В СРЕДЕ LABVIEW 5

Лабораторная работа №2. МОДЕЛИРОВАНИЕ ЦИФРОВОЙ ФИЛЬТРАЦИИ БИОМЕДИЦИНСКИХ СИГНАЛОВ

Лабораторная работа №3. ИССЛЕДОВАНИЕ МЕТОДА ВЕКТОРКАРДИОГРАФИИ

Лабораторная работа №4. ИССЛЕДОВАНИЕ ЧАСТОТНОГО АНАЛИЗА ЭЭГ

Лабораторная работа №5. ИССЛЕДОВАНИЕ ВАРИАБЕЛЬНОСТИ СЕРДЕЧНОГО РИТМА И АРТЕРИАЛЬНОГО ДАВЛЕНИЯ

6. ИССЛЕДОВАНИЕ АЛГОРИТМА ОБНАРУЖЕНИЯ QRS-КОМПЛЕКСА

Список рекомендуемой литературы

Приложение. ТАБЛИЦЫ ВАРИАНТОВ ДЛЯ РАБОТ

Якушенко Евгений Сергеевич, Саламонова Ирина Сергеевна, Калиниченко Александр Николаевич, Немирко Анатолий Павлович

Методические указания

к лабораторным работам

––––––––––––––––––––––––––––––––––––––––––––––

––––––––––––––––––––––––––––––––––––––––––––––

Издательство СПбГЭТУ «ЛЭТИ»