Студопедия

КАТЕГОРИИ:

АстрономияБиологияГеографияДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРиторикаСоциологияСпортСтроительствоТехнологияФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника


Анализ алгоритма выделения положение R пиков в сигнале ЭКГ




 

Мной был проанализирован алгоритм выделения положение R пиков при анализе сигнала ЭКГ с помощью вейвлет-декомпозиции в среде Matlab.

Работа алгоритма будет показана на примере анализа данных ЭКГ, полученных из базы данных MIT-BIH в формате.mat.

 

Прежде всего, необходимо выбрать файл.mat и загрузить его:

[fname path]=uigetfile('*.mat');=strcat(path,fname);(fname);

 

Отобразим график исходного сигнала средствами Matlab (рисунок 10).

 

Рисунок 10 - Окно программы Matlab c демонстрацией исходного сигнала ЭКГ

 

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

=zeros(100,1);=[z;A;z];

 

Произведём вейвлет-декомпозицию, после которой я буду рассматривать сигнал с гораздо более низкой частотой, чем в оригинале, что означает отсутствие лишних деталей при сохранении QRS-комплекса.

 

[c,l]=wavedec(s,4,'db4');

Извлечём коэффициенты после преобразования:=appcoef(c,l,'db4',1);=appcoef(c,l,'db4',2);=appcoef(c,l,'db4',3);=appcoef(c,l,'db4',4);

 

Если мы отобразим (рисунок 11) полученные коэффициенты, мы увидим разделение частотных диапазонов, сигналы ca1, ca2, ca3 и ca4 оказываются чище, чем исходный сигнал, однако они также будут иметь меньшее количество значений вследствие вейвлет-преобразования.

 

Рисунок 11 - Окно программы Matlab c демонстрацией четырёх уровней вейвлет-декомпозиции исходного сигнала ЭКГ

 

Можно заметить, что первый сигнал (верхний левый график на рисунке 11) имеет некоторое сходство с исходным сигналом, но включает только четвертую часть значений исходного сигнала, подвергшегося четырехуровневой декомпозиции.

Сигнал второго уровня (верхний справа) включает половину значений сигнала первого уровня. Сигнал третьего уровня (нижний слева) включает половину значений второго и т.д.

Видно, что данные второго уровня декомпозиции свободны от шума. Значит, именно эти данные были бы оптимальны для определения QRS. Однако, первый Rпик расположен на третьем уровне декомпозиции приблизительно на 40 значении, в то же время как этот же пик расположен в исходном сигнале на 260 позиции. Следовательно, поскольку R-пик обнаружен на третьем уровне декомпозиции, именно он должен быть соотнесён с исходным сигналом.

 

Определим R-пик в преобразованном сигнале. Сначала найдём значения, которые превышают 60% максимального уровня исходного сигнала. Несомненно, это будут R-пики. Вначале, мы обнаруживаем R-пики в незашумлённом декомпозированном сигнале, а затем соотносим их с исходным сигналом.

Пусть y1 - наш декомпозированный сигнал. Введём следующие команды:

=max(y1)*.60;=find(y1>=m1);

 

Таким образом, P будет набором точек, которые удовлетворяют нашему критерию.

Если рассмотреть сигнал очень внимательно, можно заметить, что R-пик не является одиночным значением, следовательно, есть вероятность, что в наш набор попадёт множество точек, удовлетворяющих критерию, на одном и том же пике. Удалим значения, которые слишком близки:

=P; =[]; =P1(1);=[P2 last];(i=2:1:length(P1))(P1(i)>(last+10))

% На этом шаге мы находим R-пики, которые отстоят друг от друга

% хотя бы на 10 позиций =P1(i);=[P2 last];

 

Теперь переменная P2 отражает позиции R-пиков в декомпозированном сигнале.

Перейдём к определению R-пиков в исходном сигнале.

Помня о том, что позиции R-пиков в преобразованном сигнале являются, по крайне мере, ¼ от соответствующих значений в исходном сигнале, умножим содержащиеся в P2 значения на 4: P3=P2*4;

Однако, процесс декомпозиции также смещает позиции R-пиков, поэтому нам нужно будет найти максимальные значения в исходном сигнале в окне +- 20 значений от позиции соответствующего R-пика во множестве P3:

=[];(i=1:1:length(P3))= [P3(i)-20:P3(i)+20]=max(A(range));=find(A(range)==m);=range(l);=[Rloc pos];=A(Rloc);

 

Ясно, что Ramp и Rloc содержат теперь амплитуды и позиции R-пиков в исходном сигнале. Отобразим их на графике (рисунок 12).

Рисунок 18 - Найденные R-пики на графике исходного сигнала

 

Таким образом, с помощью проанализированного мной алгоритма, использующего вейвлет-декомпозицию для очистки исходного сигнала от шума, мы автоматизировано распознаём положение R пиков в сигнале ЭКГ в среде Matlab.

 


Поделиться:

Дата добавления: 2015-08-05; просмотров: 386; Мы поможем в написании вашей работы!; Нарушение авторских прав





lektsii.com - Лекции.Ком - 2014-2024 год. (0.008 сек.) Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав
Главная страница Случайная страница Контакты