dwpt

Пакет вейвлета мультисигнала 1-D преобразовывает

Описание

wpt = dwpt(X) возвращает терминал (итоговый уровень) узлы дискретного пакета вейвлета преобразовывает (DWPT) X. Вход X вектор с действительным знаком, матрица или расписание. По умолчанию, fk18 вейвлет используется, и уровнем разложения является floor(log2(Ns)), где Ns является количеством выборок данных. Пакет вейвлета преобразовывает wpt 1 N массивом ячеек, где N = 2^floor(log2(Ns)).

wpt = dwpt(X,wname) использует вейвлет, заданный wname для DWPT. wname должен быть распознан wavemngr.

wpt = dwpt(X,LoD,HiD) использует масштабирующийся (lowpass) фильтр, LoD, и вейвлет (highpass) фильтр, HiD.

[wpt,l] = dwpt(___) также возвращает бухгалтерский вектор с помощью любого из предыдущих синтаксисов. Векторный l содержит длину входного сигнала и количество коэффициентов уровнем. Бухгалтерский вектор требуется для совершенной реконструкции.

[wpt,l,packetlevels] = dwpt(___) также возвращает уровни преобразования узлов wpt использование любого из предыдущих синтаксисов.

[wpt,l,packetlevels,f] = dwpt(___) также возвращает центральные частоты аппроксимированных полос пропускания в циклах на выборку с помощью любого из предыдущих синтаксисов.

[wpt,l,packetlevels,f,re] = dwpt(___) также возвращает относительную энергию для пакетов вейвлета в wpt использование любого из предыдущих синтаксисов. Относительная энергия является пропорцией энергии, содержавшейся в каждом пакете вейвлета уровнем.

пример

[___] = dwpt(___,Name,Value) задает аргументы пары "имя-значение" использования опций в дополнение к входным параметрам в предыдущих синтаксисах. Например, 'Level',4 задает уровень разложения.

Примеры

свернуть все

Загрузите данные EEG с 23 каналами Espiga3 [3]. Данные производятся на уровне 200 Гц.

load Espiga3

Вычислите 1D DWPT данных с помощью sym3 вейвлет вниз к уровню 4. Получите терминальные пакетные узлы вейвлета, бухгалтерский вектор и центральные частоты аппроксимированных полос пропускания.

[wpt,bk,~,f] = dwpt(Espiga3,'sym3','Level',4);

Выход wpt 1 на24 cellArray. Каждый элемент wpt матрица. Выберите любой терминальный узел и подтвердите, что размер матрицы 23 M, где M является последним элементом бухгалтерского векторного bk.

nd = 13;
size(wpt{nd})
ans = 1×2

    23    66

bk(end)
ans = 66

Извлеките коэффициенты итогового уровня пятого канала.

