Функция, преобразующая ЭКГ в последовательность кардиоинтервалов




Разработка алгоритма преобразования сигнала ЭКГ в последовательность кардиоинтервалов

Предполагается, что алгоритм будет работать с грудным отведением V5. Сигнал, снятый с этого отведения, отличается резким и высоким QRS – комплексом (рис. 1), именно на это будет опираться алгоритм (расстояние между соседними QRS – комплексами и есть кардиоинтервал).

Рис. 1. ЭКГ, снятая с отведения V5.

 

Так как на ЭКГ могут быть различные низкочастотные помехи, простое детектирование QRS – комплексов с помощью сравнивания сигнала с некоторым пороговым уровнем не всегда эффективно. В этом случае необходимо отслеживать уровень нарастания и спада сигнала, также возможна фильтрация ложных детектирований по длительности QRS-комплекса (протяженность QRS-комплекса обычно составляет 1/10 от всей длительности кардиоинтервала).

Идея алгоритма основана на анализе спада и подъема ЭКГ от отсчета к отсчету. Если в какой-то момент произошло резкое возрастание, а затем снижение значения сигнала ЭКГ, то считается, что в этом месте находится QRS-комплекс, его середина и берется как начало следующего кардиоинтервала. Листинг функции, написанной в MatLab с комментариями, представлен в приложении 1.

Функция принимает совокупность отсчетов ЭКГ, а также шкалу времени, соответствующую этим отсчетам. Алгоритм может работать с изменяющейся частотой дискретизации, единственное условие – соответствие теореме об отсчетах. Также функция принимает опорное значение минимальной величины изменения амплитуды ЭКГ на протяжении QRS – комплекса. Результатом работы функции является массив размера 1xN, где N – количество кардиоинтервалов. Членами этого массива являются числа – значения величины кардиоинтервала в секундах.

Алгоритм был проанализирован на различных реальных сигналах ЭКГ и показал свою эффективность. Часть кардиоинтервалограммы, полученной с помощью алгоритма, показана на рис. 2 (внизу) вместе с соответствующим ей участком ЭКГ (вверху).

Рис. 2. Часть кардиоинтервалограммы, полученной в результате работы алгоритма. Для наглядности взят участок с аритмией. Вверху – снятая ЭКГ, внизу – соответствующая ей кардиоинтервалограмма.

 

 

Приложение 1.

Функция, преобразующая ЭКГ в последовательность кардиоинтервалов

function [KI]=Kard_Interv(t,x,Uup,Udwn,dt)

%Функция для получения массива кардиоинтервалов из сигнала ЭКГ

%входные параметры: t - массив временных отсчетов, с. Допускается

%изменяемая частота дискретизации (не противоречащая теореме Котельникова);

%x - массив входного сигнала, мВ.

%Uup - верхний предел детектирования возрастания QRS-комплекса, мВ

%Udwn - верхний предел детектирования QRS-комплекса, мВ

%dt - максимальное время длительности QRS-комплекса, c

%функция выводит массив длительностей кардиоинтервалов в секундах.

 

%вычисление длины массива

C=length(t);

C1=length(x);

%ошибка, если вектора времени и данных неодинаковы

if (C~=C1)

error('x must be same length as t');

end

pr=0;

KI2=zeros(1,1);

tpred=t(1);

%временные метки

t1=0;

t2=0;

%сохраненное значение амплитуды

a1=x(1);

a2=x(1);

for i=2:(C)

%идем вверх, предыдущий вверх

if (x(i-1)<=x(i))&&(pr==0)

t1=t1+(t(i)-t(i-1));

 

end

%идем вниз, предыдущий вверх

if (x(i-1)>x(i))&&(pr==0)

a1=x(i-1);

ttek=t(i);

pr=1;

 

end

%идем вниз, предыдущий вниз

if (x(i-1)>=x(i))&&(pr==1)

t2=t2+(t(i)-t(i-1));

 

end

%идем вверх, предыдущий вниз

if (x(i-1)<x(i))&&(pr==1)

%проверяем величину и длительность пика, который получился

if (a1-a2>Uup)&&((a1-x(i-1))>Udwn)&&((t1+t2)<dt)

KI2=[KI2 ttek-tpred];

tpred=ttek;

end

pr=0;

a2=x(i-1);

t1=0;

t2=0;

 

end

 

%end

end

KI=KI2(2:length(KI2));

end

 



Поделиться:




Поиск по сайту

©2015-2024 poisk-ru.ru
Все права принадлежать их авторам. Данный сайт не претендует на авторства, а предоставляет бесплатное использование.
Дата создания страницы: 2017-12-12 Нарушение авторских прав и Нарушение персональных данных


Поиск по сайту: