exponenta event banner

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

Примеры

свернуть все

Получить комплексное вейвлет-преобразование двойного дерева шумного доплеровского сигнала. Фильтры FIR на первом и последующих этапах приводят к приблизительно аналитическому вейвлету, как требуется.

Использовать dtfilters для создания фильтров анализа Фарраса первого этапа и фильтров анализа Кингсбери 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

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

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

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

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

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

Фильтры анализа уровня один, заданные как матрица или массив ячеек матриц. Определить fdf как матрица, когда typetree является 'dwt' или 'ddt'. Размер и структура матрицы зависят от typetree введите следующее:

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

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

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

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

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

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

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

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

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

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

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

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

Типы данных: 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 матрицы первым столбцом матрицы является масштабный (низкочастотный) фильтр, а вторым столбцом - вейвлет (высокопроходный) фильтр. Для N-by-3 матрицы первым столбцом матрицы является масштабный (низкочастотный) фильтр, а вторым и третьим столбцами являются вейвлет (высокопроходные) фильтры. Для преобразований двойного дерева каждый элемент массива ячеек содержит фильтры анализа первого этапа для соответствующего дерева.

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

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

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

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

  • 'dwt'cfs{j}

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

    • cfs{level+1} являются коэффициентами нижних частот или масштабированием.

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

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

    • k = 1,2 - вейвлет-фильтр.

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

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

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

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

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

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

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

    • k = 1,2 - вейвлет-фильтр.

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

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

Представлен в R2013b