Анализ сигнала АКШ с помощью вейвлетных преобразований сигнала (wavelet transformations of signals)

автор: Полищук Е.А.

версия для MS Word (486Кб)

Wavelet против Фурье

Сначала позволим себе небольшую цитату для того, чтобы обозначить термины:
«Вейвлет–преобразование сигналов является обобщением спектрального анализа, типичный представитель которого — классическое преобразование Фурье. Термин "вейвлет" (wavelet) в переводе с английского означает "маленькая (короткая) волна". Вейвлеты — это обобщенное название семейств математических функций определенной формы, которые локальны во времени и по частоте, и в которых все функции получаются из одной базовой (порождающей) посредством ее сдвигов и растяжений по оси времени. Вейвлет–преобразования рассматривают анализируемые временные функции в терминах колебаний, локализованных по времени и частоте. Как правило, вейвлет–преобразования (WT) подразделяют на дискретное (DWT) и непрерывное (CWT).
DWT используется для преобразований и кодирования сигналов, CWT — для анализа сигналов. Вейвлет–преобразования в настоящее время принимаются на вооружение для огромного числа разнообразных применений, нередко заменяя обычное преобразование Фурье. Это наблюдается во многих областях, включая молекулярную динамику, квантовую механику, астрофизику, геофизику, оптику, компьютерную графику и обработку изображений, анализ ДНК, исследования белков, исследования климата, общую обработку сигналов и распознавание речи».
Теперь попробуем проиллюстрировать вышесказанное простыми примерами с рисунками и, по возможности, избежать громоздких математических формул, которыми изобилуют статьи, посвященные этой теме. Сразу договоримся, что для всех примеров в качестве анализируемого сигнала мы будем использовать обычную синусоиду (ну максимум сумму двух синусоид). Напомним, что синусоида характеризуется двумя параметрами — частотой и амплитудой. Если отталкиваться от графика синусоиды, то амплитуда — это размах волн по вертикали. Чем больше размах, тем больше амплитуда. Частота же это количество волн на единицу шкалы горизонтальной оси графика. Если единицей шкалы графика является одна секунда, и на этом участке шкалы поместилось десять полных волн, то можно говорить, что частота изображенной синусоиды равна десяти колебаниям в секунду или десяти Герцам (10Hz).

На этом рисунке изображен сигнал в виде синусоиды частотой 10Hz с амплитудой от -1 до +1 и продолжительностью 2 секунды. Отметим, что у сигнала есть еще такая характеристика как энергия. Графически энергию можно интерпретировать как площадь желтой заливки.
Вернемся к преобразованию Фурье. Как известно с помощью этого преобразования мы можем оценить частотный и энергетический состав сигнала. В графическом виде результат преобразования Фурье выглядит так:

Ось Х на этом графике говорит о том, что нами был исследован диапазон частот от 1Hz до 15Hz и выделен сигнал на частоте 10Hz, о чем свидетельствует желтый столбик. Высота этого столбика прямо пропорциональна энергии сигнала. Абсолютное значение энергии нас не интересует. Важно лишь помнить о том, что столбик будет тем выше, чем больше площадь закрашенной желтой области на предыдущем рисунке. Отметим, что обычно график такого вида называется спектром сигнала.
Теперь предположим, что в исходном сигнале присутствуют две частоты. Первую секунду заполняет синусоида с частотой 10Hz и единичной амплитудой, а вторую секунду – синусоида с частотой 5Hz и амплитудой вдвое большей, чем у первого сигнала. На графике это будет выглядеть так:

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

Обратите внимание на то, что общая энергия сигнала разделилась между частотами. Причем энергия на частоте 5Hz вдвое больше энергии на частоте 10Hz
Ну что ж, пока все работает нормально. Пользуясь преобразованием Фурье, мы умеем распознавать частоты, из которых состоит исходный сигнал и оценивать степень влияния на него каждой частоты (чем выше энергия сигнала частоте, тем в большей степени эта частота представлена в исходном сигнале).

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

Двигаемся дальше. Посмотрим, как поведет себя преобразование Фурье, если мы попробуем проанализировать сигнал, состоящий из двух синусоид частотой 5Hz и 10Hz с одинаковой амплитудой. От предыдущего сигнала будет отличаться тем, что и первая и вторая синусоида будут присутствовать в сигнале одновременно на протяжении от нуля до двух секунд. Для того, чтобы получить такой сигнал, нужно просто сложить обе синусоиды. На графике это будет выглядеть так:

И вот здесь нас ждет разочарование. Спектр сигнала будет выглядеть так:

