modwpt

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

Синтаксис

wpt = modwpt(x)
wpt = modwpt(x,wname)
wpt = modwpt(x,lo,hi)
wpt = modwpt(___,lev)
[wpt,packetlevs] = modwpt(___)
[wpt,packetlevs,cfreq] = modwpt(___)
[wpt,packetlevs,cfreq,energy] = modwpt(___)
[wpt,packetlevs,cfreq,energy,relenergy] = modwpt(___)
[___] = modwpt(___,Name,Value)

Описание

пример

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

load wecg;
wpt = modwpt(wecg);

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

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

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

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

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

size(wsoi)
ans = 1×2

          16       12998

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

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

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

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

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

    0.0312
    0.0938
    0.1562
    0.2188
    0.2812
    0.3438
    0.4062
    0.4688

Получите и постройте энергию MODWPT и относительную энергию формы волны ECG.

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.612e-09

Постройте энергию MODWPT узла.

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

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')

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

Получите выровненный временем MODWPT двух неустойчивых синусоид в шуме. Частоты синусоиды составляют 150 Гц и 200 Гц. Данные выбираются на уровне 1 000 Гц.

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)');

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

свернуть все

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

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

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

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

  • 'haar' — Вейвлет Хаара, который совпадает с вейвлетом Daubechies с одним исчезающим моментом, 'db1'.

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

  • 'symN' — Вейвлет Symlets с 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 должен появиться в кавычках. Вы можете задать несколько аргументов в виде пар имен и значений в любом порядке, например: Name1, Value1, ..., NameN, ValueN.

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

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

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

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

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

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

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

свернуть все

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

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

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

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

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

Алгоритмы

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

Ссылки

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

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

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

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

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

|

Введенный в R2016a

Для просмотра документации необходимо авторизоваться на сайте