exponenta event banner

modwpt

Максимальное перекрытие дискретного вейвлет-пакетного преобразования

Описание

пример

wpt = modwpt(x) возвращает конечные узлы для максимального перекрывающегося дискретного вейвлет-пакетного преобразования (MODWPT) для 1-D действительного сигнала, x.

Примечание

Выходной сигнал MODWPT задерживается по времени по сравнению с входным сигналом. Большинство фильтров, используемых для получения MODWPT, имеют нелинейный фазовый отклик, что затрудняет компенсацию временной задержки. Это справедливо для всех ортогональных фильтров масштабирования и вейвлет, за исключением вейвлета Хаара. Можно выровнять по времени коэффициенты с признаками сигнала, но результатом является аппроксимация, а не точное выравнивание с исходным сигналом. MODWPT разделяет энергию между вейвлет-пакетами на каждом уровне. Сумма энергии по всем пакетам равна общей энергии входного сигнала. Выходные данные MODWPT полезны для приложений, в которых необходимо анализировать уровни энергии в различных пакетах.

Подробности MODWPT (modwptdetails) являются результатом нулевой фазовой фильтрации сигнала. Элементы в деталях MODWPT точно совпадают с элементами во входном сигнале. Для данного уровня суммирование деталей для каждой выборки возвращает точный исходный сигнал. Вывод подробных данных MODWPT полезен для приложений, требующих выравнивания по времени, таких как непараметрический регрессионный анализ.

пример

wpt = modwpt(x,wname) возвращает значение MODWPT, используя ортогональный вейвлет-фильтр, заданный параметром wname.

пример

wpt = modwpt(x,lo,hi) возвращает значение MODWPT с помощью фильтра ортогонального масштабирования, loи вейвлет-фильтр, hi.

wpt = modwpt(___,lev) возвращает терминальные узлы дерева вейвлет-пакетов на положительном целочисленном уровне lev.

пример

[wpt,packetlevs] = modwpt(___) возвращает вектор уровней преобразования, соответствующих строкам wpt.

[wpt,packetlevs,cfreq] = modwpt(___) возвращает центральные частоты приблизительных полос пропускания, соответствующих строкам wpt.

пример

[wpt,packetlevs,cfreq,energy] = modwpt(___) возвращает энергию (в квадрате L2 норму) коэффициентов вейвлет-пакета для узлов в wpt.

пример

[wpt,packetlevs,cfreq,energy,relenergy] = modwpt(___) возвращает относительную энергию для вейвлет-пакетов в wpt.

пример

[___] = modwpt(___,Name,Value) возвращает MODWPT с дополнительными параметрами, указанными одним или несколькими Name,Value аргументы пары.

Примеры

свернуть все

Получить MODWPT сигнала электрокардиограммы (ЭКГ), используя длину по умолчанию 18 Фейер-Коровкин ('fk18') вейвлет.

load wecg;
wpt = modwpt(wecg);

wpt представляет собой матрицу 16 на 2048, содержащую упорядоченные по последовательности коэффициенты вейвлет-пакета для узлов вейвлет-преобразования пакетов. В этом случае узлы находятся на уровне 4. Каждый узел соответствует приблизительной фильтрации полосы пропускания [nfs/25, (n + 1) fs/25), где n = 0,..., 15 и fs - частота дискретизации. Постройте график коэффициентов вейвлет-пакета в узле (4,2), который является уровнем 4, узел 2.

plot(wpt(3,:))
title('Node 4 Wavelet Packet Coefficients')

Figure contains an axes. The axes with title Node 4 Wavelet Packet Coefficients contains an object of type line.

Получить данные MODWPT индекса южного колебания с экстремальным фазовым вейвлетом Daubechies с двумя моментами исчезновения ('db2').

load soi;
wsoi = modwpt(soi,'db2');

Убедитесь, что размер результирующего преобразования содержит 16 узлов. Каждый узел находится в отдельной строке.

size(wsoi)
ans = 1×2

          16       12998

Получить MODWPT формы сигнала ЭКГ, используя масштабирование длины 18 Фейера-Коровкина и вейвлет-фильтры.

load wecg; 
[lo,hi] = wfilters('fk18');
wpt = modwpt(wecg,lo,hi);

