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

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

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

2.Тексты программ и изображения графических окон, которые требовалось сохранять в ходе выполнения работы.

3.Распечатки сохраненных корреляционных матриц.

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

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

1)Что показывает коэффициент взаимной корреляции (КВК) и как он связан с взаимной корреляционной функцией?

2)Почему более корректно говорить «оценка КВК», а не просто

«КВК»?

3)Почему значения КВК лежат в пределах от -1 до +1 (объяснить по формуле)?

4)Какая оценка КВК («нормированная» или «ненормированная», «смещённая» или «несмещённая») рассчитывается в данной работе?

5)Чем отличаются друг от друга сигналы, построенные по п. 5 и по п. 11 работы?

6)Дайте объяснение значениям КВК в любой позиции корреляционной матрицы, построенной для модельных сигналов.

7)Почему корреляционные матрицы, полученные по п. 5 и по п. 11 не отличаются друг от друга, хотя исходные данные для них разные (объяснить по формуле КВК)?

8)Почему корреляционные матрицы симметричны относительно главной диагонали?

9)Найдите на графиках корреляционной матрицы для сигналов ЭЭГ наименьшие и наибольшие значения и дайте интерпретацию этих значений, исходя из вида соответствующих сигналов ЭЭГ.

10)Объясните действие порогового значения для КВК.

43

Лабораторная работа8. КЛАССИФИКАЦИЯ ЭКГ С ПОМОЩЬЮ ВКФ

Цель работы: ознакомление с использованием взаимной корреляционной функции для классификации форм сигналов.

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

Нормированная смещенная оценка взаимной корреляционной функции (ВКФ) дискретного сигнала рассчитывается по формуле

Rxy (m) =

1

N m1 x(n +m)y(n),

Nσxσy

 

n=0

где x(n) и y(n) – отсчеты двух сигналов, N – число отсчетов для каждого из них, m – число сдвигов, а σx и σy – среднеквадратичные отклонения. Значения нормированной ВКФ лежат в пределах от –1 до +1. Равенство –1 соответствует противофазности сигналов, а случаи равенства 0 и +1 соответствуют отсутствию линейной зависимости и полной линейной зависимости.

Задачей работы является исследование возможности использования ВКФ для дифференциации форм QRS-комплексов ЭКГ, относящихся к фоновому ритму сердца, от комплексов патологического происхождения.

Задание на выполнение работы

Выполнить расчет ВКФ для фрагментов реальной Э КГ, содержащих QRS-комплексы, относящиеся к фоновому ритму и к патологии.

Используя значения ВКФ, осуществить разбиение QRS-комплексов ЭКГ на два класса по сходству их форм.

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

Расчет ВКФ для фрагментов реальной записи ЭКГ. В файлах, имена которых указаны в табл. П.8 приложения, содержатся фрагменты записей ЭКГ и данные их верификации.

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

Файл ЭКГ содержит отсчеты сигнала с частотой дискретизации 250 Гц. Заданный фрагмент ЭКГ имеет длительность 10 с и содержит QRS-ком-

44

плексы двух отчетливо различимых классов формы: нормального ритма и патологии. Файл верификации содержит два столбца значений, в которых для каждого из QRS-комплексов указаны: номер отсчета, соответствующего середине комплекса, и идентификатор класса формы: «1» – для фонового ритма (нормы) и «2» – для патологии.

 

 

 

 

 

 

 

 

 

2. Создайте новый М-файл и со-

 

 

 

 

 

 

 

 

 

храните его под каким-нибудь именем.

 

 

 

1

 

 

 

 

 

 

 

 

 

 

 

 

 

3. Создайте рабочее окно про-

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

граммы по образцу, приведенному на

 

 

 

 

 

 

 

 

 

 

 

 

2

 

 

 

 

 

 

 

 

 

 

 

 

 

рисунке, и разместите на нем 8 полей

 

 

 

 

 

 

 

 

 

 

3

 

4

 

5

 

9

 

для вывода графиков (поля 18) и од-

 

 

 

 

 

 

но поле редактирования (поле 9, см.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

лаб. раб. 5). Рекомендуется задать вы-

 

6

 

777

 

8

 

 

 

 

 

7

 

 

 

 

соту поля 2 равной 60 пикселам.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

В команде размещения окна редактирования укажите в качестве свойства ‘Callback’ имя другой программы, которая будет вызываться при вводе в это поле нового значения.

4.Загрузите оба заданных файла в отдельные переменные при помощи команды load.

5.В поле 1 постройте график ЭКГ, соблюдая масштаб по оси времени.

6.Используя команду set, установите для поля 2 пределы оси абсцисс от 0 до максимальной длительности фрагмента сигнала.

7.В поле 2 выведите порядковые номера QRS-комплексов и идентификаторы класса формы:

NQRS=length(Ver(:,1));

% Число QRS-комплексов

for i=1:NQRS

% QRS-комплексов

x= Ver (i,1)*T;

