exponenta event banner

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 простого сигнала временного ряда и продемонстрируйте идеальную реконструкцию.

Создание сигнала временного ряда

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 сигнала ЭКГ до четвертого уровня с помощью db2 вейвлет. Данные взяты из Percival & Walden (2000), стр. 125 (данные первоначально предоставлены Уильямом Константином и Пером Рейнхаллом, Вашингтонский университет). Частота дискретизации сигнала ЭКГ составляет 180 герц.

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

Постройте график формы сигнала ЭКГ и 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.

Создайте анализ множественных решений для данных индекса южного колебания. Период отбора проб составляет один день. Постройте график подробных данных уровня 8, соответствующих шкале 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 для данных обменного курса Deutsch Mark - доллар США с использованием минимального масштабирования полосы пропускания и вейвлет-фильтров с четырьмя коэффициентами.

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

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

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

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

Загрузка 23-канальных данных ЭЭГ Espiga3 [3]. Каналы расположены столбчато. Данные дискретизируются на частоте 200 Гц.

load Espiga3

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

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

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

Выберите sym6 вейвлет. Загрузить и построить график сигнала электрокардиограммы (ЭКГ). Частота дискретизации сигнала ЭКГ составляет 180 герц. Данные взяты из Percival and Walden (2000), стр. 125 (данные первоначально предоставлены Уильямом Константином и Пером Рейнхаллом, Вашингтонский университет).

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)) -many (по умолчанию). Коэффициенты детализации формируются на каждом уровне. Коэффициенты масштабирования возвращаются только для конечного уровня. В этом примере, поскольку N = 2048, J0 = floor (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-many {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, заданного как матрица или 3-D массив, соответственно. w является матрицей LEV + 1-на-N для MODWT N-точечного сигнала и матрицей LEV + 1-на-N-на-NC для MODWT N-на-NC мультисигнала. По умолчаниюimodwt предполагает, что вы получили MODWT с помощью 'sym4' вейвлет с периодической обработкой границ.

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

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

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

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

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

свернуть все

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

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

Ссылки

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

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

[3] Столовая гора, Гектор. «Адаптированные вейвлеты для обнаружения шаблона». В процессе распознавания образов, анализа изображений и приложений, под редакцией Альберто Санфелиу и Мануэля Лазо Кортеса, 3773: 933-44. Берлин, Гейдельберг: Springer Berlin Heidelberg, 2005. https://doi.org/10.1007/11578079_96 .

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

..
Представлен в R2015b