exponenta event banner

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

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

Ссылки

[1] Персиваль, D. B. и А. Т. Уолден. Вейвлет-методы для анализа временных рядов. Кембридж, Великобритания: Cambridge University Press, 2000.

См. также

|