p5 = cell2mat(cellfun(@(x) x(5,:).',wpt,'UniformOutput',false));
size(p5)
ans = 1×2

    66    16

Терминальные узлы sequency-упорядочены. Постройте центральные частоты аппроксимированных полос пропускания в герц и подтвердите, что они в порядке увеличивающейся частоты.

plot(200*f,'x')
title('Center Frequencies')
ylabel('Hz')

Figure contains an axes object. The axes object with title Center Frequencies contains an object of type line.

В этом примере показано, как взять выражение биоортогональной пары фильтра и создать lowpass, и highpass фильтрует, чтобы произвести пару совершенной реконструкции (PR) в Wavelet Toolbox™.

Фильтр LeGall 5/3 является вейвлетом, используемым в JPEG2000 для сжатия изображения без потерь. Lowpass (масштабирование) фильтры для вейвлета LeGall 5/3 имеет пять и три ненулевых коэффициента соответственно. Выражения для этих двух фильтров:

H0(z)=1/8(-z2+2z+6+2z-1-z-2)

H1(z)=1/2(z+2+z-1)

Создайте эти фильтры.

H0 = 1/8*[-1 2 6 2 -1];
H1 = 1/2*[1 2 1];

Многие из дискретного вейвлета и пакета вейвлета преобразовывают в Wavelet Toolbox, используют фильтры, являющиеся и ровной длиной и равный в длине для того, чтобы произвести совершенный набор фильтров реконструкции, сопоставленный с этими преобразованиями. Эти преобразования также требуют, чтобы определенная нормализация коэффициентов в фильтрах для алгоритмов произвела набор фильтров PR. Используйте biorfilt функция на lowpass моделирует функции, чтобы произвести набор фильтров вейвлета PR.

[LoD,HiD,LoR,HiR] = biorfilt(H0,H1);

Сумма фильтров анализа и синтеза lowpass теперь равна 2.

sum(LoD)
ans = 1.4142
sum(LoR)
ans = 1.4142

Вейвлет фильтрует сумму, как требуется, чтобы обнулить. L2-нормы анализа lowpass и highpass фильтров синтеза равны. То же самое содержит для синтеза lowpass и highpass аналитических фильтров.

Теперь можно использовать, они просачиваются, дискретный пакет вейвлета и вейвлета преобразовывает, и достигните пакетного набора фильтров вейвлета PR. Чтобы продемонстрировать это, загрузите и постройте сигнал ECG.

load wecg
plot(wecg)
axis tight
grid on

Figure contains an axes object. The axes object contains an object of type line.

Получите дискретное пакетное преобразование вейвлета сигнала ECG использование набора фильтра LeGall 5/3.

[wpt,L] = dwpt(wecg,LoD,HiD);

Теперь используйте реконструкцию (синтез) фильтры, чтобы восстановить сигнал и продемонстрировать совершенную реконструкцию.

xrec = idwpt(wpt,L,LoR,HiR);
plot([wecg xrec])
axis tight, grid on;

Figure contains an axes object. The axes object contains 2 objects of type line.

norm(wecg-xrec,'Inf')
ans = 3.1086e-15

Можно также использовать этот набор фильтров в 1D и 2D дискретном вейвлете, преобразовывает. Считайте и постройте изображение.

im = imread('woodsculp256.jpg');
image(im); axis off;

Figure contains an axes object. The axes object contains an object of type image.

Получите 2D вейвлет, преобразовывают использование аналитических LeGall 5/3 фильтров.

[C,S] = wavedec2(im,3,LoD,HiD);

Восстановите изображение с помощью фильтров синтеза.

imrec = waverec2(C,S,LoR,HiR);
image(uint8(imrec)); axis off;

Figure contains an axes object. The axes object contains an object of type image.

Фильтр LeGall 5/3 эквивалентен встроенному 'bior2.2' вейвлет в Wavelet Toolbox. Используйте 'bior2.2' фильтры и соответствуют фильтрам LeGall 5/3.

[LD,HD,LR,HR] = wfilters('bior2.2');
subplot(2,2,1)
hl = stem([LD' LoD']);
hl(1).MarkerFaceColor = [0 0 1];
hl(1).Marker = 'o';
hl(2).MarkerFaceColor = [1 0 0];
hl(2).Marker = '^';
grid on
title('Lowpass Analysis')
subplot(2,2,2)
hl = stem([HD' HiD']);
hl(1).MarkerFaceColor = [0 0 1];
hl(1).Marker = 'o';
hl(2).MarkerFaceColor = [1 0 0];
hl(2).Marker = '^';
grid on
title('Highpass Analysis')
subplot(2,2,3)
hl = stem([LR' LoR']);
hl(1).MarkerFaceColor = [0 0 1];
hl(1).Marker = 'o';
hl(2).MarkerFaceColor = [1 0 0];
hl(2).Marker = '^';
grid on
title('Lowpass Synthesis')
subplot(2,2,4)
hl = stem([HR' HiR']);
hl(1).MarkerFaceColor = [0 0 1];
hl(1).Marker = 'o';
hl(2).MarkerFaceColor = [1 0 0];
hl(2).Marker = '^';
grid on
title('Highpass Synthesis')

Figure contains 4 axes objects. Axes object 1 with title Lowpass Analysis contains 2 objects of type stem. Axes object 2 with title Highpass Analysis contains 2 objects of type stem. Axes object 3 with title Lowpass Synthesis contains 2 objects of type stem. Axes object 4 with title Highpass Synthesis contains 2 objects of type stem.

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

свернуть все

Входные данные в виде вектора с действительным знаком, матрицы или расписания. Если X матрица, преобразование применяется к каждому столбцу X. Если X расписание, X должен или содержать матрицу в одной переменной или вектор-столбцы в отдельных переменных. X должен быть однородно произведен.

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

Вейвлет, чтобы использовать в DWPT в виде вектора символов или строкового скаляра. wname должен быть распознан wavemngr.

Вы не можете задать оба wname и пара фильтра, LoD и HiD.

Пример: wpt = dwpt(data,"sym4") задает sym4 вейвлет.

Анализ вейвлета (разложение) фильтрует, чтобы использовать в DWPT в виде пары векторов с действительным знаком. LoD масштабирующийся (lowpass) аналитический фильтр и HiD вейвлет (highpass) аналитический фильтр. Вы не можете задать оба wname и пара фильтра, LoD и HiD. Смотрите wfilters для получения дополнительной информации.

Примечание

dwpt не проверяет тот LoD и HiD удовлетворите требованиям для совершенного пакетного набора фильтров вейвлета реконструкции. Смотрите PR Биоортогональные Фильтры для примера того, как взять опубликованный биоортогональный фильтр и гарантировать, что фильтры анализа и синтеза производят совершенное пакетное использование набора фильтров вейвлета реконструкции dwpt.

Аргументы name-value

Задайте дополнительные разделенные запятой пары Name,Value аргументы. Name имя аргумента и Value соответствующее значение. Name должен появиться в кавычках. Вы можете задать несколько аргументов в виде пар имен и значений в любом порядке, например: Name1, Value1, ..., NameN, ValueN.

Пример: wpt = dwpt(x,'sym4','Level',4) задает разложение уровня 4 с помощью sym4 вейвлет.

Уровень разложения вейвлета в виде положительного целого числа, меньше чем или равного floor(log2(Ns)), где Ns является количеством отсчетов в данных. Если незаданный, Level значения по умолчанию к floor(log2(Ns)).

Пакетное дерево вейвлета, обрабатывающее в виде числового или логического 1 TRUE) или 0 ложь). Когда установлено в true, wpt содержит полное пакетное дерево. Когда установлено в false, wpt содержит только терминальные узлы. Если незаданный, FullTree значения по умолчанию к false.

