2. Алгоритм вейвлет-анализа акустических сигналов

реклама
БЕЛОРУССКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ
ФАКУЛЬТЕТ РАДИОФИЗИКИ И ЭЛЕКТРОНИКИ
Кафедра радиофизики
ИССЛЕДОВАНИЕ АЛГОРИТМОВ
ОБРАБОТКИ АКУСТИЧЕСКИХ
СИГНАЛОВ С ИСПОЛЬЗОВАНИЕМ
НЕПРЕРЫВНОГО ВЕЙВЛЕТНОГО
ПРЕОБРАЗОВАНИЯ В ПРОИЗВОЛЬНОЙ
ШКАЛЕ
Методические указания
к лабораторной работе
по статистической радиофизике
Для студентов факультета радиофизики и электроники
Специальность Н. 01. 02. 00
МИНСК
2003
2
УДК 536.3(075.83)
ББК 22.34р30-252.43
И85
А в т о р ы - с о с т а в и т е л и:
Е. И. Бовбель, кандидат физико-математических наук, доцент;
Д. В. Тишков; О. Ю. Котов; А. М. Лукашевич.
Рецензент
доктор технических наук,
профессор Б.М. Лобанов
Утверждено Ученым советом
факультета радиофизики и электроники
9 сентября 2003 г., протокол №1
Исследование алгоритмов обработки акустических сигналов
с использованием непрерывного вейвлетного преобразования в
произвольной шкале: Метод.
указания к лабораторной работе
по статистической радиофизике / Авт.-сост. Е.И. Бовбель, Д. В.
Тишков, О. Ю. Котов, А. М. Лукашевич. – Мн.: БГУ, 2003. – 70 с.
Методические указания предназначены для студентов факультета
радиофизики и электроники.
УДК 536.3(075.83)
ББК 22.34р30-252.43
© БГУ, 2003
3
Лабораторная работа №1.
Исследование алгоритмов обработки акустических сигналов с
использованием непрерывного вейвлетного преобразования в
произвольной шкале
Цель работы:
Экспериментально исследовать алгоритмы обработки
акустических сигналов с использованием непрерывного
вейвлетного преобразования в произвольной шкале
Задание по работе:
1. Проработать теоретический материал по источникам, указанным в
списке литературы, и настоящему руководству;
2. Изучить особенности настройки программы «Wavelet» и
возможности работы с ней;
3. Используя программу «Wavelet», провести сравнение Фурье-анализа
и вейвлет-анализа для следующих тестовых сигналов:

стационарный сигнал

сигнал с резко меняющейся частотой

одиночный импульс
4. Используя программу «Wavelet», провести анализ следующих задач:

Определение основного тона речи (pitch);

Распознавание мужчины и женщины;

Сегментация дикторов;

Распознавание музыки;

Анализ электрокардиограмм.
4
Содержание
Введение ................................................................................................................................................................ 4
1.Основы вейвлет-анализа. ................................................................................................................................... 6
1.1 Теория и применение вейвлет-анализа. .................................................................................................... 6
1.2. B-сплайновые вейвлеты и их приложения ............................................................................................. 17
1.3. Некоторые приложения вейвлет-анализа............................................................................................... 24
Восстановление зашумленных сигналов .................................................................................................. 24
Сжатие информации ................................................................................................................................... 26
Анализ электромагнитных явлений .......................................................................................................... 28
Исследование явлений турбулентности .................................................................................................... 29
2. Алгоритм вейвлет-анализа акустических сигналов ..................................................................................... 31
2.1 Предварительная генерация данных. ...................................................................................................... 31
2.2 Вычисление вейвлет-преобразования. .................................................................................................... 33
2.2.1 Прямой метод подсчёта вейвлет-вектора. ........................................................................................ 33
2.2.2 Быстрый октавный метод подсчёта вейвлет-вектора...................................................................... 34
3. Практическая реализация алгоритма вейвлет-анализа сигналов. ............................................................... 39
3.1 Описание интерфейса программы вейвлет-анализа .............................................................................. 39
3.1.1 Меню программы ............................................................................................................................... 40
3.1.2 Кнопки быстрого вызова функций. .................................................................................................. 42
3.1.3 Область графического отображения данных. .................................................................................. 42
3.1.4 Область текстового отображения данных ....................................................................................... 42
3.2. Настройка программы ............................................................................................................................. 43
3.3 Работа с программой Wavelet. ................................................................................................................. 45
3.3.1 Загрузка файлов .................................................................................................................................. 45
3.3.2 Работа с открытым файлом. .............................................................................................................. 47
3.3.3 Сохранение вейвлет-данных. ............................................................................................................ 49
4. Исследование работы алгоритма вейвлет-анализа....................................................................................... 52
4.1. Исследование поведения алгоритма в различных конфигурациях. .................................................... 52
4.2. Использование программы Wavelet для приложений вейвлет-анализа. ............................................. 59
4.2.1 Сравнение Фурье-анализа и вейвлет-анализа сигналов. ................................................................ 59
4.2.2. Определение основного тона речи (pitch). ...................................................................................... 64
4.2.3 Распознавание мужчины и женщины. .............................................................................................. 64
4.2.4. Сегментация дикторов. ..................................................................................................................... 65
4.2.5 Распознавание музыки. ...................................................................................................................... 66
4.2.6 Анализ биомедицинских сигналов. .................................................................................................. 68
Указания к отчету ............................................................................................................................................... 69
Контрольные вопросы ........................................................................................................................................ 69
Литература ........................................................................................................................................................... 69
3
Введение
Компактно-волновое или вейвлет-преобразование сигналов (wavelet
transform, W-преобразование), теория которого оформилась в начале 90-х
годов, является не менее общим по областям своих применений, чем
классическое
преобразование
Фурье.
Фундаментальный
принцип
ортогонального разложения по компактным волнам состоит в возможности
независимого анализа функции на разных масштабах ее изменения. Вейвлетпредставление сигналов (функций времени) является промежуточным между
полностью спектральным и полностью временным представлениями.
Вейвлеты относительно независимо были предложены в квантовой физике,
физике
электромагнитных
явлений,
математике,
электронике
и
сейсмогеологии. Междисциплинарные исследования привели к новым
приложениям данных методов, в частности, в сжатии образов для архивов и
телекоммуникаций, в исследованиях турбулентности, в физиологии
зрительной системы, в анализе радарных сигналов и предсказании
землетрясений. Во многих университетах мира начато преподавание теории
вейвлет-преобразований.
Приложениям
вейвлетов
посвящены
специализированные конференции (так, например, под эгидой одного только
общества SPIE в 1996 году прошло две конференции по вейвлетам). К
сожалению, объем русскоязычной научной литературы по тематике вейвлетпреобразований (да и нейронных сетей) относительно невелик.
Базовая идея восходит к временам 200-летней давности и принадлежит
Фурье: аппроксимировать сложную функцию взвешенной суммой простых
функций, каждая из которых, в свою очередь, получается из одной функциипрототипа. Эта функция-прототип выполняет роль строительного блока, а
искомая аппроксимация получается комбинированием одинаковых по
структуре блоков. При этом, если "хорошая" аппроксимация получается при
использовании небольшого числа блоков, то тем самым достигается
значительное уплотнение информации. В качестве таких блоков Фурье
использовал синусоиды с различными периодами.
Что прежде всего отличает вейвлет-анализ от анализа Фурье? Основным
недостатком
Фурье-преобразования
является
его
"глобальная"
чувствительность к "локальным" скачкам и пикам функции. При этом
модификация коэффициентов Фурье (например, обрезание высоких гармоник
с целью фильтрации шума) вносит одинаковые изменения в поведение
сигнала на всей области определения. Это особенность оказывается полезной
для стационарных сигналов, свойства которых в целом мало меняются со
временем.
4
При исследовании же нестационарных сигналов требуется использование
некоторых локализованных во времени компактных волн, коэффициенты
разложения по которым сохраняют информацию о дрейфе параметров
аппроксимируемой функции. Первые попытки построения таких систем
функций сводились к сегментированию сигнала на фрагменты ("окна") с
применением разложения Фурье для этих фрагментов. Соответствующее
преобразование - оконное преобразование Фурье - было предложено в 194647 годах Jean Ville и, независимо, Dennis Gabor. В 1950-70-х годах разными
авторами было опубликовано много модификаций времени-частотных
представлений сигналов.
В конце 70-х инженер-геофизик Морле (Jean Morlet) столкнулся с проблемой
анализа сигналов, которые характеризовались высокочастотной компонентой
в течение короткого промежутка времени и низкочастотными колебаниями
при рассмотрении больших временных масштабов. Оконные преобразования
позволяли проанализировать либо высокие частоты в коротком окне времени,
либо низкочастотную компоненту, но не оба колебания одновременно. В
результате был предложен подход, в котором для различных диапазонов
частот использовались временные окна различной длительности. Оконные
функции получались в результате растяжения-сжатия и смещения по времени
гаусиана. Морле назвал эти базисные функции вейвлетами (wavelets) компактными волнами. В дальнейшем благодаря работам Мейера (Yves
Meyer), Добечи (Ingrid Daubechies), Койфмана (Ronald Coifman), Маллы
(Stephane Mallat) и других теория вейвлетов приобрела свое современное
состояние.
Среди российских ученых, работавших в области теории вейвлетов,
необходимо отметить С.Б. Стечкина, И.Я. Новикова, В.И. Бердышева.
5
1.Основы вейвлет-анализа.
В данной главе даны теоретические основы вейвлет-анализа и, в частности, Bсплайновых вейвлетов, а также приведены некоторые примеры возможного
применения вейвлет-анализа.
1.1 Теория и применение вейвлет-анализа.
Вейвлет-анализ представляет собой особый тип линейного преобразования
функций из некоторого достаточно широкого класса. Базис собственных
функций, по которому проводится разложение, обладает многими
специальными свойствами. Правильное применение этих свойств
позволяет исследователю сконцентрировать внимание на тех или иных
особенностях анализируемого процесса, которые не могут быть выявлены
с помощью традиционно применяемых преобразований Фурье и Лапласа.
В частности, это относится к процессам фрактального типа, то есть
обладающих свойством самоподобия. В этой главе рассмотрены основы
теории вейвлет-преобразования и даны некоторые примеры его
применения.
На протяжении многих десятилетий основным средством анализа
реальных физических процессов, в том числе случайных, являлся
гармонический анализ. Математической основой гармонического анализа
является преобразование Фурье (ряды Фурье для конечных отрезков
времен и интегралы Фурье для процессов, не ограниченных по времени).
Гармонический Фурье-анализ позволяет наглядно выявить быстрые и
медленные изменения в исследуемом процессе и исследовать их по
отдельности. Все необходимые свойства и формулы выражаются с
помощью одной базисной функции expit  или двух действительных
функций sint  и cost  . Таким образом, преобразование Фурье разлагает
произвольный процесс на элементарные гармонические колебания с
различными частотами. Гармонические колебания имеют широчайшее
распространение в природе. Поэтому смысл преобразования Фурье
интуитивно понятен независимо от строгих математических доказательств.
Преобразование Фурье обладает рядом замечательных свойств,
упрощающих его практическое применение. Оно является ортогональным
оператором, т.е. оператор обратного преобразования совпадает с
выражением для комплексно - сопряженного оператора. Областью
определения преобразования Фурье является пространство L2
интегрируемых с квадратом функций. Это весьма широкий класс функций,
и многие реальные физические процессы, наблюдаемые в природе, можно
считать функциями времени, принадлежащими этому классу.
Собственными функциями преобразования Фурье являются хорошо
изученные полиномы Эрмита. Разработаны эффективные вычислительные
6
процедуры типа алгоритма быстрого преобразования Фурье (БПФ),
обеспечивающие нахождение Фурье-образа функций с минимальными
затратами. Эти процедуры к настоящему времени включены во все пакеты
прикладных программ и реализованы аппаратно в различных процессорах
обработки сигналов.
Вейвлет-преобразование имеет много общего с преобразованием
Фурье. В то же время имеется ряд существенных отличий. Рассмотрение
свойств вейвлет-преобразования и преобразования Фурье будем вести
параллельно, при необходимости обращаясь к аналогиям между ними.
Напомним некоторые математические определения. В пространстве
функций одного переменного, определенных на конечном промежутке
0,2  вводится норма как корень из скалярного произведения
f t    f t , f t  
2
2
 f t  f t dt

