В численном анализе и функциональном анализе дискретное вейвлет-преобразование ( DWT ) — это любое вейвлет-преобразование, для которого вейвлеты дискретно сэмплируются. Как и в случае с другими вейвлет-преобразованиями, его ключевым преимуществом перед преобразованиями Фурье является временное разрешение: оно захватывает как частотную, так и локационную информацию (локация во времени).
Первый DWT был изобретен венгерским математиком Альфредом Хааром . Для входных данных, представленных списком чисел , можно считать, что вейвлет-преобразование Хаара объединяет входные значения в пары, сохраняет разницу и передает сумму. Этот процесс повторяется рекурсивно, объединяя суммы в пары для доказательства следующего масштаба, что приводит к разностям и окончательной сумме.
Наиболее часто используемый набор дискретных вейвлет-преобразований был сформулирован бельгийским математиком Ингрид Добеши в 1988 году. Эта формулировка основана на использовании рекуррентных соотношений для генерации все более тонких дискретных выборок неявной материнской вейвлет-функции; каждое разрешение вдвое больше предыдущего масштаба. В своей основополагающей статье Добеши выводит семейство вейвлетов , первым из которых является вейвлет Хаара. С тех пор интерес к этой области резко возрос, и было разработано множество вариаций исходных вейвлетов Добеши. [1] [2] [3]
Комплексное вейвлет-преобразование с двойным деревом ( WT) является относительно недавним усовершенствованием дискретного вейвлет-преобразования (DWT) с важными дополнительными свойствами: оно почти инвариантно к сдвигу и избирательно по направлению в двух и более измерениях. Оно достигает этого с коэффициентом избыточности всего лишь , что существенно ниже, чем недецимированное DWT. Многомерное (MD) комплексное вейвлет-преобразование с двойным деревом неразделимо, но основано на вычислительно эффективном, разделимом банке фильтров (FB). [4]
Другие формы дискретного вейвлет-преобразования включают вейвлет Le Gall–Tabatabai (LGT) 5/3, разработанный Didier Le Gall и Ali J. Tabatabai в 1988 году (используется в JPEG 2000 или JPEG XS ), [5] [6] [7] биномиальный QMF , разработанный Ali Naci Akansu в 1990 году, [8] алгоритм разбиения множеств в иерархических деревьях (SPIHT), разработанный Amir Said и William A. Pearlman в 1996 году, [9] не- или недецимированное вейвлет-преобразование (где опущена понижающая дискретизация) и преобразование Ньюланда (где ортонормированный базис вейвлетов формируется из соответствующим образом построенных фильтров top-hat в частотном пространстве ). Пакетные вейвлет-преобразования также связаны с дискретным вейвлет-преобразованием. Комплексное вейвлет-преобразование является другой формой.
Хаар DWT иллюстрирует желаемые свойства вейвлетов в целом. Во-первых, его можно выполнять в операциях; во-вторых, он захватывает не только понятие частотного содержимого входных данных, исследуя его в разных масштабах, но и временное содержимое, т. е. время, в которое эти частоты возникают. В совокупности эти два свойства делают быстрое вейвлет-преобразование (FWT) альтернативой обычному быстрому преобразованию Фурье (FFT).
Из-за операторов изменения скорости в банке фильтров дискретный WT не является инвариантным по времени, но на самом деле очень чувствителен к выравниванию сигнала во времени. Чтобы решить проблему изменяющихся во времени вейвлет-преобразований, Маллат и Чжун предложили новый алгоритм для вейвлет-представления сигнала, который инвариантен к временным сдвигам. [10] Согласно этому алгоритму, который называется TI-DWT, только параметр масштаба выбирается вдоль диадической последовательности 2^j (j∈Z), а вейвлет-преобразование вычисляется для каждой точки во времени. [11] [12]
Дискретное вейвлет-преобразование имеет огромное количество приложений в науке, технике, математике и информатике. В частности, оно используется для кодирования сигналов, для представления дискретного сигнала в более избыточной форме, часто в качестве предварительной подготовки для сжатия данных . Практические приложения можно также найти в обработке сигналов ускорений для анализа походки, [13] [14] обработке изображений, [15] [16] в цифровой связи и во многих других областях. [17] [18] [19]
Показано, что дискретное вейвлет-преобразование (дискретное по масштабу и сдвигу и непрерывное по времени) успешно применяется в качестве банка аналоговых фильтров при обработке биомедицинских сигналов для проектирования маломощных кардиостимуляторов, а также в сверхширокополосной (UWB) беспроводной связи. [20]
Вейвлеты часто используются для шумоподавления двумерных сигналов, таких как изображения. Следующий пример показывает три шага для удаления нежелательного белого гауссовского шума из показанного шумного изображения. Matlab использовался для импорта и фильтрации изображения.
Первый шаг — выбрать тип вейвлета и уровень разложения N. В этом случае были выбраны биортогональные вейвлеты 3,5 с уровнем N, равным 10. Биортогональные вейвлеты обычно используются при обработке изображений для обнаружения и фильтрации белого гауссовского шума [21] из-за их высокой контрастности значений интенсивности соседних пикселей. С помощью этих вейвлетов выполняется вейвлет-преобразование на двумерном изображении.
После разложения файла изображения следующим шагом является определение пороговых значений для каждого уровня от 1 до N. Стратегия Бирже-Массара [22] является довольно распространенным методом выбора этих порогов. Используя этот процесс, индивидуальные пороги создаются для N = 10 уровней. Применение этих порогов является основной частью фактической фильтрации сигнала.
Последний шаг — реконструкция изображения из измененных уровней. Это достигается с помощью обратного вейвлет-преобразования. Полученное изображение с удаленным белым гауссовым шумом показано под исходным изображением. При фильтрации любой формы данных важно количественно оценить отношение сигнал/шум результата. [ необходима цитата ] В этом случае SNR зашумленного изображения по сравнению с оригиналом составил 30,4958%, а SNR изображения без шума — 32,5525%. Результирующее улучшение вейвлет-фильтрации — это прирост SNR в 2,0567%. [23]
Выбор других вейвлетов, уровней и стратегий пороговой обработки может привести к различным типам фильтрации. В этом примере для удаления был выбран белый гауссовский шум. Хотя с другим пороговым управлением его можно было бы так же легко усилить.
Чтобы проиллюстрировать различия и сходства между дискретным вейвлет-преобразованием и дискретным преобразованием Фурье , рассмотрим ДВП и ДПФ следующей последовательности: (1,0,0,0), единичный импульс .
ДПФ имеет ортогональный базис ( матрицу ДПФ ):
в то время как DWT с вейвлетами Хаара для данных длины 4 имеет ортогональный базис в строках:
(Для упрощения записи используются целые числа, поэтому основания ортогональны , но не ортонормальны .)
Предварительные наблюдения включают в себя:
DWT демонстрирует локализацию: член (1,1,1,1) дает среднее значение сигнала, (1,1,–1,–1) помещает сигнал в левую часть домена, а (1,–1,0,0) помещает его в левую часть левой части, а усечение на любом этапе дает версию сигнала с пониженной дискретизацией:
ДПФ, напротив, выражает последовательность посредством интерференции волн различных частот — таким образом, усечение ряда дает его отфильтрованную низкими частотами версию:
Примечательно, что среднее приближение (2-членное) отличается. С точки зрения частотной области это лучшее приближение, но с точки зрения временной области у него есть недостатки – оно демонстрирует недобор – одно из значений отрицательно, хотя исходный ряд везде неотрицателен – и звон , где правая часть не равна нулю, в отличие от вейвлет-преобразования. С другой стороны, приближение Фурье правильно показывает пик, и все точки находятся в пределах своего правильного значения, хотя все точки имеют ошибку. Вейвлет-приближение, напротив, помещает пик в левую половину, но не имеет пика в первой точке, и хотя оно точно верно для половины значений (отражая местоположение), оно имеет ошибку для других значений.
Это иллюстрирует виды компромиссов между этими преобразованиями и то, как в некоторых отношениях DWT обеспечивает предпочтительное поведение, особенно для моделирования переходных процессов.
Водяной знак с использованием DCT-DWT изменяет вейвлет-коэффициенты наборов коэффициентов средней частоты 5-уровневого DWT-преобразованного изображения-хоста, после чего преобразования DCT применяются к выбранным наборам коэффициентов. Прасаналакшми Б предложил метод [24] , который использует поддиапазон частот HL в наборах коэффициентов средней частоты LHx и HLx в 5-уровневом дискретном вейвлет-преобразовании (DWT)-преобразованном изображении.
Этот алгоритм выбирает более грубый уровень DWT с точки зрения незаметности и надежности, чтобы применить к ним 4×4-блочное DCT. Следовательно, можно достичь более высокой незаметности и надежности . Кроме того, операция предварительной фильтрации используется перед извлечением водяного знака, повышением резкости и фильтрацией Лапласа Гаусса (LoG) , что увеличивает разницу между информацией водяного знака и размещенным изображением.
Основная идея DWT для двумерного изображения описывается следующим образом: изображение сначала разлагается на четыре части высокочастотных, среднечастотных и низкочастотных подкомпонентов (т. е. LL1, HL1, LH1, HH1) путем критической субдискретизации горизонтальных и вертикальных каналов с использованием фильтров подкомпонентов.
Подкомпоненты HL1, LH1 и HH1 представляют собой коэффициенты вейвлета самого мелкого масштаба. Подкомпонент LL1 разлагается и критически подвыбирается для получения следующих компонентов вейвлета более грубого масштаба. Этот процесс повторяется несколько раз, что определяется текущим приложением.
Высокочастотные компоненты считаются встроенными в водяной знак, поскольку они содержат информацию о краях, а человеческий глаз менее чувствителен к изменениям краев. В алгоритмах создания водяных знаков, помимо невидимости водяного знака, основной проблемой является выбор частотных компонентов для внедрения водяного знака, чтобы выдержать возможные атаки, которым может подвергнуться передаваемое изображение. Методы преобразования доменов имеют преимущество уникальных свойств альтернативных доменов для решения проблем пространственных ограничений домена и имеют дополнительные функции.
Изображение хоста подвергается 5-уровневому водяному знаку DWT. Внедрение водяного знака в поддиапазоны частот среднего уровня LLx обеспечивает высокую степень незаметности и надежности. Следовательно, наборы коэффициентов LLx на пятом уровне выбираются для повышения надежности водяного знака против распространенных атак водяных знаков, особенно атак с добавлением шума и размытия, при незначительном или нулевом дополнительном влиянии на качество изображения. Затем выполняется блочное базовое DCT для этих выбранных наборов коэффициентов DWT и внедряет псевдослучайные последовательности в средние частоты. Процедура внедрения водяного знака поясняется ниже:1. Прочитайте изображение обложки I размером N×N.
2. Первоначально получают четыре неперекрывающихся набора коэффициентов множественного разрешения LL1, HL1, LH1 и HH1.
3. Разложение выполняется до 5 уровней, и частотные подкомпоненты {HH1, HL1, LH1,{{HH2, HL2, LH2, {HH3, HL3, LH3, {HH4, HL4, LH4, {HH5, HL5, LH5, LL5}}}}}} получаются путем вычисления DWT пятого уровня изображения I.
4. Разделите четыре последних набора коэффициентов: HH5, HL5, LH5 и LL5 на блоки 4 x 4.
5. DCT выполняется для каждого блока в выбранных наборах коэффициентов. Эти наборы коэффициентов выбираются для того, чтобы в равной степени исследовать незаметность и надежность алгоритмов.
6. Зашифруйте изображение отпечатка пальца, чтобы получить зашифрованный водяной знак WS (i, j).
7. Переформулируйте зашифрованное изображение водяного знака в вектор из нулей и единиц.
8. Из ключа, полученного из вены ладони, генерируются две некоррелированные псевдослучайные последовательности. Количество элементов в двух псевдослучайных последовательностях должно быть равно количеству элементов средней полосы DCT-преобразованных наборов коэффициентов DWT.
9. Внедрите две псевдослучайные последовательности с коэффициентом усиления α в преобразованные DCT блоки 4x4 выбранных наборов коэффициентов DWT основного изображения. Вместо внедрения во все коэффициенты блока DCT, оно применяется только к коэффициентам DCT средней полосы. Если X обозначается как матрица коэффициентов средней полосы преобразованного блока DCT, то внедрение выполняется с водяным знаком бита 0, а X' обновляется как X+∝*PN 0 ,watermarkbit=0 и выполняется с водяным знаком бита 1, а X' обновляется как X+∝*PN 1 . Обратное DCT (IDCT) выполняется для каждого блока после того, как его коэффициенты средней полосы были изменены для внедрения битов водяного знака.
10. Чтобы создать основное изображение с водяными знаками, выполните обратное DWT (IDWT) для изображения, преобразованного с помощью DWT, включая измененные наборы коэффициентов.
DWT сигнала вычисляется путем пропускания его через ряд фильтров. Сначала образцы пропускаются через фильтр нижних частот с импульсной характеристикой, что приводит к свертке двух:
Сигнал также одновременно разлагается с помощью фильтра верхних частот . Выходы дают коэффициенты детализации (из фильтра верхних частот) и коэффициенты аппроксимации (из фильтра нижних частот). Важно, чтобы два фильтра были связаны друг с другом, и они известны как квадратурный зеркальный фильтр .
Однако, поскольку половина частот сигнала теперь удалена, половина выборок может быть отброшена в соответствии с правилом Найквиста. Выходной сигнал фильтра нижних частот на диаграмме выше затем подвыборяется на 2 и далее обрабатывается путем пропускания его снова через новый фильтр нижних частот и фильтр верхних частот с половиной частоты среза предыдущего, т.е.:
Это разложение уменьшило вдвое временное разрешение, поскольку только половина каждого выхода фильтра характеризует сигнал. Однако каждый выход имеет половину частотного диапазона входа, поэтому частотное разрешение удвоилось.
Приведенное выше обобщение можно записать более кратко.
Однако вычисление полной свертки с последующей субдискретизацией приведет к пустой трате времени на вычисления.
Схема Lifting представляет собой оптимизацию, в которой эти два вычисления чередуются.
Это разложение повторяется для дальнейшего увеличения разрешения по частоте, а коэффициенты аппроксимации разлагаются с помощью фильтров верхних и нижних частот, а затем подвергаются понижению частоты. Это представлено в виде бинарного дерева с узлами, представляющими подпространство с различной локализацией по времени и частоте. Дерево известно как банк фильтров .
На каждом уровне в приведенной выше схеме сигнал разлагается на низкие и высокие частоты. Вследствие процесса разложения входной сигнал должен быть кратен , где - количество уровней.
Например, сигнал с 32 выборками, диапазоном частот от 0 до 3 и 3 уровнями разложения, формируется 4 выходных шкалы:
Реализацию вейвлетов с помощью банка фильтров можно интерпретировать как вычисление коэффициентов вейвлета дискретного набора дочерних вейвлетов для заданного материнского вейвлета . В случае дискретного вейвлет-преобразования материнский вейвлет сдвигается и масштабируется по степеням двойки
где — параметр масштаба, а — параметр сдвига, оба являются целыми числами.
Напомним, что вейвлет-коэффициент сигнала — это проекция на вейвлет, и пусть будет сигналом длины . В случае дочернего вейвлета в дискретном семействе выше,
Теперь зафиксируем в определенном масштабе, так что это функция только от . В свете приведенного выше уравнения, можно рассматривать как свертку с расширенной, отраженной и нормализованной версией материнского вейвлета, , отобранной в точках . Но это именно то, что дают коэффициенты детализации на уровне дискретного вейвлет-преобразования. Следовательно, для соответствующего выбора и коэффициенты детализации банка фильтров точно соответствуют коэффициенту вейвлета дискретного набора дочерних вейвлетов для данного материнского вейвлета .
В качестве примера рассмотрим дискретный вейвлет Хаара , материнский вейвлет которого — . Тогда расширенная, отраженная и нормализованная версия этого вейвлета — , которая, по сути, является фильтром разложения верхних частот для дискретного вейвлет-преобразования Хаара.
Реализация дискретного вейвлет-преобразования с помощью банка фильтров в некоторых случаях занимает всего O( N ) по сравнению с O( N log N ) для быстрого преобразования Фурье .
Обратите внимание, что если и оба имеют постоянную длину (т.е. их длина не зависит от N), то и каждый из них занимает O( N ) времени. Вейвлет-фильтр выполняет каждую из этих двух сверток O( N ) , затем разделяет сигнал на две ветви размером N/2. Но он рекурсивно разделяет только верхнюю ветвь, свёрнутую с (в отличие от БПФ, которое рекурсивно разделяет как верхнюю, так и нижнюю ветви). Это приводит к следующему рекуррентному соотношению
что приводит к времени O( N ) для всей операции, как можно показать с помощью разложения приведенного выше соотношения в геометрическую прогрессию .
Например, дискретное вейвлет-преобразование Хаара является линейным, поскольку в этом случае и имеют постоянную длину 2.
Локальность вейвлетов в сочетании со сложностью O( N ) гарантирует, что преобразование может быть вычислено онлайн (на потоковой основе). Это свойство резко контрастирует с FFT, которое требует доступа ко всему сигналу сразу. Это также применимо к многомасштабному преобразованию и многомерным преобразованиям (например, 2-D DWT). [25]
В своей простейшей форме DWT вычислить чрезвычайно легко.
Вейвлет Хаара на Java :
public static int [] discretHaarWaveletTransform ( int [] input ) { // Эта функция предполагает, что input.length=2^n, n>1 int [] output = new int [ input . length ] ; for ( int length = input . length / 2 ; ; length = length / 2 ) { // length - текущая длина рабочей области выходного массива. // length начинается с половины размера массива и с каждой итерацией уменьшается вдвое, пока не станет равным 1. for ( int i = 0 ; i < length ; ++ i ) { int sum = input [ i * 2 ] + input [ i * 2 + 1 ] ; int difference = input [ i * 2 ] - input [ i * 2 + 1 ] ; output [ i ] = sum ; output [ length + i ] = difference ; } if ( length == 1 ) { return output ; } // Поменять местами массивы для выполнения следующей итерации System.arraycopy ( output , 0 , input , 0 , length ) ; } }
Полный код Java для 1-D и 2-D DWT с использованием вейвлетов Хаара , Добеши , Койфлета и Лежандра доступен в проекте с открытым исходным кодом: JWave. Кроме того, быстрая реализация подъема дискретного биортогонального вейвлет-преобразования CDF 9/7 на языке C , используемого в стандарте сжатия изображений JPEG 2000 , может быть найдена здесь (архивировано 5 марта 2012 г.).
На этом рисунке показан пример применения приведенного выше кода для вычисления коэффициентов вейвлета Хаара на звуковой волне. Этот пример подчеркивает два ключевых свойства вейвлет-преобразования:
[1]