Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
МОиАБМСиД_Калиниченко_020919.pdf
Скачиваний:
256
Добавлен:
25.12.2019
Размер:
823.83 Кб
Скачать

bar(X,PH,'histc') % Построение гистограммы

15. Установите предел графика гистограммы по оси ординат равным 1,2

от максимума гистограммы

maxh=max(PH)*1.2;

16. Постройте в поле 4 график скаттерграммы

axes(hAxes4)

% Активизация поля 4

NRR=length(RR);

%

Общее число RR-интервалов

plot(RR(1:NRR-1),RR(2:NRR),'.');

%

Построение скаттерграммы

17.Установите пределы графиков скаттерграммы по обеим осям равными 1,2 от максимального RR-интервала.

18.Рассчитайте статистические параметры вариабельности сердечного ритма, описанные в разделе «Основные положения»:

RRsr=mean(RR);

% Средний RR-интервал

RRmin=min(RR);

% Минимальный RR-интервал

RRmax=max(RR);

% Максимальный RR-интервал

dRR=RRmax-RRmin;

% Вариационный размах

[AMo,iMo]=max(PH);

% Амплитуда моды и индекс моды

Mo=iMo*dH;

% Мода

19. В левом верхнем углу поля 3 выведите в столбец обозначения и значения всех рассчитанных величин, пользуясь следующим примером:

axes(hAxes3)

% Активизация поля

3

xt=maxRR/20;

% Отступ от

левого

края графика

yt=maxh;

%

Верхний край графика

dyt=maxh/15;

%

Отступ от

верхнего края графика

% Вывод среднего интервала с преобразованием в текстовый вид: text(xt,yt-dyt,['RRsr=' num2str(RRsr) ' c'])

... % Вывод по аналогии остальных величин

20.Не забудьте во всех подготовленных программах объявить как global переменные, являющиеся общими для этих программ (см. лаб. раб. 5).

21.Запустите основную программу. При помощи раскрывающегося меню выберите поочередно все три варианта сигналов сердечного ритма. Сохраните графики для всех вариантов и тексты обеих программ.

Содержание отчета

1.Название, цель и задачи работы.

2.Тексты программ.

3.Объяснение полученных результатов и выводы.

58

Вопросы для самоконтроля

1.Что является входными данными для построения ритмограммы, гистограммы и скаттерограммы?

2.Объясните процедуру построения каждого из графиков.

3.Какие величины, в каких единицах измерения и в каких масштабах откладываются на каждом из трёх графиков?

4.Чему равен шаг гистограммы, используемый в работе?

5.Какому значению должна быть равна сумма столбцов ритмограммы и почему?

6.6) Покажите на каждом из графиков, чему соответствуют значения первых четырёх параметров, рассчитанных по п. 18.

7.Покажите на графиках гистограммы значения моды и амплитуды моды.

8.В чём отличиемодыотамплитуды моды?

9.В чём различие между исследуемыми в работе типами сердечного ритма (нормальный ритм, экстрасистолия, мерцательная аритмия) и как это проявляется на каждом из графиков?

10.Найдите на графиках ритмограммы самое большое и самое маленькое значения и определите соответствующие им точки на двух других графиках.

59

Лабораторная работа 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 приложения, содержатся фрагменты реальных записей сигнала сердечного ритма.

60

1.Запустите систему MATLAB, установите в главном окне путь к рабочей папке и перепишите в нее файл с записью сигнала, соответствующий варианту.

2.Создайте новый М-файл и сохраните его под к аким-нибудь именем.

Вкачестве первого оператора должно стоять объявление функции:

function R11_P1() % Объявление головной программы как функции

3. Создайте рабочее окно программы по образцу, приведенному на рисунке, и разместите на нем 4 поля для вывода графиков (13 и 5), группу из

двух «радиокнопок» (поле 4, см. далее),

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

ползунок (поле 6, см. далее) и поле ре-

 

 

 

1

 

 

 

 

 

дактирования 7. Рекомендуется задать

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

ширину поля 1 равной 900 пикселам.

 

 

 

2

 

 

 

 

 

Группа из двух «радиокнопок»

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

представляет собой орган управления,

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

4

 

 

6

 

 

 

 

 

 

 

 

 

 

 

 

 

служащий для выбора из двух альтерна-

 

 

3

 

 

 

5

 

 

7

 

 

 

 

 

 

 

 

 

 

 

 

тивных вариантов, и создается следую-

 

 

 

 

 

 

 

 

 

 

 

 

щим образом:

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

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 – координаты и размеры всей группы, а аналогичные параметры каждой из кнопок указаны относительно границ группы.

4. Определите имя функции, которая будет вызываться при выборе одной из кнопок, по следующему образцу:

