dddtree

Двухдерево и двойная плотность 1-D вейвлет

Описание

пример

wt = dddtree(typetree,x,level,fdf,df) возвращает typetree дискретное вейвлет (DWT) входного сигнала 1-D, 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 для создания первого этапа фильтров анализа Фарраса и 6-таповых фильтров анализа Q-сдвига Кингсбери для последующих этапов мультирезолюционного анализа.

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

Figure contains an axes. The axes contains 2 objects of type line.

Использование выхода 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

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

Создайте сигнал, состоящий из 2-Hz синусоиды длительностью 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

Figure contains an axes. The axes with title Original Signal contains an object of type line.

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

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

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

Создайте сигнал, состоящий из 2-Hz синусоиды длительностью 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

Figure contains an axes. The axes with title Original Signal contains an object of type line.

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

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

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

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

свернуть все

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

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

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

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

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

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

  • 'dwt' - Это критически выбранное дискретное вейвлет. В этом случае fdf - двухколоночная матрица с lowpass (масштабирование) фильтром в первом столбце и highpass (вейвлет) фильтром во втором столбце.

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

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

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

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

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

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

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

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

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

  • Для двухдревовидного комплексного вейвлет, 'cplxdt', df{1} - двухколоночная матрица, содержащая lowpass (масштабирование) и highpass (вейвлет) фильтры для первого дерева. Масштабный фильтр является первым столбцом, а вейвлет - вторым столбцом. df{2} - двухколоночная матрица, содержащая 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-на-2 или N-на-3 матрица для вейвлет-преобразований с одним деревом или массив ячеек из двух матриц N-на-2 или N-на-3 для вейвлет-преобразований с двумя деревьями. Матрицы N -by-3 для вейвлет двойной плотности. Для матрицы N -by-2 первым столбцом матрицы является фильтр масштабирования (lowpass), а вторым - вейвлет (highpass). Для матрицы N -by-3 первый столбец матрицы является фильтром масштабирования (lowpass), а второй и третий столбцы являются вейвлет (highpass) фильтрами. Для преобразования двойственного дерева каждый элемент массива ячеек содержит фильтры анализа для соответствующего дерева.

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

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

Вейвлеты вейвлет-преобразования, возвращенные как 1-by- (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