dddtree

Двойное дерево и 1D вейвлет с удвоенной плотностью преобразовывают

Описание

пример

wt = dddtree(typetree,x,level,fdf,df) возвращает typetree дискретный вейвлет преобразовывает (DWT) 1D входного сигнала, x, вниз выравниваться, level. Вейвлет преобразовывает, использует разложение (анализ) фильтры, fdf, для первого уровня и аналитических фильтров, df, для последующих уровней. Поддерживаемый вейвлет преобразовывает, критически произведенный DWT, двойной древовидный комплекс с удвоенной плотностью, и двойной древовидный комплексный вейвлет с удвоенной плотностью преобразовывает. Критически произведенный DWT является разложением набора фильтров в ортогональном или биоортогональном (безызбыточном) основании. Другой вейвлет преобразовывает, сверхдискретизированные наборы фильтров.

пример

wt = dddtree(typetree,x,level,fname) использует фильтры, заданные fname чтобы получить вейвлет преобразовывают. Допустимые спецификации фильтра зависят от типа вейвлета, преобразовывают. Смотрите dtfilters для деталей.

пример

wt = dddtree(typetree,x,level,fname1,fname2) использует фильтры, заданные в fname1 поскольку первая стадия двойного древовидного вейвлета преобразовывает и фильтры, заданные в fname2 поскольку последующие этапы двойного древовидного вейвлета преобразовывают. Определение различных фильтров для этапа 1 допустимо и необходимо только когда typetree 'cplxdt' или 'cplxdddt'.

Примеры

свернуть все

Получите комплексное двойное древовидное преобразование вейвлета шумного Доплеровского сигнала. КИХ просачивается первый и последующий результат этапов приблизительно в аналитическом вейвлете как требуется.

Используйте dtfilters создать первую стадию аналитические фильтры Farras и анализ Q-сдвига Кингсбери с 6 касаниями фильтрует для последующих этапов анализа мультиразрешения.

df = dtfilters('dtf1');

Фарры и фильтры Кингсбери находятся в df{1} и df{2}, соответственно. Загрузите шумного Доплера, сигнализируют и получают комплексный двойной древовидный вейвлет, преобразовывают вниз к уровню 4.

load noisdopp;
wt = dddtree('cplxdt',noisdopp,4,df{1},df{2});

Постройте приближение на основе уровня четыре коэффициента приближения.

xapp = dddtreecfs('r',wt,'scale',{5});
plot(noisdopp)
hold on
plot(cell2mat(xapp),'r','linewidth',3)
axis tight

Используя выход dtfilters, или само имя фильтра, в dddtree предпочтительно для ручного ввода усеченных коэффициентов фильтра. Чтобы продемонстрировать негативное воздействие на реконструкцию сигнала, создайте усеченные версии Фарр и аналитических фильтров Кингсбери. Отобразите различия между усеченными и исходными фильтрами.

  Faf{1} = [0         0
   -0.0884   -0.0112
    0.0884    0.0112
    0.6959    0.0884
    0.6959    0.0884
    0.0884   -0.6959
   -0.0884    0.6959
    0.0112   -0.0884
    0.0112   -0.0884
         0         0];
Faf{2} = [ 0.0112  0
    0.0112         0
   -0.0884   -0.0884
    0.0884   -0.0884
    0.6959    0.6959
    0.6959   -0.6959
    0.0884    0.0884
   -0.0884    0.0884
         0    0.0112
         0   -0.0112];

af{1} = [ 0.0352         0
         0         0
   -0.0883   -0.1143
    0.2339         0
    0.7603    0.5875
    0.5875   -0.7603
         0    0.2339
   -0.1143    0.0883
         0         0
         0   -0.0352];

af{2} = [0   -0.0352
         0         0
   -0.1143    0.0883
         0    0.2339
    0.5875   -0.7603
    0.7603    0.5875
    0.2339         0
   -0.0883   -0.1143
         0         0
    0.0352         0];

