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

В этом примере показано, как взять выражение биоортогональной пары фильтра и создать 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

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

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

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

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

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

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

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

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

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

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

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

Фильтр 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')

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

свернуть все

Входные данные в виде вектора с действительным знаком, матрицы или расписания. Если 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 должен появиться в кавычках. Вы можете задать несколько аргументов в виде пар имен и значений в любом порядке, например: 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 массивом ячеек. При возврате полного пакетного дерева вейвлета, 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