exponenta event banner

Алгоритм быстрого вейвлет-преобразования (FWT)

В 1988 году Маллат создал алгоритм быстрого вейвлет-разложения и реконструкции [1]. Алгоритм Маллата для дискретного вейвлет-преобразования (DWT) фактически является классической схемой в сообществе обработки сигналов, известной как двухканальный поддиапазонный кодер с использованием сопряженных квадратурных фильтров или квадратурных зеркальных фильтров (QMF).

  • Алгоритм разложения начинается с сигнала s, затем вычисляются координаты A1 и D1, а затем координаты A2 и D2 и так далее.

  • Алгоритм реконструкции, называемый обратным дискретным вейвлет-преобразованием (IDWT), начинается с координат AJ и DJ, затем вычисляет координаты AJ-1, а затем с помощью координат AJ-1 и DJ-1 вычисляет координаты AJ-2 и так далее.

В этом разделе рассматриваются следующие темы:

Фильтры, используемые для расчета DWT и IDWT

Для ортогонального вейвлета в фреймворке мультирешений мы начинаем с масштабной функции, а затем с вейвлет-функции. Одним из фундаментальных отношений является двухмасштабное отношение (уравнение расширения или уравнение уточнения):

12start( x2) =∑n∈Zwnϕ (x − n)

Все фильтры, используемые в DWT и IDWT, тесно связаны с последовательностью

(wn) n∊Z

Ясно, что при компактной поддержке, последовательность (wn) является конечной и может рассматриваться как фильтр. Фильтр W, который называется фильтром масштабирования (ненормализованным), является

  • Конечная импульсная характеристика (КИХ)

  • Длины 2N

  • Суммы 1

  • Нормы 12

  • Нормы 1

  • Фильтр нижних частот

Например, для db3 фильтр масштабирования,

load db3 
db3
    db3 =
    0.2352   0.5706   0.3252  -0.0955  -0.0604   0.0249

sum(db3)
    ans =
         1.0000

norm(db3)
    ans =
         0.7071

Из фильтра W мы определяем четыре фильтра FIR длиной 2N и нормой 1, организованных следующим образом.

Фильтры

Низкопроходная

Высокопроходимая

Разложение

Lo_D

Hi_D

Реконструкция

Lo_R

Hi_R

Четыре фильтра вычисляются с использованием следующей схемы.

где qmf является таким, что Hi_R и Lo_R являются квадратурными зеркальными фильтрами (т.е. Hi_R (k) = (-1) k Lo_R (2N + 1 - k)) для k = 1, 2,..., 2N.

Обратите внимание, что wrev разворачивает коэффициенты фильтра. Так что Hi_D и Lo_D - это также квадратурные зеркальные фильтры. Вычисление этих фильтров выполняется с помощью orthfilt. Далее мы иллюстрируем эти свойства с помощью db6 вейвлет.

Загрузите фильтр масштабирования экстремальной фазы Daubechies и постройте график коэффициентов.

load db6;
subplot(421); stem(db6,'markerfacecolor',[0 0 1]);
title('Original scaling filter');

Использовать orthfilt для возврата фильтров анализа (разложения) и синтеза (реконструкции).

Получить дискретные преобразования Фурье (DFT) фильтров анализа нижних и верхних частот. Постройте график модуля DFT.

LoDFT = fft(Lo_D,64);
HiDFT = fft(Hi_D,64);
freq = -pi+(2*pi)/64:(2*pi)/64:pi;
subplot(427); plot(freq,fftshift(abs(LoDFT)));
set(gca,'xlim',[-pi,pi]); xlabel('Radians/sample');
title('DFT Modulus - Lowpass Filter')
subplot(428); plot(freq,fftshift(abs(HiDFT)));
set(gca,'xlim',[-pi,pi]); xlabel('Radians/sample');
title('Highpass Filter');

Алгоритмы

Учитывая сигнал s длиной N, DWT состоит максимум из log2N каскадов. Начиная с s, первый шаг производит два набора коэффициентов: коэффициенты аппроксимации cA1 и коэффициенты детализации cD1. Эти векторы получают сверткой s с фильтром нижних частот Lo_D для аппроксимации и с фильтром верхних частот Hi_D для детализации с последующим диадическим прореживанием.

Точнее, первый шаг -

Длина каждого фильтра равна 2L. Результатом свертки сигнала длины N с фильтром длины 2L является N + 2L-1. Поэтому сигналы F и G имеют длину N + 2L - 1. После понижающей дискретизации на 2 векторы коэффициентов cA1 и cD1 имеют длину

N 12 + L ⌋.

Следующий шаг разбивает коэффициенты аппроксимации, cA1 на две части, используя одну и ту же схему, заменяя s на cA1 и производя cA2 и cD2 и так далее.