max(max(abs(df{1}{1}-Faf{1})))
ans = 2.6792e-05
max(max(abs(df{1}{2}-Faf{2})))
ans = 2.6792e-05
max(max(abs(df{2}{1}-af{1})))
ans = 3.6160e-05
max(max(abs(df{2}{2}-af{2})))
ans = 3.6160e-05

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

wt = dddtree('cplxdt',noisdopp,4,Faf,af);
xrec = idddtree(wt);
max(abs(noisdopp-xrec))
ans = 0.0024

Сделайте то же использование имени фильтра. Подтвердите, что различие меньше.

wt = dddtree('cplxdt',noisdopp,4,'dtf1');
xrec = idddtree(wt);
max(abs(noisdopp-xrec))
ans = 2.1893e-07

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

Создайте сигнал, состоящий из синусоиды на 2 Гц с длительностью 1 секунды. Синусоида имеет разрывы в 0,3 и 0,72 секунды.

N = 1024;
t = linspace(0,1,1024);
x = 4*sin(4*pi*t);
x = x - sign(t - .3) - sign(.72 - t);
plot(t,x)
xlabel('Time (s)')
title('Original Signal')
grid on

Получите преобразование вейвлета с удвоенной плотностью сигнала. Восстановите приближение на основе уровня коэффициенты детали первой установкой lowpass (масштабирование) коэффициенты, равные 0. Постройте результат. Заметьте, что функции в реконструкции выравниваются с разрывами сигнала.

wt = dddtree('ddt',x,1,'filters1');
wt.cfs{2} = zeros(1,512);
xrec = idddtree(wt);
plot(t,xrec,'linewidth',2)
set(gca,'xtick',[0 0.3 0.72 1])
set(gca,'xgrid','on')

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

Создайте сигнал, состоящий из синусоиды на 2 Гц с длительностью 1 секунды. Синусоида имеет разрывы в 0,3 и 0,72 секунды.

N = 1024;
t = linspace(0,1,1024);
x = 4*sin(4*pi*t);
x = x - sign(t - .3) - sign(.72 - t);
plot(t,x)
xlabel('Time (s)')
title('Original Signal')
grid on

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

wt = dddtree('cplxdt',x,1,'FSfarras','qshift06');
wt.cfs{2} = zeros(1,512,2);
xrec = idddtree(wt);
plot(t,xrec,'linewidth',2)
set(gca,'xtick',[0 0.3 0.72 1])
set(gca,'xgrid','on')

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

свернуть все

Тип разложения вейвлета, заданного как один из 'dwt', 'ddt', 'cplxdt', или 'cplxdddt'. Тип, 'dwt', дает критически произведенный (безызбыточный) дискретный вейвлет, преобразовывают. Другие типы разложения производят сверхдискретизированный вейвлет, преобразовывает. 'ddt' производит вейвлет с удвоенной плотностью, преобразовывают. 'cplxdt' производит двойной древовидный комплексный вейвлет, преобразовывают. 'cplxdddt' производит двойной древовидный комплексный вейвлет с удвоенной плотностью, преобразовывают.

Входной сигнал, заданный как строка ровной длины или вектор-столбец. Если L является значением level из разложения вейвлета, 2L должен разделить длину x. Кроме того, длина сигнала должна быть больше или быть равна продукту максимальной продолжительности разложения (анализ) фильтры и 2(L-1).

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

Уровень разложения вейвлета, заданного как целое число. Если L является значением level, 2L должен разделить длину x . Кроме того, длина сигнала должна быть больше или быть равна продукту максимальной продолжительности разложения (анализ) фильтры и 2(L-1).

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