Получить MODWPT и полное дерево вейвлет-пакетов формы сигнала ЭКГ, используя длину по умолчанию 18 Fejer-Korovkin ('fk18') вейвлет. Извлеките и постройте график коэффициентов узла на уровне 3, узел 2.

load wecg;     
[wpt,packetlevels,cfreq] = modwpt(wecg,'FullTree',true);
p3 = wpt(packetlevels==3,:);
plot(p3(3,:))
title('Level 3, Node 2 Wavelet Coefficients')

Figure contains an axes. The axes with title Level 3, Node 2 Wavelet Coefficients contains an object of type line.

Отображение центральных частот на уровне 3.

cfreq(packetlevels==3,:)
ans = 8×1

    0.0312
    0.0938
    0.1562
    0.2188
    0.2812
    0.3438
    0.4062
    0.4688

Получение и построение графика энергии MODWPT и относительной энергии сигнала ЭКГ.

load wecg
[wpt,~,cfreq,energy,relenergy] = modwpt(wecg);

Показать, что сумма энергий MODWPT равна сумме энергии в исходном сигнале. Разница между общей энергией MODWPT и энергией сигнала достаточно мала, чтобы считаться незначительной.

disp(['Difference between MODWPT energy and signal energy: ',num2str(sum(energy)-sum(wecg.^2))])
Difference between MODWPT energy and signal energy: 3.6122e-09

Постройте график энергии MODWPT по узлам.

figure
bar(1:16,energy)
xlabel('Node')
ylabel('Energy')
title('Energy by Node')

Figure contains an axes. The axes with title Energy by Node contains an object of type bar.

disp(['Total power in passband: ',num2str(energy(1))])
Total power in passband: 200.8446

Постройте график относительной энергии и отобразите процент энергии сигнала в первой полосе пропускания [0,5,6250].

figure
bar(1:16,relenergy*100)
xlabel('Node')
ylabel('Percent Energy')
title('Energy Relative to Signal Energy by Node')

Figure contains an axes. The axes with title Energy Relative to Signal Energy by Node contains an object of type bar.

disp(['Percentage of signal power in passband: ',num2str(relenergy(1)*100)])
Percentage of signal power in passband: 67.3352

Получить выровненное по времени значение MODWPT двух прерывистых синусоидальных волн в шуме. Синусоидальные частоты составляют 150 Гц и 200 Гц. Данные дискретизируют при частоте 1000 Гц.

dt = 0.001;     
t = 0:dt:1-dt;     
x = cos(2*pi*150*t).*(t>=0.2 & t<0.4)+ sin(2*pi*200*t).*(t>0.6 & t<0.9);     
y = x+0.05*randn(size(t));
[wpta,~,Falign] = modwpt(x,'TimeAlign',true);
[wptn,~,Fnon] = modwpt(x);

Сравните неориентированные и выровненные по времени графики частоты.

subplot(2,1,1);
contour(t,Fnon.*(1/dt),abs(wptn).^2); 
grid on;     
ylabel('Hz');     
title('Time-Frequency Plot (Nonaligned)');
subplot(2,1,2)     
contour(t,Falign.*(1/dt),abs(wpta).^2); 
grid on;     
xlabel('Time'); 
ylabel('Hz');     
title('Time-Frequency Plot (Aligned)');

Figure contains 2 axes. Axes 1 with title Time-Frequency Plot (Nonaligned) contains an object of type contour. Axes 2 with title Time-Frequency Plot (Aligned) contains an object of type contour.

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

свернуть все

Входной сигнал, заданный как действительная строка или вектор столбца. x должен иметь по крайней мере два элемента.

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

Анализ вейвлет-фильтра, заданного как фильтр, соответствующий ортогональному вейвлету. Если задано масштабирование (lo) и вейвлет (hi) фильтры, modwpt игнорирует wname вход.

Допустимые ортогональные семейства вейвлетов начинаются с одного из следующих, за которым следует целое число, N, например, sym4. Однако обратите внимание, что 'haar' за ним не следует целое число.

  • 'haar' - вейвлет Хаара, который является таким же, как вейвлет Даубехиеса с одним исчезающим моментом, 'db1'.

  • 'dbN' - Daubechies вейвлет с N исчезающие моменты

  • 'symN' - Симлеты вейвлет с N исчезающие моменты

  • 'coifN' - Coiflets вейвлет с N исчезающие моменты

  • 'fkN' - Вейвлет Фейера-Коровкина с N коэффициенты