Почти никаких отличий от спектра из прошлого примера! Изменились только значения энергий, но это и так понятно, ведь в этом примере, в отличие от прошлого, при моделировании исходного сигнала суммировались синусоиды с одинаковыми амплитудами. В остальном же, все повторяется, хотя исходные сигналы имеют принципиальные различия. Отсюда основной вывод — спектр, полученный с помощью классического преобразования Фурье, позволяет проанализировать частотный и энергетический состав сигнала, но не дает совершенно никакого представления о временных параметрах частот составляющих сигнал. Другими словами, используя классическое преобразование Фурье, мы никогда не сможем узнать, в какой момент времени в сигнале появилась дополнительная частота и когда она затухла.

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

Не будем сейчас углубляться в теорию Wavelet–преобразований, а просто посмотрим — как выглядел бы спектр этого же сигнала, построенный с помощью вейвлетов:

Существенное и самое главное отличие очевидно — добавилась еще одна ось и это ось времени. Опираясь на этот график, мы можем сделать следующие выводы об исходном сигнале:
• исходный сигнал представлен двумя частотами 5Hz и 10Hz
• обе частоты имеют одинаковую энергию (около 60 у.е.)
• обе частоты присутствуют в исходном сигнале на одинаковом временном интервале (от 0 секунд до 2 секунд)
Все это в полной мере соответствует истине. Ну и конечно было бы интересно проанализировать более сложный сигнал, в котором составляющие его синусоиды отличались бы не только по частоте, но и по времени вхождения и амплитуде. На эту роль вполне подойдет уже использованный нами ранее сигнал:

И вот так выглядит полученный спектр:

Как и следовало ожидать, мы получили информацию о частотах, которыми составлен сигнал, об энергиях этих частот, и, что самое главное, о разделении энергий на каждой частоте по времени. Энергия частоты 10Hz определяется на интервале от 0 секунд до 1 секунды, а энергия частоты 5 Hz присутствует на интервале от 1 секунды до 2-х секунд. Именно такого результата мы и добивались.

Примечание: опять же стоит обратить внимание на то, что на рисунке изображен «идеальный» спектр. В жизни далеко не все так «прямоугольно», но, как вы увидите дальше, очень похоже…

Вот и вся теория «на пальцах». Теперь к практике!

Программа анализа волнового сигнала
Программа анализа волнового сигнала (далее «Wavelet анализатор») в первом варианте была написана для практической проверки тех положений теории вейвлетных преобразований, которые были изложены выше, а также для оценки возможности ее (теории) практического применения с целью обработки сигналов широкополосного акустического каротажа (АКШ). Поскольку данные АКШ предполагается получать из документа ОПИУМ, программа была реализована в виде управляющего модуля ОПИУМ. Именно этим обусловлены некоторые особенности ее интерфейса.

Примечание: с точки зрения реализации программа представляет собой оконное приложение написанное на C# (платформа .NET v2.0). Для установки приложения запустите SETUP.EXE из каталога установки и следуйте инструкциям. Если на вашем компьютере не установлен Net Framework, то SETUP.EXE установит его. Если же Net Framework установлен, то SETUP.EXE просто скопирует файлы приложения в указанный каталог. SETUP.EXE ничего не пишет в системный реестр и не создает ярлыков ни на рабочем столе ни в группе «Программы» кнопки «Пуск». Для запуска программы запустите WaveletTransform1Dtest.exe из каталога в который установлено приложение. Деинсталлировать программу можно из Control Panel «Установка/удаление программ». При этом удаляются все созданные при установке файлы и каталоги (кроме Net Framework, поскольку это часть операционной системы).

Для начала подробно рассмотрим все управляющие элементы (кнопки, списки, поля ввода и т.д.) которыми «напичкано» главное окно программы.

Группа «Данные»

Перед запуском «Wavelet анализатора» необходимо с помощью ОПИУМ открыть документ (планшет) в котором сохранены один или несколько каналов с данными АКШ. Если каналов несколько, то из списка «Канал» необходимо выбрать тот, с которым вы собираетесь работать. Под термином «трасса» мы понимаем акустический сигнал, записанный на одной глубине. В поле «трасса» задается номер (индекс) трассы. Трассы нумеруются от кровли к подошве. Кровле соответствует номер (индекс) 1.
В поле «дискретность» задается интервал оцифровки (шаг дискретизации) сигнала в микросекундах. Неверное значение параметра приведет к неправильному вычислению частот и, как следствие, к огромной путанице.
Примечание для математиков: обычно при обработке акустических сигналов используется обратная величина — «частота оцифровки (sample rate)». Это относится и к алгоритмам вейвлетных преобразований. Однако в геофизике принято использовать именно «шаг дискретизации». Программа автоматически выполняет все необходимые пересчеты.
В поле «глубина» отображается глубина загруженной трассы.
Поля ввода в группе «Окно» позволяет выводить не всю трассу, а ее фрагмент. Поля «от» и «до» задаются в индексах (не в микросекундах!).
Примечание: параметры окна не влияют на вычисления. Независимо от того, какое окно отображения выбрано, спектр, все равно, вычисляется по всему сигналу.
Кнопка «Загрузить» загружает выбранную трассу и отображает сигнал в нижнем окне в соответствии с выбранными параметрами.

