Сравнение MODWT и MODWTMRA

Этот пример демонстрирует различия между функциями MODWT и MODWTMRA. Разделы MODWT энергия сигнала через коэффициенты детали и масштабные коэффициенты. Проекты MODWTMRA сигнал на подпространства вейвлета и масштабирующееся подпространство.

Выберите 'sym6' вейвлет. Загрузите и постройте форму волны ECG. Данные о ECG взяты из Базы данных Аритмии MIT-BIH.

load mit200
wv = 'sym6';
plot(ecgsig)
grid on
title(['Signal Length = ',num2str(length(ecgsig))])

Возьмите MODWT сигнала.

wtecg = modwt(ecgsig,wv);

Входные данные являются выборками функции f(x) оцененный в N- много моментов времени. Функция может быть выражена как линейная комбинация масштабирующейся функции ϕ(x) и вейвлет ψ(x)в различных шкалах и переводах: f(x)=k=0N-1ck2-J0/2ϕ(2-J0x-k)+j=1J0fj(x) где fj(x)=k=0N-1dj,k2-j/2ψ(2-jx-k) и J0 количество уровней разложения вейвлета. Первая сумма является крупным приближением шкалы сигнала, и fj(x) детали в последовательных шкалах. MODWT возвращается N- много коэффициентов {ck}и (J0×N)- много коэффициентов детали {dj,k} из расширения. Каждая строка в wtecg содержит коэффициенты в различной шкале.

При взятии MODWT сигнала длины N, существуют пол(журнал2(N))- много уровней разложения (по умолчанию). Коэффициенты детали производятся на каждом уровне. Масштабные коэффициенты возвращены только для итогового уровня. В этом примере, с тех пор N=10000, J0=пол(журнал2(10000))=13 и количество строк в wtecg J0+1=13+1=14.

Разделы MODWT энергия через различные шкалы и масштабные коэффициенты: ||X||2=j=1J0||Wj||2+||VJ0||2 где X входные данные, Wj коэффициенты детали в шкале j, и VJ0 масштабные коэффициенты итогового уровня.

Вычислите энергию в каждой шкале и оцените их сумму.

energy_by_scales = sum(wtecg.^2,2);
Levels = {'D1';'D2';'D3';'D4';'D5';'D6';'D7';'D8';'D9';'D10';'D11';'D12';'D13';'A13'};
energy_table = table(Levels,energy_by_scales);
disp(energy_table)
    Levels     energy_by_scales
    _______    ________________

    {'D1' }        0.31592     
    {'D2' }         2.6504     
    {'D3' }         28.802     
    {'D4' }         159.37     
    {'D5' }          300.5     
    {'D6' }         431.33     
    {'D7' }         444.93     
    {'D8' }         182.37     
    {'D9' }         45.381     
    {'D10'}         11.578     
    {'D11'}         19.809     
    {'D12'}         4.5406     
    {'D13'}          3.308     
    {'A13'}         192.46     
energy_total = varfun(@sum,energy_table(:,2))
energy_total=1×1 table
    sum_energy_by_scales
    ____________________

           1827.3       

Подтвердите, что MODWT является сохранением энергии путем вычисления энергии сигнала и сравнения его с суммой энергий по всем шкалам.

energy_ecg = sum(ecgsig.^2);
max(abs(energy_total.sum_energy_by_scales-energy_ecg))
ans = 4.0875e-09

Возьмите MODWTMRA сигнала.

mraecg = modwtmra(wtecg,wv);

MODWTMRA возвращает проекции функции f(x) на различные подпространства вейвлета и итоговый пробел масштабирования. Таким образом, MODWTMRA возвращается k=0N-1ck2-J0/2ϕ(2-J0x-k)и J0- многие {fj(x)}оцененный в N- много моментов времени. Каждая строка в mraecg проекция f(x) на различное подпространство. Это означает, что исходный сигнал может быть восстановлен путем добавления всех проекций. Это не верно в случае MODWT. Добавление коэффициентов в wtecg не восстановит исходный сигнал.

Выберите момент времени, добавьте проекции f(x) оцененный в то время указывают и соответствуют исходному сигналу.

time_point = 1000;
abs(sum(mraecg(:,time_point))-ecgsig(time_point))
ans = 3.0942e-13

Подтвердите, что, в отличие от MODWT, MODWTMRA не является сохраняющим энергию преобразованием.

energy_ecg = sum(ecgsig.^2);
energy_mra_scales = sum(mraecg.^2,2);
energy_mra = sum(energy_mra_scales);
max(abs(energy_mra-energy_ecg))
ans = 534.7949

MODWTMRA является фильтрацией нулевой фазы сигнала. Функции будут выровнены временем. Продемонстрируйте это путем графического вывода исходного сигнала и одной из его проекций. Чтобы лучше проиллюстрировать выравнивание, увеличить масштаб.

figure
plot(ecgsig)
hold on
plot(mraecg(4,:),'-')
grid on
xlim([4000 5000])
legend('Signal','Projection','Location','northwest')

Сделайте подобный график с помощью коэффициентов MODWT в той же шкале. Обратите внимание на то, что функции не будут выровнены временем. MODWT не является фильтрацией нулевой фазы входа.

figure
plot(ecgsig)
hold on
plot(wtecg(4,:),'-')
grid on
xlim([4000 5000])
legend('Signal','Coefficients','Location','northwest')

Ссылки

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

Капризный, G. B. "Оценивая ECG Анализаторы". http://www.physionet.org/physiotools/wfdb/doc/wag-src/eval0.tex

Муди Г. Б., Р. Г. Марк. "Удар Базы данных Аритмии MIT-BIH". Инженер IEEE в Med и Biol. Издание 20, Номер 3, 2001), стр 45-50.

Смотрите также

|