.
(1)
Функции, для которых такой интеграл сходится и имеет конечное
значение, принадлежат пространству L2(0,2). В частности, все кусочно непрерывные на промежутке (0,2) функции принадлежат этому
пространству. Любая функция f t  из этого пространства может быть
представлена в виде ряда Фурье
0
f t  
n
c
n
expint 
.
(2)
Коэффициенты сn в этом разложении выражаются в виде интегралов
n
1
cn 
2
2
 f t  exp int dt
0
.
(3)
Ряд Фурье равномерно сходится к f  t  по норме, определенной в (1):
N
lim f  t    cn expint   0
N
при N   .
(4)
Заметим, что wn t   exp int  есть ортонормированный базис
пространства L2(0,2), построенный из единственной функции wt   expit 
с помощью масштабного преобразования независимой переменной
(времени), так что wn t   w nt  .
Напомним также, что для коэффициентов ряда Фурье справедливо
равенство Парсеваля
1
2
2


f  t  dt   cn
2
2
.
(5)
Аналогично определяется функциональное пространство L2(R) на
всей числовой прямой. К нему принадлежат функции, определенные на
всей числовой оси R   , и обладающие конечной энергией (нормой)

0
7

E
 f t 
2
dt  
.
(6)
Однако, свойства функций из пространств L2(0,2) и L2(R)
существенно различны. В частности, бесконечные синусоидальные волны
не принадлежат пространству L2(R) и, следовательно, семейство синусоид
не является базисом в этом пространстве. Попытка сконструировать базис
пространства L2(R) из функций, принадлежащих этому же пространству,
привела к созданию вейвлет-преобразования.
Рассмотрим простые эвристические соображения. Функции,
принадлежащие пространству L2(R), должны стремиться к нулю на
бесконечности. Чем быстрее эти функции стремятся к нулю, тем
практически удобнее использовать их в качестве базиса преобразования
при анализе реальных сигналов. Пусть  t  - такая функция. Назовем ее
базисной функцией. Пока будем считать, что она равна нулю за пределами
некоторого конечного интервала.
Так же как в случае пространства L2(0,2), попытаемся
сконструировать базис в пространстве L2(R) на основе функции  t  с
помощью масштабных преобразований независимой переменной. Пусть
коэффициенты
преобразования
пропорциональны
степеням

двойки t   2 t  . Для того чтобы перекрыть с помощью финитных
функций всю числовую ось, устроим систему переносов (сдвигов) вдоль
оси. Пусть они пока для простоты будут целочисленными, т.е вида
j
t   2 j t  k  .
(7)
С помощью таким образом определенной системы функций мы
можем перекрыть всю действительную ось. Если базисная функция
 t   L2 R  имеет единичную норму, то и все функции
 jk t   2 j 2 2 j t  k 
(8)
будут нормированы на единицу, то есть


jk


jk
 jk dt  1
.

(9)
Если семейство функций  t  является ортонормированным базисом
пространства L2(R), то есть
jk

 t  t     t  t dt   
jk
lm
lm
jk
jl km
,
(10)
и каждая функция может быть представлена в виде ряда (разложения по
базису)

f t  

c
j. k 
jk
 jk  t 
,
(11)
8
который равномерно сходится в L2(R), то есть
M
N
lim f    c jk  jk  0
при M , N   ,
(12)
тогда базисная функция преобразования  t  называется ортогональным
jk
вейвлетом. Ортогональность системы функций  t  может быть
проверена непосредственно. Доказательства полноты и замкнутости базиса
для каждой конкретной системы должны проводиться отдельно. Как
правило, они весьма сложны и громоздки. Ссылки на них можно найти в
обзорах [2,4]. Для практического применения, однако, достаточно
приблизительного соблюдения всех этих свойств. Как правило, на
практике используются именно такие системы функций. Будем в
дальнейшем называть их вейвлетами. Дословный перевод этого слова
означает "маленькая волна" или "всплеск". Смысл такого названия станет
ясен из дальнейшего.
Простейшим примером ортогональной системы функций такого типа
является преобразование Хаара. Базисная функция этого преобразования
определяется соотношением
M N

H
 1, 0  t  1 / 2

   1, 1 / 2  t  1
 0, t  0, t  1.

(13)
Легко проверить, что две любые функции, полученные с помощью
этого базисного вейвлета путем масштабных преобразований и переносов,
имеют единичную норму и ортогональны. Оказывается также, что эта
система функций замкнута и полна в пространстве L2(R), то есть является
базисом. Доказательство полноты и замкнутости базиса преобразования
Хаара можно найти в [5].
Для функций, заданных на всей числовой оси ряд Фурье заменяется
интегралом Фурье по непрерывному спектру частот. Аналогично
определим континуальный базис вейвлетов в пространстве L2(R) на основе
системы непрерывных преобразований масштаба и переносов:
 ab t  
 t  b

a  a  , a, b R ,  L 2 R  .
1

(14)
При этом параметры переноса b и масштабного преобразования a
принимают произвольные значения из непрерывного спектра. Формула
интегрального вейвлет-преобразования на его основе записывается в виде
W f  a, b 



 t  b
ab
f  t  
 dt   f  t   t  dt

 a 
a 

.
1

(15)
С помощью этого соотношения можно формально выразить
коэффициенты дискретного вейвлет-преобразования:
9


1 k
c jk  W  f  j , j 
2 2  .
Далее для сокращения записи вместо выражения
W f 

(16)
будем
использовать обозначения W a, b , W  f или просто W  f  .
Рассмотрим теперь вопрос об обратном преобразовании,
позволяющем по известным коэффициентам преобразования восстановить
исходную функцию из пространства L2(R). В случае Фурье-преобразования
мы имеем дело с ортонормированной системой базисных функций, и
проблем с обратным преобразованием Фурье не возникает. В случае
вейвлет-преобразования ортонормированность базиса и существование
обратного преобразования требует отдельного доказательства. Их можно
найти в [5].
Обратное преобразование для непрерывного вейвлет-преобразования
(15) записывается в том же виде, что и прямое
f t  
1
C
dadb
 W  a, b t  a
ab
2
.
(17)
Входящий в эту формулу коэффициент C  представляет собой
нормировочную
константу,
аналогично
нормализующему преобразование Фурье:

  
C 

2
d

2
коэффициенту
2 ,

,
(18)
где   означает Фурье-трансформанту базисной функции вейвлетпреобразования.
C
Условие
конечности
нормализующего
коэффициента
накладывает ограничение на класс базисных функций вейвлет2
преобразования  t  L R  . В частности, для сходимости интеграла (18) в
нуле требуется по крайней мере, чтобы 0  0 , т.е.

 t dt  0
.
(19)
Для дискретного вейвлет-преобразования существование обратного
ik
преобразования определяется с помощью неравенства Рисса. Пусть  базис вейвлет-преобразования, определенный с помощью формулы (8).
Тогда, если существуют две положительные вещественные константы
0  A  B   , для которых неравенство

 
A c jk
2
2


2

 c
j  k 
jk
 jk
 
 B c jk
2
10
2
2
.
(20)
справедливо для любой ограниченной, суммируемой с квадратом
последовательности c jk  :
c 
jk
2
2




j  k 
c jk
такая базисная функция 
ik
2

,
(21)
называется R-функцией. Для любой такой
функции существует базис ik  – двойник базиса   . Для любых двух
элементов этих базисов выполняется свойство ортогональности
ik

jk
, lm    jl km
.
На основе этого базиса строится формула реконструкции:
f t  
(22)

  f ,   t 
jk
jk
.
(23)
Если  t  - ортонормированный базис и  t  – ортогональный
j, k 
jk
вейвлет, тогда базисы ik  и   совпадают и формула (23) является
точной формулой обратного преобразования. Если  t  –
не
ортогональный вейвлет, но является R-функцией, тогда базис-двойник
также имеет базисную функцию, на основе которой он строится по
выражению (23). В общем случае формула реконструкции (23) не является
вейвлет-рядом в том смысле, что базис-двойник не может быть построен
по типу (8).
В качестве средства анализа физических процессов вейвлетфункции имеют ряд привлекательных свойств. Преобразование Фурье,
являющееся одним из основных средств такого анализа, не обладает
свойством локализации во времени. Дельта-функция Дирака представляет
собой функционал, ставящий в соответствие некой функции ее значение в
данной точке. Такое преобразование абсолютно локализовано во времени,
но при этом полностью теряется информация о частоте процесса. В этой
ситуации мы сталкиваемся с проявлением закона типа квантового
соотношения неопределенности, т.е. с невозможностью одновременно
определить мгновенную частоту процесса и его значение в данный момент
времени. Попытка уточнить один из этих параметров немедленно
приводит к ухудшению наших знаний о другом параметре. Вейвлетанализ по существу представляет собой семейство функций, реализующих
различные варианты соотношения неопределенности и предоставляющих
исследователю возможность гибкого выбора между ними. Фурье-анализ и
его модификации (дискретное косинусное преобразование и пр.) такими
свойствами не обладают.
Теперь попытаемся более строго сформулировать свойства вейвлетпреобразования и ограничения, налагаемые на его базисные функции.
Поскольку в настоящее время полная теория вейвлетов еще не построена,
ik
11
рассмотрим одно из наиболее простых определений вейвлета,
опирающееся на уже введенные выше понятия.
Любая локализованная R-функция  t   L 2 R  называется Rвейвлетом (или просто вейвлетом), если для нее существует функция  
 
двойник  t   L 2 R  такая, что базисы ik  и  ik  , построенные согласно

вышеописанному правилу, являются парными взаимными базисами
L 2 R  .
функционального пространства
Каждый таким образом
определенный вейвлет, независимо от того, является ли он ортогональным
или нет, позволяет представить любую функцию f t  из пространства
L2(R) представить в виде ряда (23), коэффициенты которого определяются
интегральным преобразованием.

Вейвлет-двойник  t  – единственен и тоже является R-вейвлетом. В

свою очередь,  t  является двойником для вейвлета  t  . Если  t  –
   
    
и  ik   ik  – ортогональный

ортогональный R-вейвлет, то  t    t 
базис.
Для многих практических целей достаточно, чтобы вейвлет  t 
обладал лишь свойством полуортогональности, т.е.  jk , lm   0 при j  l .
Любой R–вейвлет называется неортогональным, если он не является
полуортогональным вейвлетом. Однако, поскольку он удовлетворяет
условию Рисса, он имеет двойника, который позволяет построить формулу
обратного преобразования (23).
Большинство ограничений, накладываемых на вейвлет, связано с
необходимостью иметь обратное преобразование. Рассмотрим основные из
этих ограничений.
1. Локализация. Вейвлет - преобразование использует базисную функцию,
локализованную в пространстве времен и частот. Функции, не
стремящиеся к нулю за пределами некоторой ограниченной окрестности,
не могут являться вейвлетами.
2. Ограниченность

 t 
2
dt  
.
(24)
Практическая оценка ограниченности и локализации может быть записана
в виде неравенств

 t  
const
1  t  и
n
12
  
const
1      .
n
0
(25)
Число n должно быть возможно большим, 0 – доминантная частота
вейвлета.
3.
Нулевое среднее. Как можно видеть из формулы (18), для
ограниченности нормировочной константы обратного преобразования
вейвлет должен удовлетворять условию равенства нулю нулевого момента
(среднего по времени)

 t dt  0
.
(26)
Часто для практических приложений оказывается необходимыми, чтобы
нулю были равны не только нулевой, но и первые m моментов вейвлета:


 t t
m
dt  0
(27)
Такой вейвлет называется вейвлетом порядка m. Вейвлеты высокого
порядка, обладающие большим количеством нулевых моментов,
позволяют освободиться от влияния регулярных (полиномиальных)
составляющих исследуемого процесса и сосредоточить внимание на
анализе мелкомасштабных флуктуаций и особенностей высокого порядка.
4. Автомодельность базиса. Самоподобие базиса вейвлет-преобразования
является его характерным признаком. Действительно, все функции
данного семейства ab имеют одинаковое количество нулей, поскольку
получены из базисного вейвлета с помощью системы преобразований
подобия. Это облегчает применение вейвлет–преобразования для анализа
фрактальных сигналов.
Рассмотрим несколько конкретных примеров различных функций,
часто встречающихся в анализе реальных сигналов. Дельта-функция и
бесконечная синусоида не удовлетворяют необходимому условию
одновременной локализации по времени и частоте: дельта-функция не
обладает этим свойством в пространстве частотного спектра, а синусоида в
пространстве времен.
Функция Габора

 t  t  2 