Итак, вейвлет-разложение сигнала s, анализируемого на уровне j, имеет следующую структуру: [cAj, cDj,..., cD1].

Эта структура содержит для J = 3 терминальные узлы следующего дерева.

  • И наоборот, начиная с cAj и cDj, IDWT восстанавливает cAj-1, инвертируя этап разложения путем вставки нулей и свертывания результатов с фильтрами реконструкции.

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

    Такого рода 2-D DWT приводит к разложению коэффициентов аппроксимации на уровне j в четырёх компонентах: аппроксимации на уровне + 1 и деталей в трёх ориентациях (горизонтальной, вертикальной и диагональной).

    Следующие диаграммы описывают основные этапы разложения и реконструкции изображений.

Так, для J = 2 2-D вейвлет-дерево имеет следующий вид.

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

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

Почему такой алгоритм существует?

В предыдущем параграфе описываются алгоритмы, предназначенные для сигналов или изображений конечной длины. Чтобы понять обоснование, мы должны рассмотреть сигналы бесконечной длины. Способы расширения данного сигнала конечной длины описаны в Border Effects.

Обозначим h = Lo_R и g = Hi_R и сосредоточимся на 1-D случае.

Сначала мы обосновываем, как перейти от уровня j к уровню j + 1, для вектора аппроксимации. Это основной шаг алгоритма разложения для вычисления аппроксимаций. Детали вычисляются таким же образом с использованием фильтра g вместо фильтра h.

Пусть (Ak (j)) k∊Z быть координатами вектора Aj:

Aj =  kAk (j) ϕj, k

и Ak (j + 1) координаты вектора Aj + 1:

Aj+1 =  kAk (j+1) ϕj+1, k

Ak (j + 1) рассчитывается по формуле

Ак (j + 1) =∑nhn−2kAn (j)

Эта формула напоминает формулу свертки.

Расчет очень прост.

Давайте определим

(k) = h ( − k) и Fk (j + 1) =∑nh˜k−nAn (j).

Последовательность F (j + 1) является отфильтрованным выходом последовательности A (j) с помощью фильтра h˜.

Получаем

Ak (j + 1) = F2k (j + 1)

Мы должны взять четные значения индекса F. Это понижающая выборка.

Последовательность A (j + 1) является пониженной версией последовательности F (j + 1).

Инициализация выполняется с использованием Ak (0) = s (k), где s (k) - значение сигнала в момент времени k.

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

Давайте рассмотрим некоторые из них.

  1. Семейство (ϕ0,k,k∈Z) образовано ортонормированными функциями. В результате для любого j семейство (ϕj,k,k∈Z) является ортонормированным.

  2. Двойное индексированное семейство

    (ψj,k,j∈Z,k∈Z)

    ортонормированный.

  3. Для любого j, (ϕj, k, k∈Z) ортогональные к (ψj , k, j ′≤ j, k∈Z).

  4. Между двумя последовательными шкалами мы имеем фундаментальное отношение, называемое двойным отношением.

    Двухмасштабное отношение (Twin-Scale Relation) для

    ϕ1,0=∑k∈Zhkϕ0,k

    ϕj+1,0=∑k∈Zhkϕj,k

    Это отношение вводит h-фильтр алгоритма (hn = 2startn). Дополнительные сведения см. в разделе Фильтры, используемые для расчета DWT и IDWT.

  5. Мы проверяем, что:

    1. Координата фj + 1,0 на фj, k равна hk и не зависит от j.

    2. Координата фj + 1, n на фj, k равна ϕj+1,n,ϕj,k〉=hk−2n .

  6. Эти отношения обеспечивают ингредиенты для алгоритма.

  7. До сих пор мы использовали фильтр h. Фильтр верхних частот g используется в отношении сдвоенных шкал, связывающих функции, связанные между собой. Между двумя последовательными шкалами мы имеем следующую двойную фундаментальную связь.

    Двухмасштабная связь между

    ψ1,0=∑k∈Zgkϕ0,k

    ψj+1,0=∑k∈Zgkϕj,k

  8. После этапа разложения мы оправдываем теперь алгоритм реконструкции, построив его. Упростим нотацию. Начав с A1 и D1, изучим A0 = A1 + Dj1. Процедура является такой же, чтобы вычислить A = Aj + 1 + Dj + 1.

    Определим αn, δn, αk0 по

    A1 = nanϕ1,    n D1 = ∑ nδnψ1, n A0 =      kak0ϕ0, k

    Оценим координаты αk0 как

    ak0=〈A0,ϕ0,k〉=〈A1+D1,ϕ0,k〉=〈A1,ϕ0,k〉+〈D1,ϕ0,k〉=∑nan〈ϕ1,n,ϕ0,k〉+∑nδn〈ψ1,n,ϕ0,k〉=∑nanhk−2n+∑nδngk−2n

