modwpt

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

Описание

пример

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 имя аргумента и 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 numelX) матрица. Для полного дерева, на уровне j, wpt 2j+2-2-by-numelX) матрица, с каждой строкой, содержащей пакетные коэффициенты уровнем и индексом. Аппроксимированная полоса пропускания для 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