modwptdetails

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

Синтаксис

w = modwptdetails(x)
w = modwptdetails(x,wname)
w = modwptdetails(x,lo,hi)
w = modwptdetails(___,lev)
[w,packetlevs] = modwptdetails(___)
[w,packetlevs,cfreq] = modwptdetails(___)
[___] = modwptdetails(___,'FullTree',tf)

Описание

пример

w = modwptdetails(x) возвращает детали максимального перекрытия дискретного пакета вейвлета преобразовывает (MODWPT) для 1D сигнала с действительным знаком, 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 Фейера-Коровкина ('fk18') вейвлет и уровень по умолчанию, 4.

load wecg;
wptdetails = modwptdetails(wecg);

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

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

Получите детали MODWPT для сигнала, содержащего синусоиды на 450 Гц и на 100 Гц. Каждая строка 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')

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

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

Покажите, что детали 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')

Получите детали MODWPT для 100 Гц локализованная временем синусоида в шуме. Уровень выборки составляет 1 000 Гц. Получите 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')

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

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

Получите детали MODWPT для полного пакетного дерева вейвлета формы волны ECG. Используйте длину по умолчанию 18 Фейера-Коровкина ('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')

Входные параметры

свернуть все

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

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

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

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

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

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

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

  • 'fkN' — Вейвлет Fejér-Korovkin с коэффициентами 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 пакетные детали вейвлета.

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

свернуть все

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

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

Ссылки

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

[2] Уолден, A.T., и А. Контрерас Кристан. “Исправленный фазой неподкошенный дискретный пакет вейвлета преобразовывает и его приложение к интерпретации синхронизации событий”. Продолжения Королевского общества Лондона A. Издание 454, Выпуск 1976, 1998, стр 2243-2266.

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

Генерация кода C/C++
Генерация кода C и C++ с помощью MATLAB® Coder™.

Смотрите также

| | |

Введенный в R2016a