Уровень аналитические фильтры, заданные как матричный или массив ячеек матриц. Задайте fdf как матрица, когда typetree 'dwt' или 'ddt'. Размер и структура матрицы зависят от typetree вход можно следующим образом:

  • 'dwt' — Это - критически произведенный дискретный вейвлет, преобразовывают. В этом случае, fdf матрица 2D столбца с lowpass (масштабирование), просачиваются, первый столбец и highpass (вейвлет) просачиваются второй столбец.

  • 'ddt' — Это - вейвлет с удвоенной плотностью, преобразовывают. DWT с удвоенной плотностью является совершенным набором фильтров реконструкции с тремя каналами. fdf матрица с тремя столбцами с lowpass (масштабирование), просачиваются, первый столбец и два highpass (вейвлет) просачиваются вторые и третьи столбцы. В вейвлете с удвоенной плотностью преобразовывают, один lowpass и два фильтра highpass составляют совершенный набор фильтров реконструкции с тремя каналами. Это эквивалентно трем фильтрам, формирующим трудную систему координат. Вы не можете произвольно выбрать, два вейвлета просачиваются DWT с удвоенной плотностью. Три фильтра вместе должны сформировать трудную систему координат.

Задайте fdf как 1 2 массив ячеек матриц, когда typetree двойное древовидное преобразование, 'cplxdt' или 'cplxdddt'. Размер и структура элементов матрицы зависят от typetree вход можно следующим образом:

  • Поскольку двойной древовидный комплексный вейвлет преобразовывает, 'cplxdt', fdf{1} матрица 2D столбца, содержащая lowpass (масштабирование) фильтр и highpass (вейвлет) фильтры для первого дерева. Масштабирующийся фильтр является первым столбцом, и фильтр вейвлета является вторым столбцом. fdf{2} матрица 2D столбца, содержащая lowpass (масштабирование) и highpass (вейвлет) фильтры для второго дерева. Масштабирующийся фильтр является первым столбцом, и фильтр вейвлета является вторым столбцом.

  • Поскольку двойной древовидный комплексный вейвлет с удвоенной плотностью преобразовывает, 'cplxdddt', fdf{1} матрица с тремя столбцами, содержащая lowpass (масштабирование) и два highpass (вейвлет) фильтры для первого дерева и fdf{2} матрица с тремя столбцами, содержащая lowpass (масштабирование) и два highpass (вейвлет) фильтры для второго дерева.

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

Анализ фильтрует для уровней> 1, заданный как матричный или массив ячеек матриц. Задайте df как матрица, когда typetree 'dwt' или 'ddt'. Размер и структура матрицы зависят от typetree вход можно следующим образом:

  • 'dwt' — Это - критически произведенный дискретный вейвлет, преобразовывают. В этом случае, df матрица 2D столбца с lowpass (масштабирование), просачиваются, первый столбец и highpass (вейвлет) просачиваются второй столбец. Для критически произведенного ортогонального или биоортогонального DWT, фильтров в df и fdf должно быть идентичным.

  • 'ddt' — Это - вейвлет с удвоенной плотностью, преобразовывают. DWT с удвоенной плотностью является совершенным набором фильтров реконструкции с тремя каналами. df матрица с тремя столбцами с lowpass (масштабирование), просачиваются, первый столбец и два highpass (вейвлет) просачиваются вторые и третьи столбцы. В вейвлете с удвоенной плотностью преобразовывают, один lowpass и два фильтра highpass должны составить совершенный набор фильтров реконструкции с тремя каналами. Это эквивалентно трем фильтрам, формирующим трудную систему координат. Для DWT с удвоенной плотностью, фильтров в df и fdf должно быть идентичным.

