modwtmra

Анализ мультиразрешения на основе MODWT

Описание

пример

mra = modwtmra(w) возвращает анализ мультиразрешения (MRA) матрицы максимального перекрытия дискретного вейвлета преобразовывает (MODWT), w. Матрица MODWT, w, выход modwt функция.

пример

mra = modwtmra(w,wname) создает MRA использование вейвлета, соответствующего wname. wname вейвлет должен быть тем же вейвлетом, используемым, чтобы получить MODWT.

пример

mra = modwtmra(w,Lo,Hi) создает MRA использование масштабирующегося фильтра Lo и вейвлет фильтрует Hi. Lo и Hi фильтры должны быть теми же фильтрами, используемыми, чтобы получить MODWT.

пример

mra = modwtmra(___,'reflection') использует отражательное граничное условие в конструкции MRA, использующего любой из аргументов от предыдущих синтаксисов. Если вы задаете 'reflection', modwtmra принимает, что длина исходного сигнала является одной половиной количества столбцов во входной матрице коэффициентов.

Примеры

свернуть все

Получите MODWTMRA, простой timeseries сигнализирует и демонстрирует совершенную реконструкцию.

Создайте сигнал timeseries

t = 1:10;
x =sin(2*pi*200*t);

Получите MODWT и MODWTMRA и суммируйте строки MODWTMRA.

m = modwt(x);
mra = modwtmra(m);
xrec = sum(mra);

Используйте максимум абсолютных значений, чтобы показать, что различие между исходным сигналом и реконструкцией чрезвычайно мало. Самое большое абсолютное значение находится на порядке 10-25, который демонстрирует совершенную реконструкцию.

max(abs(x-xrec))
ans = 5.5738e-25

Создайте MRA сигнала ECG вниз, чтобы выровнять четыре использования 'db2' вейвлета.

load wecg;
lev = 4;
wtecg = modwt(wecg,'db2',lev);
mra = modwtmra(wtecg,'db2');

Постройте форму волны ECG и MRA.

subplot(6,1,1)
plot(wecg)
    for kk = 2:lev+2
        subplot(6,1,kk)
        plot(mra(kk-1,:))
    end

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

load soi
wtsoi = modwt(soi);
mrasoi = modwtmra(wtsoi);
plot(mrasoi(8,:))
title('Level 8 Details')

Получите MRA для Деуча Марка - данные об обменном курсе доллара США с помощью минимального масштабирования пропускной способности и фильтров вейвлета с четырьмя коэффициентами.

load DM_USD;
Lo = [0.4801755, 0.8372545, 0.2269312, -0.1301477];
Hi = qmf(Lo);
wdm = modwt(DM_USD,Lo,Hi);
mra = modwtmra(wdm,Lo,Hi);

Получите MRA для сигнала ECG использование 'reflection' граничная обработка.

load wecg;
wtecg = modwt(wecg,'reflection');
mra = modwtmra(wtecg,'reflection');

Покажите, что количество столбцов в MRA равно числу элементов в исходном сигнале.

isequal(size(mra,2),numel(wecg))
ans = logical
   1

Этот пример демонстрирует различия между функциями 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.

Входные параметры

свернуть все

Максимальное перекрытие дискретный вейвлет преобразовывает, заданный как матрица. w выход modwt.

Вход w L +1-by-N матрица, содержащая MODWT N - входной сигнал точки вниз, чтобы выровнять L. По умолчанию, modwtmra принимает, что вы получили MODWT использование symlet вейвлета с четырьмя исчезающими моментами, 'sym4', и использование периодической граничной обработки.

Типы данных: double

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

Масштабирование фильтра, заданного как ровная длина вектор с действительным знаком. Можно задать Lo только если вы не задаете wname. Lo должен быть тот же фильтр масштабирования, используемый, чтобы получить MODWT с modwt функция.

Фильтр вейвлета, заданный как ровная длина вектор с действительным знаком. Можно задать Hi только если вы не задаете wname. Hi должен быть тот же фильтр вейвлета, используемый, чтобы получить MODWT с modwt функция.

Выходные аргументы

свернуть все

Анализ мультиразрешения, возвращенный как матрица. По умолчанию, mra одного размера с входом, преобразовывают матричный w. Если вы задаете отражательную граничную обработку, то mra имеет одну половину количества столбцов как входная матрица w.

Выход mra L +1-by-N матрица. k th строка mra содержит детали для k th уровень. (L +1) th строка mra содержит L th сглаженный уровень.

Ссылки

[1] Персиваль, D. B. и Уолден, A. T. Методы вейвлета для анализа временных рядов. Кембридж, U.K: Издательство Кембриджского университета, 2000.

[2] Whitcher, B., П. Гатторп и Д. Б. Персиваль. "Ковариационный анализ вейвлета с приложением к атмосферным временным рядам". Журнал Геофизического Исследования, Издания 105, 2000, стр 14941–14962.

Расширенные возможности

Генерация кода C/C++
Генерация кода C и C++ с помощью MATLAB® Coder™.

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

|

Введенный в R2015b