modwtmra

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

Описание

пример

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

пример

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 принимает что размерность столбца w является четным и равняется дважды длине исходного сигнала.

Необходимо ввести целый вектор символов 'reflection'. Если вы добавили вейвлет под названием 'reflection' с помощью менеджера по вейвлету необходимо переименовать тот вейвлет до использования этой опции. 'reflection' может быть помещен в любое положение в списке входных параметров после x. По умолчанию, 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 вейвлет. Данные взяты из Percival & Walden (2000), p.125 (данные, первоначально обеспеченные Уильямом Константином и На Reinhall, Вашингтонский университет). Частота дискретизации для сигнала ECG составляет 180 герц.

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

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

t = (0:numel(wecg)-1)/180;
subplot(6,1,1)
plot(t,wecg)
for kk = 2:lev+2
    subplot(6,1,kk)
    plot(t,mra(kk-1,:))
end
xlabel('Time (s)')
set(gcf,'Position',[0 0 500 700])

Figure contains 6 axes. Axes 1 contains an object of type line. Axes 2 contains an object of type line. Axes 3 contains an object of type line. Axes 4 contains an object of type line. Axes 5 contains an object of type line. Axes 6 contains an object of type line.

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

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

Figure contains an axes. The axes with title Level 8 Details contains an object of type line.

Получите 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' граничная обработка. Данные взяты из Percival & Walden (2000), p.125 (данные, первоначально обеспеченные Уильямом Константином и На Reinhall, Вашингтонский университет).

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

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

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

Загрузите 23 канала данные EEG Espiga3 [3]. Каналы располагаются по столбцам. Данные производятся на уровне 200 Гц.

load Espiga3

Получите MRA мультисигнала.

w = modwt(Espiga3);
mra = modwtmra(w);

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

Выберите sym6 вейвлет. Загрузите и постройте электрокардиограмму (ECG) сигнал. Частота дискретизации для сигнала ECG составляет 180 герц. Данные взяты от Персиваля и Уолдена (2000), p.125 (данные, первоначально обеспеченные Уильямом Константином и На Reinhall, Вашингтонский университет).

load wecg
t = (0:numel(wecg)-1)/180;
wv = 'sym6';
plot(t,wecg)
grid on
title(['Signal Length = ',num2str(numel(wecg))])
xlabel('Time (s)')
ylabel('Amplitude')

Figure contains an axes. The axes with title Signal Length = 2048 contains an object of type line.

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

wtecg = modwt(wecg,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, существуют floor(log2(N))- много уровней разложения (по умолчанию). Коэффициенты детали производятся на каждом уровне. Масштабные коэффициенты возвращены только для итогового уровня. В этом примере, с тех пор N=2048, J0=пол(log2(2048))=11 и количество строк в wtecg J0+1=11+1=12.

Разделы 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';'A11'};
energy_table = table(Levels,energy_by_scales);
disp(energy_table)
    Levels     energy_by_scales
    _______    ________________

    {'D1' }         14.063     
    {'D2' }         20.612     
    {'D3' }         37.716     
    {'D4' }         25.123     
    {'D5' }         17.437     
    {'D6' }         8.9852     
    {'D7' }         1.2906     
    {'D8' }         4.7278     
    {'D9' }         12.205     
    {'D10'}         76.428     
    {'D11'}         76.268     
    {'A11'}         3.4192     
energy_total = varfun(@sum,energy_table(:,2))
energy_total=table
    sum_energy_by_scales
    ____________________

           298.28       

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

energy_ecg = sum(wecg.^2);
max(abs(energy_total.sum_energy_by_scales-energy_ecg))
ans = 7.4402e-10

Возьмите 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))-wecg(time_point))
ans = 3.0846e-13

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

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

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

plot(t,wecg,'b')
hold on
plot(t,mraecg(4,:),'-')
hold off
grid on
xlim([4 8])
legend('Signal','Projection','Location','northwest')
xlabel('Time (s)')
ylabel('Amplitude')

Figure contains an axes. The axes contains 2 objects of type line. These objects represent Signal, Projection.

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

plot(t,wecg,'b')
hold on
plot(t,wtecg(4,:),'-')
hold off
grid on
xlim([4 8])
legend('Signal','Coefficients','Location','northwest')
xlabel('Time (s)')
ylabel('Amplitude')

Figure contains an axes. The axes contains 2 objects of type line. These objects represent Signal, Coefficients.

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

свернуть все

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

Типы данных: single | double
Поддержка комплексного числа: Да

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

Фильтры в виде пары ровной длины векторы с действительным знаком. Lo масштабирующийся фильтр и Hi фильтр вейвлета. Lo и Hi должны быть те же фильтры, используемые в анализе с modwt. Фильтры должны удовлетворить условиям для ортогонального вейвлета. Длины Lo и Hi должно быть равным. Смотрите wfilters для получения дополнительной информации. Вы не можете задать обоих вейвлет wname и пара фильтра Lo,Hi.

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

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

свернуть все

Анализ мультиразрешения, возвращенный как матрица или трехмерный массив. mra LEV +1-by-N матрица или LEV +1-by-N-by-NC массив, где LEV является уровнем MODWT, и N является длиной анализируемого сигнала. k th строка mra содержит детали для k th уровень. (LEV +1) th строка mra содержит LEV th сглаженный уровень.

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

Ссылки

[1] Персиваль, Дональд Б. и Эндрю Т. Уолден. Методы вейвлета для анализа временных рядов. Кембриджский ряд в статистической и вероятностной математике. Кембридж  ; Нью-Йорк: Издательство Кембриджского университета, 2000.

[2] Whitcher, Брэндон, Питер Гатторп и Дональд Б. Персиваль. “Ковариационный анализ вейвлета с Приложением к Атмосферным Временным рядам”. Журнал Геофизического Исследования: Атмосферы 105, № D11 (16 июня 2000): 14941–62. https://doi.org/10.1029/2000JD900110.

[3] Мезаструктура, Гектор. “Адаптированные Вейвлеты для Обнаружения Шаблона”. Происходящий в Распознавании образов, Анализе изображения и Приложениях, отредактированных Альберто Санфелиу и Мануелем Лазо Кортесом, 3773:933–44. Берлин, Гейдельберг: Спрингер Берлин Гейдельберг, 2005. https://doi.org/10.1007/11578079_96.

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

Введенный в R2015b