Задайте df как 1 2 массив ячеек матриц, когда typetree двойное древовидное преобразование, 'cplxdt' или 'cplxdddt'. Для двойных древовидных преобразований, фильтров в fdf и df должно отличаться. Размер и структура элементов матрицы в массиве ячеек зависят от typetree вход можно следующим образом:

  • Поскольку двойной древовидный комплексный вейвлет преобразовывает, 'cplxdt', df{1} матрица 2D столбца, содержащая lowpass (масштабирование) и highpass (вейвлет) фильтры для первого дерева. Масштабирующийся фильтр является первым столбцом, и фильтр вейвлета является вторым столбцом. df{2} матрица 2D столбца, содержащая lowpass (масштабирование) и highpass (вейвлет) фильтры для второго дерева. Масштабирующийся фильтр является первым столбцом, и фильтр вейвлета является вторым столбцом.

  • Поскольку двойной древовидный комплексный вейвлет с удвоенной плотностью преобразовывает, 'cplxdddt', df{1} матрица с тремя столбцами, содержащая lowpass (масштабирование) и два highpass (вейвлет) фильтры для первого дерева и df{2} матрица с тремя столбцами, содержащая lowpass (масштабирование) и два highpass (вейвлет) фильтры для второго дерева.

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

Отфильтруйте имя, заданное как вектор символов, или представьте скаляр в виде строки. Для критически произведенного DWT задайте любой допустимый ортогональный или биоортогональный фильтр вейвлета. Смотрите wfilters для деталей. Поскольку вейвлет с удвоенной плотностью преобразовывает, 'ddt', допустимым выбором является 'filters1' и 'filters2'. Поскольку комплексный двойной древовидный вейвлет преобразовывает, допустимым выбором является 'dtfP' с P = 1, 2, 3, 4. Поскольку двойной древовидный вейвлет с удвоенной плотностью преобразовывает, единственным допустимым выбором является 'dddtf1'. Смотрите dtfilters поскольку больше деталей о допустимом фильтре называет для сверхдискретизированных наборов фильтров вейвлета.

Типы данных: char

Имя фильтра первой стадии, заданное как вектор символов или скаляр строки. Определение различного фильтра для первой стадии допустимо и необходимо только в двойном дереве, преобразовывает, 'cplxdt' и 'cplxddt'. В комплексном двойном древовидном вейвлете преобразовывают, можно использовать любой допустимый фильтр вейвлета в первой стадии. В двойном древовидном вейвлете с удвоенной плотностью преобразовывают, фильтры первой стадии должны сформировать совершенный набор фильтров реконструкции с тремя каналами.

Типы данных: char

Отфильтруйте имя для этапов> 1, заданный как вектор символов или представьте скаляр в виде строки. Необходимо задать фильтр первого уровня, который отличается от вейвлета, и масштабирование просачивается, последующие уровни при использовании двойного древовидного вейвлета преобразовывают, 'cplxdt' или 'cplxdddt'. Смотрите dtfilters для допустимого выбора.

Типы данных: char

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

свернуть все

Вейвлет преобразовывает, возвращенный как структура с этими полями:

Тип разложения вейвлета (набор фильтров), используемый в анализе, возвращенном как один из 'dwt', 'ddt', 'cplxdt', или 'cplxdddt'. Тип, 'dwt', дает критически произведенный дискретный вейвлет, преобразовывают. Другие типы соответствуют сверхдискретизированному вейвлету, преобразовывает. 'ddt' вейвлет с удвоенной плотностью, преобразовывают, 'cplxdt' двойной древовидный комплексный вейвлет, преобразовывают, и 'cplxdddt' двойной древовидный комплексный вейвлет с удвоенной плотностью, преобразовывают.

Уровень разложения вейвлета, возвращенного как положительное целое число.

Разложение (анализ) и реконструкция (синтез) фильтры, возвращенные как структура с этими полями:

Аналитические фильтры первой стадии, возвращенные как N-by-2 или N-by-3 матрица для одно-древовидного вейвлета, преобразовывают, или массив ячеек двух N-by-2 или N-by-3 матрицы для двойного древовидного вейвлета преобразовывает. Матрицами является N-by-3 для вейвлета с удвоенной плотностью, преобразовывает. Для N-by-2 матрица, первый столбец матрицы является масштабирующимся (lowpass), фильтр и второй столбец являются вейвлетом (highpass) фильтр. Для N-by-3 матрица, первый столбец матрицы является масштабирующимся (lowpass), фильтр и вторые и третьи столбцы являются вейвлетом (highpass) фильтры. Поскольку двойное дерево преобразовывает, каждый элемент массива ячеек содержит аналитические фильтры первой стадии для соответствующего дерева.

