Неподкошенный дискретный стационарный вейвлет преобразовывает (SWTs)

Мы знаем, что классический DWT переносит недостаток: DWT не является независимым от времени преобразованием. Это означает, что, даже с периодическим расширением сигнала, DWT переведенной версии сигнала X не является, в целом, переведенной версией DWT X.

Как восстановить инвариантность перевода, которая желательное имущество утрачено классическим DWT? Идея состоит в том, чтобы составить в среднем некоторый немного отличающийся DWT, названный ε-decimated DWT, чтобы задать стационарный вейвлет преобразовывает (SWT). Это свойство полезно для нескольких приложений, таких как аварийное обнаружение точек.

Главное приложение SWT является шумоподавлением. Для получения дополнительной информации об объяснении см. [CoiD95] в Ссылках. Для примеров смотрите 1D Стационарное Преобразование Вейвлета и 2D Стационарное Преобразование Вейвлета.

Принцип должен составить в среднем несколько сигналов denoised. Каждый из них получен с помощью обычной схемы шумоподавления (см. Шумоподавление Вейвлета и Непараметрическую Функциональную Оценку), но применился к коэффициентам ε-decimated DWT.

Примечание

SWT задан только для сигналов длины, делимой 2J, где J является максимальным уровнем разложения. SWT использует периодический (perрасширение.

ε-Decimated DWT

Что такое ε-decimated DWT?

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

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

Если мы выполняем все различные возможные разложения исходного сигнала, мы имеем 2J различные разложения, для данного максимального уровня J.

Давайте обозначим εj = 1 или 0 выбор нечетных или даже индексируемых элементов на шаге j. Каждое разложение помечено последовательностью 0s и 1 с: ε = ε1..., εJ. Это преобразование называется ε-decimated DWT.

Вы можете получить базисные векторы ε-decimated DWT от тех из стандартного DWT путем применения сдвига и соответствуете специальному выбору источника основных функций.

Как вычислить ε-Decimated DWT: SWT

Возможно вычислить весь ε-decimated DWT для данного сигнала длины N путем вычисления приближения и коэффициентов детали для каждой возможной последовательности ε. Сделайте это использование итеративно, немного модифицированную версию основного шага DWT формы:

[A,D] = dwt(X,wname,'mode','per','shift',e); 

Последние два аргумента задают способ выполнить шаг децимации. Это - классическое для e = 0, но для e = 1 нечетные индексируемые элементы сохраняются децимацией.

Конечно, это не хороший способ вычислить весь ε-decimated DWT, потому что много расчетов много раз выполняются. Мы теперь опишем иначе, который является стационарным вейвлетом преобразовывает (SWT).

Алгоритм SWT очень прост и близко к DWT один. Более точно, для уровня 1, весь ε-decimated DWT (только два на этом уровне) для данного сигнала может быть получен путем свертки к сигналу с соответствующими фильтрами как в случае DWT, но без субдискретизации. Затем приближение и коэффициенты детали на уровне 1 оба имеют размер N, который является длиной сигнала. Это может визуализироваться в следующем рисунке.

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

Затем мы иллюстрируем, как извлечь данный ε-decimated DWT из приближения и содействующей структуры детали SWT.

Мы анализируем последовательность чисел высоты с SWT, на уровне J = 3, с помощью ортогонального вейвлета.

Функция swt вычисляет последовательно следующие массивы, где A(j,ε1,...,εj) или D(j,ε1,...,εj) обозначают приближение или коэффициент детали на уровне j, полученный для ε-decimated DWT охарактеризованный ε = [ε1..., εj].

Шаг 0 (исходные данные)

(0)

(0)

(0)

(0)

(0)

(0)

(0)

(0)

Шаг 1

D (1,0)

D (1,1)

D (1,0)

D (1,1)

D (1,0)

D (1,1)

D (1,0)

D (1,1)

(1,0)

(1,1)

(1,0)

(1,1)

(1,0)

(1,1)

(1,0)

(1,1)

Шаг 2

D (1,0)

D (1,1)

D (1,0)

D (1,1)

D (1,0)

D (1,1)

D (1,0)

D (1,1)

D (2,0,0)

D (2,1,0)

D (2,0,1)

D (2,1,1)

D (2,0,0)

D (2,1,0)

D (2,0,1)

D (2,1,1)

(2,0,0)

(2,1,0)

(2,0,1)

(2,1,1)

(2,0,0)

(2,1,0)

(2,0,1)

(2,1,1)

Шаг 3

D (1,0)

D (1,1)

D (1,0)

D (1,1)

D (1,0)

D (1,1)

D (1,0)

D (1,1)

D (2,0,0)

D (2,1,0)

D (2,0,1)

D (2,1,1)

D (2,0,0)

D (2,1,0)

D (2,0,1)

D (2,1,1)

D (3,0,0,0)

D (3,1,0,0)

D (3,0,1,0)

D (3,1,1,0)

D (3,0,0,1)

D (3,1,0,1)

D (3,0,1,1)

D (3,1,1,1)

(3,0,0,0)

(3,1,0,0)

(3,0,1,0)

(3,1,1,0)

(3,0,0,1)

(3,1,0,1)

(3,0,1,1)

(3,1,1,1)

Позвольте j обозначить текущий уровень, где j является также текущим шагом алгоритма. Затем у нас есть следующие абстрактные отношения с εi = 0 или 1:

[tmpAPP,tmpDET] = 
dwt(A(j,ε1, ,ɛj),wname,'mode','per','shift',ɛj+1); 
A(j+1,ɛ1, ,ɛjj+1) = circshift(tmpAPP,-ɛj+1);
D(j+1,ɛ1, ,ɛjj+1) = circshift(tmpDET,-ɛj+1);

где circshift выполняет ε-circular сдвиг входного вектора. Поэтому, если εj+1 = 0, circshift инструкция неэффективна и может быть подавлена.

Позвольте ε = [ε1..., εJ] с εi = 0 или 1. Мы имеем 2J = 23 = восемь различных ε-decimated DWTs на уровне 3. Выбирая ε, мы можем получить соответствующий ε-decimated DWT из массива SWT.

Теперь рассмотрите последний шаг, J = 3, и позвольте [Cε, Lε] обозначают структуру разложения вейвлета ε-decimated DWT для данного ε. Затем это может быть получено из структуры разложения SWT путем выбора соответствующих коэффициентов можно следующим образом:

Cε =

(3, ε1, ε2, ε3)

D (3, ε1, ε2, ε3)

D (2, ε1, ε2)

D (2, ε1, ε2)

D (1, ε1)

D (1, ε1)

D (1, ε1)

D (1, ε1)

Lε = [1,1,2,4,8]

Например, ε-decimated DWT соответствующий ε = [ε1, ε2, ε3] = [1,0,1] показывают полужирным в последовательности массивов предыдущего примера.

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

Обратный дискретный стационарный вейвлет преобразовывает (ISWT)

Каждый ε-decimated DWT соответствие данному ε может быть инвертирован.

Чтобы восстановить исходный сигнал с помощью данного ε-decimated DWT охарактеризованный [ε1..., εJ], мы можем использовать абстрактный алгоритм

FOR j = J:-1:1
  A(j-1, ε1, ,ɛj-1) = ...
  idwt(A(j,ɛ1, ,ɛj),D(S,ɛ1, ,ɛj)],wname,'mode','per','shift',ɛj);
END

Для каждого выбора ε = (ε1..., εJ), мы получаем исходный сигнал A (0), начинающий с немного отличающихся разложений и получающий по-разному основные функции анализируемого сигнала.

Идея обратного дискретного стационарного вейвлета преобразовывает, должен составить в среднем инверсии, полученные для каждого ε-decimated DWT. Это может быть сделано рекурсивно, начинающий с уравнивают J к уровню 1.

ISWT получен со следующим абстрактным алгоритмом:

FOR j = J:-1:1
    X0 = idwt(A(j,ɛ1, ,ɛj),D(j,ɛ1, ,ɛj)],wname, ...
            'mode','per','shift',0);
    X1 = idwt(A(j,ɛ1, ,ɛj),D(j,ɛ1, ,ɛj)],wname, ...
            'mode','per','shift',1);
    X1 = circshift(X1,-1);
    A(j-1, ɛ1, ,ɛj-1) = (X0+X1)/2;
END

В том же направлении это может быть расширено к 2D случаю.

Больше о SWT

Некоторые полезные ссылки для Стационарного преобразования вейвлета (SWT) [CoiD95], [NasS95] и [PesKC96] в Ссылках.

Для просмотра документации необходимо авторизоваться на сайте