БЫСТРЫЙ АЛГОРИТМ ВЕЙВЛЕТ-ПРЕОБРАЗОВАНИЯ ДАННЫХ НАБЛЮДЕНИЙ Симонов К.В., Перетокин С.А. Постановка задачи. В работе предлагается комплекс программ для исследования природных систем, свойства которой меняются в пространстве и во времени, а также имеется последовательность результатов наблюдения этих свойств в определенных точках пространства или моментах времени. Такую последовательность будем называть пространственным рядом, или, соответственно, временным рядом. При обработке временного ряда возникают задачи определения состояния системы на заданном горизонте и прогноза ее поведения в пространстве и во времени. Известно, что дискретное Фурье−преобразование позволяет свернуть большое число значений пространственного (временного) ряда в несколько коэффициентов, но при этом пропадает пространственная (временная) составляющая − из зависимости амплитуды изучаемого показателя от, например, пространственных координат, получаем зависимость этой амплитуды от частоты (периодичность значений показателя). Предлагается использовать вейвлет−преобразование (локальный спектральный анализ), которое позволяет получить зависимость амплитуда от частоты и пространственных (временных) координат. Согласно принципу неопределенности, чем лучше функция сконцентрирована по пространственным координатам, тем больше она «размазана» в частотной области. При перемасштабировании изучаемой функции произведение пространственного и частотного диапазонов остается постоянным и представляет собой площадь ячейки в частотно-пространственной (фазовой) плоскости. Преимущество вейвлет-преобразования состоит в том, что оно покрывает фазовую плоскость ячейками одинаковой площади, но разной формы. Это позволяет локализовать низкочастотные детали функции в частотной области (преобладающие гармоники), а высокочастотные − в пространственной (резкие скачки, пики и т.п.). Более того, вейвлет−анализ позволяет исследовать поведение фрактальных функций − то есть не имеющих производных ни в одной своей точке. Отметим, что вейвлет−преобразование обладает сильной избыточностью, поэтому для представления пространственного (временного) ряда достаточно знать значения его вейвлетпреобразования на некоторой довольно редкой решетке в фазовой плоскости (например, только в центре каждой ячейки). Следовательно, вся информация о пространственном (временном) ряде может содержаться в этом небольшом наборе значений. Этот набор значений, полученный после дискретного вейвлет−преобразования, и предлагается использовать в качестве параметров, передаваемых для анализа неиросетевым вычислительным технологиям и извлечения знаний из данных. В результате вейвлет-преобразования получается несколько (по числу шагов) наборов значений − зависимость амплитуды заданной частоты от пространственной координаты. Причем конкретные частоты зависят от частоты выборки исходного ряда. Действительно, после каждого шага вейвлет−преобразования получаем набор деталей заданной частоты и функцию, очищенную от деталей заданной частоты. После этого частота уменьшается вдвое и процесс продолжается. То есть на первом шаге получаем высокочастотные составляющие исходного ряда, а на каждом последующем - составляющие более низкой частоты. Очевидно, что для функций большой длины не имеет смысл детально исследовать поведение высокочастотной составляющей, также как и исследовать низкочастотные компоненты на функциях относительно малой длины. Поэтому предлагается при обработке пространственной функции брать низкочастотные составляющие из истории большой длины и высокочастотные - из истории малой длины. Таким образом, для каждого отсчета пространственного (временного) ряда можем получить набор параметров, характеризующих предшествующие ему значения - его предысторию. Дальняя предыстория при этом будет характеризоваться параметрами, отвечающими за глобальное поведение (низкие частоты), а непосредственно предшествующие значения дадут параметры, характеризующие локальное поведение системы для текущей координаты. Отметим, что вейвлет-анализ эффективен для изучения процессов с перемежаемостью, например, наложение или пересечение различных структур. Он позволяет выявить пространственно распределенные свойства изучаемого объекта, определить наличие перемежаемости и распределение областей диссипации, получить локальную высокочастотную и глобальную крупномасштабную информацию об объекте и многое другое достаточно точно и без избыточности. Известно, что термин вейвлет–анализ по смыслу аналогичен термину Фурье-анализ. В каждом случае речь идет о представлении исследуемого процесса в виде линейной комбинации различных функций, именуемых базисом соответствующего преобразования. Для вейвлет-анализа данных характерно понятие масштаба, даже графическое представление в виде диаграммы специального вида именуется скейлограмма. Под масштабом следует понимать колебательные процессы различной периодичности. Полагаем, что низкочастотные колебания имеют более крупный масштаб, а высокочастотные – более мелкий. Вейвлетанализ данных называют «микроскопом», поскольку он позволяет исследовать каждый масштаб с необходимой и достаточной для него разрешающей способностью. Быстрое вейвлет-преобразование сейсмических сигналов. Представлен алгоритм «быстрого» получения вейвлет диаграммы геофизического сигнала и примеры ее использования. Программная реализация данного алгоритма является элементом комплекса программ для обработки данных геомониторинга природных процессов. Запишем интегральное вейвлет-преобразование в виде: ~ ~ W a, b = Wϕ f (a, b) = a − 0 .5 ∞ x−b ∫− ∞ f ( x )ϕ a dx = a − 0 .5 ∞ ∫ f ( x )ϕ a, b ( x )dx . (1) −∞ Таким образом, если хотим получить вейвлет–диаграмму функции f(x) на интервале [x0, x1], то параметр сдвига b изменяется именно в этом диапазоне. Границы области значений коэффициента масштабирования (а) выбираются в соответствии с требованиями каждой конкретной задачи. Вычисление на каждом шаге значений функций f(x), ϕ(x) и интегрирование по всей числовой оси делает эту процедуру крайне нерациональной для программно-алгоритмического использования в задачах с реальными данными. Кроме того, в каждой конкретной ситуации требуется своя точность, которая определятся качеством начальных данных или требованиями к качеству и скорости расчетов. Дискретная цифровая запись какого-либо процесса характеризуется частотой дискретизации, точностью и величиной разрядной сетки сканирующего устройства, и нет смысла решать задачу существенно точнее, чем это диктуется неопределенностью начальных данных. Поэтому рационально использовать приближенные методы вычисления различной степени точности, ориентированные на быстрые вычисления. Предлагается следующий алгоритм вейвлет-преобразования. j = 0 , 1 , 2 , ..., N ; i = 1 , 2 , ..., M ; ( x1 − x 0 ) ∆x = = const ; N b j = j ⋅ ∆ x ∈ [ 0 , x 1 − x 0 ]; (2) a i ∈ { a 1 , a 2 , ..., a M }, где N – число дискретных отсчетов на промежутке, M – величина выборки масштабов. Введем функцию L(ai), характеризующую окно сходимости базисного вейвлета: L ( a i ) ∈ {1 , 2 , ..., ∞ }; ± j ⋅∆x ai ϕ < δ , ∀ j > L ( a i ) , (3) где δ – порог сходимости, положительная постоянная величина «близкая» по значению к ± j ⋅ ∆x ≡ 0 . нулю. Для j > L(ai) будем считать ϕ a i Затем введем понятие матрицы базисного вейвлета и матрицы Fl, i: l = 0 , 1 , ..., 2 L ( a M ); ϕ i, l Fl, j ( l − L ( a M )) ⋅ ∆ x ; = ϕ ai = f ( x 0 + ( j − l + L ( a M )) ⋅ ∆ x ). (4) Теперь вейвлет-преобразование можно переписать в виде интегральной суммы: W ai , b j L ( a M ) + L ( ai ) ∆x = Wϕ f (i , j ) = ⋅ ∑ (Fn −1, j ⋅ ϕ i , n −1 + Fn , j ⋅ ϕ i , n ). 2 a i n = L ( a M ) − L ( ai ) +1 (5) Так как компоненты обеих матриц и функции L(ai) постоянные величины, то процедура вейвлет-преобразования сводится к перемножению и сложению некоторого набора констант. При этом матрицы организованы таким образом, чтобы количество операций на вычисление коэффициентов их элементов было минимально. Это существенно уменьшает затраты машинного времени необходимого для вычислений. Если интеграл приближать не методом трапеций, а простой интегральной суммой: W ai , b j = W ϕ f (i, j ) = L ( aM )+ L ( ai ) ∆x ⋅ ∑ Fn , j ⋅ ϕ i , n , a i n = L (aM )− L (ai ) (5) то скорость вычислений увеличивается в два раза. Но и погрешность вычислений при этом также существенно увеличивается. Введем величину, которая характеризует собственную ошибку метода: ∆ϕ L (ai ) = ∆x 2 L ( aM ) + L ( ai ) ∑ (ϕ i , n −1 n = L ( a M ) − L ( a i ) +1 + ϕ i , n ). (6) По определению материнского вейвлета, каждое значение этой функции должно быть равно нулю. Этого можно добиться распределив полученные неточности по отрицательным значениям φi,n. Так как L(ai) изначально выбиралась так чтобы минимизировать ошибку, то изменения не будут превосходить δ. Теперь абсолютная погрешность будет состоять из безусловной погрешности начальных данных и ошибки метода приближения интегралов. Абсолютная погрешность: ~ ∆ W ai , b j = W ai , b j − W ai , b j . (7) Относительная погрешность: ∆ W ai , b j δW a , b = i j . (8) W ai , b j Границы абсолютной и относительной погрешностей соответственно: ∆ W = max W a , b − W~ a , b ; i, j δW i j ∆W ai , b j = max i, j W ai , b j i . j (9) Очевидно, что чем больше количество дискретных отсчетов N, тем меньше погрешность приближения интеграла. Более точно для каждого конкретного случая, эту зависимость можно определить следующим образом. При получении вейвлет-диаграммы нас интересуют составляющие f(x) лежащие в определенном диапазоне частот, то есть колебания определенного набора периодов Ti. Очевидно, что ошибка вычисления тем меньше, чем больше дискретных отсчетов попадает в период, но при этом количество операций пропорционально возрастает. Обозначив через T0 минимальный период из этого диапазона, получим: δ W Ti ≤ δ ∆x W T 0 . ∆x (10) Таким образом, выделим следующие этапы получения вейвлет-спектра исследуемого процесса: 1. Получение начальных данных: - задание функции f(x) или набора ее значений с постоянной частотой дискретизации f(xi); - преобразование исходных данных в формат, пригодный для обработки. 2. Постановка задачи: - выбор материнского вейвлета; - задание границ (параметров) вейвлет-преобразования – интервал масштабов и границы обрабатываемого отрезка функции; - допустимая погрешность вычислений (если функция определена формулой). 3. Проверка корректности условий задачи: - проверка начальных данных; - проверка параметров преобразования; - расчет абсолютной погрешности (если данные задаются набором значений). 4. Предварительные вычисления: - построение матрицы базисных вейвлетов – φi,j; - переорганизация начальных данных – Fi,j. 5. Вейвлет-преобразование. 6. Визуализация результата расчетов. 7. Сохранение результата расчетов. Следующим этапом является обработка и интерпретация вейвлет-спектра в зависимости от каждой конкретной задачи. Описание комплекса программ и методики вейвлет-анализа данных. На основе разработанных алгоритмов создан комплекс программ для проведения вычислительных экспериментов с реальными сигналами. Программы написаны на языке Borland C++ в среде объектно-ориентированного программирования Builder 5.0. При работе с программой определяются следующие величины. Входные данные: • текстовый файл *.txt с набором отсчетов сигнала; • интервал сигнала и количество каналов (до 256), которые следует считать из файла; • номер канала, который следует отобразить; • начало и конец обрабатываемого интервала сигнала; • начало и конец интервала масштабов материнского вейвлета, либо отдельный набор масштабов; • тип материнского вейвлета. Выходные данные: • Графики исходного сигнала (при желании рисунок можно сохранить в графическом файле); • Двумерный (а в перспективе и 3D) график вейвлет спектра выбранного канала сигнала. • текстовый файл !WWW!.txt, содержащий специальным образом организованные значения спектров по всем выбранным каналам. Кнопка «Перерисовать» – после нажатия активизируется окно отображения и визуализируется график входного сигнала с учетом выбранных параметров. Кроме того, отображается область сигнала, подлежащая расчету и необходимые дополнительные интервалы для исключения краевых эффектов. При нажатии кнопки «Старт» Запускается процедура расчета вейвлет спектров. При обработке сейсмического сигнала состоявшего из 1000 отсчетов в пределах от 1 до 100 масштабах материнского вейвлета на персональном компьютере с процессором Pentium(R)_4 CPU_2.53ГГц и 640 МБ ОЗУ расчетное время в среднем составило 3 секунды ±0.2. Рис. 1. Программа расчета вейвлет спектра одномерного сигнала. Алгоритмические подходы для вейвлет-фильтрации пространственных данных реализованы в среде Mathcad 2001 Professional. Входные данные. • Массив данных задающий поверхность; • Функция базисного вейвлета; • Граница расчетного диапазона; • Интервал масштабов материнского вейвлета. Выходные данные. • Специальным образом организованный текстовый файл, содержащий вейвлет спектры; • Видеофильм (*.avi) в формате Mpeg-4 визуализирующий результаты фильтрации в зависимости от текущих параметров базисного вейвлета. Программа была апробирована на данных цифровых сейсмических станций и на ряде сигналов иной природы, в том числе обрабатывались и данные георадара. Таким образом. разработана вычислительная технология обработки данных временных рядов с помощью вейвлет-преобразования для их последующего анализа и извлечения знаний из исследуемых данных. Описанно алгоритмическое и программное обеспечение, которое эффетивно использовано при обработке временных данных геомониторинга. Разработанные быстрые алгоритмы позволяют выявить иерархическую внутренную структуру неоднородного объекта, изучить его локальные свойства и проанализировать одновременно физическое (время) и частотное пространство. Отметим, что следующим шагом для увеличения скорости расчета вейвлет-диаграмм является распараллеливание разработинного алгоритма. Основная идея здесь заключается в том, что одна операция выполняется сразу над всеми элементами массива данных. При таких условиях задача расчета вейвлет-диаграмм сводится к разбиению обрабатываемого сигнала на равные отрезки между всеми доступными процессорами. При этом скорость вычислений будет увеличиваться пропорционально количеству процессоров.