- •Методы обработки биомедицинских сигналов и данных
- •Методы обработки биомедицинских сигналов и данных
- •Введение
- •Общие указания
- •Лабораторная работа 1. Теорема отсчетов и эффект наложения
- •Основные положения
- •Задание на выполнение работы
- •Порядок выполнения работы
- •Содержание отчета
- •Лабораторная работа 2. Цифровая фильтрация экг
- •Основные положения
- •Задание на выполнение работы
- •Порядок выполнения работы
- •Содержание отчета
- •Лабораторная работа 3. Корреляционный анализ ээг
- •Основные положения
- •Задание на выполнение работы
- •Порядок выполнения работы
- •Содержание отчета
- •Лабораторная работа 4. Спектральный анализ экг
- •Основные положения
- •Задание на выполнение работы
- •Порядок выполнения работы
- •Содержание отчета
- •Лабораторная работа 5. Адаптивный фильтр сетевой наводки
- •Основные положения
- •Задание на выполнение работы
- •Порядок выполнения работы
- •Содержание отчета
- •Лабораторная работа 6. Анализ пульсоксиметрического сигнала
- •Основные положения
- •Задание на выполнение работы
- •Порядок выполнения работы
- •Содержание отчета
- •Лабораторная работа 7. Расчет корреляционной матрицы ээг
- •Основные положения
- •Задание на выполнение работы
- •Порядок выполнения работы
- •Содержание отчета
- •Лабораторная работа 8. Классификация экг с помощью вкф
- •Основные положения
- •Задание на выполнение работы
- •Порядок выполнения работы
- •Содержание отчета
- •Лабораторная работа 9. Векторкардиограмма
- •Основные положения
- •Задание на выполнение работы
- •Порядок выполнения работы
- •Содержание отчета
- •Лабораторная работа 10. Методы ритмокардиографии
- •Основные положения
- •Задание на выполнение работы
- •Порядок выполнения работы
- •Содержание отчета
- •Лабораторная работа 11. Вариабельность сердечного ритма
- •Основные положения
- •Задание на выполнение работы
- •Порядок выполнения работы
- •Содержание отчета
- •Лабораторная работа 12. Исследование ритмов ээг
- •Основные положения
- •Задание на выполнение работы
- •Порядок выполнения работы
- •Содержание отчета
- •Список рекомендованной литературы
- •Приложение. Таблицы вариантов для работ
- •Содержание
- •1 97376, С.-Петербург, ул. Проф. Попова, 5
Содержание отчета
Название, цель и задачи работы.
Тексты программ.
Объяснение полученных результатов и выводы.
Лабораторная работа 11. Вариабельность сердечного ритма
Цель работы: ознакомление с частотными методами анализа вариабельности сердечного ритма, сравнительная оценка параметрических и непараметрических методов спектрального анализа.
Основные положения
Анализ вариабельности сердечного ритма (ВСР) основан на расчете оценок статистических и частотных характеристик последовательностей интервалов между сокращениями сердца (кардиоинтервалов). Одним из наиболее распространенных подходов является частотный анализ ВСР, суть которого заключается в расчете спектральных оценок сигнала и определении по ним суммарных мощностей в трех диапазонах частот:
VLF (Very Low Frequency) от 0,003 до 0,04 Гц;
LF (Low Frequency) от 0,04 до 0,15 Гц;
HF (High Frequency) от 0,15 до 0,4 Гц.
Перед расчетом спектра последовательность кардиоинтервалов преобразуется в равномерно дискретизованный сигнал с частотой отсчетов 4 Гц, для чего используют кусочно-полиномиальную сплайн-интерполяцию.
Известны два основных подхода к получению спектральных оценок:
непараметрические методы, основанные на преобразовании Фурье;
параметрические методы, основанные на модели авторегрессии (АР).
Задание на выполнение работы
Построение ритмограммы входного сигнала.
Расчет и вывод графика равномерно дискретизованного сигнала.
Расчет спектральных оценок и частотных показателей ВСР.
Порядок выполнения работы
Построение ритмограммы входного сигнала. В файлах, имена которых указаны в табл. П.11 приложения, содержатся фрагменты реальных записей сигнала сердечного ритма.
Запустите систему MATLAB, установите в главном окне путь к рабочей папке и перепишите в нее файл с записью сигнала, соответствующий варианту.
Создайте новый М-файл и сохраните его под каким-нибудь именем. В качестве первого оператора должно стоять объявление функции:
function R11_P1() % Объявление головной программы как функции
С
оздайте
рабочее окно программы по образцу,
приведенному на рисунке, и разместите
на нем 4 поля для вывода графиков (1–3
и 5),
группу из двух «радиокнопок» (поле 4,
см. далее), ползунок (поле 6,
см. далее) и поле редактирования 7.
Рекомендуется задать ширину поля 1
равной 900 пикселам.
Группа из двух «радиокнопок» представляет собой орган управления, служащий для выбора из двух альтернативных вариантов, и создается следующим образом:
hGroup4=uibuttongroup('Units','pixels',... % Группа кнопок
'Position',[x4 y4 w4 h4]);
% Верхняя кнопка с надписью 'Periodogram' (Периодограмма):
rb1=uicontrol('Style','Radio','String','Periodogram',...
'Position',[5 30 90 20],'parent',hGroup4);
% Нижняя кнопка с надписью 'Welch method' (Метод Уэлча):
rb2=uicontrol('Style','Radio','String','Welch method',...
'Position',[5 10 90 20],'parent',hGroup4);
Здесь x4, y4, w4, h4 – координаты и размеры всей группы, а аналогичные параметры каждой из кнопок указаны относительно границ группы.
Определите имя функции, которая будет вызываться при выборе одной из кнопок, по следующему образцу:
hR11_P2=@R11_P2; % Получение указателя на функцию (R11_P2)
% Установка указателя для вызываемой функции:
set(hGroup4,'SelectionChangeFcn',hR11_P2);
% Начальное состояние (ни одна из кнопок не выбрана):
set(hGroup4,'SelectedObject',[]);% Начальное состояние группы
Для правильной работы «радиокнопок» необходимо, чтобы вызываемая функция располагалась в том же файле, что и головная программа, а вызов функции осуществлялся через указатель на нее. Кроме того, головная программа также должна быть оформлена как функция (см. п. 2).
Создайте в поле 6 ползунок и определите для него вызываемую функцию аналогично тому, как было показано в п. 4:
hSlider6=uicontrol('Style','Slider','Position',[x6 y6 w6 h6]);
hR11_P3=@R11_P3; % Получение указателя на функцию (R11_P3)
set(hSlider6,'Callback',hR11_P3); % Установка указателя
set(hSlider6,'Min',0,'Max',20); % Граничные значения
Создайте поле редактирования 7 и разместите перед ним надпись «P=» (см. лаб. раб. 5).
Прочтите входной файл, используя команду load.
Установите пределы по осям абсцисс и ординат для поля 1:
axes(hAxes1) % Активизация поля 1
RRmax=max(RR)*1.2; % Предел по оси X (RR – входной массив)
set(hAxes1,'XLim',[0 450],'YLim',[0 RRmax]); % Пределы по X и Y
hold on % Режим сохранения установок
Постройте в поле 1 график ритмограммы (см. лаб. раб. 10).
Расчет и вывод графика равномерно дискретизованного сигнала:
Рассчитайте координаты узлов интерполяции по оси абсцисс (координатами по оси ординат являются сами значения кардиоинтервалов):
t=0; % Переменная текущего времени
for i=1:NRR % Здесь NRR – число интервалов
t=t+RR(i); % Расчет текущего времени (для i-го узла)
tRR(i)=t; % Координата i-го узла по оси абсцисс
end
Рассчитайте параметры сплайн-функций:
sRR=csaps(tRR,RR,1); % Сплайны для координат tRR и RR
Выполните дискретизацию сплайн-функций с частотой 4 Гц:
Fd=4, T=1/Fd; % Частота и интервал дискретизации
tsRR=0:T:tRR(NRR); % Переменная времени
RR4Hz=ppval(sRR,tsRR ); % Дискретизация
Выведите в поле 2 график полученной функции, соблюдая масштаб по оси абсцисс и установив по оси ординат те же пределы, что и для поля 1.
Расчет оценок спектра и частотных показателей ВСР:
В том же M-файле ниже текста головной функции разместите текст функции, которая будет вызываться при нажатии какой-либо из «радиокнопок». В скобках после имени функции должны быть указаны два аргумента. В одном из них (h) будет автоматически передаваться указатель на данную группу кнопок, а второй будет содержать структуру данных (Sel), которая позволит программе определить, какая из кнопок была нажата:
function R11_P2(h,Sel) % Заголовок функции и ее параметры
Данная функция при нажатии верхней кнопки будет вычислять спектр с помощью периодограммного метода (по всему фрагменту сигнала), а при нажатии нижней – метода Уэлча (по перекрывающимся сегментам).
Выполните подготовительные действия, общие для обоих методов:
nfft=2048; % Число точек для алгоритма БПФ
% Устранение линейного тренда и перевод значений сигнала в мс:
RR0=detrend(RR4Hz)*1000;
df=Fd/nfft; % Шаг по частоте
Fmax=0.5; % Максимальная частота для графика
Nf=fix(Fmax/df); % Число отсчетов по оси частот
В зависимости от того, какая из кнопок нажата, рассчитайте спектр и постройте в поле 3 график спектральной плотности мощности (СПМ):
if Sel.NewValue==rb1 % Нажата верхняя кнопка ?
window=hamming(length(RR4Hz)); % Окно Хемминга
[Pxx,f] = periodogram(RR0,window,nfft,Fd); % Спектр
plot(f(1:Nf),Pxx(1:Nf)) % График СПМ
else % Нажата нижняя кнопка
Nw=500; % Размер сегмента для метода Уэлча
noverlap=100; % Перекрытие сегментов
window=hamming(Nw); % Окно Хемминга для метода Уэлча
[Pxx,f]=pwelch(RR0,window,noverlap,nfft,Fd); % СПМ
plot(f(1:Nf),Pxx(1:Nf)) % График СПМ
end
Установите предел по оси ординат, равный 1,3 от максимума спектра:
Ymax=max(Pxx(1:Nf))*1.3; % Предел по оси ординат
set(hAxes3,'YLim',[0 Ymax]); % Установка предела
Рассчитайте показатели VLF, LF и HF:
flim=[0.003 0.04 0.15 0.4]; % Пределы диапазонов частот
VLF=0, LF=0, HF=0; % Начальные значения
i=0, f=0; % Переменные цикла и частоты
while f<=flim(4) % Перебор частот до 0,4 Гц
f=df*i; % Текущая частота
i=i+1; % Индекс массива СПМ
if f>=flim(1) && f<flim(2) % Диапазон VLF ?
VLF=VLF+Pxx(i)*df; % Расчет VLF
elseif f>=flim(2) && f<flim(3) % Диапазон LF ?
LF=LF+Pxx(i)*df; % Расчет LF
elseif f>=flim(3) % Диапазон HF ?
HF=HF+Pxx(i)*df; % Расчет HF
end
end
Округлите вычисленные значения до целых величин и выведите их друг под другом в правом верхнем углу поля 3, например:
VLF=round(VLF); % Округление VLF
dy=Ymax/10; % Шаг по ординате
text(0.3,Ymax-dy,['VLF=' num2str(VLF) ' ms^2']); % Вывод VLF
По аналогии с п. 15 создайте функцию для ползунка:
function R11_P3(h,Sel) % Заголовок функции и ее параметры
Прочтите параметр текущего положения ползунка, округлите его до целого значения и выведите в поле редактирования 7:
P=round(get(hSlider6,'Value')); %Ввод порядка модели от ползунка
if P==0
P=1; % Порядок АР модели не может быть равен 0
end
set(hEdit7,'String',num2str(P)); % Индикация значения 'P'
Рассчитайте и выведите в поле 5 спектр для полученного с помощью ползунка порядка АР-модели P, а также показатели VLF, LF и HF.
Расчет спектра с помощью АР модели почти аналогичен описанному в п. 16. Отличия заключаются в следующем:
не используется оконная функция;
расчет СПМ выполняется с помощью метода Берга:
[Pxx,f]=pburg(RR0,P,nfft,Fd); % АР спектр для порядка Р
Не забудьте во всех подготовленных программах объявить как global переменные, являющиеся общими для этих программ (см. лаб. раб. 5).
При помощи «радиокнопок» получите спектры для периодограммного метода и метода Уэлча (при значениях размера сегмента 200, 500 и 1000). Сохраните копии окна программы для всех вариантов.
При помощи ползунка установите значения порядка АР модель равными 5, 10 и 20. Сохраните копии окна программы для всех вариантов.