Аналитические фильтры для уровней> 1, возвращенный как N-by-2 или N-by-3 матрица для одно-древовидного вейвлета преобразовывают, или массив ячеек двух N-by-2 или N-by-3 матрицы для двойного древовидного вейвлета преобразовывает. Матрицами является N-by-3 для вейвлета с удвоенной плотностью, преобразовывает. Для N-by-2 матрица, первый столбец матрицы является масштабирующимся (lowpass), фильтр и второй столбец являются вейвлетом (highpass) фильтр. Для N-by-3 матрица, первый столбец матрицы является масштабирующимся (lowpass), фильтр и вторые и третьи столбцы являются вейвлетом (highpass) фильтры. Поскольку двойное дерево преобразовывает, каждый элемент массива ячеек содержит аналитические фильтры для соответствующего дерева.

Фильтры реконструкции первого уровня, возвращенные как N-by-2 или N-by-3 матрица для одно-древовидного вейвлета, преобразовывают, или массив ячеек двух N-by-2 или N-by-3 матрицы для двойного древовидного вейвлета преобразовывает. Матрицами является N-by-3 для вейвлета с удвоенной плотностью, преобразовывает. Для N-by-2 матрица, первый столбец матрицы является масштабирующимся (lowpass), фильтр и второй столбец являются вейвлетом (highpass) фильтр. Для N-by-3 матрица, первый столбец матрицы является масштабирующимся (lowpass), фильтр и вторые и третьи столбцы являются вейвлетом (highpass) фильтры. Поскольку двойное дерево преобразовывает, каждый элемент массива ячеек содержит фильтры синтеза первой стадии для соответствующего дерева.

Фильтры реконструкции для уровней> 1, возвращенный как N-by-2 или N-by-3 матрица для одно-древовидного вейвлета преобразовывают, или массив ячеек двух N-by-2 или N-by-3 матрицы для двойного древовидного вейвлета преобразовывает. Матрицами является N-by-3 для вейвлета с удвоенной плотностью, преобразовывает. Для N-by-2 матрица, первый столбец матрицы является масштабирующимся (lowpass), фильтр и второй столбец являются вейвлетом (highpass) фильтр. Для N-by-3 матрица, первый столбец матрицы является масштабирующимся (lowpass), фильтр и вторые и третьи столбцы являются вейвлетом (highpass) фильтры. Поскольку двойное дерево преобразовывает, каждый элемент массива ячеек содержит фильтры синтеза для соответствующего дерева.

Вейвлет преобразовывает коэффициенты, возвращенные как 1 на (level+1) массив ячеек матриц. Размер и структура элементов матрицы массива ячеек зависят от типа вейвлета, преобразовывают, typetree, можно следующим образом:

  • 'dwt'cfs{j}

    • j = 1,2... level уровень.

    • cfs{level+1} lowpass, или масштабирование, коэффициенты.

  • 'ddt'cfs{j}(:,:,k)

    • j = 1,2... level уровень.

    • k = 1,2 является фильтром вейвлета.

    • cfs{level+1}(:,:) lowpass, или масштабирование, коэффициенты.

  • 'cplxdt'cfs{j}(:,:,m)

    • j = 1,2... level уровень.

    • m = 1,2 является действительными и мнимыми частями.

    • cfs{level+1}(:,:,m) lowpass, или масштабирование, коэффициенты.

  • 'cplxdddt'cfs{j}(:,:,k,m)

    • j = 1,2... level уровень.

    • k = 1,2 является фильтром вейвлета.

    • m = 1,2 является действительными и мнимыми частями.

    • cfs{level+1}(:,:,m) lowpass, или масштабирование, коэффициенты.

Введенный в R2013b