Примечание: к тем же действиям приводит нажатие «Enter»

Группа «Спектр»

Поля «Hz от» и «Hz до» позволяют задать исследуемый диапазон частот в герцах.

Примечание: в примерах из предыдущей главы мы исследовали диапазон от 1Hz до 15Hz. По умолчанию в программе установлен диапазон от 2KHz до 15KHz. Именно в этом диапазоне лежит сигнал, который регистрирует аппаратура АКШ.

Поле «шаг» позволяет задать шаг (Hz), с которым будут перебираться частоты для построения спектров.

Примечание: удобно, когда в диапазон помещается целое число шагов, хотя это и необязательно. Значение по умолчанию (500Hz) выбрано потому, что генератор аппаратуры АКШ работает на частоте 12.5KHz. Именно на этой частоте проявляется продольная волна. Поперечная же волна проявляется на частоте 4KHz. Таким образом, при шаге 500Hz, спектры строятся и для той и для другой частоты. Уменьшение шага увеличивает точность вычислений, но существенно замедляет обработку.

В группе «Wavelet» перечислены вейвлеты, которые могут быть использованы для анализа спектров.

Примечание: по мере работы с программой мы исследуем разные вейвлеты и определим преимущества и недостатки каждого из них в контексте нашей работы. Знающие люди по поводу выбора вейвлетов говорят следующее: «Выбор конкретного вида и типа вейвлетов во многом зависит от анализируемых сигналов и задач анализа, при этом немалую роль играет интуиция и опыт исследователя» А.В.Давыдов.

Кнопка «Вычислить» запускает процедуру вычисления спектров для выбранной трассы и графического отображения результатов вычислений.

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

Давайте представим, что мы смотрим на этот рисунок сверху так, чтобы ось времени располагалась горизонтально внизу слева направо. Тогда шкала частот будет расположена вертикально снизу вверх. Шкала же амплитуд будет смотреть нам «в лоб». С такого ракурса мы сможем увидеть, какие частоты представлены в сигнале и в какое время, но не сможем увидеть энергии этих частот (высоту столбиков). Чтобы решить эту проблему, договоримся изображать спектр каждой частоты тем более светлым цветом, чем энергия больше. Именно так и выглядят спектры по частотам отображаемые в верхнем окне.

Если перемещать курсор мыши поверх окна, над окном появится строка, в которой будет указано над какой частотой, и на каком отрезке временной шкалы находится курсор и какова энергия спектра в численном выражении для этой частоты и этого времени. Если щелкнуть левой кнопкой мыши в тот момент, когда мы находимся над некоторой частотой, то в среднем окне появится график спектра (вид сбоку, со стороны временной шкалы на рисунке), для этой частоты.

Примечание: пользуйтесь кнопками увеличения и уменьшения справа от окна для изменения вертикального масштаба изображения.

Вот, собственно, и все об интерфейсе.

Ну а теперь попробуем повторить на практике теоретические положения, изложенные в предыдущей главе. Данные для экспериментов были подготовлены в планшете ОПИУМ. Выглядит он так:

Эти кривые должны напоминать то, о чем мы говорили вначале. Отличие в том, что вместо 5Hz и 10Hz мы использовали сигналы с частотами 4KHz и 12.5KHz. Так сказать «ближе к жизни».

Подробно, но быстро прокомментируем содержимое каждого поля (слева направо):
1. Шкала времени в микросекундах. Напомним 1мкс=1/1000000 секунды.
2. Сигнал 4KHz на интервале от 0 до 4000мкс.
3. Сигнал 12.5KHz на интервале от 0 до 4000мкс.
4. Сумма сигналов 4KHz и 12.5KHz на интервале от 0 до 4000мкс.
5. Сигнал 4KHz на интервале от 0 до 2000мкс и сигнал 12.5KHz на интервале от 2000 до 4000мкс.
6. Сигнал 4KHz плавно нарастающий от 2000мкс с максимумом на 3000мкс и затухающий к 4000мкс.
7. Сумма предыдущего сигнала (6) с сигналом (3)

