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 задает уровень разложения.

Примеры

свернуть все

Загрузка 23-канальных данных EEG Espiga3 [3]. Данные отбираются с частотой дискретизации 200 Гц.

load Espiga3

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

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

Область выхода wpt является 1-by-24 массив ячеек. Каждый элемент wpt является матрицей. Выберите любой терминальный узел и подтвердите, что размер матрицы 23-by-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

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

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

Figure contains an axes. The axes 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-norms lowpass и фильтров синтеза высоких частот равны. То же самое касается фильтров lowpass синтеза и highpass анализа.

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

load wecg
plot(wecg)
axis tight
grid on

Figure contains an axes. The axes 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. The axes contains 2 objects of type line.

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

Можно также использовать эту группу фильтров в 1-D и 2-D дискретных вейвлет. Чтение и построение графика изображения.

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

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

Получите 2-D вейвлет с помощью фильтров анализа 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. The axes 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. Axes 1 with title Lowpass Analysis contains 2 objects of type stem. Axes 2 with title Highpass Analysis contains 2 objects of type stem. Axes 3 with title Lowpass Synthesis contains 2 objects of type stem. Axes 4 with title Highpass Synthesis contains 2 objects of type stem.

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

свернуть все

Входные данные, заданные как действительный вектор, матрица или timetable. Если 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 (false). Когда установлено значение true, wpt содержит полное дерево пакетов. Когда установлено значение false, wpt содержит только терминальные узлы. Если не задано, FullTree по умолчанию является false.

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

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

свернуть все

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

Если возвращаются терминальные узлы уровня разложения N, wpt является 1 на 2N массив ячеек. Если возвращается полный вейвлет дерево пакетов, wpt является 1-бай- (2N+1− 2) массив ячеек.

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

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

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

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

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

Алгоритмы

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

Ссылки

[1] Викерхаузер, Младен Виктор. Адаптированный анализ вейвлет от теории к программному обеспечению. Wellesley, MA: A.K. Peters, 1994.

[2] Персиваль, Д. Б., и А. Т. Уолден. Вейвлет для анализа временных рядов. Кембридж, Великобритания: Cambridge University Press, 2000.

[3] Меса, Гектор. «Адаптированные вейвлеты для обнаружения шаблона». В Прогресс Pattern Recognition, Image Analysis and Applications, под редакцией Альберто Санфелиу и Мануэля Лазо Кортеса, 3773: 933-44. Берлин, Гейдельберг: Спрингер Берлин Гейдельберг, 2005. https://doi.org/10.1007/11578079_96 .

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

.
Введенный в R2020a