exponenta event banner

Обнаружение волны R в ЭКГ

В этом примере показано, как использовать вейвлеты для анализа сигналов электрокардиограммы (ЭКГ). Сигналы ЭКГ часто являются нестационарными, что означает, что их частотное содержание изменяется с течением времени. Эти изменения представляют интерес.

Вейвлеты разлагают сигналы на изменяющиеся во времени частотные (масштабные) составляющие. Поскольку элементы сигнала часто локализуются во времени и частоте, анализ и оценка упрощаются при работе с более разреженными (уменьшенными) представлениями.

Комплекс QRS состоит из трех отклонений в форме сигнала ЭКГ. Комплекс QRS отражает деполяризацию правого и левого желудочков и является наиболее заметной особенностью ЭКГ человека.

Нагрузка и график формы сигнала ЭКГ, где пики R комплекса QRS были аннотированы двумя или более кардиологами. Данные ЭКГ и аннотации взяты из базы данных аритмии MIT-BIH. Данные дискретизируются на частоте 360 Гц.

load mit200
figure
plot(tm,ecgsig)
hold on
plot(tm(ann),ecgsig(ann),'ro')
xlabel('Seconds')
ylabel('Amplitude')
title('Subject - MIT-BIH 200')

Figure contains an axes. The axes with title Subject - MIT-BIH 200 contains 2 objects of type line.

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

Существует две клавиши для использования вейвлетов в качестве детекторов общих признаков:

  • Вейвлет-преобразование разделяет компоненты сигнала на различные полосы частот, обеспечивая возможность более разреженного представления сигнала.

  • Вы часто можете найти вейвлет, который напоминает функцию, которую вы пытаетесь обнаружить.

Вейвлет «sym4» напоминает комплекс QRS, что делает его хорошим выбором для обнаружения QRS. Чтобы проиллюстрировать это более четко, извлеките комплекс QRS и постройте график результата с расширенным и переведенным вейвлетом «sym4» для сравнения.

qrsEx = ecgsig(4560:4810);
[mpdict,~,~,longs] = wmpdictionary(numel(qrsEx),'lstcpt',{{'sym4',3}});
figure
plot(qrsEx)
hold on
plot(2*circshift(mpdict(:,11),[-2 0]),'r')
axis tight
legend('QRS Complex','Sym4 Wavelet')
title('Comparison of Sym4 Wavelet and QRS Complex')

Figure contains an axes. The axes with title Comparison of Sym4 Wavelet and QRS Complex contains 2 objects of type line. These objects represent QRS Complex, Sym4 Wavelet.

Используйте максимальное перекрывающееся дискретное вейвлет-преобразование (MODWT) для увеличения пиков R в форме сигнала ЭКГ. MODWT является недекимированным вейвлет-преобразованием, которое обрабатывает произвольные размеры выборки.

Во-первых, разложить сигнал ЭКГ до уровня 5, используя вейвлет «sym4» по умолчанию. Затем реконструируют локализованную по частоте версию формы сигнала ЭКГ, используя только вейвлет-коэффициенты на шкалах 4 и 5. Шкалы соответствуют следующим приблизительным полосам частот.

  • Шкала 4 - [11.25, 22.5) Гц

  • Шкала 5 - [5,625, 11,25) Гц.

Это охватывает полосу пропускания, показанную для максимизации энергии QRS.

wt = modwt(ecgsig,5);
wtrec = zeros(size(wt));
wtrec(4:5,:) = wt(4:5,:);
y = imodwt(wtrec,'sym4');

Использовать возведенные в квадрат абсолютные значения аппроксимации сигнала, построенной из вейвлет-коэффициентов, и использовать алгоритм поиска пиков для идентификации R пиков.

При наличии Toolbox™ обработки сигналов можно использовать findpeaks для определения местоположения пиков. Постройте график сигнала R-пика, полученного с помощью вейвлет-преобразования, аннотированного автоматически обнаруженными местоположениями пиков.

y = abs(y).^2;
[qrspeaks,locs] = findpeaks(y,tm,'MinPeakHeight',0.35,...
    'MinPeakDistance',0.150);
figure
plot(tm,y)
hold on
plot(locs,qrspeaks,'ro')
xlabel('Seconds')
title('R Peaks Localized by Wavelet Transform with Automatic Annotations')

Figure contains an axes. The axes with title R Peaks Localized by Wavelet Transform with Automatic Annotations contains 2 objects of type line.