hR11_P2=@R11_P2; % Получение указателя на функцию (R11_P2)

%Установка указателя для вызываемой функции: set(hGroup4,'SelectionChangeFcn',hR11_P2);

%Начальное состояние (ни одна из кнопок не выбрана):

set(hGroup4,'SelectedObject',[]);% Начальное состояние группы

Для правильной работы «радиокнопок» необходимо, чтобы вызываемая функция располагалась в том же файле, что и головная программа, а вызов

61

функции осуществлялся через указатель на нее. Кроме того, головная программа также должна быть оформлена как функция (см. п. 2).

5. Создайте в поле 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);

%

Граничные

значения

6.Создайте поле редактирования 7 и разместите перед ним надпись

«P=» (см. лаб. раб. 5).

7.Прочтите входной файл, используя команду load.

8.Установите пределы по осям абсцисс и ординат для поля 1:

axes(hAxes1) % Активизация поля 1 RRmax=max(RR)*1.2; % Предел по оси X (RR – входной массив)

set(hAxes1,'XLim',[0 450],'YLim',[0 RRmax]); % Пределы по X и Y hold on % Режим сохранения установок

9. Постройте в поле 1 график ритмограммы (см. лаб. раб. 10).

Расчет и вывод графика равномерно дискретизованного сигнала:

10. Рассчитайте координаты узлов интерполяции по оси абсцисс (координатами по оси ординат являются сами значения кардиоинтервалов):

t=0; % Переменная текущего времени for i=1:NRR % Здесь NRR – число интервалов

t=t+RR(i); % Расчет текущего времени (для i-го узла) tRR(i)=t; % Координата i-го узла по оси абсцисс

end

11. Рассчитайте параметры сплайн-функций:

sRR=csaps(tRR,RR,1); % Сплайны для координат tRR и RR

12. Выполните дискретизацию сплайн-функций с частотой 4 Гц:

Fs=4, T=1/Fs;

% Частота и интервал дискретизации

tsRR=0:T:tRR(NRR);

%

Переменная времени

RR4Hz=ppval(sRR,tsRR );

%

Дискретизация

13.Выведите в поле 2 график полученной функции, соблюдая масштаб по оси абсцисс и установив по оси ординат те же пределы, что и для поля 1.

Расчет оценок спектра и частотных показателей ВСР:

14.В том же M-файле ниже текста головной функции разместите текст функции, которая будет вызываться при нажатии какой-либо из «радиокнопок». В скобках после имени функции должны быть указаны два аргумента.

62

В одном из них ( h) будет автоматически передаваться указатель на данную группу кнопок, а второй будет содержать структуру данных (Sel), которая позволит программе определить, какая из кнопок была нажата:

function R11_P2(h,Sel) % Заголовок функции и ее параметры

Данная функция при нажатии верхней кнопки будет вычислять спектр с помощью периодограммного метода (по всему фрагменту сигнала), а при нажатии нижней – метода Уэлча (по перекрывающимся сегментам).

15. Выполните подготовительные действия, общие для обоих методов:

nfft=2048; % Число точек для алгоритма БПФ

% Устранение линейного тренда и перевод значений сигнала в мс:

RR0=detrend(RR4Hz)*1000;

% Шаг по частоте

 

df=Fs/nfft;

 

Fmax=0.5;

%

Максимальная частота для графика

Nf=fix(Fmax/df);

%

Число отсчетов

по оси частот

16. В зависимости от того, какая из кнопок нажата, рассчитайте спектр и постройте в поле 3 график спектральной плотности мощности (СПМ):

if Sel.NewValue==rb1

% Нажата верхняя кнопка ?

window=hamming(length(RR4Hz)); %

Окно Хемминга

[Pxx,f] = periodogram(RR0,window,nfft,Fs);

% Спектр

plot(f(1:Nf),Pxx(1:Nf))

 

%

График СПМ

 

else

% Нажата нижняя кнопка

 

Nw=500;

% Размер сегмента для метода Уэлча

noverlap=100;

% Перекрытие сегментов

 

window=hamming(Nw);

% Окно Хемминга для метода Уэлча

[Pxx,f]=pwelch(RR0,window,noverlap,nfft,Fs);

% СПМ

plot(f(1:Nf),Pxx(1:Nf))

 

%

График СПМ

 

end

 

 

 

 

 

17. Установите предел по оси ординат, равный 1,3 от максимума спектра:

Ymax=max(Pxx(1:Nf))*1.3;

 

% Предел по оси ординат

set(hAxes3,'YLim',[0 Ymax]);

% Установка предела

 

18. Рассчитайте показатели 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 ?

63