0

G t  
exp i t  t 0   i exp 
2
2


2

2


1


(28)
представляет собой модулированную функцию Гаусса с четырьмя
параметрами: сдвиг по времени t 0 , стандартное среднеквадратичное
отклонение , частота модуляции  и фазовый сдвиг . Разложение по
функциям Габора является разложением по модулированным фрагментам
синусоид. Длина фрагментов для всех частот постоянна, что дает
различное число осцилляций для различных гармоник. Отсюда следует,
что функция Габора не может быть базисной функцией вейвлетпреобразования. Хотя она хорошо локализована в пространствах времен и
13
частот, построенный
на ее основе базис не обладает свойством
самоподобия.
Вейвлет Хаара представляет собой пример ортогонального
дискретного вейвлета, порождающего ортонормированный базис.
Недостатком этого вейвлета является отсутствие гладкости, вследствие
чего в пространстве частот он не слишком хорошо локализован. Часто
применяется очень похожий на него FHAT-вейвлет, известный под
названием French Hat - французская шляпа (цилиндр):


 t   


1,
t 1 3
 1 2,1 3  t  1
0,
t 1
 sin  sin 3 


 
3  ,
   3  
,
где    – функция Хевисайда определяется соотношением
(29)
1,   0
0,   0 .
    
(30)
Характерным примером вейвлета с противоположными свойствами
является вейвлет Литтлвуда-Пэли[2], недостаточно быстро спадающий на
больших временах, но хорошо локализованный в пространстве частот. Все
остальные вейвлеты можно считать занимающими промежуточное
положение между этими двумя крайними предельными случаями.
Основой для конструирования многих вейвлетов является функция
Гаусса exp  t  . Кроме условия нулевого среднего, она обладает всеми
необходимыми качествами вейвлета. Можно показать, что функция Гаусса
минимизирует значение соотношения неопределенности по времени и
частоте. Производные функции Гаусса уже удовлетворяют условию
нулевого среднего и, следовательно, являются базисными функциями
вейвлет-преобразования:
2
m  t     1
m
 t2 
dm
exp
 
dt m
 2
  

 2
m    m i  exp 
m
(31)
2
(32)
Более высокие производные имеют больше нулевых моментов. На
основе функции Гаусса строится также известный DOG-вейвлет (DOG –
Difference of Gaussians, то есть разность гауссиан)
 t2 
 t2 
 t   exp    0.5exp  
 2
 8 ,
   

 2
1 
 exp 
  exp  2 2 
 2 
2 
.
14
(33)
(34)
Для работы с комплексными процессами применяются комплексные
вейвлеты. Одним из наиболее часто применяемых вейвлетов является
вейвлет Морле (Morlet):
 r2 
  r  exp ik 0 r exp  
 2
(35)
 k  k 2 
0


  k     k  exp 

2


(36)
Вейвлет Морле есть не что иное, как плоская волна, модулированная
функций Гаусса единичной ширины.
Другим примером комплексного вейвлета является вейвлет Пауля,
находящий применение в квантовой механике:
 t    m  1
im
1  it  m1
m  k     k  k  exp  k 
m
(37)
(38)
Параметр m определяет количество нулевых моментов вейвлета. Оба эти
комплексных вейвлета являются прогрессивными. Так называются

вейвлеты, спектр которых   равен нулю для отрицательных значений
пространственных частот. Они хорошо приспособлены для анализа
процессов, подчиняющихся принципу причинности. Эти вейвлеты
сохраняют направление движения времени и не создают паразитной
интерференции между прошлым и будущим.
На рис. 2.10 показаны наиболее широко применяемые вейвлеты (для
комплексных вейвлетов показаны их действительные части).
15
Рис.2.10. Примеры наиболее часто используемых вейвлетов: а) WAVE б)
MHAT в)Morlet г)Paul д) LMB e)Daubechies. Cлева показаны базисные
функции вейвлетов, справа – их образы Фурье.
16
1.2. B-сплайновые вейвлеты и их приложения
Используемые обозначения
Договоримся об обозначениях, которые будут использоваться ниже.
I — единичная матрица.
 — нулевая матрица.
 j ( x ) или  j — вектор базисных функций  ij ( x ) (скейлинг-функций)
пространства V j .
 j ( x ) или  j — вектор базисных функций  ij ( x) (вейвлетов) пространства
W j.
A j , B j — операторы декомпозиции. A j :V j  V j 1 , B j :V j  W j 1 .
P j , Q j — операторы синтеза. P j :V j 1  V j , Q j :W j 1  V j .
A j , B j , P j , Q j — матрицы операторов ( A j , B j , P j , Q j соответственно) в
некоторых базисах.
 x(t ) y(t )  — матрица скалярных произведений двух систем функций. Если
x(t )   x1 (t ), , x N (t ) и y(t )   y1 (t ), , y N (t ) , то матрица имеет размер N  N и
элемент с номером (i , j ) содержит значение xi (t ) y j (t ) .
В данных обозначениях, например, условие ортогональности вейвлетов
записывается так:



j
j
j
j
j
j
I
I

Многомасштабное представление кривых. Полуортогональные
вейвлеты (Semiorthoigonal Wavelets)
Вейвлет-базис называется полуортогональным, если для любого уровня
разрешения j  0 пространство вейвлетов W j ортогонально пространству V j
(и, следовательно, всем пространствам V j 1 , V j2 , ... V 0 ). Очевидно, что
подклассом полуортогональных вейвлетов является класс ортогональных
вейвлетов, для которого дополнительно требуется ортогональность базисных
функций W j . Отсутствие такого ограничение позволяет строить, например,
гладкие симметричные вейвлеты с компактным носителем (заметим, что
единственными ортогональными симметричными вейвлетами с компактным
носителем являются вейвлеты Хаара, которые не обладают даже
непрерывностью).
В матричной форме условие полуортогональности можно записать
следующим образом:

j
j

17
Если
вместо
индекса j записать
j  1 , то, имея ввиду, что
j 1
j
j
 ( x)   ( x) P и  ( x)   ( x) Q , условие полуортогональности будет
выглядеть так:
j 1
P   
j T
j
j
j
j
Q
j
.
Если  j (t ) и P j заданы, то Q j является решением однородной системы
уравнений M j Q j   , где M j   P j 
T

j
j

— известная матрица. Если
однородная система имеет нетривиальные решения, то их бесконечно много,
т.е. Q j определяется неоднозначно. Поэтому для определенности на Q j
накладывается ряд дополнительных условий. Например, мы хотим, чтобы
построенные нами вейвлеты имели компактный носитель и были
симметричны. Это значит, что столбцы матрицы Q j должны иметь
наименьшее возможное число подряд идущих ненулевых элементов, причем
сами цепочки ненулевых элементов должны быть симметричными.
Сплайновые вейвлеты
Примером полуортогональных вейвлетов являются сплайновые вейвлеты
(spline wavelets), разработанные Chui и др. [6,8]. Сплайновые вейвлеты
строятся на основе B-сплайнов [7]. Существуют различные виды сплайновых
вейвлетов. Мы рассмотрим вейвлеты, построенные на основе неравномерных
B-сплайнов, интерполирующих концевые точки (nonuniform endpointinterpolating B-splines). Далее для краткости такие сплайны условимся
называть просто B-сплайнами, а соответствующие вейвлеты — Bсплайновыми вейвлетами.
Будем строить B-сплайновые вейвлеты на единичном отрезке. Пусть m —
степень сплайна, j — уровень разрешения. Пространство V j (m) порождается
2 j  m B-сплайнами, построенными на последовательности узлов
( x0 , , x2 j 2m ) 
1
(0,  , 0, 1, 2,  , 2 j  2, 2 j  1, 2 j ,  , 2 j ) .


2 j 
m 1
m 1
Нетрудно показать, что построенные таким образом пространства V 0 (m) ,
V 1 (m) , ... вложены друг в друга и удовлетворяют всем требованиям
многомасштабного анализа. На Рис. 2.11 показаны наборы кубических ( m  3 )
B-сплайновых скейлинг-функций пространств V 1 (3) и V 2 (3) . Матрица P j
(подробности получения этой матрицы см. в [8]) является разреженной, имеет
2 j 1  m столбцов и 2 j  m строк, все столбцы, за исключением m первых и m
последних являются сдвинутыми копиями столбца m  1 , причем ненулевые
элементы этих столбцов являются биномиальными коэффициентами,
умноженными на 2 m . Ниже приводятся матрицы P 1 , P 2 , и P 3 для
кубического случая.
18
16

8 8



16



12 4
8 8

2





1 1

3 11 2

.


12 4

1
1



8 8
P   1 1  P2  1 
3
10
3
2


 3 1 

16
2 12 2
1 1


 P  16 

4 12





8 8
2
8 8



2 11 3



16



4 12


8 8


16

Рис. 2.11. B-сплайновые скейлинг-функции пространств V 1 (3) и V 2 (3) .
Рис.2.12. B-сплайновые вейвлеты пространств W 2 (3) и W 3 (3) .
Скейлинг-функции  j (t ) и матрицы P j заданы. Взято стандартное скалярное
произведение в L2 . Теперь можно искать матрицу Q j . Заметим, что эта
матрица должна иметь 2 j1 столбцов (размерность пространства W j (m) ) и
2 j  m строк. Как было отмечено выше, матрица Q j (и, следовательно,
19
вейвлет-базис) определяется неоднозначно. Finkelstein и Salesin построили
матрицу Q j таким образом, чтобы она была разреженной и содержала
минимальное число подряд идущих ненулевых элементов в столбцах.
Структура такой матрицы похожа на структуру матрицы P j : она разреженная
и ее столбцы кроме m первых и m последних являются сдвинутыми копиями
друг друга. Ниже приводятся матрицы Q 1 , Q 2 и Q 3 для кубического случая,
на Рис.2.12 показаны вейвлеты пространств W 2 (3) и W 3 (3) .
 6.311454

  9.189342  1543996

.


 1368

 7.334627

4.226722
0.087556
 2064  240 





3514553
.

5585477
.

0
.
473604

0
.
000155


 1793
691 
 1271268
315


.
6.059557
1903267
.
0.01919 

1053

1053

 3 
31196288 
Q   0.259914  4.367454  4.367454  0.259914 
 691
1793 
 0.01919



1903267
.
6.059557
1271268
.


  240  2064

0
.
000155

0
.
473604

5585477
.

3514553
.



1368 


4.226722
7.334627 


 1543996
.
 9.189342 


6.311454 

1
 2 
 
1
Q  7  3  Q2 
 
 2 
 1 
Замечание. Все примеры, приводимые выше и приводимые далее относятся к
случаю кубических B-сплайновых вейвлетов, как наиболее часто
применяющихся для обработки гладких кривых. При m  2 мы получим
квадратичные B-сплайновые вейвлеты, при m  1 — линейные, а при m  0 —
уже хорошо известные ортогональные вейвлеты Хаара.
Мы получили синтезирующие матрицы P j и Q j . Зная их, матрицы для анализа
определяются единственным образом:
A j 
j
j
 j   P |Q
B 


1
.
Хотя матрицы P j и Q j разреженные, матрицы A j и B j таковыми, вообще
говоря, не являются, поэтому их явное вычисление может потребовать
квадратичного (а не линейного) времени. Вместо этого анализ можно
осуществить, решая разреженную систему
P
j
 c j 1 
| Q j  j 1   c j .
d 

Квадратную матрицу  P j | Q j  перестановкой столбцов можно преобразовать к
ленточному (n-диагональному) виду, тогда полученная система будет
решаться за линейное время. Нужно только не забыть произвести обратную
перестановку элементов решения.
Вейвлет-анализ кривых
Покажем, как рассмотренные нами B-сплайновые вейвлеты могут быть
применены для работы с кривыми. Будем рассматривать кубические Bсплайновые кривые, интерполирующие концевые точки. Пусть кривая (t )
20
задана набором 2 J  3 опорных точек c J   c0J , c1J ,  , c2J 2  . Процесс
декомпозиции этой кривой с помощью B-сплайновых вейвлетов на
низкочастотную и детализирующую составляющие осуществляется подобно
всякому другому прямому вейвлет-преобразованию:
j
 c j 1   A j  j
 j 1    j  c , j  J , 1 .
d   B 
Выше уже говорилось о том, что этот процесс можно осуществить за
линейное время без явного вычисления матриц A j и B j .
Восстановление исходной кривой (обратное преобразование) выполняется
так:


 c j 1 
