exponenta event banner

Метод подъема для построения вейвлетов

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

Полезность вейвлет-методов продлевается конструкцией вейвлетов второго поколения посредством подъема.

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

  • Конструирование вейвлетов на ограниченных доменах - это включает построение вейвлетов на интервале или ограниченной области в более многомерном евклидовом пространстве.

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

  • Неравномерно разнесенные данные - во многих реальных приложениях интервал выборки между выборками данных не равен.

Разработка новых вейвлетов первого поколения требует опыта в анализе Фурье. Метод подъёма, предложенный Свелденсом (см. [Swe98] в Справках), снимает необходимость экспертизы в анализе Фурье и позволяет генерировать бесконечное число дискретных биортогенных вейвлетов начиная с начального. В дополнение к генерации вейвлетов первого поколения с подъемом, способ подъема также позволяет проектировать вейвлеты второго поколения, которые не могут быть спроектированы с использованием методов на основе Фурье. При подъеме можно проектировать вейвлеты, которые устраняют недостатки вейвлетов первого поколения.

Для получения дополнительной информации о подъеме см. [Swe98], [Mal98], [StrN96] и [MisMOP03] в разделе «Ссылки».

Подъемный фон

DWT, реализуемый банком фильтров, определяется четырьмя фильтрами, как описано в алгоритме быстрого вейвлет-преобразования (FWT). Два основных свойства, представляющих интерес

  • Идеальное свойство реконструкции

  • Связь с «истинными» вейвлетами (как генерировать, начиная с фильтров, ортогональные или биоргональные базы пространства функций конечной энергии)

Для иллюстрации идеального свойства реконструкции следующий набор фильтров содержит два фильтра разложения и два фильтра синтеза. Фильтры разложения и синтеза могут составлять пару биоугольных оснований или ортогональную основу. Заглавные буквы обозначают Z-образные преобразования фильтров.

Это приводит к следующим двум условиям для идеального банка фильтров реконструкции (PR):

H∼ (z) H (z) +G∼ (z) G (z) = 2z-L + 1tilde H z H x плюс tilde G z G z равно 2 z к мощности минус L плюс 1

и

H∼ (-z) H (z) +G∼ (-z) G (z) = 0tilde H -z H x плюс tilde G -z G z равно 0

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

Член от z-L + 1Z до -L + 1 подразумевает, что совершенная реконструкция достигается до задержки на одну выборку меньше длины фильтра, L. Это приводит к тому, что фильтры анализа сдвигаются, чтобы быть причинными.

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

load leleccum
plot(leleccum)
grid on
axis tight
title('Electricity Consumption')

Figure contains an axes. The axes with title Electricity Consumption contains an object of type line.

Многофазное представление

Многофазное представление сигнала является важной концепцией при подъеме. Каждый сигнал можно рассматривать как состоящий из фаз, которые состоят из взятия каждой N-й выборки, начинающейся с некоторого индекса. Например, если проиндексировать временной ряд из n = 0 и взять каждую другую выборку, начиная с n = 0, извлекаются четные выборки. Если взять каждый другой образец, начиная с n = 1, вы извлекаете нечетные образцы. Это четные и нечетные полифазные компоненты данных. Поскольку шаг между образцами равен 2, существует только две фазы. При увеличении приращения до 4 можно извлечь 4 фазы. Для подъема достаточно сконцентрироваться на четных и нечетных полифазных компонентах. Следующая диаграмма иллюстрирует эту операцию для входного сигнала.

где Z обозначает оператор единичного опережения, а стрелка вниз с номером 2 представляет понижение дискретизации на два. На языке подъема операция разделения входного сигнала на четные и нечетные компоненты известна как операция разделения, или ленивый вейвлет.

Чтобы понять подъем математически, необходимо понять представление z-области четных и нечетных полифазных компонентов.

Z-преобразование четного многофазного компонента

X0 (z) =∑nx (2n) z − n

Z-преобразование нечетного многофазного компонента

