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