c j  P j Q j  j 1  , j  1, J .
d 
Перечислим некоторые задачи, которые удается решать с помощью этих
преобразований.
Сглаживание кривой. Некоторую кривую (t ) требуется приблизить (в
смысле наименьших квадратов) кривой  (t ) , заданной меньшим числом
опорных точек. Пусть кривую (t ) задает набор 2 j  3, j  0 управляющих
точек c j . Тогда для любого j : 0  j   j можно построить сглаживающую
 (t ) ,
кривую
заданную
набором
управляющих
точек
2 j  3
j
j 1
j  2
j j
c  A A  A c (см. пример на Рис. 2.13). (Очевидно, что для задачи
сглаживания вычислять вейвлет-коэффициенты d не нужно).
Наложение условий на число управляющих точек является определенным
ограничением. Переход от уровня j  1 к уровню j осуществляется
«скачкообразно». С помощью линейной интерполяции между двумя кривыми
соседних уровней можно получить любую кривую «дробного» уровня
j  ,  [0, 1] :
 j  (t )  (1  )  j (t )    j 1 (t )
 (1  )  j (t ) c j    j 1 (t ) c j 1
Редактирование кривой. Редактирование осуществляется следующим
образом: выполняется декомпозиция исходной кривой, полученные в
результате этого коэффициенты некоторым образом изменяются, после чего
производится восстановление, но уже по модифицированному набору
коэффициентов. Возможны два принципиально различных подхода: изменять
низкочастотную часть преобразования или изменять высокочастотную часть.
В первом случае можно менять форму кривой «в целом», сохраняя ее мелкие
особенности (Рис. 2.14), во втором — наоборот — сохраняя форму, менять
детали (Рис. 2.15). Очевидно, что при редактировании кривых активно
используется свойство локализации вейвлетов в пространстве, что дает
возможность производить манипуляции с отдельными частями кривой.
21
Рис. 2.13. Сглаживание кривой: 11, 7 и 5 опорных точек.
Рис. 2.14. Редактирование кривой: изменение одной опорной точки в низкочастотной
части (5 точек) и последующее восстановление (11 точек).
22
Рис. 2.15. Редактирование кривой: добавление к исходной кривой (11 точек)
дополнительных вейвлет-коэффициентов (35 точек).
23
1.3. Некоторые приложения вейвлет-анализа.
Восстановление зашумленных сигналов
Пусть имеется n = 2J+1 наблюдений yi функции f(t) на отрезке [0,1],
содержащих "белый" шум:
Для очистки сигнала от шума применяется последовательно:

прямое вейвлет-преобразование;

зануление незначимых коэффициентов преобразования с порогом,
пропорциональным амплитуде шума;