% Координата комплекса по оси абсцисс

axes(hAxes2);

text(x,0.85,num2str(i)); % Порядковый номер QRS-комплекса text(x,0.6,num2str(Ver(i,2)),'Color','b'); % Тип формы

end

Приведенный фрагмент программы выводит в поле 2 порядковые номера и идентификаторы типа формы комплексов точно напротив позиций соответствующих комплексов ЭКГ в поле 1. Здесь переменная Ver содержит данные, загруженные ранее из файла верификации, функция num2str преобразует число в текстовый вид, а второй параметр в команде text задает позицию по ординате для текста, выводимого в поле 2.

45

8. Используя информацию, отображаемую в полях 1 и 2, определите номера QRS-комплексов, которые далее будут использоваться в качестве образцов для классов нормы и патологии, а также двух других комплексов, принадлежащих к соответствующим классам, например:

N0=1, P0=2; % Номера образцов «нормы» и «патологии» N1=3, P1=5; % Номера других комплексов обоих классов

9. Задайте размер окна для расчета ВКФ и определите максимальное число сдвигов при расчете ВКФ:

L=51; % Размер окна (в отсчетах) для расчета ВКФ Smax=(L-1)/2; % Максимальное число сдвигов при расчете ВКФ

10.Создайте четыре массива, содержащие QRS-комплексы, выбранные

всоответствии с п. 9, например:

ind0=Ver(N0,1); % Индекс центрального отсчета QRS-комплекса

QRS_N0=ECG(ind0-Smax:ind0+Smax); % Запись комплекса в массив

11. Создайте переменную времени для вывода графиков в поля 38:

tc=-T*Smax:T:T*Smax; % здесь Т – интервал дискретизации ЭКГ

12.Используя созданную в предыдущем пункте переменную времени, постройте в полях 3 и 6 графики QRS-комплексов, выбранных в качестве образцов для классов «норма» и «патология» соответственно.

13.Удалите линейный тренд из всех четырех QRS-комплексов, например:

QRS_N0=detrend(QRS_N0); % Удаление линейного тренда

14. В каждом из полей 4, 5, 7 и 8 следует построить следующие графики:

QRS-комплекс, используемый в качестве образца (синий цвет);

сравниваемый с образцом QRS-комплекс (зеленый цвет);

ВКФ для данных двух комплексов (красный пунктир).

При этом распределение графиков по полям должно быть следующим:

поле 4: образец «норма», сравниваемый комплекс «норма»;

поле 5: образец «норма», сравниваемый комплекс «патология»;

поле 7: образец «патология», сравниваемый комплекс «норма»;

поле 8: образец «патология», сравниваемый комплекс «патология». Пример для поля 5:

axes(hAxes5);

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

c=xcorr(QRS_N0,QRS_P1,Smax,'coeff'); % Расчет ВКФ

plot(tc,QRS_N0)

%

Образец «норма»

hold on

%

Сравниваемый комплекс

plot(tc,QRS_P1,'g')

46

plot(tc,c,':r')

% График ВКФ

set(hAxes5,'YLim',[-1 1]);

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

grid on

%

Показать линовку

title('N-P');

%

Заголовок

Если задание выполнено правильно, то при сравнении комплексов, относящихся к одинаковым классам формы (поля 4 и 8), значения ВКФ в центре (при нулевом сдвиге) должны быть близки к единице, в двух других случаях – должны получиться значительно меньшими. Это демонстрирует способность ВКФ выявлять сходство форм сигналов.

15. Рассчитайте и занесите в отдельные массивы максимальные значения ВКФ в диапазоне сдвигов ±5 отсчетов для всех возможных случаев сравнения образцов классов «норма» и «патология» с QRS-комплексами, содержащимися в записи ЭКГ. Например, для образца класса «норма»:

ds=5;

% Максимальный сдвиг для расчета ВКФ

for i=1:NQRS

% Позиция очередного QRS-комплекса

iQRS=Ver(i,1);

QRS=ECG(iQRS-Smax:iQRS+Smax);

% Чтение комплекса

QRS=detrend(QRS);

% Удаление тренда

c=xcorr(QRS_N0,QRS,ds,'coeff');

% Расчет ВКФ

cN(i)=max(c);

% Определение максимума и запись в массив

end

Разбиение QRS-комплексов ЭКГ на два класса по сходству их форм.

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

16.Создайте М-файл и сохраните его под именем, совпадающим с указанным в качестве свойства ‘Callback’ поля редактирования (см. лаб. раб. 5).

17.В качестве первого оператора должно стоять объявление функции, название которой должно совпадать с именем M-файла, например:

function R08_P2() % Имя M-файла должно быть «R08_P2.m»

18. Напишите команды получения числа из поля редактирования:

str=get(hEdit,'String');

%

Получение числа в виде текста

corLim = str2double(str);

%

Преобразование в переменную

Здесь hEdit – указатель на поле редактирования, а переменная corLim содержит введенное значение порога.

47