Добавьте аннотации экспертов в форму сигнала R-пика. Время автоматического обнаружения пика считается точным, если оно находится в пределах 150 мс от истинного пика (± 75 мс ).

plot(tm(ann),y(ann),'k*')
title('R peaks Localized by Wavelet Transform with Expert Annotations')

Figure contains an axes. The axes with title R peaks Localized by Wavelet Transform with Expert Annotations contains 3 objects of type line.

В командной строке можно сравнить значения tm(ann) и locs, которые являются временем эксперта и временем автоматического пикового обнаружения соответственно. Увеличение пиков R с помощью вейвлет-преобразования приводит к скорости попадания 100% и отсутствию ложных срабатываний. Вычисленная частота сердечных сокращений с использованием вейвлет-преобразования составляет 88,60 ударов в минуту по сравнению с 88,72 ударов в минуту для аннотированной формы сигнала.

При попытке работы над квадратными величинами исходных данных обнаруживается способность вейвлет-преобразования изолировать R-пики значительно облегчает задачу обнаружения. Работа с необработанными данными может вызвать неправильную идентификацию, например, когда квадрат пика S-волны превышает пик R-волны около 10,4 секунды.

figure
plot(tm,ecgsig,'k--')
hold on
plot(tm,y,'r','linewidth',1.5)
plot(tm,abs(ecgsig).^2,'b')
plot(tm(ann),ecgsig(ann),'ro','markerfacecolor',[1 0 0])
set(gca,'xlim',[10.2 12])
legend('Raw Data','Wavelet Reconstruction','Raw Data Squared', ...
    'Location','SouthEast');
xlabel('Seconds')

Figure contains an axes. The axes contains 4 objects of type line. These objects represent Raw Data, Wavelet Reconstruction, Raw Data Squared.

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

[qrspeaks,locs] = findpeaks(ecgsig.^2,tm,'MinPeakHeight',0.35,...
    'MinPeakDistance',0.150);

Помимо переключателей в полярности пиков R, ЭКГ часто искажается шумом.

load mit203
figure
plot(tm,ecgsig)
hold on
plot(tm(ann),ecgsig(ann),'ro')
xlabel('Seconds')
ylabel('Amplitude')
title('Subject - MIT-BIH 203 with Expert Annotations')

Figure contains an axes. The axes with title Subject - MIT-BIH 203 with Expert Annotations contains 2 objects of type line.

Используйте MODWT для выделения пиков R. Использовать findpeaks для определения местоположения пиков. Постройте график R-пиковой формы сигнала вместе с экспертными и автоматическими аннотациями.

wt = modwt(ecgsig,5);
wtrec = zeros(size(wt));
wtrec(4:5,:) = wt(4:5,:);
y = imodwt(wtrec,'sym4');
y = abs(y).^2;
[qrspeaks,locs] = findpeaks(y,tm,'MinPeakHeight',0.1,...
    'MinPeakDistance',0.150);
figure
plot(tm,y)
title('R-Waves Localized by Wavelet Transform')
hold on
hwav = plot(locs,qrspeaks,'ro');
hexp = plot(tm(ann),y(ann),'k*');
xlabel('Seconds')
legend([hwav hexp],'Automatic','Expert','Location','NorthEast');

Figure contains an axes. The axes with title R-Waves Localized by Wavelet Transform contains 3 objects of type line. These objects represent Automatic, Expert.

Частота попаданий снова составляет 100% при нулевых ложных тревогах.

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

Ссылки

Гольдбергер А. Л., Л. А. Н. Амарал, Л. Гласс, Ж. М. Хаусдорф, П. Ч. Иванов, Р. Г. Марк, Ж. Э. Миетус, Г. Б. Муди, С-К Пенг, Х. Э. Стэнли. «PhysioBank, PhysioToolkit и PhysioNet: компоненты нового исследовательского ресурса для сложных физиологических сигналов». Циркуляция 101. Vol.23, e215-e220, 2000. http://circ.ahajournals.org/cgi/content/full/101/23/e215

Муди, Г. Б. «Оценка анализаторов ЭКГ». http://www.physionet.org/physiotools/wfdb/doc/wag-src/eval0.tex

Муди Г. Б., Р. Г. Марк. «Влияние базы данных аритмии MIT-BIH». IEEE Eng in Med and Biol. vol. 20, Number 3, 2001), стр. 45-50.

Связанные темы