X1 (z) =∑nx (2n + 1) z − n

Z-преобразование входного сигнала можно записать как сумму расширенных версий z-преобразований многофазных компонентов.

X (z) =∑nx (2n) z−2n+∑nx (2n + 1) z 2n + 1 = X0 (z2) + z − 1X1 (z2)

Разделение, прогнозирование и обновление

Один этап подъема может быть описан следующими тремя основными операциями:

  • Разделить - сигнал на непересекающиеся компоненты. Обычным способом для этого является извлечение четных и нечетных полифазных компонентов, описанных в Полифазном представлении (Polyphase Representation). Это также известно как ленивый вейвлет.

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

  • Обновление - четный полифазный компонент, основанный на линейной комбинации разностных выборок, полученных на этапе прогнозирования.

На практике нормализация включена как для операций прогнозирования, так и для операций обновления.

На следующей схеме показан один этап подъема.

Подъем с помощью Haar Wavelet

Используя операции Split, Predict и Update, можно реализовать вейвлет Haar посредством лифтинга.

  • Разделение - разделение сигнала на четные и нечетные полифазные компоненты

  • Предсказать - Заменить x (2n + 1) на d (n) = x (2n + 1) -x (2n). Оператор прогнозирования - это просто x (2n).

  • Обновить - Заменить x (2n) на x (2n) + d (n )/2. Это равно (x (2n) + x (2n + 1) )/2.

Оператор прогнозирования в Z-области может быть записан в следующей матричной форме:

[10-P (z) 1] [X0 (z) X1 (z)]

с P (z) = 1.

Оператор обновления может быть записан в следующей матричной форме:

[1S (z) 01] [10-P (z) 1] [X0 (z) X1 (z)]

с S (z) = 1/2.

Наконец, обновление и прогнозирование нормализации могут быть включены следующим образом:

[20012] [1S (z) 01] [10-P (z) 1] [X0 (z) X1 (z)]

Вы можете использовать liftingScheme для построения схемы подъема, связанной с вейвлетом Хаара.

lscHaar = liftingScheme('Wavelet','haar');
disp(lscHaar)
 	 Wavelet              : 'haar' 
 	 LiftingSteps         : [2 × 1] liftingStep 
 	 NormalizationFactors : [1.4142 0.7071] 
 	 CustomLowpassFilter  : [] 


 Details of LiftingSteps :
            Type: 'predict'
    Coefficients: -1
        MaxOrder: 0

            Type: 'update'
    Coefficients: 0.5000
        MaxOrder: 0

Обратите внимание, что для удобства отрицательный знак включен в predict этап подъема. Элементы NormalizationFactors, 1.4142 и 0.7071, являются факторами прогнозирования и обновления нормализации соответственно. MaxOrder дает наивысшую степень полинома Лорана, который описывает соответствующий шаг подъема. В этом случае оба являются нулевыми, потому что прогнозируемые и обновляемые отгрузки описываются скалярами.

Bior2.2 Вейвлет через подъем

В этом примере представлена схема подъема для bior2.2 биорогональное масштабирование и вейвлет-фильтры.

В схеме подъема Хаара оператор прогнозирования различал нечетные и ровные выборки. В этом примере определите новый оператор прогнозирования, который вычисляет среднее из двух соседних четных выборок. Вычтите среднее значение из промежуточной нечетной выборки.

d (n) = x (2n + 1) -12 [x (2n) + x (2n + 2)]

В Z-области можно записать оператор прогнозирования как

[10-12 (1-z) 1] [X0 (z) X1 (z)]

Чтобы получить оператора обновления, проверьте оператора обновления в Haar Wavelet Via Lifting. Обновление определяется таким образом, что сумма коэффициентов аппроксимации пропорциональна среднему вектору входных данных.

∑nx (n) =12∑na (n)

Чтобы получить тот же результат на этом этапе подъема, определите обновление как

[114 (z-1 + 1) 01] [10-12 (1 + z) 1] [X0 (z) X1 (z)]