Дальше была смоделирована запись широкополосной акустики (самое правое поле) состоящая из пяти трасс с глубинами 200, 240, 280, 320 и 360 метров. В трассы были помещены данные с полей в следующем порядке:
200м. — 2-е поле
240м. — 3-е поле
280м. — 4-е поле
320м. — 5-е поле
340м. — 7-е поле

Теперь, имея подготовленные данные можно начать экспериментировать.

Загрузим планшет в ОПИУМ и запустим «Wavelet анализатор». Первая трасса загрузится автоматически. Амплитуда исходного сигнала крайне мала (от -1 до +1), поэтому нажмите несколько раз (мне пришлось 30 раз нажать) кнопку увеличения вертикального масштаба справа от нижнего черного окна. В окне появится синусоида 4000Hz. Не изменяя никаких настроек — нажмите «Вычислить».

В верхнем окне появились пять спектров. «Повозив» над окном мышью и понаблюдав за синей информационной строкой, мы обнаружим, что максимальная амплитуда энергии наблюдается на частоте 4000 Hz (3.95). Щелкнув мышью в тот момент, когда курсор находится над 4000 Hz —увидим в среднем окне спектр для этой частоты (опять используйте кнопку увеличения вертикального масштаба).

Выберем вторую трассу и нажмем «Загрузить» и «Вычислить». Увидим следующее:

Почти все то же, но заметим, что для 12500Hz захвачено больше соседних частот, хотя максимум амплитуды спектра, как и следовало ожидать, находится именно на 12500Hz (2.24).

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

В принципе, все совпадает с теорией, за исключением того, что по частоте сигнал немного «размыт». Причем, чем выше частота, тем «размытие» сильнее.

В четвертой трассе у нас присутствует две частоты в разное время. В теории утверждалось, что вейвлет сможет разделить сигналы по времени. Проверка на практике дает следующее:

Ну, как? Ура!!! Практика подтверждает теорию.
И последний тест. Напомню — он состоит в том, что сигнал 4KHz появляется плавно и так же плавно затухает на фоне постоянного сигнала 12.5KHz.

Полюбуйтесь:

Хочу обратить ваше внимание на то, что мы уменьшили шаг спектра до 100Hz для получения более плавного перехода цветов. А также на спектр 4000Hz (среднее окно). Его амплитуда действительно начинает расти тогда, когда появляется сигнал 4000Hz и уменьшается с затуханием сигнала.

Результаты наших исследований оказались вполне удовлетворительными в том смысле, что нам удалось подтвердить на практике положения теории. Кроме того, мы проверили работоспособность примененных алгоритмов. Однако не стоит забывать о том, что до сих пор мы, в наших экспериментах, пользовались искусственными сигналами. Причем сигналами очень простыми. Теперь же, для того чтобы утвердительно ответить на вопрос о целесообразности использования технологии вейвлетных преобразований для анализа и обработки данных АКШ, нам необходимо убедиться в том, что с реальными данными, программа работает так же хорошо, как и с искусственными.

Загрузим планшет ОПИУМ с записью АКШ и запустим «Wavelet анализатор».

Сразу отметим, что для выбора трассы необязательно вводить ее номер в поле «Трасса №» в группе «Данные» «Wavelet анализатора». Достаточно щелкнуть мышью на любой трассе на планшете ОПИУМ и трасса атоматически загрузится и для нее будет вычислен спектр (то есть на кнопки «Загрузить» и «Вычислить» тоже не нужно нажимать). На рисунке изображены данные и спектр для трассы на глубине 1848.2 м. Эта трасса выбрана случайно. Можно поэкспериментировать и с другими трассами. Везде результат примерно одинаковый. В окне спектра мы видим, что программа выделяет сигналы двух частот. Внимательно исследовав амплитуды спектров на частотах, можно заметить что их (спектров) максимумы находятся на частотах 12500Hz и 4000Hz, что подтверждает теоретические предположения. Теперь осталось определить первые вступления волны на одной и на другой частоте по всему интервалу и визуально оценить полученные кривые на предмет наличия «сбойных» точек.

Примечание: что касается типа вейвлета (группа “Wavelet” главного окна программы, то пока можно сказать следующее: вейвлет MORLPOW дает хорошее разрешение как по частоте так и по времени, но находить первое вступление по спектрам, построенным с помощью этого вейвлета, проблематично, так как они имеют очень пологое нарастание); вейвлет MHAT имеет отличное разрешение по времени и дает спектры с резким нарастанием, однако не всегда позволяет хорошо разделить сигнал по частотам. Остальные вейвлеты также имеют свои преимущества и недостатки, но разобраться с ними предстоит в процессе исследовательской работы.

Пока все…

Определение первого вступления продольной и поперечной волны. Вычисление dT.

Материал в работе…