exponenta event banner

dwpt

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

Описание

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

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

wpt = dwpt(X,LoD,HiD) использует фильтр масштабирования (нижних частот), LoDи вейвлет (фильтр верхних частот), 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-канальных данных ЭЭГ Espiga3 [3]. Данные дискретизируются на частоте 200 Гц.

load Espiga3

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

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

Продукция wpt является массивом ячеек 1 на 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

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

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.

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

Фильтр LeGall 5/3 - это вейвлет, используемый в JPEG2000 для сжатия изображения без потерь. Фильтры нижних частот (масштабирование) для вейвлета 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];

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

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

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

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

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

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

load wecg
plot(wecg)
axis tight
grid on

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

Получение дискретного вейвлет-пакетного преобразования ЭКГ-сигнала с использованием набора фильтров 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.

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

свернуть все

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

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

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

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

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

Фильтры вейвлет-анализа (декомпозиция) для использования в DWPT, заданные как пара вещественных векторов. LoD является фильтром анализа масштабирования (нижних частот), и HiD - фильтр вейвлет (high pass) анализа. Вы не можете указать оба wname и пару фильтров, LoD и HiD. Посмотрите wfilters для получения дополнительной информации.

Примечание

dwpt не проверяет, что LoD и HiD удовлетворяют требованиям для идеального банка фильтров вейвлет-пакетов реконструкции. Пример того, как взять опубликованный биорогональный фильтр и гарантировать, что фильтры анализа и синтеза создают идеальный банк вейвлет-пакетных фильтров реконструкции с использованием 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-by-M ячеек. При приеме DWPT одного сигнала каждый элемент wpt является вектором. В противном случае каждый элемент является матрицей. Коэффициенты в j-й строке матрицы соответствуют сигналу в j-м столбце X. Пакеты упорядочены по последовательности.

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

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

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

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

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

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

Алгоритмы

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

Ссылки

[1] Викерхаузер, Младен Виктор. Адаптированный вейвлет-анализ от теории к программному обеспечению. Уэлсли, Массачусетс: А.К. Питерс, 1994.

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

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

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

.
Представлен в R2020a