Вы можете использовать liftingScheme получить схему подъема.

lscBior = liftingScheme('Wavelet','bior2.2');
disp(lscBior)
 	 Wavelet              : 'bior2.2' 
 	 LiftingSteps         : [2 × 1] liftingStep 
 	 NormalizationFactors : [1.4142 0.7071] 
 	 CustomLowpassFilter  : [] 


 Details of LiftingSteps :
            Type: 'predict'
    Coefficients: [-0.5000 -0.5000]
        MaxOrder: 1

            Type: 'update'
    Coefficients: [0.2500 0.2500]
        MaxOrder: 0

Добавить шаг подъема к схеме подъема Haar

В этом примере показано, как добавить элементарный шаг подъема в схему подъема.

Создайте схему подъема, связанную с вейвлетом Хаара.

lsc = liftingScheme('Wavelet','haar');
disp(lsc)
 	 Wavelet              : 'haar' 
 	 LiftingSteps         : [2 × 1] liftingStep 
 	 NormalizationFactors : [1.4142 0.7071] 
 	 CustomLowpassFilter  : [] 


 Details of LiftingSteps :
            Type: 'predict'
    Coefficients: -1
        MaxOrder: 0

            Type: 'update'
    Coefficients: 0.5000
        MaxOrder: 0

Создание update этап элементарного подъема. Добавьте шаг к схеме подъема.

els = liftingStep('Type','update','Coefficients',[-1/8 1/8],'MaxOrder',0);
lscNew = addlift(lsc,els);
disp(lscNew)
 	 Wavelet              : 'custom' 
 	 LiftingSteps         : [3 × 1] liftingStep 
 	 NormalizationFactors : [1.4142 0.7071] 
 	 CustomLowpassFilter  : [] 


 Details of LiftingSteps :
            Type: 'predict'
    Coefficients: -1
        MaxOrder: 0

            Type: 'update'
    Coefficients: 0.5000
        MaxOrder: 0

            Type: 'update'
    Coefficients: [-0.1250 0.1250]
        MaxOrder: 0

Получить фильтры разложения и реконструкции из новой схемы подъема.

[lod,hid,lor,hir] = ls2filt(lscNew);

Использовать bswfun для построения графика результирующей функции масштабирования и фильтра.

bswfun(lod,hid,lor,hir,'plot');

Figure contains 4 axes. Axes 1 with title Analysis scaling function (phiA) contains an object of type line. Axes 2 with title Analysis wavelet function (psiA) contains an object of type line. Axes 3 with title Synthesis scaling function (phiS) contains an object of type line. Axes 4 with title Synthesis wavelet function (psiS) contains an object of type line.

Целочисленное вейвлетное преобразование

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

Создайте схему подъема, связанную с вейвлетом Хаара. Добавить элементарный шаг подъема в схему подъема.

lsc = liftingScheme('Wavelet','haar');
els = liftingStep('Type','update','Coefficients',[-1/8 1/8],'MaxOrder',0);
lscNew = lsc.addlift(els);

Создайте целочисленный сигнал. Получить целочисленное вейвлет-преобразование сигнала из LWT, используя схему подъема, с помощью 'Int2Int' установить в значение true.

rng default
sig = randi(20,16,1);
[ca,cd] = lwt(sig,'LiftingScheme',lscNew,'Int2Int',true);

Подтвердите, что все коэффициенты аппроксимации являются целыми числами.

max(abs(ca-floor(ca)))
ans = 0

Подтвердите, что все коэффициенты детализации являются целыми числами.

len = length(cd);
for k=1:len
    disp([k, max(abs(cd{k}-floor(cd{k})))]);
end
     1     0

     2     0

     3     0

     4     0

Переверните трансформацию и продемонстрируйте идеальную реконструкцию.

xrec = ilwt(ca,cd,'LiftingScheme',lscNew,'Int2Int',true);
max(abs(xrec-sig))
ans = 0