В рамках выполнения проекта Рособразования по проекту № 2.2.3.3/3111 «Разработка средств диагностики и экспресс-методов, основанных на применении медицинских наноэлектродов, для оценки физического и психоэмоционального состояния здоровья обучающихся» аналитической ведомственной целевой программы «Развитие научного потенциала высшей школы (2009-2010 годы)» разработан аппаратно-программный комплекс (АПК) на наноэлектродах для оценки физического и психоэмоционального состояния обучающихся.
В своем составе АПК имеет 31 канал:
- 12 электрокардиографических каналов;
- 21 электроэнцефалографический канал;
- 2 электроокулографических канала;
- 1 электромиографический канал;
- 1 для исследования кожно-гальванической реакции (КГР).
Аппаратура работает в полосе от 0 до 10000 Гц и предназначена для определения ранних признаков нарушений физического и психоэмоционального состояния у студентов. Каналы могут использоваться частично, для регистрации отдельных видов сигналов, а при необходимости может использоваться весь имеющийся набор каналов.
В процессе развития программной части комплекса была разработана программа обработки сигналов (электрокардиограмма, электроэнцефалограмма, электромиограмма, электроокулограмма и кожно-гальваническая реакция) StudentHealth (‘Здоровье студентов´). Программа состоит из трех независимых частей:
- чтение и просмотр сигналов;
- энергия по интервалам;
- просмотр длинных записей.
Программа имеет главное окно со списком программ (окон), осуществляющих решение различных крупных задач. Это окно имеет вид, как показано на рис. 1.
Программа «Чтение и просмотр сигналов» предназначена для чтения сигналов. Программа осуществляет чтение и обработку сигналов достаточно короткой длины (не более 30 мин). Она содержит несколько страниц для организации последовательной обработки и исследования сигнала:
- Исходное.
- Вырезанный фрагмент.
- ЧСС (частота сердечных сокращений).
- Ручной.
- Осреднение.
- Настройки.
Эта программа имеет вид, как показано на рис. 2.
Рис. 1. Главное окно программы StudentHealth
Рис. 2. Окно программы «Чтение и просмотр сигналов». Страница ‘Исходное´
Программа содержит типовые элементы для интерфейса программ, как-то основное меню программы и панель инструментов, куда вынесены наиболее часто используемые команды, а также несколько страниц с элементами отображения данных и управления. Каждая страница предназначена для решения конкретного этапа в процессе обработки сигнала.
Страница ‘Исходное´ предназначена для выбора требуемого файла данных и его чтения. Пользователь, используя типовое окно открытия файла, может указать программе необходимый файл. При этом программа отображает имя выбранного файла, количество отсчетов в этом файле и длительность этого сигнала по времени. После дополнительной проверки правильности выбранного файла выполняется загрузка указанного файла и производится отображение данных в исходных отсчетах (в том виде, как они записаны).
После загрузки и отображения всей длительности данных из файла пользователю предоставляется возможность просмотреть в увеличенном виде любой фрагмент сигнала.
Для детального исследования загруженных данных интерфейс программы предоставляет возможность пользователю выделить требуемый интервал с точностью до секунды или даже с точностью до отдельного отсчета. Помимо этого, для выделенного фрагмента пользователь может указать постоянную величину, которую необходимо вычесть из значений отсчетов данного фрагмента (вычесть тренд), а также пользователь может задать коэффициент масштабирования для приведения имеющихся данных в отсчетах к размерности реальных данных.
По кнопке <Преобразовать> программа выделяет указанный фрагмент, вычитает тренд и масштабирует каждый отсчет, отображает полученный сигнал на странице ‘Вырезанный фрагмент´ и автоматически переходит на указанную страницу.
Страница ‘Вырезанный фрагмент´ имеет вид, как на рис. 3. Эта страница содержит окно для отображения выделенного фрагмента сигнала в реальном масштабе, окно для отображения АЧХ выделенного фрагмента, а также кнопки для выполнения дискретного преобразования Фурье для этого фрагмента сигнала [1]. В окнах исходного сигнала и АЧХ пользователь может выполнять масштабирование и просматривать сигнал детально [2].
Рис. 3. Страница ‘Вырезанный фрагмент´ программы
Для выполнения процедуры ДПФ была разработана специальная подпрограмма. Классическая процедура выполнения ДПФ работает очень медленно, а процедура БПФ требует, чтобы массив имел исключительно длительности n = 2N. Разработанная процедура позволяет выполнять ДПФ над массивами данных длины n = 2N. То есть может быть рассчитан для любого массива четной длины. Но эффективность алгоритма возрастает, если длина массива может быть выражена числом n = k×a, при этом a = 2A, и A достаточно велико. Для контроля работы процедуры на коротких последовательностях используется классическая подпрограмма ДПФ [1].
Страница ‘ЧСС´ предназначена для вычисления частоты сердечных сокращений на выделенном фрагменте сигнала. Результаты вычислений сердечных сокращений могут отображаться в виде графика частоты (пульса, ударов в минуту), или в виде длительности между ударами (в секундах). Страница содержит окна для отображения исходного сигнала в реальном масштабе и отображения построенного графика ЧСС. Помимо этого, страница содержит окна настройки процесса выделения реперных точек (R отсчетов) на текущем фрагменте кардиосигнала и кнопки для инициализации процесса. Вид страницы ‘ЧСС´ приведен на рис. 4.
Рис. 4. Страница ‘ЧСС´ программы
Разработанный алгоритм является адаптивным. Перед стартом программы пользователь указывает пробный интервал, соответствующий единственному сокращению сердца, в начале фрагмента. В ходе работы алгоритм определяет текущую длину интервала между сердечными сокращениями и увеличивает или сокращает длину тестового интервала для поиска очередного пика (R отсчета) в кардиосигнале.
К сожалению, форма исходных кардиосигналов, не прошедших предварительную обработку, например фильтрование паразитных составляющих, имеет сложную форму. К тому же при наличии тех или иных патологий форма сигнала искажается (что в дальнейшем и позволяет выявлять патологию по его форме). Все это приводит к ошибкам в результатах работы этой процедуры.
Для повышения устойчивости работы алгоритма выделения реперной точки был разработан алгоритм с предварительной обработкой сигнала. На странице ‘ЧСС´ можно инициировать процедуру подсчета ЧСС с предварительным осреднением сигнала. Для просмотра промежуточных результатов работы алгоритма с осреднением можно обратиться к странице ‘Осреднение´. Вид этой страницы приведен на рис. 5.
Рис. 5. Страница ‘Осреднение´ программы
На странице ‘Осреднение´ можно указать длину интервала осреднения, а после выполнения процесса осреднения и вычисления ЧСС в деталях просмотреть, какая линия осреднения была сформирована процедурой и как стал выглядеть сигнал после вычитания этой средней линии. Полученные реперные точки и график ЧСС отображаются на странице ‘ЧСС´.
Страница ‘Ручной´ позволяет производить исследование индивидуально для зарегистрированных сигналов. На этой странице пользователь может расставить маркеры на важные реперные точки P, Q, R, S ,T и др. и выполнить расчет их параметров, в частности, расстояние между этими точками и разность значений в этих точках.
Страница ‘Настройки´ позволяет выполнять настройки параметров при проведении процедуры ЧСС и печати.
Программа ‘Просмотр длинных записей´ предназначена для чтения зарегистрированных сигналов по частям. Программа предназначена для чтения и обработки достаточно коротких фрагментов из длинного файла, но не более 30 мин. Она содержит несколько страниц для организации последовательной обработки и исследования сигнала:
- Исходное.
- Вырезанный фрагмент.
- Настройки.
На странице ‘Исходное´ пользователь может указать длину реализации, которую необходимо считывать, а также указать, с каким ‘захлестом´ считывать следующую/предыдущую порцию данных, то есть при чтении и визуализации второго фрагмента данных считывание производится не строго со следующего отсчета, а так, чтобы малый конечный участок первой порции повторно визуализировался в окне отображения сигнала как начальные отсчеты. Аналогично чтение выполняется и при просмотре сигнала в обратном порядке, то есть при переходе к предыдущему фрагменту, конечные отсчеты являются повторным отображением начальных отсчетов ранее показанного фрагмента.
Аналогично программе ‘Чтение и просмотр сигналов´ по каждой порции прочитанного сигнала пользователь может провести анализ, в частности, посмотреть спектр.
Программа ‘Энергия по интервалам´ предназначена для чтения сигнала полученного посредством портативного устройства регистрации кардиосигнала. Программа предназначена для чтения и исследования энергетического спектра достаточно коротких фрагментов кардиосигнала (не более 30 мин). Она содержит несколько страниц:
- Исходное.
- Вырезанный фрагмент.
- Энергия по интервалам (Энерг. по интерв.).
- Настройки.
Страница ‘Энерг. по интерв.´ предназначена для получения распределения энергии по интервалам в частотной области. На этой странице пользователь может задать интервал частот, который необходимо исследовать. Также пользователь может указать, на какое количество подинтервалов необходимо разбить весь интервал. После подсчета энергии на нижнем графике отображается энергия сигнала на каждом из подинтервалов.
Измерения и запись показаний больного, например, кардиограммы, могут продолжаться длительное время вплоть до суток. Файлы, хранящие такие данные, могут быть очень большими и не помещаться в оперативной памяти целиком. Поэтому необходимо уметь читать и анализировать данные из таких файлов по частям.
Программа ´Энергия по интервалам´ позволяет выполнять фильтрацию по результатам вычисления энергии по интервалам. После построения и визуализации графика распределения энергии можно провести оценку распределения энергии по частотам и выполнить фильтрацию исходного сигнала на отдельных интервалах. Более того, фильтрацию можно провести на группе соседних интервалов, а также по группе групп интервалов, то есть пользователь может указать базовый интервал (или группу), а также шаг повторения и количество повторов. Так, например, очень часто сигнал содержит мощную составляющую, вызванную техногенной помехой 50 Гц и кратные ей 150, 250 Гц и т.д. Тогда пользователь может сразу указать, что требуется отфильтровать сигнал на трех интервалах с шагом в 100 Гц, начиная с частоты 50 Гц.
Порядок работы с программой:
1. Запустить программу StudentHealth.EXE.
2. Выбрать строку ‘Энергия по интервалам´ и нажать кнопку <Запустить>.
3. В открывшемся окне на исходной странице загрузить требуемый файл. Просмотреть сигнал и вырезать требуемый фрагмент.
4. На странице ‘Вырезанный´ просмотреть и оценить сигнал.
5. Вычислить спектр сигнала по кнопке <ДПФ для 2N>.
6. На странице ‘Энерг. по интерв.´ можно выполнить подсчет энергии по интервалам и фильтрацию. Для этого:
7. В окне ‘Количество интервалов´ указать, на сколько интервалов необходимо разбить весь интервал частотной области. Частотная область указывается в окнах ‘Начало диапазона´ и ‘Конец диапазона´.
8. По кнопке <Подсч. интерв.> программа разобьет весь диапазон на указанное количество интервалов. Включая/выключая галочку можно отрыть/закрыть панель, в которой будут показаны все вычисленные интервалы.
9. По кнопке <Подсч. Энергию> программа подсчитает энергию на каждом интервале и отобразит график распределения в окне ‘Энергия сигнала по интервалам´.
10. Если график не устраивает исследователя, то можно изменить ‘Количество интервалов´, затем <Подсч. интерв.> и <Подсч. Энергию>. Тогда отобразится новый график.
11. Перед выполнением фильтрации необходимо настроить списки частот, требующих фильтрации. Для этого необходимо включить/выключить галочку и отрыть/закрыть панель, в которой будут показаны списки интервалов фильтрации.
12. На этой панели можно указать требуемые параметры и добавить этот интервал. Если есть ошибочный интервал, его можно выделить и удалить (удалять можно только тогда, когда в списке более одной строки). Если необходимо посмотреть все частоты указанной строки (с учетом повторов, то есть, что ‘Количество частот´ больше 1),
можно включить галочку ‘Показать интервалы подробно´.
13. По кнопке ‘Отфильтровать´ выполняется фильтрация по всему списку
фильтров.
14. По команде меню Файл/Сохранить фильтрованный по энергии... фильтрованный сигнал сохраняется в указанном файле и отображается на окне ‘Сигнал после фильтрации´.
15. Для повторной фильтрации этого же фрагмента необходимо:
1) на странице ‘Вырезанный фрагмент´ вычислить спектр;
2) на странице ‘Энерг. по интерв.´ настроить ‘Количество интервалов´;
3) выполнить <Подсч. интерв.> и <Подсч. Энергию>.
4) выполнить <Отфильтровать>;
5) выполнить команду меню Файл/Сохранить фильтрованный по энергии....
Аппаратно-программным комплексом на основе наноэлектродов, рассмотренным в данной статье, могут быть зарегистрированы сигналы в неискаженном виде и на более качественном уровне, а посредством программы StudentHealth (‘Здоровье студентов´) проведена фильтрация зарегистрированных сигналов от техногенных шумов и проведен их предварительный анализ.
Список литературы
- Сергиенко А.Б. Цифровая обработка сигналов: учебник для вузов. - СПб.: Питер, 2003. - 608 с.
- Роджерс Д., Адамс Дж. Математические основы машинной графики / пер. с англ. - М.: Мир, 2001. - 604 с.
Рецензенты:
Светлаков А.А., д.т.н., профессор кафедры электронных средств автоматизации и управления Томского государственного университета систем управления и радиоэлектроники, г. Томск;
Агафонников В.П., д.т.н., профессор кафедры конструирования узлов и деталей РЭС (КУДР) Томского университета систем управления и радиоэлектроники, г. Томск;
Кирьянов Б.Ф., д.т.н., профессор, профессор кафедры прикладной математики и информатики, Новгородский государственный университет имени Ярослава Мудрого, г. Великий Новгород.