А.Н. Яковлев - Введение в вейвлет преобразования (1275343), страница 8
Текст из файла (страница 8)
где – число отсчетов импульсной характеристики
фильтра.
В соответствии с (2.21) и (2.7) на выходе фильтров будут ВЧ и НЧ компоненты сигнала:
Рис. 2.13
Из сопоставления (2.21) и (2.16) следует, что для вычисления коэффициентов и
(на первом этапе
) аргументы весовых коэффициентов фильтров
и
должны быть взяты с обратным знаком (порядком следования), т.е.
и . Такие фильтры называются транспонированными.
Так как фильтры пропускают только половину всех частотных компонентов сигнала, то не попавшие в полосу прозрачности составляющие могут быть удалены. Поэтому во вторых блоках схемы выполняется децимация , т.е. прореживание в два раза (из-за множителя 2 при аргументе
в формулах (2.16)):
Правая часть схемы рис. 2.13 осуществляет вейвлет-реконструкцию сигнала. Эта процедура использует операции интерполяции и фильтрации фильтрами реконструкции и
. Операция интерполяции
, обратная децимации
, осуществляется путем увеличения в два раза числа составляющих добавлением нулевых компонентов вперемежку с имеющимися. При сложении сигналов (
и
), полученных на выходе фильтров
и
, будем иметь сигнал
, близкий к исходному
, т.е. произойдет его реконструкция на начальном уровне.
Для последующей итерации ( используются значения
с предыдущей и т.д. до
.
Схема многошаговой итерационной процедуры анализа синтеза показана на рис. 2.14, где представлены диаграммы (а) и структура (б) многошагового алгоритма декомпозиции и реконструкции сигнала, называемого алгоритмом Малла (Mallat). Здесь для наглядности сигнал представлен 512 отсчетами (
).
Рис. 2.14
Таким образом, БВП во временной и частотной областях – это две стороны единой многошаговой структуры, позволяющей быстро осуществить как декомпозицию, так и реконструкцию сигнала.
Следовательно, при частотном подходе к дискретному ВП можно использовать прежние функции, например, (2.18)–(2.20), но вместо имени вейвлета (‘wname’) в качестве входного аргумента должны быть заданы соответствующие НЧ и ВЧ фильтры разложения и восстановления: ,
,
,
.
Основные функции дискретного ВП в пакете Wavelet Toolbox приведены в прил. 2. Для просмотра коэффициентов фильтров (совместно с вейвлетом) достаточно исполнить команду «wavemenu» и в появившемся окне с описанием разделов ВП нажать кнопку «Wavelet Display». Выводится следующее окно, в котором, выбрав имя, «wname », можно просмотреть коэффициенты фильтров декомпозиции ( – low-pass,
– high-pass) и реконструкции (
,
). На рис. П.1 дан пример для вейвлета
. Количественные данные о вейвлет-фильтрах можно получить в командном режиме с помощью простых команд, например
(длина вектора коэффициентов),
(сумма коэффициентов),
(норма вектора коэффициентов) и др. Например, загружая командой
фильтр Добеши
, получим:
>> load db4
>> db4
db4 = 0.1629 0.5055 0.4461 – 0.0198 – 0.1323 0.0218 0.0233 – 0.0075
>> length (db4)
ans = 8
>>sum(db4)
ans = 1.0000
>>norm(db4)
ans = 0.7071
Примечание. Коэффициенты вейвлет-фильтра даны с учетом нормировки – множителя
.
Следующий пример командой загружает вейвлет
, строит его график и графики вейвлет-коэффициентов
и коэффициентов фильтров декомпозиции и реконструкции (рис. 2.16):
function db4
load db4; w = db4; iter = 10; wav = 'db4';
[phi,psi,xval] = wavefun(wav,iter);
subplot(321); plot(xval,psi); title('Wavelet');
Рис. 2.15
subplot(322); stem(w); title('Original scaling filter');
[Lo_D, Hi_D, Lo_R, Hi_R] = orthfilt(w);
subplot(323); stem(Lo_D); title('Decomposition low-pass filter');
subplot(324); stem(Hi_D); title('Decomposition high-pass filter');
subplot(325); stem(Lo_R); title('Reconstruction low-pass filter');
subplot(326); stem(Hi_R); title('Reconstruction high-pass filter');
end
2.7. Пакетные вейвлеты
и вейвлет-алгоритмы
При рассмотрении БВП по алгоритму Малла на каждом шаге происходит октавополосное «расщепление» (splitting) сигнала на ВЧ и НЧ составляющие и «отсечение» ВЧ составляющей. Причина такого подхода заключена в неявном предположении, что НЧ область содержит больше информации об исходном сигнале, чем ВЧ область. В результате получается «однобокое» дерево (рис. 2.10 ). Такое предположение оправдано для многих реальных сигналов, однако для некоторых оно не выполняется.
Р. Койфман и М. Викерхаузер усовершенствовали алгоритм Малла, предложив применить процесс расщепления как для НЧ, так и ВЧ составляющих сигнала. В результате получается «полное» (бинарное или сбалансированное) дерево, представленное на рис. 2.16, а.
а б
Рис. 2.16
Ветвям дерева будет соответствовать набор подпространств сигнала с базисами, построенными, как и для однобокого дерева, согласно КМА. Функции и фильтры, порождающие эти базисы, называются соответственно вейвлет-пакетами и пакетными фильтрами.
На рис. 2.17 в качестве примера приведены начальные пакетные вейвлеты для функции Добеши .
Если исходные вейвлет-фильтры ортогональны, то и схема любой конфигурации дерева является ортогональной, поскольку она есть каскадное соединение ортогональных фильтров.
На основе вводимой функции стоимости можно определить наилучший путь по дереву (рис. 2.16, а) с возможностью отсечения части ветвей (рис. 2.16, б). Таким образом, получается базис и ВП, адаптированные к сигналу. При этом адаптация не требует обучения или знания статистических свойств сигнала. Разработан ряд методов для выбора оптимального или квазиоптимального дерева.
Рис. 2.17
В качестве функции стоимости используется энтропия. Существует много разных определений энтропии, например, определение по Шеннону (Shannon)
или через логарифм энергии
Однако суть у них одна – большая энтропия свидетельствует о «размазанности» сигнала по базисным функциям; малая энтропия имеет место тогда, когда большая часть нормы сигнала сосредоточена на малом числе базисных функций. В последнем случае информация о сигнале (изображении) может быть существенно сжата.
Алгоритм построения наилучшего дерева состоит в следующем. Первоначально анализируются пары узлов, имеющих общий корень. Если при переходе от корня к узлам энтропия не уменьшается, то эта пара заменяется на корень, т. е. по сути отсекается [8]. Процедура рекурсивно продолжается по достижении вершины дерева.
Рис. 2.18
Рис. 2.18 иллюстрирует наилучшее дерево (слева) по критерию энтропии, выведенное на экран при анализе звукового сигнала (см. пример 2.4):
Function ss_tree
load mtlb; x = mtlb(1:200); wpt = wpdec(x,3,'db1');
wpt = wpsplt(wpt, [3 0]); plot(wpt)
bst = besttree(wpt); plot(bst);
Это дерево действительно короче полного. Справа на рисунке дан исходный сигнал – временная зависимость в узле (0,0). Для получения графика в любом узле надо установить указатель мыши на этом узле и щелкнуть левой клавишей мыши.
Возможен упрощенный вариант [7, 8], состоящий в подборе оптимальной высоты (уровня) полного дерева, при которой энтропия минимальна. Известны и другие алгоритмы ВП с использованием вейвлет-пакетов [1, 3, 7, 8].
Пакетные вейвлет-алгоритмы встроены в Wavelet Toolbox. Функции одно– и двумерного пакетного вейвлет-анализа и синтеза, вычисления энтропии, определения наилучшего дерева по критерию энтропии и другим приведены в прил. 2 (П.2.5).
2.8. Удаление шумов
и компрессия сигналов
Традиционно для решения этих задач применяется известный из практики фильтрации метод подавления высокочастотных составляющих спектра. Этот метод был использован в примерах 2.2 и 2.3.
Кроме того, с использованием вейвлетов есть еще один метод – ограничение уровня детализирующих коэффициентов. Задав определенный порог для их уровня и «отсекая» коэффициенты ниже этого порога, можно значительно снизить уровень шума и сжать сигнал или изображение. Это равносильно заданию оптимального пути по дереву ВП (см. п. 2.7). Возможны различные типы порогов ограничения: мягкий или гибкий и твердый или жесткий (рис. 2.19). При этом устанавливаются различные правила выбора порога: адаптивный порог, эвристический, минимаксный и др.
Но самое главное состоит в том, что пороговый уровень можно устанавливать для каждого коэффициента отдельно. Это позволяет строить адаптивные к изменениям сигнала (изображения) способы очистки от шума и компрессии.
Подробно познакомиться с этими проблемами и приобрести определенные навыки читатель может с помощью демонстрационных примеров, работая с подразделами De-noise и Compression интерфейса GUI.