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 сигнала электрокардиограммы (ECG) с помощью длины по умолчанию 18 Fejer-Korovkin ('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 Fejer-Korovkin ('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 для полного вейвлета дерева пакетов формы волны ECG. Используйте длину по умолчанию 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' - Haar wavelet

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

  • 'sym <reservedrangesplaceholder0>' - Симлеты вейвелируются с N моментами исчезновения, где N положительное целое число от 2 до 45.

  • 'чепец N' - Койфлеты вейвлет с N моментами исчезновения, где N положительное целое число от 1 до 5.

  • 'fk <reservedrangesplaceholder0>' - вейвлет Фежера-Коровкина с 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около-numel(x) матрица. Для полной таблицы пакетов, на уровне j, w является 2j+1-2-by-numel(x) матрица упорядоченных по последовательности вейвлетов пакетных коэффициентов по уровню и индексу. Аппроксимация полосы пропускания для n-й строки w на уровне j является [n12(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, имеют нелинейный фазовый отклик, что затрудняет компенсацию временной задержки. Этот ответ имеют все ортогональные фильтры масштабирования и вейвлет-фильтры, за исключением вейвлета Haar. Возможно время для выравнивания коэффициентов с функциями сигнала, но результатом является приближение, а не точное выравнивание с исходным сигналом. MODWPT разделяет энергию среди вейвлета пакетов на каждом уровне. Сумма энергии по всем пакетам равна общей энергии входного сигнала.

Ссылки

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

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

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

.

См. также

| | |

Введенный в R2016a