exponenta event banner

modwptdetails

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

Описание

пример

w = modwptdetails(x) возвращает сведения о максимальном перекрытии дискретного вейвлет-пакетного преобразования (MODWPT) для 1-D действительного сигнала, x. Детали MODWPT обеспечивают нулевую фазовую фильтрацию сигнала. По умолчанию modwptdetails возвращает только терминальные узлы, которые находятся на уровне 4 или на уровне floor(log2(numel(x))), в зависимости от того, что меньше.

Примечание

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

пример

w = modwptdetails(x,wname) использует ортогональный вейвлет-фильтр, указанный wname.

пример

w = modwptdetails(x,lo,hi) использует фильтр ортогонального масштабирования, loи вейвлет-фильтр, hi.

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

пример

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

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

пример

[___] = modwptdetails(___,'FullTree',tf), где tf является false, возвращает подробные сведения только о узлах вейвлет-пакетов терминала (конечного уровня). При указании true, то modwptdetails возвращает подробные сведения о полном дереве вейвлет-пакетов до заданного по умолчанию или уровня. Значение по умолчанию для tf является false.

Примеры

свернуть все

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

load wecg;
wptdetails = modwptdetails(wecg);

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

xrec = sum(wptdetails);
max(abs(wecg-xrec'))
ans = 1.7903e-11

Получение подробных данных MODWPT для сигнала, содержащего 100 Гц и 450 Гц синусоидальные волны. Каждая строка modwptdetails выход соответствует отдельной полосе частот.

dt = 0.001;
fs = 1/dt;
t = 0:dt:1;
x = (sin(2*pi*100*t)+sin(2*pi*450*t));
[lo,hi] = wfilters('fk22');
wptdetails = modwptdetails(x,lo,hi);

Использовать modwpt для получения энергетических и центральных частот сигнала. Постройте график энергии в вейвлет-пакетах. Четвертая и пятнадцатая полосы частот содержат большую часть энергии. Другие полосы частот имеют значительно меньшую энергию. Частотные диапазоны четвертого и пятнадцатого диапазонов составляют приблизительно 94-125 Гц и 438-469 Гц соответственно.

[wpt,~,cfreqs,energy] = modwpt(x,lo,hi);
figure
bar(1:16,energy);
xlabel('Packet')
ylabel('Packet Energy')
title('Energy by Wavelet Packet')

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

Постройте график спектральной плотности мощности входного сигнала.

pwelch(x,[],[],[],fs,'onesided');
title('Power Spectral Density of Input Signal')

Figure contains an axes. The axes with title Power Spectral Density of Input Signal contains an object of type line.

Показать, что детали MODWPT имеют нулевой сдвиг фазы от входного синуса 100 Гц.

p4 = wptdetails(4,:);
plot(t,sin(2*pi*100*t).*(t>0.3 & t<0.7))
hold on
plot(t,p4.*(t>0.3 & t<0.7),'r')
legend('Sine Wave','MODWPT Details')

Figure contains an axes. The axes contains 2 objects of type line. These objects represent Sine Wave, MODWPT Details.

Получение подробных данных MODWPT для синусоидальной волны с временной локализацией 100 Гц в шуме. Частота дискретизации составляет 1000 Гц. Получить MODWPT на уровне 4 по длине 22 Фейер-Коровкин ('fk22') вейвлет.

dt = 0.001;     
t = 0:dt:1;
x = cos(2*pi*100*t).*(t>0.3 & t<0.7)+0.25*randn(size(t));
wptdetails = modwptdetails(x,'fk22');
p4 = wptdetails(4,:);

Постройте график подробных данных MODWPT для уровня 4, пакет номер 4. Детали MODWPT представляют собой нулевую фазовую фильтрацию входного сигнала с приблизительной полосой пропускания [3Fs/25,4Fs/25), где Fs - частота дискретизации.

plot(t,cos(2*pi*100*t).*(t>0.3 & t<0.7));
hold on
plot(t,p4,'r')
legend('Sine Wave','MODWPT Details')

Figure contains an axes. The axes contains 2 objects of type line. These objects represent Sine Wave, MODWPT Details.

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

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

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

load wecg;     
[w,packetlevels] = modwptdetails(wecg,'FullTree',true);
p3 = w(packetlevels==3,:);
plot(p3(3,:))
title('Level 3, Node 2 MODWPT Details')

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

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

свернуть все

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

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

Анализ вейвлета, указанного как одно из следующих:

  • 'haar' - Вейвлет Хаара

  • 'dbN' - Экстремальная фаза Daubechies вейвлет с N исчезающих моментов, где N является положительным целым числом от 1 до 45.

  • 'symN' - Симлеты вейвлет с N исчезающими моментами, где N - положительное целое число от 2 до 45.

  • 'coifN' - Coiflets вейвлет с N исчезающими моментами, где N - положительное целое число от 1 до 5.

  • 'fkN' - вейвлет Фейера-Коровкина с N коэффициентами, где N = 4, 6, 8, 14, 18 и 22.

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

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

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

Параметр дерева возврата, указанный как false или true. Если tf является false, то modwptdetails возвращает подробные данные только о узлах пакетного вейвлета терминала (конечного уровня). При указании true, то modwptdetails возвращает подробные сведения о полном дереве вейвлет-пакетов до заданного по умолчанию или уровня.

Для полного дерева вейвлет-пакетов, w является 2j + 1-2-by-numel(x) матрица. Каждый уровень j имеет 2j данных вейвлет-пакета.

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

свернуть все

Подробности дерева вейвлет-пакетов, возвращаемые в виде матрицы с каждой строкой, содержащей упорядоченные по последовательности подробности вейвлет-пакетов для терминальных узлов. Терминальные узлы находятся на уровне 4 или на уровне floor(log2(numel(x))), в зависимости от того, что меньше. Подробности MODWPT представляют собой проекции сигнала с нулевой фазой на подпространства, соответствующие вейвлет-пакетным узлам. Сумма деталей MODWPT по каждой выборке восстанавливает исходный сигнал.

Для узлов терминала по умолчанию w является 2j-by-numel(x) матрица. Для полной таблицы пакетов на уровне j w является 2j + 1-2-by-numel(xматрица упорядоченных по последовательности коэффициентов вейвлет-пакетов по уровню и индексу. Приблизительная полоса пропускания для n-ой строки w на уровне j составляет [n 12 (j + 1), n2 (j + 1)) циклов на образец, где n = 1,2,..., 2j.

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

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

Алгоритмы

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

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

Ссылки

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

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

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

.

См. также

| | |

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