Пакет вейвлета преобразовывает обработку контура в виде 'reflection' или 'periodic'. Установка на 'reflection' или 'periodic', пакетные коэффициенты вейвлета расширены на каждом уровне на основе 'sym' или 'per' режим в dwtmode, соответственно. Если незаданный, Boundary значения по умолчанию к 'reflection'.

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

свернуть все

Пакет вейвлета преобразовывает, возвращенный как 1 M массивом ячеек. При взятии DWPT одного сигнала, каждого элемента wpt вектор. В противном случае каждым элементом является матрица. Коэффициенты в j th строка матрицы соответствуют сигналу в j th столбец X. Пакеты sequency-упорядочены.

При возврате терминальных узлов уровня разложение N, wpt 1 2N cellArray. При возврате полного пакетного дерева вейвлета, wpt 1 на (2N+1−2) массив ячеек.

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

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

Центральные частоты аппроксимированных полос пропускания в циклах на выборку, возвращенную как вектор с действительным знаком. j элемент f соответствует j th пакетный узел вейвлета wpt. Можно умножить элементы в f частотой дискретизации, чтобы преобразовать в циклы в единицу времени.

Относительная энергия для пакетов вейвлета в wpt, возвращенный как массив ячеек. Относительная энергия является пропорцией энергии, содержавшейся в каждом пакете вейвлета уровнем. j th элемент re соответствует j th пакетный узел вейвлета wpt.

Каждый элемент re скаляр при взятии DWPT одного сигнала. В противном случае, при взятии DWPT сигналов M, каждого элемента re M-by-1 вектор, где i th элемент является относительной энергией i th канал сигнала. Для каждого канала сумма относительных энергий в пакетах вейвлета на данном уровне равна 1.

Алгоритмы

dwpt функция выполняет дискретный пакет вейвлета, преобразовывают, и производит sequency-упорядоченное пакетное дерево вейвлета. Сравните sequency-упорядоченный и нормальное (Палей) - упорядоченный деревья. G˜(f) масштабирующийся (lowpass) аналитический фильтр, и H˜(f) представляет вейвлет (highpass) аналитический фильтр. Метки в нижней части показывают раздел оси частоты [0, ½].

Ссылки

[1] Wickerhauser, Младен Виктор. Адаптированный анализ вейвлета от теории до программного обеспечения. Веллесли, MA: А.К. Питерс, 1994.

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

[3] Мезаструктура, Гектор. “Адаптированные Вейвлеты для Обнаружения Шаблона”. Происходящий в Распознавании образов, Анализе изображения и Приложениях, отредактированных Альберто Санфелиу и Мануелем Лазо Кортесом, 3773:933–44. Берлин, Гейдельберг: Спрингер Берлин Гейдельберг, 2005. https://doi.org/10.1007/11578079_96.

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

Введенный в R2020a