- •24.3. Вейвлет-преобразование простых сигналов.
- •1.2. Основы Вейвлет - преобразования
- •3.1. Принцип кратномасштабного анализа /2/.
- •3.2. Математичские Основы кратномасштабного анализа /2, 3, 5, 14/.
- •3.3. Быстрое вейвлет-преобразование /2, 5, 13/.
- •3.4. Фильтры дуальной декомпозиции и реконструкции сигналов /12/.
- •3.5. Ортогональные и биортогональные вейвлеты /2, 13/.
- •3.6. Двумерные вейвлеты /2, 13/.
- •7.1. Основные функции
- •7.2. Пакетные функции очистки и сжатия /3/.
- •7.3. Очистка сигналов от шума в пакете gui
- •Вейвлетная очистка сигналов от шумов.
3.6. Двумерные вейвлеты /2, 13/.
Многомерные вейвлет-преобразования являются расширением одномерных преобразований. Вейвлетными функциями такого преобразования являются тензорные произведения одномерных функций по размерности преобразования.
Двумерные вейвлеты определяются функциями двух переменных (х, у) в двумерном пространстве V(x, y) L2(R2), при этом параметры а и b могут быть индивидуальными для каждой переменной. В общей форме для двумерного непрерывного вейвлета:
a1,b1; a2,b2(x,y) = (a1·a2)-1/2 0[(x-b1)/a1, (y-b2)/a2]. (3.6.1)
При двумерном КМА двумерный ортонормальный базис пространства L2(R2) имеет четыре порождающих функции, которые строится на основе одномерного ортонормального вейвлет-базиса (t) и скейлинг-функции t Для скейлинг-функции:
(x, y) = (x) (y). (3.6.2)
Тензорное произведение для вейвлетных функций:
(x, y) = (x) (y), (x, y) = (x)(y),(x, y) = (x) (y). (3.6.3)
Если масштабирование по обеим переменным производится синхронно, то все остальные функции двумерных базисов определятся выражением:
Фm,k,n(x, y) = 2m Ф(2mx-k, 2my-n), m,k,n I, (3.6.4)
где функция Ф(х,у) – соответствующие выражения (3.6.2 – 3.6.3).
Если система (3.6.3) является ортонормированным базисом в L2(R2), то прямое вейвлет-преобразование сигнала s(x, y) соответственно выполняется по формулам:
ccm,k,n = s(x,y), m,k,n(x, y), cdm,k,n = s(x,y), m,k,n(x, y),
dcm,k,n = s(x,y), m,k,n(x, y), ddm,k,n = s(x,y), m,k,n(x, y).
При этом можно считать, что двумерный сигнал в плоскости (х, у) анализируется по горизонталям, вертикалям и диагоналям с одинаковым разрешением.
Обратное преобразование с уровня m:
s(x, y) =ccm,k,n m,k,n(x, y) +
+[cdm,k,n m,k,n(x, y)+ dcm,k,n m,k,n(x, y)+ ddm,k,n m,k,n(x, y)].
При использовании быстрого преобразования дискретного сигнала, представленного матрицей si,j, которую (как и в одномерном случае) можно считать максимальным разрешением исходного непрерывного сигнала s(x,y), преобразование начинается с фильтрации строк матрицы низкочастотным hk и высокочастотным gk фильтрами, аналогичными одномерному преобразованию, в результате которой вычисляются матрицы следующего уровня разложения НЧ и ВЧ. Полученные матрицы фильтруются этими же фильтрами по столбцам, в результате чего из НЧ формируются матрицы НЧНЧ и НЧВЧ, а из ВЧ - матрицы ВЧНЧ и ВЧВЧ. Таким образом, реализация двумерного БВП является четырехканальной, а общее количество отсчетов во всех четырех новых матрицах равно количеству отсчетов в исходной матрице разложения, что сохраняет в них полный объем информации, заключенный в исходной матрице.
В общем случае n-мерного пространства ортонормальный базис образуют 2n-1 функций, при помощи которых осуществляется МКА любой функции их L2(Rn) пространства, при этом нормировочный множитель равен 2nm/2.
.
О применении вейвлет-анализа в Matlab:Смоленцев Н.К. Основы теории вейвлетов. Вейвлеты в Matlab. М.: LVR Пресс, 2005. – 304 с
Вейвлетная очистка от шумов и сжатие сигналов
(в пакете расширения Wavelet Toolbox системы Matlab)
Типовой метод подавления шумов – удаление высокочастотных составляющих из спектра сигнала. Применительно к вейвлетным разложениям это может быть реализовано непосредственно удалением детализирующих коэффициентов высокочастотных уровней. Но вейвлеты имеют в этом отношении более широкие возможности. Шумовые компоненты, и особенно большие случайные выбросы значений сигналов, можно также рассматривать в виде множеств локальных особенностей сигналов. Задавая некоторый порог для их уровня и срезая по нему детализирующие коэффициенты, можно не только уменьшать уровень шумов, но и устанавливать пороговые ограничения на нескольких уровнях разложения с учетом конкретных характеристик шумов и сигналов для различных типов вейвлетов. Это позволяет создавать адаптивные системы очистки сигналов от шумов в зависимости от их особенностей. Эти технологии и будут рассматриваться в данной теме.
Операция сжатия сигналов с удалением малозначимых значений вейвлет-коэффициентов также выполняется на основе определенных пороговых ограничений их значений, и во многом практически тождественна операциям удаления шумов.
Утилиты, которые рассматриваются в настоящей теме, используются в пакете расширения Wavelet Toolbox системы Matlab.
При очистке сигналов от шумов и сжатии используется быстрое вейвлет-преобразование (БВП). При этом всегда следует учитывать, что если полный размер сигнала составляет М-отсчетов, а максимальный уровень разложения равен N, то для обеспечения нормальной работы БВП отношение M/2N должно быть целым числом, что обеспечивает целое число коэффициентов на последнем уровне разложения. Если это условие не выполняется, рекомендуется дополнять массив отсчетов нулевыми или любыми другими значениями.
Изучение технологий и методик очистки сигналов от шумов и сжатия сигналов удобно проводить на тестовых сигналах, которые генерируются функциями:
● X = wnoise(FUN, N) – вектор-сигнал функции FUN (с номерами от 1 до 6) на 2N сетке в интервале [0,1].
● [X, XN] = wnoise(FUN, N, SQRT) – то же, со средним квадратическим отклонением std(X) = SQRT. Вектор XN является суммой вектора Х и белого шума Гаусса (0,1).
● [X, XN] = wnoise(FUN, N, SQRT, INIT) – то же, с заданием начального числа INIT для генерации псевдослучайных чисел. INIT обеспечивает повторение одной и той же последовательности случайных чисел при моделировании и отладке программ.
Пример моделирования тестовых сигналов (рис. 7.0.1).
n=10; ind=linspace(0,1,2^n);
for i=1:6
[x, xn]=wnoise(i, n, 2);
subplot(6,2,2*i-1); plot(ind, x);
subplot(6,2,2*i); plot(ind, xn);
end
Рис. 7.0.1.
Кроме этих типовых функций можно использовать также стандартные демонстрационные сигналы с шумами из пакета toolbox\wavelet\wavedemo\nois*.mat, которые считываются командой load.