Мы сосредоточим наше исследование на первой сумме ∑nanhk−2n; вторая сумма ∑nδngk−2n обрабатывается аналогичным образом.

Вычисления легко организованы, если отметить, что (принимая k = 0 в предыдущих формулах, делает вещи проще)

∑nanh−2n=... + a 1h2 + a0h0 + a1h 2 + a2h 4 +... =... + a 1h2 + 0h1 + a0h0 + 0h − 1 + a1h − 2 + 0h − 3 + a2h − 4 +...

Если мы преобразуем (αn) последовательность в новую последовательность (α˜n), определенную

      ..., α–1, 0, α0, 0, α1, 0, α2, 0, ... это именно

a˜2n=an,a˜2n+1=0

Тогда

∑nanh−2n=∑na˜nh−n

и путем продления

∑nanhk−2n=∑na˜nhk−n

С тех пор

ak0=∑na˜nhk−n+∑nδ˜ngk−n

этапы реконструкции:

  1. Замените последовательности α и δ увеличенными версиями α˜ и δ˜ вставкой нулей.

  2. Фильтровать по h и g соответственно.

  3. Суммировать полученные последовательности.

1-D Возможности вейвлета

Основные объекты 1-D

 

Объекты

Описание

Сигнал в исходное время

s

Ak, 0 ≤ kj

Dk, 1 ≤ kj

Исходный сигнал

Приближение на уровне k

Детализация на уровне k

Коэффициенты во времени, связанном со шкалой

cAk, 1 ≤ kj

cDk, 1 ≤ kj

[cAj, cDj,..., cD1]

Коэффициенты аппроксимации на уровне k

Коэффициенты детализации на уровне k

Вейвлет-декомпозиция на уровне j, j ≥ 1

Возможности анализа-декомпозиции

Цель

Вход

Продукция

Файл

Одноуровневая декомпозиция

s

cA1, cD1

dwt

Одноуровневая декомпозиция

cAj

cAj + 1, cDj + 1

dwt

Разложение

s

[cAj, cDj,..., cD1]

wavedec

Возможности синтеза-реконструкции

Цель

Вход

Продукция

Файл

Одноуровневая реконструкция

cA1, cD1

s или A0

idwt

Одноуровневая реконструкция

cAj + 1, cDj + 1

cAj

idwt

Полная реконструкция

[cAj, cDj,..., cD1]

s или A0

waverec

Выборочная реконструкция

[cAj, cDj,..., cD1]

Аль, Дм

wrcoef

Утилиты структуры декомпозиции

Цель

Вход

Продукция

Файл

Извлечение коэффициентов детализации

[cAj, cDj,..., cD1]

cDk, 1 ≤ kj

detcoef

Извлечение коэффициентов аппроксимации

[cAj, cDj,..., cD1]

cAk, 0≤ kj

appcoef

Перекомпозиция структуры разложения

[cAj, cDj,..., cD1]

[cAk, cDk,..., cD1] 1 ≤ k ≤ j

upwlev

Для иллюстрации режима командной строки для 1-D возможностей см. раздел Анализ 1-D с помощью командной строки..

2-D Возможности вейвлета

Основные объекты 2-D

 

Объекты

Описание

Изображение в исходном разрешении

s

Исходное изображение

A0

Аппроксимация на уровне 0

Ak, 1 ≤ kj

Приближение на уровне k

Dk, 1 ≤ kj

Сведения на уровне k

Коэффициенты в разрешении, связанном с масштабом

cAk, 1 ≤ kj

Коэффициенты аппроксимации на уровне k

cDk, 1 ≤ kj

Коэффициенты детализации на уровне k

[cAj, cDj,..., cD1]

Вейвлет-декомпозиция на уровне j

Dk означает [Dk (h), Dk (v), Dk (d)], горизонтальные, вертикальные и диагональные детали на уровне k.

То же самое относится к cDk, который обозначает [cDk (h), cDk (v), cDk (d)].

Файлы 2-D аналогичны файлам для 1-D случая, но с 2 добавляется в конце команды.

Например, idwt становится idwt2. Дополнительные сведения см. в разделе 1-D вейвлет-возможностей.

Для иллюстрации режима командной строки для 2-D возможностей см. Анализ и сжатие вейвлетного изображения.

Ссылки

[1] Маллат, С. Г. «Теория декомпозиции сигналов с множественным разрешением: вейвлет-представление», транзакции IEEE по анализу шаблонов и машинному интеллекту. Том 11, выпуск 7, июль 1989 года, стр. 674-693.