обратное вейвлет-преобразование.
Ниже на Рис.2.18 приведены результаты подавления шума в модельном
ступенчатом сигнале на основе вейвлет-преобразования, сплайн-методов и
метода Фурье. Такие ступенчатые сигналы характерны, например, для
геофизических задач акустического анализа слоистой среды.
Видно, что с использованием вейвлет-преобразования достигается более
глубокое подавление шума при сохранении структуры сигнала.
Сигнал, очищенный при помощи Wпреобразования.
Зашумленный ступенчатый сигнал.
24
Сигнал, очищенный при помощи обрезания
высоких гармоник Фурье.
Сигнал, очищенный при помощи сплайнсглаживания.
Рис. 2.18. Восстановление ступенчатого сигнала.
Идея нелинейного (порогового) удаления шума состоит в том [9], что
ортогональное вейвлет-преобразование "сжимает" сигнал до небольшого
числа относительно больших коэффициентов. С другой стороны, "белый"
шум в при любом ортогональном преобразовании сохраняет свою структуру
и амплитуду. Поэтому пороговое обрезание коэффициентов вейвлетпреобразования не влияет на структуру сигнала, сильно понижая шум.
вейвлет-преобразование близко к "идеальному" проектору, сохраняющему те
и только те коэффициенты, для которых сигнал превышает шум.
На Рис. 2.19 приведен пример вейвлет-реконструкции реального ЯМРсигнала из шума, при котором не наблюдается уширения пиков, характерного
для традиционных линейных методов.
Рис. 2.19. Очистка шума в ЯМР сигнале.
25
Аналогично может быть восстановлен двумерный сигнал - изображение. На
Рис 2.20 изображен портрет Ингрид Добечи (Ingrid Daubechies) - одной из
основателей теории вейвлет-преобразования. Фрагмент образа был
подвергнут зашумлению и восстановлен при помощи вейвлет-преобразования
с койфлет-функцией, предложенной Добечи [10].
Рис. 2.20. Исходное, зашумленное и восстановленное изображение.
Восстановление из шума, а также описываемое в следующем пункте сжатие
информации может использоваться для дальних телекоммуникаций с узкой
полосой пропускания.
Сжатие информации
Рис. 2.21 иллюстрирует качество восстановления сигнала при "сжатии" его
при помощи сохранения заданного количества коэффициентов при
ортогональном преобразовании [9]. В качестве тестового выбран
сейсмический сигнал. При сохранении 100 коэффициентов Фурье-
26
преобразования и 100 коэффициентов вейвлет-преобразования, более высокое
качество последнего проявляется даже при визуальной инспекции.
Исходный сейсмический сигнал.
Сигнал, восстановленный по 100 коэффициентам вейвлет -преобразования.
Сигнал, восстановленный по 100 коэффициентам Фурье-преобразования.
Рис. 2.21. Сжатие сейсмического сигнала.
В приведенном примере степень сжатия равна 10:1.
Приложения методов глубокой компрессии и качественного восстановления
сигналов при помощи вейвлет-преобразований охватывают не только область
телекоммуникаций, но и емких архивов видео и телеинформации.
27
На Рис.2.22 приведен пример использования глубокой компрессии
информации для хранения в архиве. Сжатие информации достигает
нескольких десятков раз, т.е. в базе данных хранится лишь 2-3 % от
исходного объема данных.
Рис. 2.22. Реконструкция (справа) отпечатка пальца (слева) после сжатия с помощью
вейвлет-преобразования со степенью 26:1. Данные получены из Лос-Аламосской
лаборатории США (URL: ftp.c3.lanl.gov/pub/WSQ/print_data)
Сжатие информации используется не только для ее хранения или передачи по
каналам связи, но и для решения задач анализа и распознавания. При этом
значительно сокращается объем вычислений распознающей системы
(например, нейронной сети), что ускоряет обработку. Это иллюстрировалось,
в частности, и в разделе, посвященном прогнозу временных рядов.
Одним из важных приложений в этой области является анализ радиационных
и нейтронных спектров при помощи вейвлет-преобразований, с целью
контроля и учета делящихся материалов, их классификации (в частности,
распознавания материалов, применяемых при разработке систем ядерных
вооружений, среди образцов, используемых в энергетике, см., например,
http://www.pnl.gov/statistics/research/testban.html).
Анализ электромагнитных явлений
Компактные волны представляются удобным и естественным инструментом
для исследований электромагнитных явлений[11], поскольку уравнения
Максвелла (как и вейвлеты) инвариантны относительно перемещений и
изменений масштаба. При этом формализм вейвлет-преобразований
позволяет сформулировать физические принципы волновых явлений и
вопросы обработки сигналов на едином языке. В книге [11] построен
универсальный вейвлет-базис для решений уравнений Максвелла в
свободном пространстве.
В работе [12] вейвлет-представление было успешно применено для
моделирования прохождения оптического импульса в нелинейной среде. При
этом численно решалось нелинейное уравнение Шредингера для слабо
меняющейся амплитуды электрического поля в волноводе:
28
Данное уравнение учитывает групповую дисперсию, фазовую самомодуляцию и поглощение волны. Решения для распространения гауссового
пакета, приведенные в [12], получены на основе метода расщепления
линейного и нелинейного операторов в правой части, с разложением решения
по вейвлет-базису Добечи.
Метод вейвлет-разложения сравнивался с традиционно используемым
разложением Фурье, при этом, при одинаковой точности результатов, схема
на основе вейвлет-разложения имеет вычислительную сложность O(N), в то
время, как Фурье-схема - O(N log N).
Исследование явлений турбулентности
Исследование метеорологических и климатических процессов в последнее
время особенно актуально. При этом возрастает как объем обрабатываемых
данных, так и сложность моделируемых процессов [2,13].
В обзоре [2] описаны применения методов компактных волн к анализу
климатических временных рядов. Исследованы долговременные (на
масштабах (10-100 лет) аномалии температур Южного и Северного
полушария.
В работе [13] методы компактных волн применены для анализа явлений
атмосферной турбулентности, которая характеризуется локализованными
событиями, происходящими на широком диапазоне масштабов. Вейвлетпреобразование является инструментом, напрямую нацеленным на описание
таких явлений. В этой работе используется двумерный аналог G2-вейвлета
(описанного во вводном разделе):
На Рис. 2.23 приведены изображения турбулентной струи (полученные в
модельных экспериментах при помощи теневой фотографии) и результаты
вейвлет-анализа для двух различных пространственных масштабов.
Компактно волновое представление экспериментальных данных дает
наглядную и количественно интерпретируемую картину явлений разных
масштабов.
29
Рис. 2.23 Теневая фотография турбулентной струи (слева) и ее вейвлет-преобразование
на двух различных пространственных масштабах.
Коэффициенты вейвлет-преобразований используются в [13] для построения
статистических моделей турбулентности. Оригинальный подход к
исследованию турбулентных течений методами вейвлет анализа предложен в
новом совместном проекте ФИАН и ВНИИТФ для Международного научнотехнического центра (http://www.istc.ru).
30
2. Алгоритм вейвлет-анализа акустических сигналов
В данной главе описаны основные этапы двух методов реализации алгоритма
вейвлет-анализа, использованного в дальнейшем в программе вейвлет-анализа
акустических сигналов.
2.1 Предварительная генерация данных.
Вейвлет-преобразование задаётся следующим выражением:
W f a,    xt  1   t a dt
(3.1)
a 

где
τ – временной сдвиг,
а – масштаб вейвлета.
Компьютер в конечном итоге работает с дискретными данными,
поэтому запишем дискретную версию вейвлет-преобразования:

WD f a,    xn 1   n a  
(3.2)
a


n  
Прямая реализация алгоритма вейвлет-преобразования требует
больших вычислительных затрат. Вместе с тем, затраты можно
существенно сократить, если предварительно сгенерировать те данные,
которые не изменяются в процессе вычислений. Надо заметить, что, в свою
очередь, это может привести к значительному увеличению требуемой
алгоритмом памяти.
В данном случае мы можем предварительно сгенерировать массив
вейвлетов различного масштаба. Для этого необходимо выполнить
несколько шагов:
1. Выбрать минимальный и максимальный масштаб вейвлетов,
необходимый для анализа сигналов и, при необходимости,
выбрать закон изменения масштаба.
2. Сгенерировать массив масштабов (scales) вейвлетов.
3. Для данных масштабов сгенерировать массивы вейвлетов.
Остановимся подробнее на каждом шаге.
Выбор минимального и максимального масштаба. При анализе
различных групп сигналов часто возникает необходимость лишь в
частичном анализе сигнала. Так, например, нас может интересовать лишь
низкочастотная область сигнала (соответствующая вейвлетам с бóльшим
масштабом) или, наоборот, лишь высокочастотная (соответствующая
вейвлетам с меньшим масштабом). В таком случае нужно выбирать
минимальный и максимальный масштабы вейвлета, соответственно,
большими или меньшими.
31
Как правило, для большинства задач анализа сигналов наилучшим
образом подходит логарифмический закон изменения масштаба, когда на
каждую октаву приходится равное число вейвлетов с различными
масштабами. Однако иногда может возникать ситуация, когда необходимо
более тщательно «рассмотреть» одни участки спектра и более грубо –
другие. В таком случае мы можем выбрать не логарифмический, а иной
закон изменения масштаба, вплоть до задания его вручную.
Пример.
При логарифмическом законе изменения масштабов вейвлетов
масштабы будут рассчитываться по следующей формуле:
 k
 MaxWvLng 
 (3.3)
scale k[1,num]  MaxWvLng  exp 
 log 
num
MinWvLng



где
scalek – текущий масштаб (с порядковым номером k);
MaxWvLng – наибольший требуемый масштаб вейвлета;
MinWvLng – наименьший требуемый масштаб вейвлета;
num – общее число масштабов.
Генерация массива масштабов. На данном шаге этапа
предварительной генерации данных формируется массив масштабов
вейвлетов в соответствии с заданным на предыдущем шаге законом
изменения масштаба.
Генерация массивов вейвлетов различных масштабов. На этом шаге
генерации данных необходимо сформировать num массивов, каждый из
которых будет содержать вейвлет заранее выбранного типа и
соответствующего масштаба. При этом необходимо определить область
вычисления вейвлета (и, фактически, длину массива) таким образом, чтобы
отсечённая часть вейвлета была близкой к нулю и пренебрежение ею не
вносило бы существенную ошибку в вычисления. Следует заметить,
данная проблема присутствует не во всех случаях, так как некоторые типы
вейвлетов (например, B-сплайновые вейвлеты) отличны от нуля лишь в
некоторой ограниченной области. С другой стороны, для многих типов
вейвлетов заранее известна так называемая эффективная область, за
пределами которой значения вейвлет-функции можно считать равными
нулю.
Графический вид массивов для различных масштабов и различных
типов вейвлетов представлен на Рис. 3.1
32
б
a
в
г
Рис. 3.2 Различные виды сгенерированных вейвлетов: а,б – Morlet, в,г
– B-сплайновые.
2.2 Вычисление вейвлет-преобразования.
Следующим (и основным) шагом алгоритма вейвлет-анализа
является непосредственно вычисление вейвлет-преобразования.
При реализации вейвлет-преобразования с использованием
предварительно сгенерированных данных алгоритм преобразования в
общем случае будет выглядеть следующим образом:
1. Произвести предварительную генерацию данных (массива
масштабов и массивов вейвлетов).
2. Для каждого интересуемого момента времени подсчитать numмерный вейвлет-вектор.
Вычислительная сложность и, соответственно, время работы
алгоритма напрямую зависит от того, каким образом будет реализован
подсчёт вейвлет-вектора. Были разработаны и реализованы 2 метода.
2.2.1 Прямой метод подсчёта вейвлет-вектора.
В данном случае каждую компоненту вейвлет-вектора необходимо
вычислять, используя массив с вейвлетом соответствующего масштаба.
Компоненты вычисляются по следующей формуле:
CWT  pos, k   rscale k  
MaxW vLng

i 0
MaxWvLng


 i]  wvlt[k ][i]
 wave[ pos 
2


где
pos – текущая позиция (во времени);
k – номер вейвлета;
rscale[k] – число, обратно пропорциональное масштабу вейвлета;
wave[] – массив со значениями выборок анализируемого сигнала;
33
wvlt[k][i] – i-ая выборка k-ого вейвлета, масштаб которого обратно
пропорционален значению rscale[k];
Прямой метод подсчёта вейвлет-вектора характеризуется большей
точностью, но и, вместе с тем, относительно низким быстродействием.
Кроме того, как уже было отмечено ранее, необходимость хранить num
массивов с вейвлетами различного масштаба приводит к значительному
увеличению объёма требуемой алгоритмом памяти.
В связи с этим была разработана модификация предыдущего метода,
сочетающая в себе, с одной стороны, большее быстродействие, и, с другой
стороны, меньший требуемый объём памяти.
2.2.2 Быстрый октавный метод подсчёта вейвлет-вектора.
Суть предложенного метода состоит в том, что ось масштабов
делится на октавы, в пределах которых масштаб вейвлета меняется ровно в
два раза; а в каждой октаве для вычисления части вейвлет-вектора,
соответствующей этой октаве, используется один и тот же небольшой
набор масштабированных вейвлетов (для всех октав). При этом вместо
исходного анализируемого сигнала используется сигнал, сжатый по
времени в соответствующее октаве число раз. После вычисления
необходимо скорректировать получаемое значение с учётом того, что и
вейвлет, и исходный сигнал сжаты по времени (следовательно, полученное
значение будет отличаться от вычисленного обычным методом). Также
следует учитывать, что при достаточно небольшом минимальном
масштабе вейвлета целесообразно делить на октавы лишь часть оси
масштабов с бóльшими масштабами, а оставшиеся компоненты вейвлетвектора подсчитывать с помощью первого метода.
Проиллюстрируем сказанное следующими рисунками:
34
масштаб вейвлета
256
512
1024
2048
4096
сигнал
вейвлет
Рис. 3.3 Условная схема вычисления вейвлет-компонент при использовании
первого метода.
На рисунке 3.3 условно показана схема вычисления пяти компонент
вейвлет-вектора, соответствующих вейвлет-масштабам 4096, 2048, 1024,
512 и 256. При вычислении каждой компоненты исходный сигнал (показан
пунктирной линией) умножается на масштабированный вейвлет (показан
сплошной линией) и считается интеграл (сумма) от полученного
произведения.
Изменим схему вычислений следующим образом:
(эфф.) масштаб вейвлета
256
512
1024*
2048*
4096*
Рис. 3.4 Условная схема вычисления компонент вейвлет-вектора при
использовании октавного метода.
В этом случае для компонент, соответствующих вейвлет-масштабам
1024, 2048, 4096 производится масштабирование не вейвлета, а самого
35
анализируемого сигнала. Звёздочки рядом с масштабами в этом случае
указывают на то, что это не реальный масштаб (реальный масштаб
вейвлета для всех трёх компонент равен 512), а эффективный – то есть при
перемножении вейвлета на масштабированный сигнал мы в результате
получим функцию того же вида, что и для трёх нижних случаев на рис. 3.3,
но сжатую соответственно в 2, 4 и 8 раз. После интегрирования
(суммирования) нам необходимо умножить получившиеся результаты
соответственно на 2, 4 и 8 для того, чтобы получить значения компонентов
вейвлет-вектора такие же, как и в первом методе.
При этом значительно сокращается объём требуемой памяти
благодаря тому, что не нужно хранить в памяти вейвлеты всех масштабов –
достаточно только хранить часть отмасштабированных вейвлетов,
находящихся в одной октаве (для случая, показанного на рисунке 3.4 –
вейвлеты с масштабами, изменяющимися от 512 до 256). Также нам
потребуется сжатый с различными масштабами анализируемый сигнал.
Вообще говоря, так как сигнал в конечном итоге дискретный, то при
его сжатии в 2, 4, 8 и т.д. раз нам необходимо предварительно накладывать
на него фильтр нижних частот и только после этого производить
процедуру прореживания и масштабирования. Следует отметить, что само
наложение фильтра НЧ могло бы существенно замедлить общую
процедуру обработки и анализа сигнала и свести на нет преимущества
октавного метода. Однако, как выяснилось в ходе исследований, для
подавляющего числа сигналов, в том числе речевых, использование вместо
процедуры наложения НЧ-фильтра простейшей процедуры усреднения по
времени приводило к тому, что результаты работы первого и второго
метода были практически идентичными (по крайней мере, визуально). С
учётом того, что октавный метод можно использовать как метод очень
быстрой визуализации общей вейвлет-картины и выбора существенных
временных интервалов для последующего более точного анализа с
помощью первого метода, было принято решение оставить процедуру
усреднения по времени в качестве процедуры предобработки при
масштабировании анализируемого сигнала.
Таким образом, на этапе предварительной генерации данных (либо
на этапе загрузки данных) появился дополнительный пункт – создание
масштабированного сигнала.
Формирование сжатого по времени сигнала происходит согласно
следующей формуле:
k

datalen

 1 2 1
octbuf k[ 0.. Noctaves]  pos  [0..
 1]  k   wave pos  2 k  i
k
2

 2 i 0

где
k – номер октавы или номер массива, содержащего сжатый в 2 k раз
сигнал;
36
pos – номер выборки в новом массиве, описывающем сжатый сигнал;
datalen – размер исходных данных (анализируемого сигнала);
wave – массив, описывающий исходный сигнал.
Noctaves – общее число октав. В общем случае это число не
обязательно является целым; вычисляется по формуле
 MaxWvLng 

N octaves  log 2 
 MinWvLng 
где
MaxWvLng – наибольший масштаб вейвлета;
MinWvLng – наименьший масштаб вейвлета.
Непосредственно алгоритм быстрого октавного метода вычисления
одной вейвлет-компоненты будет выглядеть следующим образом:
1. Подсчитать текущую октаву:
 k
 MaxWvLng 
 k


curOctave  MaxOctave  
 N octaves   MaxOctave  
 log 2 
 num

 MinWvLng 
 num
где MaxOctave – номер октавы, вплоть до которой будет применяться
быстрый октавный алгоритм;
k – номер текущей вейвлет-компоненты.
2. Определить номер использующегося вейвлета (согласно
масштабам вейвлетов, сгенерированным по формуле (3.3))
num
k  k 
 curOctave
N octaves
3. Подсчитать значение компоненты вейвлет-вектора:
W vLng
WvLng


octCWT  pos, k   rscalek     octbuf curOctave[ pos 
 i]  wvlt[k ][i]
2

i 0 
где
WvLng – длина массива, описывающего масштабированный вейвлет
с номером k’.
Легко показать, что при этом максимальный масштаб вейвлета будет
соответствовать нижней границе той октавы, которая выбрана в качестве
последней, где используется алгоритм октавного вейвлет-преобазования.
Таким образом, отпадает необходимость хранить вейвлеты с масштабом,
большим этого максимального масштаба, что приводит не только к
уменьшению требуемой памяти, но и к увеличению быстродействия
вследствие того, что максимальный масштаб вейвлета уменьшился в
2MaxOctave раз. Более того, при реализации данного алгоритма эти два
фактора могут привести к дополнительному «внеплановому» увеличению
быстродействия благодаря тому, что все наиболее часто используемые при
37
вычислении данные попадут в кэш первого или второго уровня
центрального процессора.
Следует, однако, отметить, что, несмотря на то, что для большинства
акустических сигналов данный метод приводит к несущественным
отличиям от первого метода, для некоторых специфических типов сигнала
происходит существенное искажение вейвлет-картины из-за отсутствия
НЧ-фильтрации в процедуре предобработки перед сжатием сигнала.
38
3. Практическая реализация алгоритма вейвлет-анализа
сигналов.
В данной главе описывается программа для гибкого вейвлет-анализа
акустических сигналов, и анализируется работа алгоритмов, применяемых в этой
программе.
3.1 Описание интерфейса программы вейвлет-анализа
Для практического применения разработанных алгоритмов вейвлетпреобразования применительно к сигналам реальной жизни, а также для
исследования и отладки этих алгоритмов на Microsoft Visual C++ была
написана программа Wavelet, имеющая удобный интерфейс и гибко
настраиваемые параметры работы, что даёт возможность практического
использования без необходимости её перекомпиляции при изменении
параметров алгоритма.
Вид основного окна программы показан на рис.4.1.
2
1
3
6
5
Рис. 4.1 Вид окна программы Wavelet
Главное окно программы состоит из нескольких частей:
1. Меню программы;
39
2. Кнопки быстрого вызова различных функций программы;
3. Область графического отображения данных;
4. Ось прокрутки;
5. Область текстового отображения данных;
6. Статусная строка.
3.1.1 Меню программы
Меню File
Рис. 4.2. Меню File
В меню File находятся следующие пункты:
· Open WAV file... – открывает находящийся на диске файл формата
Windows PCM. Поддерживаются 16-битовые звуковые файлы одно- и
многоканального типа. При открытии многоканального файла (например,
стерео) файл преобразуется в одноканальный путём смешения каналов в
одинаковой пропорции. Действие пункта меню продублировано кнопкой
Open.
· Open binary data file... – открывает произвольный бинарный файл с
возможностью ручного выбора формата файла и находящихся в нём
данных.
· Save source as text data... – сохраняет исходный файл в текстовом
виде как набор чисел, соответствующих выборкам текущего загруженного
файла. В последней версии программы процедура сохранения исходного
файла в текстовом виде отключена.
· Save wavelet results... – сохраняет результаты вейвлет-анализа в
бинарном либо текстовом файлах различного формата с возможностью
выбора необходимых для сохранения вейвлет-компонент, временного
интервала, точности представления данных и т.д. Действие пункта меню
продублировано кнопкой ”Save Wavelets”.
· Restart the program – перезапускает программу. Данный шаг
иногда необходим при изменении конфигурации программы.
· Exit – выход из программы с сохранением всех конфигурационных
настроек.
Меню Analysis.
40
Рис. 4.3. Меню Analysis
В меню Analysis находятся следующие пункты:
· Perform CWT – выполняет вейвлет преобразование загруженных и
отображаемых на экране данных и выводит результат вейвлетпреобразования на экран. Действие пункта меню продублировано кнопкой
”CWT”.
· Generate Morlet Wavelet – использовать вейвлет Морле в качестве
базового вейвлета при подсчёте вейвлет-преобразования. См. Диалог
настройки конфигурации. Данный пункт меню продублирован миникнопкой «1».
· Generate B-spline Wavelet – использовать кубический Bсплайновый вейвлет в качестве базового вейвлета при подсчёте вейвлетпреобразования. См. Диалог настройки конфигурации. Данный пункт
меню продублирован мини-кнопкой «2».
· Decimate data... – прореживает текущие загруженные данные
(анализируемый сигнал) в заданное число раз (используется усреднение по
времени).
Меню Options
Рис. 4.4. Меню Options
Меню Options содержит единственный пункт Configuration,
вызывающий диалог настройки конфигурации программы.
Меню Help
Рис. 4.5. Меню Help
Меню Help также содержит единственный пункт – About,
вызывающий диалог с краткой информацией о программе и авторе.
41
3.1.2 Кнопки быстрого вызова функций.
· Open – кнопка открытия файлов. Аналогична пункту Open WAV
File меню File.
· Play – проигрывает текущий файл на звуковую карту.
· Save Wavelets – сохранение результатов вейвлет-анализа.
Аналогично пункту “Save wavelet results” меню File.
· Config – Вызов диалога настройки программы.
· «+» / «–» – уменьшает/увеличивает область просмотра данных,
показываемых в области графического отображения. Под кнопками
находится надпись вида «1:59», указывающая на текущий масштаб
отображения (zoom).
· CWT – отображает результат вейвлет-преобразования текущей
области данных.
· View – просмотр формы текущего используемого вейвлета.
3.1.3 Область графического отображения данных.
Программа может отображать в этой области как форму
анализируемого сигнала, так и результат вейвлет-преобразования текущих
данных. Более того, для удобства пользователя предусмотрен режим
полупрозрачного отображения данных с регулируемым коэффициентом
прозрачности вейвлет-картины. Благодаря тому, что процедуры
отображения являются не стандартными, а встроенными в исходный текст
программы, эта функция программы работает вне зависимости от того,
поддерживает ли операционная система работу с полупрозрачными
объектами.
3.1.4 Область текстового отображения данных
Область текстового отображения данных отображает следующую
информацию:
· Pos: позиция данных, указываемых мышью в области отображения
графических данных.
· Time Pos: эта же позиция во времени
· Wavelet dur.: при отображении вейвлет-данных показывает, какая
длительность вейвлета соответствует точке, указываемой мышью
· Max wavelet dur.: при отображении вейвлет-данных показывает,
какая длительность вейвлета соответствует с вейвлет-коэффициенту
максимальной амплитудой
· Value – текущее значение в относительных единицах
42
3.2. Настройка программы
На рис.4.6 показан диалог настройки программы Wavelet
Рис. 4.6. Диалог настройки программы.
Диалог содержит следующие пункты:
Секция Wavelets:
· Maximum wavelet length – максимальная длина вейвлета при
вейвлет-анализе
· Minimum wavelet length – минимальная длина вейвлета при
вейвлет-анализе
· Wavelets – число вейвлет-компонент (размерность вейвлетвектора). Можно выбрать значения 256, 128, 64 либо User Defined, в
последнем случае можно вручную выбрать произвольное число (не более
256).
· Default wavelet set – выбор типа базового вейвлета – Морле
(Morlet) либо В-сплайн (B-spline)
Секция Calculation:
· Accuracy – выбор типа данных, используемых при вычислениях:
float (32bit) – вещественный, int (32-bit) – целочисленный, на многих
процессорах приводит к дополнительному увеличению быстродействия
43
(до 2-3 раз), однако обладает меньшей точностью. При использовании
целочисленной арифметики внутреннее представление данных в
программе – целочисленное с фиксированной точкой (10.6).
· Skip every 2nd frame when displaying – использовать только
каждую вторую точку на временной оси при вычислении данных для
отображения на экране. Приводит к ускорению работы примерно в 2 раза.
Эффективно при работе в режиме 1280х1024.
· Use only real (no imaginary) part – при расчёте вейвлетпреобразования использовать только действительную часть вейвлета
(мнимая часть приравнивается к нулю). Для нормальной работы данный
флажок должен быть выключен. Эта опция имеет скорее
исследовательскую, нежели практическую ценность.
· Use octave algorithm up to <…> octave – Включает использование
быстрого октавного алгоритма при расчёте данных для вывода на экран.
Алгоритм работает с нижними <…> октав, для октав выше заданной
использует стандартный алгоритм.
Секция Visualization:
· Palette – выбор палитры для отображения вейвлет-величин.
Возможные варианты:
–Color (цветная – плавный переход цветов);
–Black and White (чёрный фон, максимум значений
соответствует белому цвету);
–White and Black (белый фон, максимум значений
соответствует чёрному цвету. Режим удобен для последующей
печати изображения на чёрно-белых принтерах).
· Resolution – выбор разрешения экрана для эффективного
отображения графической информации. Возможные значения – 800х600 и
1280х1024. При работе с разрешением рабочего стола до 1024х768
рекомендуется ставить опцию resolution в 800х600, при работе с
разрешением более 1024х768 – ставить 1280х1024. В первом случае размер
области отображения составляет 512х256 точек, во втором – 1024х256
точек.
· Instant results displaying – «моментальное» отображение
вычисленных вейвлет-данных в области отображения во время
вычислений. При работе на медленных видеокартах и/или видеорежимах
может существенно замедлить работу алгоритма из-за частой перерисовки
области отображения.
· Log energy scale – включает логарифмический масштаб
отображения вычисленных данных. Эта опция касается преобразования
значения в цвет для отображения и не затрагивает вычисление вейвлетпреобразования для сохранения в файл. Рекомендуется включить.
44
· Reference (internal) – внутренняя опорная величина, относительно
которой происходит преобразование в цветовую область. Рекомендуемое
значение – 16. Большее значение приводит к отображению более «слабых»
величин (например, если исходные данные имеют малую амплитуду и, как
следствие, полученный вейвлет-образ содержит малые значения); меньшее
– позволяет увидеть отдельные величины при их высокой амплитуде.
Секция Save options:
· Text data – выбор формата текстовых данных для сохранения в
файл. Позволяет выбрать тип (обычный или экспоненциальный),
десятичный разделитель (точка или запятая) и разделитель между числами
(знак перевода строки или табулятор).
· Binary data – выбор типа данных при сохранении в бинарный файл.
Позволяет выбрать один из трёх типов – 16-bit integer (целочисленные 16битные), 32-bit integer (целочисленные 32-битные), 32-bit float
(вещественные 32-битные)
Секция Advanced:
· Warn about program restart – после изменения конфигурации
предлагает автоматически перезапустить программу, так как некоторые
внутренние
переменные
и
области
данных
могут
быть
проинициализированы только при запуске программы.
· Show debug info – включает показ некоторой отладочной
информации (в частности, времени работы алгоритма вейвлетпреобразования, частоту процессора при запуске и др.)
Программа сохраняет свои настройки сразу после их изменения в
реестре Windows либо в .ini-файле в зависимости от операционной
системы, под которой была запущена программа.
3.3 Работа с программой Wavelet.
3.3.1 Загрузка файлов
Загрузка файлов с данными для последующего вейвлет-анализа
может осуществляться двумя способами – с помощью загрузки файлов
типа WAV и с помощью загрузки произвольных бинарных файлов.
При загрузке файлов типа WAV программа проверяет формат файла
на допустимость. Допустимыми для загрузки форматом является 16битный PCM-формат с произвольным числом каналов. При загрузке
одноканального (моно) файла дополнительного преобразования не
происходит, при загрузке многоканальных файлов происходит их
преобразование в одноканальный (все каналы микшируются с одинаковым
процентным соотношением).
45
Для загрузки произвольного бинарного файла необходимо
воспользоваться пунктом load binary file… меню File. При этом после
выбора имени файла на экран выводится диалог для настройки типа
данных, хранящихся в файле. Вид диалога представлен на рис. 4.7.
Рис. 4.7. Вид окна настройки типа двоичных данных.
Диалог содержит следующие пункты:
Секция Size & offset:
· Data start offset – смещение начала анализируемых данных в
файле. Может отличаться от нуля в случае наличия заголовка файла (как,
например, это имеет место в wav-файлах) либо при необходимости
проанализировать лишь часть данных, начиная с какого-либо смещения
(при слишком больших файлах).
· Data size (bytes) – размер анализируемых данных в байтах. По
умолчанию – весь файл.
· Data size (samples) – количество анализируемых выборок. Зависит
от размера анализируемых данных в байтах и формата данных.
Секция Data format:
· Bits per sample – выбор разрядности данных (8 или 16 бит на
выборку)
· Format – выбор формата представления данных – Intelсовместимого (LSB, MSB) либо Motorola-совместимого (MSB, LSB)
· Channels – выбор числа каналов в файле (1-моно или 2-стерео).
Секция Data Decimation:
· Decimate data by <…> – при открытии файла проводит его
прореживание с усреднением в заданное число раз. При использовании
данной опции крайне желательно, чтобы данные в файле были либо
предобработаны фильтром НЧ, либо не содержали высокочастотных
компонент, так как при это может наблюдаться частичное отображение
46
верхней части спектра в нижнюю, что может привести к неправильным
результатам.
При включенном использовании быстрого октавного алгоритма
сразу после загрузки файла происходит формирование сжатых по времени
анализируемых данных для последующего использования в октавном
алгоритме.
Внимание! При изменении настроек программы, касающихся
использования октавного алгоритма крайне рекомендуется перезапустить
программу или как минимум перезагрузить текущий файл, так как
формирование необходимых для работы алгоритма данных происходит
только во время открытия файла.
3.3.2 Работа с открытым файлом.
Для навигации по открытому аудиофайлу можно использовать:
1. Полосу прокрутки.
2. Средства увеличения/уменьшения масштаба отображаемых
данных.
Для уменьшения или увеличения масштаба отображаемых данных
можно воспользоваться, во-первых, кнопками «+» и «–», во-вторых,
клавишами «+» и «-», выполняющими ту же функцию, и, в третьих,
выделяя требуемую часть данных с помощью мыши:
Рис. 4.8. Масштабирование части данных с помощью мыши.
47
Для
запуска
процедуры
вейвлет-преобразования
можно
воспользоваться кнопкой CWT либо пунктом Perform CWT меню
Analysis. Возможный результат работы показан на рис. 4.9.
Рис. 4.9. Результат работы алгоритма вейвлет-преобразования.
Кроме
непосредственно
вейвлет-картины,
белыми
цветом
отображены точки, соответствующие максимальным коэффициентам в
каждом вейвлет-векторе. Это визуально может показать, например,
основной тон анализируемого сигнала.
В режиме просмотра результатов вейвлет-анализа дополнительно
доступны 2 ползунка – Transparency и Color Bias. C помощью ползунка
Transparency можно регулировать прозрачность вейвлет-картины с тем,
чтобы одновременно наблюдать и вейвлет-картину, и исходный сигнал.
Например, при примерно 70%-ной прозрачности окно программы будет
выглядеть следующим образом:
48
Рис. 4.10. Демонстрация прозрачной вейвлет-картины.
Ползунок Color Bias позволяет подстроить цветовой уровень
вейвлет-данных – например, в том случае, когда необходимо визуально
сравнить два набора данных, один из которых соответствует несколько
меньшим значениям, чем другой.
При передвижении мыши над полем графического отображения
информации в текстовом поле показываются данные (позиция, длина
вейвлета, значение вейвлет-коэффициента и т.д.), соответствующие
текущей точке, находящейся под курсором мыши.
3.3.3 Сохранение вейвлет-данных.
Для сохранения всех или части вейвлет-данных необходимо
воспользоваться пунктом Save wavelet results меню File. При этом на
экран вызывает диалог, позволяющий выбрать имя файла и параметры
сохранения вейвлет-данных. Вид диалога показан на рис. 4.11.
49
Рис. 4.11. Диалог настройки сохранения вейвлет-данных.
Диалог содержит следующие пункты:
File Name – автоматически генерируемое имя сохраняемого файла.
Имя файла генерируется исходя из имени исходного файла, причём
программа выбирает имя файла таким образом, чтобы оно было
уникальным, и файл с таким именем на диске отсутствовал (для этого в
скобках может быть добавлено некоторое число). С помощью кнопки
Browse можно выбрать имя файла вручную.
Data type – тип сохраняемого файла – text (текстовый) или binary
(бинарный).
Time interval – предоставляет выбор интервала для сохранения
данных: current screen (отображаемая на экране область), full-length file (все
данные), user defined (выбирается пользователем). В случае выбора
третьего пункта доступными становятся пункты start и end, указывающие
на начало и конец сохраняемых данных.
Time resolution – выбор разрешения по времени. Предоставляет
возможность сохранения всех данных (save every wavelet) либо сохранения
вейвлет-векторов с заданным в миллисекундах либо выборках интервалом.
Freq resolution – выбор разрешения по частоте. Предоставляет
возможность сохранения либо всех вейвлет-коэффициентов (all range of
wavelet scales), либо только некоторого их произвольного набора,
заданного либо по номерам коэффициентов (user-defined set – by number),
либо, что более удобно, по длительностям вейвлетов (user-defined set – by
scale). В последних двух случаях в поле справа необходимо через запятую
задать либо отдельные номера или длительности вейвлетов, либо их
интервалы (например, «0,1,2,10-20,40-60,97»).
После нажатия на кнопку ОК данные вейвлет-анализа будут
записаны в выбранный файл.
50
Сохранённые в текстовом или бинарном формате данные могут быть
использованы для дальнейшего анализа в других программах, базах
данных, электронных таблицах и т.д.
51
4. Исследование работы алгоритма вейвлет-анализа.
В данной главе описываются некоторые возможные применения программы
вейвлет-анализа Wavelet, а также проводится исследование работы алгоритмов,
применяемых в данной программе.
4.1. Исследование поведения алгоритма в различных
конфигурациях.
При исследовании алгоритма в первую очередь интересует то, каким
образом различные оптимизационные особенности влияют на общее время
выполнения алгоритма. Проведём исследование на примере работы с
небольшим звуковым файлом длительностью 1340 мс (записанное с
микрофона слово «два», произнесённое женским голосом). Эксперименты
проводились большей частью на компьютере с процессором Celeron 1700
под управлением операционной системы Windows 2000. Некоторые тесты
проводились на компьютере с процессором Duron 750 под управлением
операционной системы Windows 2000.
Начальные установки программы – следующие:
 длины вейвлетов: 32–4096;
 размерность вейвлет-вектора: 256;
 тип базового вейвлета: Морле
 тип внутреннего представления данных: вещественные;
 разрешение: 800х600 (число вейвлет-векторов – 512);
 «моментальное» отображение данных включено.
В результате процедура вейвлет-преобразования заняла 27412 мс,
что, в принципе, является достаточно большим временем. Будем
исследовать влияние различных настроек на время работы алгоритма.
1. Зависимость от размерности вейвлет-вектора.
Размерность
256
192
128
64
Время, мс
27412
20908
14392
7968
Зависимость отображена на следующем графике.
52
32
4623
Время, мс
30000
25000
20000
15000
10000
5000
0
300
250
200
150
100
50
0
Рис.5.1 График зависимости времени работы от размерности вектора.
Как и следовало ожидать, зависимость линейная.
2. Пропуск каждого второго вейвлет-вектора.
При включении временного прореживания используемых данных (то
есть, фактически, уменьшении числа подсчитываемых векторов в два раза)
общее время работы при расчёте 256-мерных вейвлет-векторов составило
13759 мс, то есть примерно вдвое меньше исходного времени.
Таким образом, при уменьшении размерности вектора либо при
уменьшении числа подсчитываемых векторов мы наблюдаем линейную
зависимость увеличения скорости от объёма оставшихся данных. Однако
этот метод ускорения работы алгоритма не является оптимальным, так как,
уменьшая размерность вейвлет-векторов, мы сильно огрубляем общую
вейвлет-картину, и уменьшение числа подсчитываемых векторов также
приводит к огрублению вейвлет-картины.
3. Зависимость от максимальной длины вейвлета.
Иногда
отпадает
необходимость
исследовать
достаточно
низкочастотные области сигнала, и в этом случае мы можем уменьшить
максимальный масштаб используемых вейвлетов.
Макс. длина вейвлета
8192
4096
2048
1024
512
Время, мс.
47568
27412
16252
9731
5999
График зависимости представлен на рисунке 5.2
53
50000
40000
30000
20000
Время, мс.
10000
0
8192 7168 6144 5120 4096 3072 2048 1024
0
Макс. длина
Рис. 5.2. Зависимость времени работы от максимальной длины
вейвлета.
Как видно из графика, зависимость времени работы от максимальной
длины вейвлета тоже близка к линейной. Таким образом, уменьшая
максимальную длину, мы добиваемся более быстрой работы алгоритма,
однако, при этом мы теряем часть информации, относящейся к
низкочастотной области сигнала (однако плюсом этого является то, что
при сохранении размерности вектора мы получаем больше информации о
высокочастотной области, что иногда является полезным).
4. Использование целочисленной арифметики.
На многих процессорах на вычисления с плавающей точкой
затрачивается больше времени, нежели на целочисленные вычисления.
Исходя из этого логично предположить, что если заменить большинство
данных, используемых в вычислениях, на целочисленные, то алгоритм
может начать работать быстрее.
Действительно, при проверке данной гипотезы на процессоре
Celeron 1700 получились следующие результаты (конфигурации
программы различались лишь использованием различного представления
данных):
 Время выполнения алгоритма при использовании арифметики с
плавающей точкой – 27540 мс.
 Время выполнения алгоритма при использовании целочисленной
арифметики с фиксированной точкой (10.6) – 10967 мс.
Таким образом, действительный прирост быстродействия при
использовании целочисленной арифметики на процессоре Celeron – около
2.5 раз. Однако, иногда использование целочисленной арифметики на
слишком «тихих» сигналах приводит к большим ошибкам округления и,
как следствие, к неправильному результату вычислений. В связи с этим
польза данного оптимизационного шага находится под вопросом, хотя,
конечно, для визуальной оценки этот шаг, как правило, бывает оправдан.
54
Также тестирование использования целочисленной арифметики с
такими же файлом и конфигурацией было проведено на компьютере на
базе процессора Duron 750. В этом случае:
 Время выполнения алгоритма при использовании арифметики с
плавающей точкой – 21487 мс.
 Время выполнения алгоритма при использовании целочисленной
арифметики с фиксированной точкой (10.6) – 27653 мс.
Как видим, использование целочисленной арифметики не только не
ускорило, а даже замедлило выполнение алгоритма. Это можно объяснить
следующим: если сравнить абсолютные времена тестов, то можно легко
заметить, что скорость выполнения целочисленных операций по
отношению к частоте процессора у обоих процессоров примерно равна, а
вот скорость выполнения операций с плавающей запятой по отношению к
частоте процессора у Duron выше, чем у Celeron примерно в 2.5 раза. Это в
полной мере согласуется с утверждениями разработчиков Duron.
5. Использование алгоритма октавного вейвлет-преобразования.
Наиболее интересным в плане оптимизации является использование
разработанного алгоритма октавного вейвлет-преобразования. Построим
зависимость времени работы алгоритма от максимального номера октавы,
в которой этот алгоритм ещё используется (0 соответствует работе
обычного алгоритма).
Для большей точности при исследовании поведения алгоритма
отключим «моментальное» отображение результатов на экран (так как это
при малых временах работы алгоритма может оказывать существенное
влияние).
Результаты представлены в таблице:
MaxOctave
0
1
2
3
4
5
6
Время, мс 26122
22564
13534
7963
4469
2087
336
График зависимости времени работы от максимальной октавы
приведён на следующем рисунке:
55
100000
Время, мс
10000
1000
100
0
1
2
3
4
MaxOctave
5
6
Рис. 5.3. Зависимость времени работы от максимального номера
октавы, использующейся для октавного алгоритма.
Можно заметить, что, во-первых, на участке для октав 0-5 (особенно
это заметно на участке 1-5) зависимость экспоненциальная (ось времени на
графике – логарифмическая). Это легко объясняется, т.к. при увеличении
числа используемых в октавном алгоритме октав экспоненциально (по
степеням двойки) снижается объём данных, используемых при вычислении
(так как всё меньше октав вычисляется по «обычному» алгоритму, и всё
больше – по октавному). Однако, вместе с тем, и на графике, и в таблице
видно, что при увеличении числа используемых октав до 6 идёт очень
резкое (почти на порядок) снижение времени работы. Этому есть
логическое объяснение, связанное с тем, что, вероятнее всего, в этом
случае все используемые массивы вейвлетов попадают во внутренний кэш
процессора (который намного быстрее внешней памяти), что и приводит к
резкому увеличению быстродействия программы. Это косвенно
подтверждается и тем, что объём данных как раз по порядку приближается
к размеру внутреннего кэша процессора.
Как видно, данный метод оптимизации наиболее действенен. Однако
здесь есть одно «но»: при вычислениях с помощью октавного метода на
вейвлет-картине могут возникать артефакты, связанные с отсутствием НЧфильтрации сигнала при его временном сжатии. Как уже было сказано, для
большинства типов сигнала эти искажения общей картины незначительны
(однако их число возрастает по мере увеличения используемых в октавном
алгоритме октав). Это видно на следующем рисунке:
56
плавно
норма
а)
б)
"гармошка"
ярче
в)
г)
Рис. 5.4. Вид вейвлет-картин для разных параметров октавного
алгоритма: (а) – обычный алгоритм, (б) – MaxOctave=2, (в) – MaxOctave=4,
(г) – MaxOctave=6.
Как можно заметить, для файла речевого сигнала в общей вейвлеткартине искажения, вызванные работой октавного алгоритма
несущественны. С учётом того, что алгоритм используется только для
визуализации, можно утверждать, что данный оптимизационный шаг в
большинстве случаев оправдан.
Однако не следует забывать, что для некоторых специальных типов
сигналов быстрый октавный алгоритм неприменим (по крайней мере, в той
57
реализации, в которой он используется в программе Wavelet). Пример
такого сигнала – синусоида с плавно изменяющейся частотой, причём
начальная частота лежит практически у самого «потолка» частот,
возможных при данной дискретизации. Это наглядно иллюстрирует рис.
5.5:
Рис. 5.5. Вверху – обычный алгоритм, посередине – октавный с
MaxOctave=4, внизу – октавный с MaxOctave=6.
Как видно из рисунка, при работе октавного алгоритма в нижних
октавах возникают вейвлет-компоненты, сильно отличные от нуля. Эти
компоненты могут привести к неправильной оценке сигнала, и, как
58
следствие, неправильному выбору интервала исходных данных и вейвлеткоэффициентов для дальнейшего анализа. Объясняется возникновение
«паразитных» вейвлет-компонент тем, что при отсутствии НЧ-фильтрации
в процедуре временного сжатия анализируемых данных возникают
многочисленные отражения спектра, которые могут быть незаметны на
вейвлет-картине при наличии достаточно заметных «своих» вейвлеткомпонент.
Возможно, при дальнейшем развитии октавного алгоритма данная
проблема будет решена с помощью какого-либо достаточно быстрого
алгоритма НЧ-фильтрации при временном сжатии.
4.2. Использование программы Wavelet для приложений
вейвлет-анализа.
Рассмотрим несколько приложений вейвлет-анализа, где может быть
применена программа Wavelet.
4.2.1 Сравнение Фурье-анализа и вейвлет-анализа сигналов.
Данная задача носит, в основном, теоретический характер. С
помощью программы можно визуально просмотреть то, как работает
вейвлет-преобразование на различных типах сигналов.
Тип 1 – стационарный сигнал.
В данном случае была сгенерирована синусоида с частотой 440Гц и
частотой дискретизации 44100Гц. Фурье-анализ производился с помощью
звукового редактора CoolEdit 2000 и дал следующие результаты:
Рис. 5.6. Результат Фурье-анализа одиночной синусоиды постоянной
частоты.
59
В режиме просмотра спектра сигнала Spectral View (фактически, это
оконное Фурье-преобразование со сдвигающимся по временной оси
окном) наблюдалась следующая картина:
Рис. 5.7 Режим Spectral View для сигнала одиночной частоты.
В этом режиме белой горизонтальной линией показана основная
частота сигнала.
Вейвлет-преобразование такого сигнала даёт следующую картину:
Рис. 5.8. Вейвлет-преобразование стационарного сигнала одиночной
частоты.
Мы видим, что вейвлет-преобразование стационарного сигнала дало
более «размазанную» спектральную картину, в то время как Фурье60
преобразование дало более точные результаты. Таким образом, видно, что
для анализа стационарных сигналов Фурье-преобразование подходит
лучше, чем вейвлет-преобразование.
Тип 2. Сигнал с резко меняющейся частотой.
Был сгенерирован сигнал, в котором одна частота в определённый
момент времени резко сменялась другой.
Для наглядности сразу покажем его вейвлет-преобразование:
Рис. 5.9. Вейвлет-преобразование сигнала с резко меняющейся частотой.
Мы видим, что в момент смены частоты сигнала (указан курсором
мыши) вейвлет-преобразование очень точно показало смену частоты
(основная частота показана белой линией).
Фурье-преобразование в том же масштабе даёт такую картину:
Рис. 5.10. Фурье-преобразование смены частот.
61
Пользуясь только результатом Фурье-преобразования, мы лишь
можем только сказать, какие частоты присутствуют в сигнале, однако у нас
нет никакой информации о том, когда какая частота присутствовала в
сигнале.
Режим Spectral View даёт следующую картину:
Рис. 5.11. Режим Spectral View для смены сигналов.
Опять-таки, в области смены частот мы наблюдаем лишь общую
спектральную картину, практически лишённую информации о том, в какой
момент времени какая частота присутствовала в сигнале.
Тип 3. Одиночный импульс.
Наконец, рассмотрим
одиночного импульса:
сигнал,
состоящий
из
единственного
Фурье-преобразование такого сигнала будет выглядеть следующим
образом:
62
Рис. 5.12. Фурье-преобразование одиночного импульса.
В режиме Spectral View данный сигнал даст такую картину:
Рис. 5.13. Режим Spectral View для одиночного импульса. Пунктирной
линией показан момент возникновения импульса.
И, наконец, вейвлет-преобразование даст следующую картину:
Рис. 5.14. Вейвлет-преобразование одиночного импульса.
Здесь мы можем очень наглядно наблюдать, что вейвлетпреобразование даёт намного более точную временную локализацию
импульса.
Таким образом, после рассмотрения этих трёх примеров можно
сделать вывод, что вейвлет-преобразование намного лучше подходит для
анализа нестационарных сигналов, нежели Фурье-преобразование, и
обладает намного лучшим временным разрешением, особенно в высоких
частотах.
63
4.2.2. Определение основного тона речи (pitch).
C помощью вейвлет-преобразования можно очень легко и
достаточно точно определять основной тон речи.
В качестве примера был взят фрагмент текста, прочитанного
мужчиной на английском языке (начало кассеты с тестом TOEFL).
Базовым вейвлетом для анализа являлся B-spline-вейвлет, максимальная
длина вейвлетов – 4096, минимальная – 32, размерность вейвлет-вектора –
256. Для каждого рассчитанного вейвлет-вектора определялась
максимальная компонента, которая на рисунке выделялась белой точкой.
Результат анализа отображён на рис. 5.15.
Рис. 5.15. Результат вейвлет-анализа основного тона речи.
Можно заметить, что на рисунке очень хорошо наблюдается
основной тон речи. Результат вейвлет-поиска основного тона может быть
использован, например, при анализе и распознавании интонации речи
человека.
4.2.3 Распознавание мужчины и женщины.
Во многих современных устройствах интерфейса с пользователем,
связанных с речевым интерфейсом, необходимо отличать мужчину от
женщины.
Эта задача оказалась достаточно легко решаемой с помощью
вейвлет-анализа, а точнее – с помощью предыдущей задачи определения
основного тона речи. Если проанализировать некоторый участок речи
мужчины и женщины, (даже если они говорят одно и то же), то окажется,
что вейвлет-образы речи существенно различаются.
64
В качестве примера были взяты два файла, в одном из которых было
записано слово «четыре», произнесённое мужским голосом, а в другом –
женским. Результаты вейвлет-анализа этих файлов приведены ниже:
Рис. 5.16. Вейвлет-образ слова «четыре», произнесённого женским голосом
(слева) и мужским (справа).
Во-первых, самое существенное отличие между этими двумя
вейвлет-образами – разный основной тон. Визуально хорошо видно, что
справа он выше, чем слева.
Во-вторых, можно заметить, что справа в области над основным
тоном присутствует так называемая «гармошка» – части вейвлет-векторов
с изменяющейся общей амплитудой. Это тоже характерная черта мужского
голоса, так как в нём, как правило, присутствуют «дребезжащие» звуки, в
то время как женский голос, как правило, более «гладкий».
В-третьих, при наличии достаточно длинного промежутка речи,
можно анализировать интонацию, которая часто у мужчин и женщин
различается.
Таким образом, с помощью вейвлет-анализа можно достаточно легко
производить определение пола говорящего человека.
4.2.4. Сегментация дикторов.
Иногда бывает необходимо обнаружить момент времени, когда
происходит смена говорящего человека. В этом случае с помощью
вейвлет-анализа можно не только отследить момент смены диктора, но и,
дополнительно к этому, определить принадлежность голоса очередного
диктора к мужчине или женщине (что может помочь дальнейшему
распознаванию диктора).
В качестве рассматриваемого сигнала была взята часть аудиозаписи
с моментом, когда происходит смена двух говорящих людей. Вейвлет65
преобразование данного звукового фрагмента выглядит следующим
образом:
Рис. 5.17. Вейвлет-преобразование звукового фрагмента со сменой
диктора.
Момент смены диктора показан курсором мыши.
Мы можем видеть, что вейвлет-образы звуковых фрагментов до и
после момента смены говорящего человека существенно различаются. Вопервых, изменился основной тон говорящего – он стал ниже, что позволяет
сделать вывод о том, что, скорее всего, произошла смена говорящей
женщины на мужчину. Во-вторых, изменилось «поведение» основного
тона – если до смены основной тон плавно изменялся, то после смены он в
основном находится на одном уровне, лишь изредка изменяясь (для
выделения интонацией слогов или отдельных коротких слов). В третьих,
изменился «фон» вейвлет-векторов – появились вейвлет-векторы с
широкополосными компонентами, что с указывает либо опять-таки на
смену говорящего, либо на смену фона и, как возможную причину, смену
сюжета (а значит и диктора).
Таким образом, с помощью вейвлет-анализа можно достаточно
эффективно судить о смене диктора.
4.2.5 Распознавание музыки.
Поиск музыки в современных мультимедийных базах данных
невозможен без предварительного распознавания этой музыки – как в
целях занесения в базу данных, так и с целью непосредственно поиска.
Вейвлет-анализ достаточно хорошо подходит для задачи
распознавания музыки, так как имеет свойства, близкие к человеческому
слуху, который так же, как и вейвлет-анализ, с достаточно высоким
66
временным разрешением и низким частотным распознаёт высокие ноты и с
низким временным разрешением, но с высоким частотным – низкие ноты.
Рассмортим вейвлет-картину фрагмента песни Faith Hill “Part of Your
World”:
Рис. 5.18. Вейвлет-преобразование фрагмента песни.
Для распознавания и «узнавания» музыки нам не обязательно
распознавать все ноты и инструменты (хотя с помощью вейвлетпреобразования эта задача перестаёт быть невозможной, какой она была
бы, например, при попытке распознавания нот с помощью Фурьепреобразования).
Нам
необходимо
лишь
выделить
основные
характеристики музыкального фрагмента. Рассмотрим их на увеличенном
участке вейвлет-картины:
3
1
1
3
3
2
2
Рис. 5.19. Часть вейвлет-картины музыкального фрагмента.
67
Итак, на данном рисунке можно выделить основные характеристики
музыкального фрагмента:
1 – основная партия, как правило, голос. Распознаётся достаточно
легко и точно. Как правило, содержит основную тему мелодии или песни.
2 – басы или аккомпанемент. Распознаётся наиболее легко и точно,
так как, как правило, не имеет плавных переходов.
3 – музыкальный фон. Иногда можно без особых усилий определить
несколько голосов. Распознаётся сложнее, так как имеет меньшую
амплитуду и может перекрываться основной партией или её гармониками.
Для успешного распознавания музыкального произведения очень
часто достаточно лишь первых двух перечисленных пунктов. Более того,
существует много произведений, для распознавания которых достаточно
знать только партию басов и общий ритм/темп, которые, опять-таки, легко
определяются из басовой партии. Единственное требование при
распознавании музыкального фрагмента только по басовой партии – это
то, что фрагмент должен быть относительно длинным (в идеале – хотя бы
один куплет песни или иная повторяющаяся часть).
Таким образом, мы видим, что вейвлет-анализ является ещё и
удобным и мощным средством работы с музыкой, её распознаванием и
индексированием.
4.2.6 Анализ биомедицинских сигналов.
Биомедицинские сигналы по своим характеристикам во многом
схожи с сигналами акустическими, что позволяет эффективно применять
по отношению к ним вейвлет-анализ.
Одним из типов биомедицинских сигналов являются сигналы
электрокардиограмм. В качестве небольшого примера рассмотрим один из
ЭКГ-сигналов, взятый из базы данных по заболеваниям сердечнососудистой системы.
Рис. 5.20. ЭКГ-сигнал и его вейвлет-образ.
68
Можно заметить, что с помощью вейвлет-преобразования с
достаточно хорошей точностью определяется период сердцебиений (в
данном случае он постоянен) и, соответственно, все отклонения от этого
периода. Кроме того, более высокочастотным вейвлет-компонентам
соответствуют иные характеристики ЭКГ-сигнала, которые также могут
быть использованы при диагностике заболеваний.
Из всего вышеперечисленного можно сделать вывод, что вейвлетпреобразование может находить применение в различных областях
анализа сигналов, как связанных с аудиоинформацией, так и далёких от
неё, и использоваться как мощное средство обработки сигналов.
Указания к отчету
Отчет должен содержать:
1. Цель и задание по работе.
2. Ответы на контрольные вопросы.
3. Графики и таблицы по пунктам 3 и 4 согласно заданию к работе
4. Выводы и оценку полученных результатов
Контрольные вопросы
1. Что такое вейвлет-анализ?
2. В чём преимущество вейвлет-анализа по сравнению с Фурьеанализом?
3. В каких приложениях эффективно применение вейвлет-анализа?
4. В чём преимущество быстрого октавного метода подсчёта
вейвлет-вектора?
Литература
1. Л. Левкович-Маслюк, А. Перебрин. Вейвлет-анализ и его приложения. Москва,
1997.
2. Астафьева Н.М. Вейвлет - анализ. Основы теории и применения. Успехи
физических наук, т.166, вып. 11, ноябрь 1996 г.
3. Колмогоров А.H., Фомин С.В. Элементы функционального анализа. М.:Наука,
1968.
4. Пэн Дж., Топиков М. В. Wavelets и их применение к линейным и нелинейным
проблемам электромагнетизма. "Зарубежная радиоэлектроника. Успехи
современной радиоэлектроники" 1998, вып. 12 с.71
69
Учебное издание
ИССЛЕДОВАНИЕ АЛГОРИТМОВ ОБРАБОТКИ АКУСТИЧЕСКИХ
СИГНАЛОВ С ИСПОЛЬЗОВАНИЕМ НЕПРЕРЫВНОГО ВЕЙВЛЕТНОГО
ПРЕОБРАЗОВАНИЯ В ПРОИЗВОЛЬНОЙ ШКАЛЕ
Методические указания
к лабораторной работе по статистической радиофизике
Для студентов факультета радиофизики и электроники.
Специальность Н. 01. 02. 00
Авторы-составители
Бовбель Евгений Иванович
Тишков Дмитрий Владимирович
Котов Олег Юрьевич
Лукашевич Анна Михайловна
В авторской редакции
Технический редактор Т.К. Раманович
Корректор С.М. Борисова
Ответственный за выпуск М.И. Хомич
Подписано в печать
. Формат 6084/16. Бумага офсетная. Гарнитура Таймс.
Усл. печ. л.1,16 Уч.- изд. л. 0,77 Тираж 60 экз. Зак.
Белорусский государственный университет.
Лицензия ЛВ №315 от 14.07.98.
220050, Минск, проспект Франциска Скорины, 4.
Отпечатано на копировально-множительной технике
факультета радиофизики и электроники БГУ
220064, Минск, ул. Курчатова, 5.
70
Скачать