Чтобы проверить, является ли ваш вейвлет ортогональным, используйте wavemngr('type',wname) и убедитесь, что он возвращается 1 в качестве типа вейвлета. Чтобы определить допустимые значения для N, используйте waveinfo, например, waveinfo('fk').

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

Вейвлет-фильтр, заданный как действительный вектор четной длины. hi должны удовлетворять условиям, необходимым для генерации ортогонального вейвлета. Нельзя указать как фильтры масштабирования-вейвлета, так и wname вход.

Уровень преобразования, заданный как положительное целое число, меньшее или равное floor(log2(numel(x))).

Аргументы пары «имя-значение»

Укажите дополнительные пары, разделенные запятыми Name,Value аргументы. Name является именем аргумента и Value - соответствующее значение. Name должен отображаться внутри кавычек. Можно указать несколько аргументов пары имен и значений в любом порядке как Name1,Value1,...,NameN,ValueN.

Пример: 'Fulltree',true возвращает полное дерево вейвлет-пакетов

Опция для возврата полного дерева вейвлет-пакетов, указанного как разделенная запятыми пара, состоящая из 'FullTree' и либо false или true. При указании false, то modwpt возвращает только узлы вейвлет-пакетов терминала (конечного уровня). При указании true, то modwpt возвращает полное дерево вейвлет-пакетов до указанного уровня.

Пример: 'Fulltree',true

Опция выравнивания по времени коэффициентов вейвлет-пакетов с признаками сигнала, заданными как разделенная запятыми пара, состоящая из 'TimeAlign' и либо true для выравнивания по времени или false чтобы не выровнять.

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

Пример: 'TimeAlign',true

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

свернуть все

Дерево вейвлет-пакетов, возвращаемое в виде матрицы с каждой строкой, содержащей упорядоченные по последовательности коэффициенты вейвлет-пакетов. По умолчанию wpt содержит только уровень терминала для MODWPT. Уровнем терминала по умолчанию является уровень 4 или floor(log2(numel(x))), в зависимости от того, что меньше. На уровне 4, wpt является 16-by-numel(x) матрица. Для полного дерева, на уровне j, wpt является 2j + 2-2-by-numel(x), причем каждая строка содержит коэффициенты пакета по уровню и индексу. Приблизительная полоса пропускания для n-ой строки wpt на уровне j составляет [n 12 (j + 1), n2 (j + 1)) циклов/образца, где n = 1,2,... 2j.

Уровни преобразования, возвращаемые в виде вектора. Уровни соответствуют строкам wpt. Если wpt содержит только коэффициенты уровня терминала, packetlevs - вектор констант, равный терминальному уровню. Если wpt содержит таблицу полных вейвлет-пакетов, packetlevs - вектор с элементами 2j для каждого уровня, j. Чтобы выбрать все вейвлет-пакетные узлы на определенном уровне, используйте packetlevs с логической индексацией.

Центральные частоты приблизительных полос пропускания в wpt строки, возвращенные в виде вектора. Центральные частоты находятся в циклах/выборке. Чтобы преобразовать единицы в циклы/единицу времени, умножьте cfreq по частоте дискретизации.

Энергия коэффициентов вейвлет-пакета для wpt узлы, возвращенные в виде вектора. Сумма энергий (в квадрате L2 норм) для вейвлет-пакетов на каждом уровне равна энергии в сигнале.

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

Алгоритмы

modwpt выполняет дискретное вейвлет-пакетное преобразование и формирует упорядоченное по последовательности вейвлет-пакетное дерево. Сравните упорядоченные по последовательности и нормальные деревья (Paley).

Ссылки

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

[2] Уолден, А.Т. и А. Контрерас Кристан. «Скорректированное по фазе недекимированное дискретное вейвлет-пакетное преобразование и его применение для интерпретации синхронизации событий». Труды Лондонского королевского общества A. Vol. 454, выпуск 1976, 1998, стр. 2243-2266.

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

.

См. также

| |

Представлен в R2016a