exponenta event banner

besttree

Лучший анализ вейвлет-пакетов дерева

Синтаксис

T = besttree(T)
[T,E] = besttree(T)
[T,E,N] = besttree(T)

Описание

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

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

Сигнал длиной N = 2L может быть расширен α различными способами, где α - число двоичных поддеревьев полного двоичного дерева глубины L.

В результате можно сделать вывод, что α ≥ 2N/2 (более подробную информацию см. в книге Маллата, приведенной в Справочнике на стр. 323).

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

T = besttree(T) вычисляет лучшее дерево T соответствует наилучшему значению энтропии.

[T,E] = besttree(T) вычисляет лучшее дерево T и, кроме того, лучшее значение энтропии E.

Оптимальная энтропия узла, индекс которого равен j-1является E(j).

[T,E,N] = besttree(T) вычисляет лучшее дерево T, лучшее значение энтропии E и, кроме того, вектор N содержит индексы объединенных узлов.

Примеры

свернуть все

В этом примере показано получение оптимального дерева вейвлет-пакетов на основе критерия энтропии.

Загрузите шумный доплеровский сигнал. Получите дерево вейвлет-пакетов до уровня 4 с помощью 'sym4' вейвлет. Используйте режим периодического расширения.

dwtmode('per');
 
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!  WARNING: Change DWT Extension Mode  !
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
                                         
*****************************************
**  DWT Extension Mode: Periodization  **
*****************************************
                                         
load noisdopp;
T = wpdec(noisdopp,4,'sym4');

Получите лучшее вейвлет-дерево пакетов и постройте график результата.

BstTree = besttree(T);
plot(BstTree)

Figure contains 2 axes and other objects of type uimenu. Axes 1 with title Tree Decomposition contains 45 objects of type line, text. Axes 2 with title data for node: 0 or (0,0). contains an object of type line.

Верните режим расширения DWT к значению по умолчанию.

dwtmode('sym');
 
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!  WARNING: Change DWT Extension Mode  !
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
                                                       
*******************************************************
**  DWT Extension Mode: Symmetrization (half-point)  **
*******************************************************
                                                       

Алгоритмы

Рассмотрим одномерный случай. Начиная с корневого узла, наилучшее дерево вычисляется по следующей схеме. Узел N разбивается на два узла N1 и N2 тогда и только тогда, когда сумма энтропии N1 и N2 ниже энтропии N. Это локальный критерий, основанный только на информации, доступной в узле N.

Можно использовать несколько критериев типа энтропии (см. wenergy для получения дополнительной информации. Если функция энтропии является аддитивной функцией вдоль коэффициентов вейвлет-пакета, этот алгоритм приводит к лучшему дереву.

Начиная с начального дерева T и используя сторону слияния этого алгоритма, мы получаем лучшее дерево среди всех двоичных поддеревьев T.

Ссылки

Койфман, Р.Р.; М. В. Викерхаузер (1992), «Алгоритмы на основе энтропии для наилучшего выбора базиса», IEEE Trans. on Inf. Теория, том 38, 2, стр. 713-718.

Маллат, С. (1998), вейвлет-тур по обработке сигналов, Academic Press.

Представлен до R2006a