/
Текст
Введение
Как раз в то время, когда наша страна вползала в столь непривычную для
нас рыночную экономику и переживала распад некогда могучей и по своим вре-
менам вполне эффективной советской науки, в математике и в теории обработки
функций, сигналов и изображений произошли события, которые можно охарак-
теризовать как новое важное открытие. Появились вейвлеты (wavelets)! Иногда
вейвлеты называют изобретением. Но вейвлеты — математические объекты, а
таковые изобретениями не признаются. Открытие — куда более точное опреде-
ление для этого нового средства представления функций и обработки сигналов и
изображений.
Многие века математиков занимала проблема единообразного (в смысле
применяемого аппарата) и достаточно простого (в смысле реализации) представ-
ления сложных функций. В ушедшем столетии этой проблемой занялись и пред-
ставители прикладных наук, в частности таких как связь, радиотехника и сред-
ства телекоммуникаций. Можно отметить такие крупные вехи на пути решения
этой проблемы, как разложение произвольных (с определенными ограничения-
ми) функций в ряп Тейлора, полиномиальную и рациональную аппроксимации
и, наконец, представление функций и сигналов рядами Фурье.
В после дпие годы стало очевидно, что традиционный аппарат представле-
ния произвольных функций и сигналов винде рядов Фурье (или Фурье-представ-
лений) оказывается малоэффективным для функций с локальными особенностя-
ми, в частности для импульсных и цифровых сигналов и изображений,
получивших весьма широкое распространение. Это связано с гем, что базисная
функция рядов Фурье - синусоида определена в пространстве от -со до и по
сзоей природе является гладкой и строго периодической функцией. Как об этом
давно говорили ниспровергатели рядов Фурье, такая функция на практике (в ус-
ловиях ограничения числа членов ряда или спектра разложения) принципиаль-
но ни способна описывать произвольные сигналы и функции.
Таким образом, известные методы представления сигналов и функций по-
стоянно наталкивались на принципиальные теоретические ограничения, не поз-
воляющие всерьез говорить о принципиальном решении проблемы единообраз-
ного представления функций и сигналов (особенно нестационарных) методами,
созданными на основе средств преобразований Фурье. Так продолжалось до
открытия вейвлетов, которые, похоже, наконец решили осу сложнейшую и ак
туальную паучную проблему Основой этого решения стала разработка принци-
пиально нового базиса и класса функций, которые используются для декомпози-
ции и реконструкции функций и сигналов -- в том числе нестационарных.
Соответственно был создан и новый аппарат представления функций и сигналов,
а уже совсем недавно и необходимые инструментальные и программные средст-
ва дли его реализации.
3
Введение
1«дей (даже для многих математиков) языке [1—20]. При этом авторы таких ра-
бот довольно часто допускают «математическую эквилибристику» в лучшем,
хотя и не всегда, смысле этого понятия. В результате, для непосвященных в де-
бри теории функций и их пространств, кратномасштабного анализа и иных
яейвлет-трюков читателей, вейвлеты часто выглядят как эффектный фокус, по-
вторить который невозможно. Недаром даже в книге одного из открывателей
нейвпогон г-жи Ингрид Добеши[3,11] можно встретить такие эпитеты в матема-
тическом описании вейвлетов, как «математическая шелуха», «вейвлег-трю-
ки» и «парадоксы».
Вейвлеты ио существу являются новыми математическими понятиями и
объектами, применение которых может теоретически строго и вгГрямь прибли-
зив любую функцию или любой сигнал. Поэтому они весьма перспективны в ре-
шении многих математических задач приближения (интерполяции, аппрокси-
мации, регрессии и т. д.) функций, сигналов и изображений. Вейвлет-обработка
сигналов обеспечивает возможность весьма эффективного сжатия сигналов и их
восстановления с малыми потерями информации, а также решение задач филь
трации сигналов. Таким образом, вейвлеты существенно пополняют (а вовсе не
опустошают) привычный гардероб традиционных средств обработки сигналов и
изображений.
Но особенно важна принципиальная возможность вейвлетов представлять
нестационарные сигналы, например, состоящие из разных компонент, действую-
щих в разные промежутки времени, модулированные сигналы и т. д. Такие сиг-
налы в наше время находят куда более широкое применение, чем стационарные
или квазистациоиарные (искусственно сводящиеся к стационарным) сингалы, а
также процессы и системы их порождающие. Как известно, ряды и преобразова-
ния Фурье в классическом виде непригодны для представления нестационарных ;
сигналов, процессов и систем. Поэтому возможность их представления вейвлета
МИ трудно переоценить. ,
Вейвлет спектрограммы намного более информативны, чем обычные Фу- !
рье-спектрограммы и (в отличие от последних) позволяют легко выявлять тон- f
чайшио локальные особенности функций, сигналов и изображений. Это полезно I
при решении задач идентификации сигналов и образов в картографии, в развед- I'
ке полезных ископаемых, в медицине и даже в судебном делопроизводстве (одно |
из первых полезных применений вейвлетов связано с сильной компрессией изо- 1
бражепий отпечатков пальцев без заметной потери информации).
Поистине неисчерпаемы возможности вейвлетов в обработке сигналов и изо-
бражений, например, для Интернета [32] с его ограниченной пропускной способ-
ностью каналов передачи информации, или в минимизации объема звуковых и ви-
деофайлов. Популярные стандарты MP4, JPEG 2000 и известные графические ’
программные средства Corel DRAW 9/10 уже широко используют вейвлет-техно-
логию обработки изображений. Она включена и в расширения новейших систем ’ ,
компьютерной математики (СКМ), таких как MATLAB, Mathcad и Mathematica
[25— 31]. Появились даже микросхемы для вейвлет-преобразований.
4
Введение
Словом, джин вырвался из бутылки! И теперь многие специалисты в обла
сти прикладной математики, обработки сигналов и изображений, связи и
средств телекоммуникаций лихорадочно пытаются понять, что же такое вейвле-
ты и как их можно использовать в своей практике.
Как и всякое важное научное открытие вейвлеты можно успешно приме-
нять с разной степенью знания о нем. Подавляющее большинство людей пре-
красно пользуются телевизором, автомобилем или самолетом не зньн тонкостей
их работы и тем более специфики проектирования этих сложных устройств. Так-
же можно использовать и вейвлеты. Например, художники и Web-дизайпсры
могут с помощью уже существующей вейвлет-обработки изображений добиться
высокого качества компьютерных рисунков к фотографий при значительной
степени их компрессии. Однако специалистам в области обработки сигналов и
изображений, безусловно, надо иметь достаточно четкое представление о том,
Ч1о такое вейвлеты и знать, «с чем их едят» — т. о. какими инструментальными
средствами можно практически работа!Р с вейвлетами.
Многие лк. наши специалисты в математике, радиоэлектронике и в ряде
других облштей науки и техники знают вообще, что такое вейвлеты, хотя и мо-
мента их ре<1лыюго зарождения прошло уже полтора десятка лет? Увы, прихо-
дится констатировать, что лишь очень и очень немпо: ие. Хотя по вейвлетам иа-
писшгы десятки научных работ российских авторов, всо они опубликованы в
изданиях, рассчитанных скорее ла математиков, чем па специалистов в области
прикладных наук. Списки таких работ, включая диссертации, можно найти в
переводной литературе [11, 12]. В связи с этими списке литературы данной кни-
ги приводится лишь несколько наиболее крупных обзорных работ наших авто-
ров по вейвлетам.
Новизна вейвлетов привела к тому, что даже название этих математичес-
ких объектов в литературе не установились окончательно. Б некоторых литера-
турных источниках вейвлеты называют всплесками и во.тнотками [15], во фран-
ко-язычной литературе используется термин ondelettes [2]. Мы остановимся па
термине вейвлеты, как наиболее употребительном в последнее время и ие имею-
щем достойното аналога на русском языко, хотя в переподной книге по вейвле-
там К. Чуи [12] вейвлеты названы «вэйвлетамн».
Вейвлеты (wawlett) — это обобщенное название особых функций, имею-
щих вид коротких волновых пакетов с нулевым интегральным значением и с гой
или иной, подчас очень сложной, формой, локализованных по оси независимой
переменной (I или т) и способных к сдвигу но ией и масштабированию (сжа-
тию/растяженпю).
Вейвлеты создаются с помощью специальных ба.ювых функций — прото-
типов, задающих их вид и свойства и удовлетворяющих целому ряду специфиче-
ских условий. Набор вейвлетов, в их временном или в частотном представлении,
может приближать сложный сигнал или изображение, причем идряльно точно
или с некоторой погрешностью. Таким образом, вейвлеты — это новый матема-
тический И практический аппарат представления и обработки произвольных
функций, сигналов и изображений, о чем и говорилось выше,
5
Введение
именно ряды и преобразования Фурье при всех их, известных и обнаруженных
уже в наше время и ранее, недостатках, легли в основу многих новых п ведущих
областей науки и техники, начиная от решения дифференциальных уравнений
различных классов, создания теоретических основ современной электротехни-
ки, радиотехники и всевозможных средств связи и телекоммуникаций и кончая
многочисленными физическими и измерительными приборами на их основе
(анализаторы спектра, синтезаторы сложных сигналов по гармоникам и др.).
Но вейвлеты имеют явные преимущества перед рядами Фурье как в общем
и точном представлении функций, так и их разнообразных локальных особенно-
стях. Они представлены намного более разнообразным набором типов, чем един-
ственная синусоидальная функция в рядах Фурье. Это разнообразие вейвлетов с
процессом
В области обработки изображений вейвлеты дают новейшие и весьма эф-
фективные способы их обработки, например, декомпозиции, реставрации и
идентификации сигналов и изображений, удаления из них шума, сжатия фай-
лов, хранящих данные и изображения, и т. д. и т. п. Обширный набор базовых
функций вейвлетов и множество их типов позволяют легко адаптировать их к
решению тех или иных конкретных и общих задач практики.
Вейвлеты и основанные на них интегральные сейнлст-преобразования бы-
ли предложены в начале 90-х годов прошлого века (хотя первый простейший тип
вейвлета, нс существу, был списал Хааром (Haar) еще в 1909 году) и в последую-
щее время интенсивно развивались. Наибольший вклад в разработку теоретиче-
ских оснон нейвлегов внесли Meiiep (Meyer), ДобсШи (Daubcchics), Малл (Mallat)
и другие ученые, опубликовавшие первые теоретические работы в этом направ-
лении г сумевшие донести их до широкой научной общественности [1—12]. К
настоящему времени за рубежом в области вейвлет-преобразований опубликова-
В последние годы резко активизировался интерес к вейвлетам и у нас в
России. Так, в 2001 году в издательском центре «Регулярная и хаотическая ди-
намикам (Москва, ФТИ РАН) вышла в переводе большая фундаментальная кни-
га И. Добеши по вейвлетам [3,11], а издательство «Мир» подготовило перевод
учебного курса по вейвлетам Ч. Чуи [12], ранее изданного на английском, япон-
ском и китайском языках. При вполне приличном тираже этих книг явно мате-
мптичесниго характера они не залеживаются на полках наших магазинов, хотя
г момента издания этих книг в оригинале прошло уже более 10 лет. А потому в
них и нс могло быть опис-пния современных инструментальных средств по вейв-
летам. Следует также отмстить изданную весьма ограниченным тиражом кни-
гу [13] и ряд обзорных статей по вейвле.'ам, опубликованных в пашей периоди-
ческой печати [14—20]. Весьма полезны и книги по рядам и преобразованиям
Фурье. Из большого числа таких книг отметим лишь [21—24].
6
Введение
К сожалению, общим недостатком литературьг по вейвлетам и вейвлет-
преобразовацилм (не только российской, но и мировой) является весьма слабое,
или вообще отсутствующее, описание практических примеров применения вейв-
летов, доступных иллюстраций их теоретических положений и, главное, описа-
ния современного программного инструментария для работы с ними. В этом чет
ничего удивительного — нужные средства вышли из лабораторий (нередко не
очень афишируемых) лишь в самые последние годы.
А потому лишь совсем недавно в России появились книги (25, 26], в ко-
торых описаны пакеты расширений по вейвлетам для отдельных конкретных
систем компьютерной математики (СКМ) Mathcad 2001, MATLAB 6/6.1 и
Matheniatica 4 [27—30]. Между тем, именно они представляют собой тот мощ-
ный практический и универсальный инструмен г для работы с вейвлетами, ко-
торый одинаково необходим как специалистам-практикам, разрабатывающим
практические приложения вейвлетов, так и теоретикам, желающим иметь
практическую апробацию своих теоретических выводов.
Итак, до сих пор не было обобщающей научной монографии справочного
характера, содержащей достаточно уравновешенное описание как теоретичес-
ких основ вейвлетов и вейвлет-преобразований, так и прикладных аспектов их
применения и нужного для этого программного инструментария. Этот серьез-
ный пробел и призвана устранить данная книга,
В ней предпринята попытка пайти ту золотую середину в теоретическом и
практическом описании вейвлетов, которая сделала бы такое описание понят-
ным многим специалистам — прикладникам и вполне полезным для читателей
с самыми различными интересами. Поскольку основополагающие теоретичес-
кие работы по вейвлетам уже появились, в том числе в нашей литературе, теоре-
тические сведения в данной книге носят обзорный характер и не претендуют на
полноту математического описания. В частности всякая «математическая экви-
либристика» из этой книги сознательно удалена.
В тоже время, данная книга впервые, при вполне допустимом и разумном
объеме теоретических снедений, даст достаточно полное описание новейшего
программного инструментария для работы с вейвлетами и многочисленных
практических примерев работы с ними. Описанные в книге возможности ряда
крупных пакетов расширения С'К'М по вейвлетам и многочисленные примеры их
Применения взаимно дополняют друг друга и в целом дают уникальную возмож-
ность познать многогранность самой современной вейвлет-технологни.
Именно это и заложено в смысл названия книги «Вейвлеты. От теории к
практике». Эго название никоим образом не принижает фундаментальной роли
математической теории вейвлетов, которая уже нс раз была отмочена выше. Оно
говорит лишь об одном — пора перейти от созерцания теории вейвлеюп к широ-
кому практическому их применению и к активному экспериментированию с
вейвлетами Автор надеется, что такой характер книги сделает ее ценным теоре-
тическим и практическим пособием для всех категорий читателей, желающих
освоить или уже осваивающих на практике Новое, интересное и важное откры-
тие конца 20-го века — вейвлеты.
7
О содержании и стиле книги
Книга является первой справочной научной монографией, посвященной
крупной, новой и акгуальиой проблеме — вейвлетам и вейвлет-преобразовапи-
ям, возможности которых представлены описанием ряда современных иигтру-
; 1<1в.1ен в обзорной форме, доступной для понимания специалистами в области
прикладной математики н обработки функций, сигналов и изображений.
Основное внимание в внще уделено вопросам практического применения
вейвлетов и вейнлет-преобразований на основе такого мощного программного
инструментария, коим являются профессионально ориентированные пакеты
расширения по вейвлелам, созданные для систем компьютерной математики
MATLAB Mathcad и Mathematica (как новейших, так и предшествующих им
версий) Но этим пакетам расширения (Wavelet Toolbox, Wavelet Extension Pack
и Wavelet Explorer) книга может выполнять функции достаточно полного спра-
вочника и руководства пользователя.
Вводная глава 1 содержит основные определения функций и сигналов и
средств их обработки, предшествующих появлению вейвлетов. Таким образом.
функций и стационарных сигналов, в том числе на основе рядов Фурье и быстро-
го (оконного) преобразования Фурье, и новейшим аппаратом вейвлет-преобразо-
па пи л, н 1-ом числе нестационарных сигналов. Все теоретические сведения в этой
главе подкрепляются многочисленными примерами вычислений в наиболее мас-
совой у нас, системе Mathcad, документы которой имеют привычный для матема-
тиков и |;)учно-технических специалистов вид пользовательского интерфейса.
Глава 2 содержит основной обзорный материал по теории вейвлетов. Чтобы
'летать этот далеко не простой материал доступным, в эту главу включено мно
жество практических примеров, реализованных в «чистой» (без пакетов расши-
рения) системе Mall cao. 2UU1 и наглядно иллюстрирующих основные положения
теории вейвлетов. Дан на я глава содержит минимальный набор теоретических по-
ложений, там не менее вполне достаточный для понимания большинства нюансов
практического применения вейвлетов.
Здесь оппсы каются возможности вейвлетов как непрерывных одномерных,
так и дискретных, пакетных и двумерных. Значительное внимание уделено крат-
цомасп1тцбному ana низу и описанию особенностей ортогональных вейвлетов, до-
иускаюи.их точную реставрацию сигналов после их декомпозиции. Описал вре-
менной и часготный подход при прямом и обратном вейвлет-преобразованиях как
непрерывных, так и дискретных. Дается понятие о вейвлет-фильлрах Н о войвлет-
ки создания вейвлетов и обширного набора вейвлетов, входящего в наиболее мощ-
ный падет расширения чп вейвлетам — Wavelet Toolbox для спетом MATLAB.
Глава 3 описывает работу с пакетом расширения Wavelet Toolbox системы
MATLAB в командном режиме. Этот пакет у нас доступен на CD-ROM. имею-
8
О содержании н стиле книги
щихся в широкой продаже, хотя и имеющих сомнительное происхождение. В
главе 3 описаны все функции этого пакета, за исключением функций задания
вейвлетов, описание которых было вынссспо в главу 2. Для каждой функции
приведены синтаксические формы записи и примеры практического примене-
ния. Примеры охватывают всю проблематику применения вейвлетов — от при-
менения утилит построения деревьев вейвлет-преобразованшг и расчета отдель-
ных характеристик вейвлетов, до обработки сигналов и изображений, включая
их компрессию и очистку от шумов.
Глава 4 описывает мощную вейвлет-'лабораторию на основе графического
интерфейса пользователя (GUI) системы MATLAB. Показаны возможности выво-
да детальной (в том числе графической) информации ли всем типам вейвлетов, во-
шедших з пакет Wavelet Toolbox и наглядная реализация множества примеров
вейвлет-обработки сигналов и изображений с высокой степенью визуализации ре-
зультатов и удобными средствами интерактивной работы с пользователем.
Глава 5 посвящена работе с пакетами расширения системы Mathcad, под-
держивающими иейвлет-преобразования. Она начинается с описания восьми но-
вых функций по работе с вейвлетами пакета расширения пл численным методам
Nпшене Recipes. Но основное внимание впервые в нашей литературе уделено
специализированному на работу с вейвлетами обширному пакету расширения
Wavelet Extension Pack и электронной книге по нему. Дапо описание всех функ-
ций этого пакета и многочисленных примеров их применения.
Обширная глава б посвящена еще одному мощному пакету расширения по
вейвлетам — Wavelet Explorer для одной из самых известных СКМ Matliema-
tica 4/4.1, которая является лидером среди систем компьютерной математики.
Этот материал также публикуется впервые. Wavelet Explorer принадлежит к
числу наиболее крупных и вполне завершенных программных продуктов по
применению вейвлетов, И он охватывает практически все области применения
вейвлетов — от визуализации вейвлетов и контроля за их параметрами, до обра-
ботки сигналов и изображений.
Вообще надо отметить, что материалы по вейвлетам в разных пакетах рас-
ширения оказываются далеко не идентичными. Каждый пакет расширения име-
ет свое ярко выраженное лицо, свои достоинства и недостатки. И лить знаком-
ство одновременно с несколькими пакетами расширения, впервые ставшее
возможным в этой книге, позволяет получить достаточно полную информацию
по практическим аспектам применения вейвлетов и вейвлет-прсобрааовапий.
Заключительная глава 7 содержит обзор ряда важных областей примене-
ния вейвлетов в таких областях, как идентификация и анализ функций и сигна
лов, очистка от шумов и компрессия сигналов ti изображений. Дается описание
Интернет-страниц, поддерживающих представление информации по вейвлетам
Ряд материалов этой главы выходит за рамки описания возможностей пакетов
расширения СКМ по вейвлетам. Например приводятся данные об использовании
вейвлет-обработки изображений в популярных графических пакетах Core1
DRAW 9/10 и данные о некоторых Других программных средствах для работы с
вейвлетами. Здесь же описываются пути дальнейшего развитая вейвлетов и
вейвлет преобразований в математике, физике, биологии, медицине и в других
областях науки и техники.
9
Благодарности
Эта книга наппсапа благодаря помощи и солидарности многих лиц и орга-
низаций. Особой благодарности заслуживают Представители ряда крупных за-
падных корпораций США, создателей всемирно извостпых систем компьютер
пай математики, ла предоставление автору их новейших программных
продуктов, пакетов расширений по ним, документации и информационного
обеспечения.
С. Вольфрама (S Wolfram) — главу фирмы Wolfram Research. Inc.
(США) - и сотрудника этой фирмы Олега Маричева автор благодарит за предо-
ставленную возможность полуторамесячной стажировки в США и прекрасные
условия для работы. Это позволило собрать множество новых материалов, как по
системе Mathematica и пакету Wavelet Explorer (разработки этой фирмы), так и
по другим системам компьютерной математики, включая Mathcad и VTATLAB, и
оценить новые направления их применения в вейвлет обработке сш налов и
фуикций.
Представители фирмы MathSoft Iiic. в Европе Rob Doley и Diane Ashfield
заслуживают глубокой благодарности за оперативное предоставление автору
расширения системы Mathcad — Wavelet Extension Pack с электронной книгой
по нему.
Особую благодарность автор выражает представителям крупней корпора-
ции Mf.thWorks Naomi Fernandes и Courtney Esposito за поддержку издания
книг автора по спотемам класса MATLAB и за своевременное и весьма оператив-
ное предоставление одной из самых мощных систем компьютерной математики
MATLAB 6.0/6.1. Входящий в них пакет расширения по вейвлетам — Wavelet
Tooloox является уникальной программной лабораторией для удобного изуче-
ния и применения вейвлетов. Поэтому данному пакету в книге уделено особенно
много места.
Ав юр благодарит своих молодых сотрудников доцента Ирину Абраменко-
ву и аспиранта Елену Петрову за помощь в подготовке отдельных примеров в
книге и споры по их содержанию.
Директору ЗАО «Смоленский телепорт» Г. Рухами ну автор признателен за
многолетнее подключение к Интернету по спутниковому каналу, что позволило
гголучцть самые свежие сведения по проблематике книги и выйти на прямое со-
трудничество с указанными выше корпорациями.
Особую благодарность автор выражает Международной Соросовской Про
грамме в области точных паук (ISSEP), чей грант и признание в 1999 и в 2001 г.г.
ощутимо помогли автору осознать необходимость в подготовке подобных книг в
Пугни, псе еще допольио смутные для Российской науки л образования времена.
10
Предупреждения
Автор и издательство сделали все возможное, чтобы материал книги был
доступен, своевременен, актуален, объекта нон н точен. Однако описанные м кни-
ге новые понятия — вейвлеты и относящиеся к ним новейшие программные
средства находятся в начало своего бурного развития. Поэтому нет гарантии в
том, что н крайне сжатые сроки пощ оговки книги что го в jrx описании не было
упущено п даже неточно истолковано.
Автор и издательство предупреждают читателей, чти они не несут ответст
венногш зо неправильное истолкование читателями каких либо терминов и по-
ложений, относящихся к вейвлетам, и за трудности в их применения при реше-
нии тех или иных конкретных задач. Кроме того, авторы и издательство не несут
ответственности за возможные негативные результаты использования случай-
ных копий систем компьютерной математики Matncad, MATLAB и MaLliematica
и пакетов их расширений, имеющихся на многочисленных компакт-дисках, а
также за любой моральный и материальный вред, который вытекает из работы
(увы, далеко не всегда правильной) пользователей с этими системами.
Эти предупреждения вовсе ие означают наличия каких-либо особых недо-
статков в системах компьютерной математики и в пакетах их расширения, опи-
санных в данной книге. Предупреждения читателям просто являются долгом ав-
тора и издательства перед ними, вытекающим из современного юридического
подхода к использованию быстро развивающихся программных средств и их
описаний. Подобные предупреждения вы найдете в любом описании современ-
ных программных продуктов.
Эти предупреждения сделаны еще и потому, что предшествующие книги
автора уже много раз незаконно копировались на «пиратские» компакт-диски беа
уведомления автора и даже с удалением его фамилии. При этом скопированные
тексты и рисунки нередко относились совсем не к тем версиям математических
систем, которые находились на подобных дисках. Хотелось бы предупредить чи-
тателей, что имеющиеся на таких дисках материалы не только незаконны, но и,
подчас, совсем не соотве гствуют тому, что написано па их конвертах и наклейках.
Адреса
Отзывы и иожелания о книге можно отправлять по адресу электронной
почты автора dyak@keytown.com или но адресу издательства, выпустившего кни-
гу. Вы можете также посетить домашнюю страницу автора эгой книги на сайте
АО «Смоленский телепорт» www keytown ccrrnusers/dyak.
В России описанные в книге программные средства распространяет рос-
сийская фирма SoftLiue. Для заказа этих программных средств можно обра-
щаться по адресу се Ичтерпет-страницы www.softline.ru. В тлаве 7 можно найти
множество Интернет-адресов и других организаций, имеющих прямое отноше-
ние к проблематике данной книги.
11
Принятые в книге обозначения
Для облегчения чтения книги в ней используются следующие обозначе-
ния.
* Имена элементов интерфейса выделены специальным шрифтом, например:
«Позиция Open меню File».
♦ Термины, встречающиеся в тексте в первый раз, как правило, выделены кур-
сивом, например: «Строка меню — это строка, открывающая доступ к пунк-
там меню с различными командами».
* Моноширинным шрифтом обозначены векторы, матрицы, функции, операто-
ры, программные блоки и вообще все, что можно увидеть в окне редактора си-
стемы Mathcad. Например: Мате = Nhegir .Nend.
В тексте вам также будут встречаться специальные врезки, в которых со-
держатся примечания и предупреждения.
ПРИМЕЧАНИЕ___________________________________________________________
В примечаниях даются сведения, позволяющие лучше понять тему раздела.
ВНИМАНИЕ_____________________________________________________________
Под э him заголовком идут снедения, требующие особого внимания. Чаще все-
го эго сведения, подводящие итог рассмотрения тех или иных аспектов при
мснспия вейвлетов или указания на специфику использования инструмен-
та льцых средств но ним______________________________________________
В книге использован ряд общепринятых сокращений:
AM — амплитудная модуляция;
АЧХ — амплитудно-частотная характеристика:
Б11Ф — быстрое преобразование Фурье;
ВВП — быс’рос вейвлет-гтрообразоваиие;
ВП — вейвлет-преобразование;
ДКП — дискретное косинусное преобразование;
ДПФ — дискретное преобразование Фурье;
КЗС — квадратурные зеркальные фильтры;
КИХ — конечная импульсная характеристика;
КМА — кратномасштабный анализ;
КФ — квадратурные фильтры;
ОВП — обратное вейвлет-преобразование;
ОДВП — обратное дискретное вейвлст-прсобразовакие;
ОНВП — обратное непрерывное вейвлет-преобразование;
12
Принятые в книге обозначения
ОПФ —обратное преобразование Фурье;
ПВП — прямое вейвлет-преобразование;
ПДВП — прямое дискретное вейвлет-преобразование;
ПНВП — прямое непрерывное вейвлет-преобразование;
ПИФ — прямое преобразование Фурье;
ФВЧ — фильтр верхних частот;
ФНЧ — фильтр нижних частот;
ФЧХ — фазо-частотная характеристика;
ЧМ частотная модуляция;
phi — функция аппроксимации вейвлетов;
psi — детализирующая вейвлет-функция .rcrrottrljjhhh
Специальные математические обозначения вводятся По мере необходимос-
ти в них в начале глав 1 в 2.
13
Глава 1. Функции,
ряды и преобразования Фурье
1.1. Понятие о функции
1.1.1. Несколько слов о функции
Более Двух сотен лет тому назад в обиход математиков пришло понятие
функции, как некоторой зависимости одной величины, например f или у, от дру-
гой величины — независимой переменной х или t. Функции стали обозначать
как f(x), f(t),y(x)viT. д. Могут быть и функции ряда переменных, например
вида f(х.у.г....). Временные функции вида s(t), e(t), f(t) и г. д., широко исполь-
зуемые в технике связи, принято именовать сигналами. А функции, заданные В
определенные моменты времени называют временными рядами.
Довольно скоро Стало ясно, что это понятие 1рибует серьезных уточнений.
Например, следует оговорить, в каком интервале [а,Ь] может задаваться незави-
симая переменная х или t, может ли она принимать в нем все виды численных
значений (например, в виде Целых, рациональных, вещественных, иррацио-
нальных или комплексных чисел), как задать характер зависимости зависимой
переменной / или у от независимой переменной (например в явном или неявном
или даже н итерационном виде) и т. д.
1.1.2. Области определения функций
Часто функция определена на некотором отрезке от л~а до х—Ъ. D этом слу
час область определения функции принято записывать как х*=[а,Ь]. Иногда ис-
пользуют и иные обозначения. Например, если интервал определения функции
задан как а<л<Ъ, то это записывают как хе (a,i>].
Особого внимания требует определение функций в бесконечном интервале
значений независимой переменной от — « до +°о. Мы будем обозначать его как R,
т. с. R:—( +“). Пусть, скажем, х принадлежит R, ото .записывается как х sR.
Примером функции, определенной в R является синусоидальная функция sjn(x).
1.1.3. Компактный носитель функции
В литературе по вейвлетам широко используется поияч ие носителя функ-
ции. Носителем функции фактически является область ее определения. Напри-
мер, если f(x) определена при xg[a,tf| и f(x)=0 при а<х<-Ъ и Ь-а невелики, то го-
ворят, что функция f(x) имеет компактный носитель. Если а=-°= ипи 6=+°о или
имеет место и то и другое, то функция компактного носителя не имеем.
14
Глава 1. Функции, ряды и преобразования Фурье
Введение понятия компактного носителя ценно в связи с возможностью за-
мены бесконечных пределов интегрирования в преобразованиях Фурье и в вейв-
лет-преобразованиях на конечные пределы. Это нередко упрощает вычисления и
делает математические преобразования корректными исходя из практических
соображений.
1.1.4. Пространства функции
R процессе изучения функций мы встретимся с понятиями о множествах
или пространствах функций. Пространство ZP[R] означает, что функция
удовлетворяет условию.
J«
К примеру, часто используемое гильбертовие пространство Z2[R] означает,
чго f(x) удовлетворяет условию
Moi ут встречаться и иные пространства, например L2(0. 2я) означает, что
f(x) удовлетворяет условию:
||/(х)|2</х < °°
1.1.5. Периодичность функции
Практически можно считать, что в нашем слугае Цх) — любая кусочно-
непрерывпая функция. Она может быть периодической. Например, на периоде
2л периодической будет функция, удовлетворяющая равенству f(x)=f(x±2n).
Множество функций из L2(0, 2я) называют пространством 2я-периодических
функций, интегрируемых с квадратом.
Примером такой функции является и комплексная синусоида
/('x/)-e'I=cos('x>+i-sin('r), где i=y—1 — мнимая единица. Синусоида является
функцией периодически продолжаемой па всю вещественную ось х. Однако,
пространству L2(R) синусоида пе принадлежит, поскольку из условия определе-
ния этого пространства следует, что прицадлещащиеему функции должны зату-
хать при х е R. Синусоида таким свойством не обладает.
Анализ функций — обширный раздел математики. Он позволяет выявить
такие особенности функций, как их периодичность, наличие особых точек (на-
пример разрывов самой функции и ее производных, точек перегибов и т. д.), су-
ществование и тип экстремумов, наличие асимптот и др. Обширный материал по
анализу функций с помощью СКМ собран в книге [27].
15
Глава 1. Функции, ряды н преобразования Фурье
ВНИМАНИЕ_________________ ________________________________
В представленных ниже материалах отобраны только -е снедения и примеры,
которые непосредственно подводят нас к пониманию причин появления вейв-
лет-технологии и принципиально важны для сопоставления ее возможностей
с возможностями классического, в том числе спектральное, анализа функ-
ций и сигналов.
1.2. Приближение функций и сигналов
1.2.1. О приближении функций и сигналов
Некоторые формулы, описывающие важные физические явления и мате-
матические понятия, например траектории планет Солнечной системы, настоль-
ко сложны, Нго занимают десятки и сотни страниц. В связи с этим появилась за-
дача представления сложных функций более простой функцией или набором
простых функций — задача аппроксимации. При атом весьма желательно, что
бы аппроксимация была как можно более точной и вычислялась за малое время.
Развитие науки и техники привело к созданию великого Множества про
слых по зиду специальных математических функций, представляющих реше-
ния дифференциальных уравнений определенного вида или интегралов. Боль-
шинство из них вычисляется только в численном виде и такие вычисления
1ребуют много времени. Выли созданы таблицы подобных функций и написаны
книги, содержащие множество таких таблиц, например получившая мировую
известное гь книга [33].
Таблицы обычно дают значения функций для вполне определенных (дис-
кретных) значений г, независимой переменной х. Точки, в которых они опреде-
лены, называют узловыми. Из работы с таблицами возникает задача интерполя
ции функций, т. е- вычисления значений f(x,) в промежутках между узлами х,.
Нередко эта задача тесно связана с аппроксимацией, поскольку подходящую ап-
проксимирующую функцию можно использовать для вычисления значений f(x)
в промежутках между узлами.
Вычисление функции за пределами узловых точек получило название экс-
траполяции. Экстраполяция возможна как вперед, так и назад. Экстраполяцию
часто именуют предсказанием значений функций. Мечтой многих, увы далеко
не всегда исполнимой, является создание математического предсказания собы-
тий — часто непредсказуемых, например таких как землетрясения, обвалы в
финансовой сезере и ставшие печально известными террористические акты.
Как известно, на практике данные могут иметь погрешности, порою весь-
ма значите чкные. Например, применяемые в технике связи сигналы нередко за-
сорены шумами, уровень которых можеч многократно превосходить уровень по-
лезной компоненты сигналов. В связи с этим возникает целый спектр задач
обработки таких сигналов и функций, например, сглаживание данных, очистка
их от шума (или, что почти одно и то же — выделение полезных сигналов из шу-
ма). Проведение аппроксимации е одновременной статистической обработкой
16
Глава 1. Функции, ряды н преобразования Фурье
данных относится к регрессии или задачам регрессионного анализа. При этом
широко используется оценка среднеквадратической погрешности для всех точек
обрабатываемых данных, а сам метод подобного приближения и анализа функ-
ций получил паавапие метода наименьших квадратов (МНК).
Итак, с появлением функций, я затем сигналов, возникла достаточно об-
щая задача их однообразного представления простыми функциями или рядами
таких функций — задача приближения функций. Под простотой функции мы
будем прежде всего понимать возможность ее простого и быстрого вычисления.
Разумеется, в наш век уже не ручного вычисления, а с помощью компьютера.
Будем называть эту задачу задачей приближения функций и сигналов.
В многовековой истории развития математики принимались неоднократ-
ные попытки решения задачи приближения произвольных функций и сигналов.
Некоторые из них привели к созданию классических методов интерполяции, ап-
проксимации и регрессии, значение которых велико и з наши дни.
Но, пожалуй, одним из самых выдающихся открытий в матемщике стали
ряды Фурье. Впервые появилась возможность однообразного представления про-
извольных (с некоторыми оговорками) функций и сигналов с помощью набора
синусоид. Для периодических сигналов эти синусоиды — гармоники имеют
кратные частоты.
Ряды Фурье долгое время воспринимались как математическая абстрак-
ция. Однако, с появлением радиосвязи и с созданием высокоизбирательных ра-
диоприемных устройств выяснилось, что гармоники сложных сигналов являют-
ся объективно существующими объектами и характеризуются их спектром
(набором) Ныне владелец обычного транзисторного радиоприемника может в
этом убедиться, принимая паразитное излучение от строчной развертки своего
телевизора. Оно воспринимается как множество сигналов с частотой, кратной
частоте строчной развертки (около 17 кГц). Правда, сигналы эти не модулиро-
ванные и их молено обнаружить по показаниям индикатора настройки или по
пропгдгщию шумов радиоприемника. Триумфом Фурье-анализа и синтеза стало
создание специальных и довольно сложных физических приборов — анализато-
ров спектра и синтезаторов сложных сигналов.
Однако по мере практического использования рядов Фурье стало нарас-
тать недовольство имн. Было очевидно, что базовая функция — синусоида явно
неудачна для представления функций и сигналов с локальными особенностями,
например разрывами. Бесконечное число членов в ряде Фурье недопустимо и не-
реально па практике. А их ограничение приводит к возникновению больших
погрешностей (эффект Гиббса [23]). Появление сигналов с явно выраженными
локальными особенностями, например импульсных, цифровых, сигналов изоб-
ражений и т. д., все чаще и чаще стало демонстрировать невысокую эффектив-
ность и принципиальные недостатки Фурье-анализа и синтеза.
В связи с этим предпринимались неоднократные попытки применения ря-
дов с иными базовыми функциями (например Уолша, Хаара и др.). И лишь к
концу 80-х годов пришлого столетия эти попытки привели к новому откры-
тию — вейвлртон. которым и посвящена данная книга. Вейвлеты (wavelets)
{БИБЛИОТЕК Я 17
А. ИМСИТ ;
Глава 1. Функции, ряды н преобразования Фурье
представляют собой довольно обширный класс функций, имеющих вид корот-
ких волн, ограниченных во времени или в пространстве и способных к переме-
щению и масштабированию. Замечательно, что многие вейвлеты могут пред-
ставлять абсолютно точно или приближенно произвольные функции, сигналы и
изображения. Именно это и открывает перед ними перспективы широкого при-
менения для анализа функций, обработки сигналов и изображений.
Однако вейвлеты оказались «крепким орешком». Математическая теория
вейвлетов, базирующаяся на сложных понятиях пространств функций и сигна-
лов,'ортогональности базисных функций и их нормах, намного сложнее и тонь-
ше, чем ставшая уже привычной теория Фурье-приближения функций и сигна-
лов. Теория вейвлетов находится в развитии, многие понятия в ней непривычны
и сложны для непосвященных. Особенпо в условиях отсутствия инструменталь-
ных средств для практической работы с ними.
Мир специалистов, заинтересованных в применении вейвлетов, разбился
на два отделенных друг от друга лагеря. В первом находятся опытные математи-
ки, развивающие математическую теорию вейвлетов, ио слабо владеющие совре-
менными инструментальными средствами по работе с ними или старающиеся не
афишировать применение таких средств. Во втором, куда более обширном лаге-
ре, находится основная масса специалистов в области прикладной математики и
обработки сигналов и изображений. Большинство из них даже не слышали о
вейвлетах.
Эн, книга, как отмечались во введении, перекидывает мост между этими
дьумя 'гигерями. Она одинаково полезна как опытным математикам, получаю-
щим сведения о самых современных и новейших приграмммо-инструменталь-
йьт> средств IX дня проверки своих идей и их внедрения в практику, так и, осо-
бенно, прикладникам и практикам, применяющим их для создания новых
ннсоь-оэффс’ктивиых технических изделий, приборов и программных средств по
обработке сигналов и изображений.
D книге описаны следующие пакеты расширения систем компьютерной
математики (СКМ), позволяющие работать с вейвлетами:
• Wavelet Toolbox (WT) — пакет для мощных матричных СКМ MATLAB 6.0/6.1;
• Wavelet Extension Pack (WEP) — пакет для популярных СКМ для всех
Mutkcad 8/2000/2001;
• Wavelet Explorer (WE) — пакет для лидера в области компьютерной матема-
тики — СКМ Matin inatica 4/4.1.
Для категории читателей, на которых рассчитана эта книга, крайне важно
детально осмыслить, что же нового дает вейвлет-технология перед привычной
гехнолш’ией приближения функций и обработки сигналов и изображений.
Именно поэтому книга открывается этой главой, в которой дается обзор теорети-
ческих понятий по приближению функций и обработке сигналов, сопровождаю-
щийся практическими примерами реализации положений теории. В принципе
этот раздел имеет вполне самостоятельное значение и может рассматриваться
как введение в технику приближения функций и сигналов.
18
Глава 1, Функции, ряды и преобразования Фурье
Предполагается, что читатель имеет доступ к современным СКМ класса
Mathcad, MATLAB и Mathematica. Мощная и популярная СКМ Maple 6/7 пока
не имеет пакета расширения по вейвлетам и потому в данной книге не рассмат-
ривается, В этой книге нет описания упомянутых СКМ самих по себе — новички
в их применении могут воспользоваться многочисленными книгами по этим си-
стемам, например [25—31]. В тоже время по упомянутым выше пакетам расши-
рения в книге содержится исчерпывающий справочный материал и множество
примеров (как приведенных в документации по этим пакетам, так и новых). Это
позволяет использовать книгу не только как теоретическое, но и, прежде всего,
практическое руководство по применению современного программного инстру-
ментария по вейвлетам.
1.2.2. Приближение функций рядом Тейлора
Одним из первых методов единообразного представления функций было
разложение их в ряд Тейлора [34]. Если f(x) дифференцируемая функция, то ее
разложение в ряд Тейлора в окрестности точки хО задается выражением:
Л») = f(xO) + (х - хО) + (X - х0)! + ... + (х - хО)-
Если разложение выполняется относительно точки хО’-О, его принято на-
зывать рядом Маклореня:
«X, = л»0)+-ф°) х, гр,-+... .т-
Ряд Тейлора можно представить в следующем виде:
Г(Х) = «ХО) + (1.1)
ПРИМЕЧАНИЕ _________________________________________________________
Формула (1.1) по существу реализует две важные идеи вейвлет-преобразова-
ния: разбиение приближения функции на две компоненты — аппроксимиру-
ющую (грубую) и детализирующую, а также реализацию детализации по ите-
рационной формуле. В самом деле, в правой части (1.1) член f(хО ) есть грубое
приближение к значению функции в любой точке, близкой к хО и, что заме-
чательно, к абсолютно точному приближению в самой этой точке. Член с сум-
мой является детализирующим. Детализацию можно проводить вплоть до
и л и, ограничиваясь конечной точностью, до i—n.____________________
К сожалению, представление произвольной функции рядом (1.1) имеет
множество Недостатков. Даже для непрерывных функций этот ряд чаще всего
сходится очень Медленно. Как известно, есть и непрерывные не дифференцируе-
19
Глава 1. Функции, ряды н преобразования Фурье
мые функции. И вообще операция дифференцирования является далеко не про-
стой и точной. Для разрывных и периодически повторяющихся функций разло-
жение (1.1) практически неприемлемо.
Тем не менее, операции разложения в ряд Тейлора и Маклорена настоль-
ко распространены, что включены в набор встроенных функций практически
всех математических систем. Например, в системах Mathcad для этого исполь-
;yeicH опция series в составе оператора символьного вывода —Пример разло-
жения функции sinlr) в рядМаклорепа представлен на рис. 1.1. Вместах вво-
да после оператора > указывается имя независимой переменной и порядок
ряда Следует отметить, что ряды многих функций могут не содержать члены
с нечетной или четной cicuc-нЫО, поэтому порядок реального ряда может быть
ниже заданного.
Рис, 1 1. Разложение функции ып(х) в ряд Маклорена
таких приложений являются выводимые в окно редактирования документа па-
литры мтгемя-’ическнх знаков. Общая палитра таких знаков Math и две палит-
ры распространенных операций (вычислений Calculus я символьных операций
ки любых математических операций могут вводиться даже неопытными пользо-
вателями. В связи с этим в дальнейшем элементы интерфейса этой снеткмы бу-
дут опускаться.
20
Глава 1. Функции, ряды и преобразования Фурье
Этот рисунок прекрасно иллюстрирует и основные проблемы разложения
функции sin(r) в ряд Маклорена:
• погрешность разложения мала только в малой окрестности точки хО;
• при заметном удалении от точки хО отклонение кривой ряда от кривой исход-
ной точки хО резко нарастает и становится практически непредсказуемым;
• никаких признаков периодичности функции sin(x) в ее разложении в ряд не
обнаруживается
Суммируя сказанное, можно со всей определенностью сказать, что ряды
Тейлора и Маклорена приближают даже гладкую и легко дифференцируемую
синусоидальную функцию плохо. Впрочем, как и подавляющее большинство
других функций. Исключением являются лишь функции, которые могут быть
представлены полиномами, но заданы в завуалированном виде. Но, в этом слу-
чае. скорее всего, само разложение в ряд Тейлора или Маклорека является из-
лишним п требуется просто грамотное преобразование функции в ее полиноми
алыюе представление.
1.2,3, Интерполяция и экстраполяция
функции по Лагранжу
Можно попытаться приблизить таблично заданную функцию другим спо-
собом не привязываясь к конкретной одной точке. Пусть некоторая функция
f(x) определена рядом своих узловых точек (х„у,) на некотором отрезке [а,Ь].
Под интеркаляцией мы будем подразумевать вычисление значений f(x) в любом
промежутке [х„х|+)] а пределах отрезка [аЛ]. Соответственно, любое вычисление
f(x) вис отрезка [а,Ь] является экстраполяцией..
Если при интерполяции задача сводится к вычислению значений функции
между '/злами, то при экстраполяции задача состоит в вычислении значений
фун -сции вне того интервала, на котором она задана в виде таблицы, графически
или иным способом. При аппроксимации таблично заданная функция (что, кста-
ти, -те является обязательным признаком аппроксимации) заменяется другой
функцией, как правило, более простой и, потому, более быстро вычисляемой,
которая приближенно описывает поведение исходной функции на некотором от
резке. При :>там ня различных отрезках аппроксимирующие функции могут
быть и чаще всего бывают разными.
Широко применяемые в практике обработки таблиц линейная и квадра-
тичная интерполяции, представленные выражениями
t(x)„^ = alx 1 а„ и f(x)K,-a2x* t-aix + a0-
являются частным видом полиномиальной интерполяции (и аппроксимации),
при которой значения }(х) вычисляются с помощью аппроксимирующего по-
линома:
^а(х ,—апх' + ап-1хп'1 +• ... ах' + ... + агх2 + а,х + а0=
21
Глава. 1. Функции, ряды и преобразования Фурье
Реализация полиномиальной аппроксимации сводится к вычислению ко-
эффициентов полинома а,-/|и;, а-о так чтобы точки fa(х,) точно совпадали с
узловыми точками ffх,). Нетрудно показать, что эта задача решается довольно
легко. В самом деле можно составить сии гему линейных относительно а„, a„-t, ...,
л,, <7- уравнений вида (1 .Я) так что в каждом уравнении x=xi и f(x,)=fa(Xi). Из ре-
шения такой системы можно получить требуемые коэффициенты а„, an_t, aJt
многочлена- При атом значения полинома в узловых точках точно совпадают со
значениями ординат в этих точках.
Па самом деле есть и более эффективные способы полиномиальной аппрок-
симации и ряд удобных форм полинома — в частности форма, известная как
формула интерполяции по Лагранжу [33]. Ес удобство в том, что в ней фигури-
руют лишь координаты узловых точек. Обобщенная формула Лагранжа в прак-
। ичс'кой ес реализации в системе Mathcad Представлена ня рис, 1.2. Эта форму-
ла iiciJo.'iLovei- только данные об узловых точках функции.
ИНТЕРПОЛЯЦИЯ ТАБЛИЦ ПО ЛАГРАНЖУ
Векторы и yi г-едяют тябпш гу
интерполируемой функции для
послсду|Ощей интерполяции
методом Лагранже с применю! лом
общей формуль! интерполяции
f(.j = Hi ]^[ 'Y “11. -____—j Общая формула интерполяции
Примеры интерполяции f(2)-4 f(4).15 917 f(6)- 36 093
। = и ,i «- с ю
Пос-роение поданным
интерполяции графика
функции с нанесенными
на него уэловь ми топками
- темными кружками
г рафик проходит точно
через узловые точки
Рис. 1.2. Пример интерполяции табличных данных
с помощью обобщенной формулы Лагранжа
Недостатками обобщенной формулы Лагранжа является ее сложность и
отсутствие явного выражения для аппроксимирующего полинома.
1.2.4. Полиномиальная аппроксимация
Несложно выполнить л полиномиальную аппроксимацию таблично задан-
ной функции в общем случае (для произвольно заданной степени полинома), то
•’(ль получить аппроксимирующий полином (1.2) в явном виде. Пример этого
Глава 1. Функции, ряды и преобразования Фурье
представлен на рис, 1.3. В данном случае гарантировано, что кривая полинома
точно (или точнее с погрешностью машинных расчетов) пройдет через все узло-
вые точки. Но, увы, гарантии высокой точности при интерполяции и тем более
при экстраполяции ист.
ПОЛИНОМИАЛЬНАЯ АППРОКСИМАЦИЯ
степень полиноа
Определение попинома Р(х)
График лолинсма
и нзнесеннь е на
него узловые тонки
Рис. 1.3. Пример полиномиальной аппроксимации
Особенностью рассмотренной только что глобальной полиномиальной ап-
проксимации является однозначное соответствие между числом узловых точек
У аппроксимируемой функции и степенью полинома n^N-1 На практике мож-
но нередко задать функцию множеством точек, но тогда степень полинома ста-
нет очень большой, его вычисления займут много времени, а главное при этом
точность вычислений может резко ухудшиться из-за осцилляций полиномов вы-
соких степеней. Практически максимальная степень полинома не превышает
8—10 и лишь в СКМ с точными вычислениями может быть повышена.
ВНИМАНИЕ
Интересующимся специальной техникой аппроксимации (Паде, Чебышева,
минимаксной и др.) стоит обратить внимание на ее реализацию в такой мощ-
ной математической системе, как Maple. В книгах [27,31] приводятся приме-
ры того, как выбор высокоточной аппроксимации позволяет получить верные
значения до 5 —8 цифр результата и при этом сократить время вычислений
функций порой до сотни рат. При атом особенно важно учитывать особеннос-
ти аппроксимируемой функции, для чего (как мы увидим из дальнейшего)
чрезвычайно полезными оказываются вейвлеты.
23
Глава 1. Функции, ряды и преобразования Фурье
1.2.5. Сплайновая интерполяция
В настоящее время важным направлением существенного повышения точ-
ности интерполяции является переход от интерполяции одним полиномом к ин-
терполяций рядом полиномов невысокой степени. В общем случае реет, идет о том,
что используются отрезки полиномов невысокой степени, интерполирующие дан-
ные ДЛЯ нескольких смежных узловых точек. Если пуяспая то-пса выводит за их
пределы, меняется набор узловых точек и строится новый полином. Такого рода
интерполяции является локальной, поскольку при построении очередного отрезка
лолипома используются локальные данные лишь о части точек.
II I1 i VX , VY , х)
Для заданных векторов узловых гичек УХ и VY и заданного аргумента х
функция 1 ’йГегр(7Х, vy, х) возвращает значение функции у(х) при ее ли-
нейной интерпл-гяции. При экстраполяции используются отрезки прямых, про-
веденных {срез две крайние точки слева (линейная экстраполяция назад) или
справа (линейная экстраполяция вперед).
В ряде случаев весьма полезной оказывается сплайноаля интерполяции,
при которой используются отрезки полиномов обычно не выше третьей сгеие-
ПИ кубические сплайны. Требуется, что бы кубические сплайны проходили че-
рез смежные три ближайшие узловые точки и, кроме того, в граничных точках
должны совпадать не только значения сплайнов и функции, но и значения их
первых 11 вторых производных. Это означает высокую плавность линий интерпо-
ляции (аппроксимации). Такую плавность обеспечивает гибкая линейка, как бы
закреп ионная в узловых точках. Отсюда и пошло название splaln — линейка.
Итак, сплайн-интерполяция характеризуется следующими особенностями.
• график кусочно-полиномиальной аппроксимирующей функции проходит
точно через узловые лючки;
• в узловых точках цел- разрывов функции и разрывов производной;
благодаря низкой сл-ецеци полиномов погрешность между узловыми точками
обычно достаючпо мала;
• поскольку используется множество полиномов, то появляется возможность
аппроксимации бысл-роменяющихся функций.
Разумеется, сплайны могут быть не только кубическими. Обычная линей-
ная интерполяция являел-ся в сущности сплайновой при сплайнах первого поряд
Ка. Достаточно практична интерполяция сплайиа'ми вл-орого порядка, но основ-
ной все же является кубическая сплайновая интерполяция. Сплайны порядка
выше трех настолько громоздки, что не нашли применение на практике.
Сплайновая интерполяция может быть как локальной, так и глобальной (с
применением длл вычислений сплайнов всей совокупности узловых точек).
24
Глава 1. Функции, ряды н преобразования Фурье
Гпляйтпл могут также отяичагьси характером экстраполяции (представлением
функции за пределами отрезка [а,Ь]|, которая может быть линейной, параболи-
ческой или кубической.
приходится использовать набор разных полиномов и переходить от одного из
них к другому при смене значения независимой переменной-
Для осуществления сплайновой интерполяции система Mathcad нреплага-
ет четыре встроенные функции. Гри из них служат дли получения векторов вто-
рых производных сплайи-функций при различном индо интерполяции:
сер- । no (VX, VY) —возвращает осктор VS вторых производных при прибли-
жении в опорных точках к кубическому полиному;
pt.pl ч.’(vx, VY) —возвращает вектор VS вторых производных при прибли-
жении в опорных точках к параболической кривой;
• Jspl-i (УЧ. VY: —возвращает вектор Vе, вторых производных при прибли-
жении в опорных точках к прямой.
Четвертая функция — inteio(VS, VX, VY, xi —возвращав г значение
у (х) для заданных векторов VS, VX, VY и заданного .значения х.
Рис. 1.4. Лилейная и епляйновля интерполяции функции
Таким образом. сплаин-иптерполяпия проводится в два этапа. На первом с
помощью функций <_ =[ilj..ie, ps pl j не или ispl j по отыскивается вектор вторых
производных функции у (к) , заданной векторами V< и VY не значений (абсцисс и
ординат) Затрм гл втором этапе для каждой искомой точки вычисляется значе-
ние у (х) с помощью функции inteip.
25
Глава 1. Функции, ряды и преобразования Фурье
На рис. 1.4 показано применение описанных функций для линейной и
сплайновой интерполяции.
Нетрудно заметит ь, что при линейной интерполяции график оказывается
слишком грубым — отчетливо видны точки перегибов. В то же время сплайн-ин-
герполяция, несмотря на малое число точек в этом примере (их всего 6), дает
внешне прекрасные результаты: график функции оказывается плавным и точки
его перегиба вообще незаметны. Однако внимательное изучение кривой интерпо-
ляции показывает, что нередко она (как и гибкая линейка) может слишком
сильно выгибаться вверх или вниз.
Аппарат сплайновой интерполяции есть и в других СКМ — MATLAB,
Maple и Mathematica. Однако надо отдать должное разработчикам систем класса
Mathcad — их инструментарий для работы со сплайнами более удобен, чем в дру-
гих СКМ. Среди разнообразных типов вейвлетов сплайновые вейвлеты занимают
достойное место.
1.2. в. Двумерная линейная
и сплайн-интерполяция
Для повышения качества построения трехмерных графиков имеется воз-
можность выполнения двумерной сплайн-интерполяпии. Это позволяет сущее.т-,
вепгю повысить представительность сложных графиков функций, в том числе
контурных (рис. 1.5).
ДВУМЕРНАЯ СПЛАЙНОВАЯ ИНТЕРПОЛЯЦИЯ
г 0 6 J • 0 6 К, । Y| > j М^| । ып(Х, Yj)^ b/x-y - augmor|(sort(X), ecrl (Y))
s. («„.И.)
'low = Mxyq о xhigh Mxyn_| n у low h'xyoi yhigh = Mxyn_j t m = 4 n yn -4 n
26
Глава 1. Функции, ряды н преобразования Фурье
На этом рисунке слеза показан контурный график после двумерной силайк*
интерполяции, а справа — без нее (с применением линейной интерполяции), Не-
трудно заметить, что плавность контурных линий при двумерной си плановой ин-
терполяции заметно лучше, чем при двумерной линейной интерполяции.
1.3. Регрессия и сглаживание данных
1.3.1. Постановка задачи регрессии
Как отмечалось, па практике вполне возможно задание достаточно боль
шоро числа узловых точек аппроксимируемой функции. Например, в физичес-
ки?. экспериментах для лиги достаточно порой повторить цикл измерении не-
сколько раз (а порою и сотни раз). Если подвергнуть такие данные хотя бы
простейшей статистической обработке (например, усреднению), го можно замет-
но уменьшить случайную погрешность измерений.
Таким образом, мы логично подходим к желательности объединения
аппроксимации с элементарной статистический обработкой данных. Это и реа-
лизуется в задачах регрессии, при которых график аппроксимирующей функции
дэлжен проходить в юблаке» узловых точек исходной функции так, что бы сум
марная среднеквадратичная иотрешность для всех точек была минимальной.
Математически постановка задачи регрессии сводится к следующему
Пусть есть набор точно определенных значений х, и соответствующих им не точ
них. значений у,. Допустим, мы предполагаем, что Существует некоторая завися
мость f(x. aJ. al.ah), которая может рассматриваться как приближение к за-
висимости у(х), чьи точки представлены как у,(хх). Таким образом, мы вправе
записать:
у, - t(x,. aJ. al,... ak) +
Здесь?;, — независимые случайные величины с нормальным заколом рас-
пределения, определяющие погррпгпостк задания у . Обычно их считают следст-
вием ошибок эксперимента. Задача регрессии заключается в том, «'’о бы найти
параметры aO, al ..., ah такими, при кот орых представление у(х) нашей Функци-
ей f(x) имело наименьшую среднеквадратичную погрешность. Для этого нужно
минимизировать функцию:
Ф(яО,я1,...,ай) = ^(f(x, а0,а1„,.«й) — у,)2
К примеру, для весьма часто применяемой линейкой регрессии, когда
f(x )-aO+al*x (часто обозначают аО=а и al— Ъ) надо минимизировать следующее
выражение:
Ф(а0,я1) = ^(аО + alx, — у,)2
27
Глава 1. Функция, ряды н преобразования Фурье
Если приравнять <ЗФ^аО и дФ'ба! к нулю, то для линейной регрессии мож-
но найти ее параметры иО и al в явной форме:
-->iL_,
°0 '§4
Аналогичным образом можно получить выражения и для других видов ро-'
грессии: полиномиальной, экспоненциальной, логарифмической и так далее.!
Ввиду сложности соответствующих выражений они здесь не приводятся. Многие1
задачи нелинейной регрессии удается свести к рассмотренной выше линейкой,
используя соответствующие преобразования [35]. [
ВНИМАНИЕ __________________________________________I
Мерой оптимальности подбора функции регрессии часто служит коэффициент |
взаимного соответствия данных, именуемый коэффициентам корреляции. Его[
близость к 1 означает, что данные хорошо коррелированны.___
На практике все современные математические системы имеют универсаль-
ный аппарат проведения регрессии различного вида, до предела упрощающий
реализацию достаточно сложных алгоритмов регрессии. Так что пользователю
нет смысла отвлекаться на вывод порой весьма сложных, но теперь уже триви-
альных, уравнений для выполнения того пли иного вида регрессии. Достаточно
лишь четко задать функцию регрессии, которая должна наилучшим образом со- ’
ответствовать исходной зависимости.
ПРИМЕЧАНИЕ___________________________________________________
Ряды Фурье для дискретно заданных сигналов с коэффициентами, определи
емыии единственным точно обоснованным для этого случая методом прямо-
уюльников, представляют также собой пример регрессии, поскольку при-
ближают сигнал в смысле минимума среднеквадратической погрешности
приближения. Аналогична и ситуация с вейвлетами — ограниченный набор
вейвлетов приближает сигналы или функции по критерию минимума сред-
неквадратической погрешности. __________________________
1.3.2. Выполнение линейной регрессии
К линейной регрессии можно свести многие виды нелинейной регресси
при зависимостях вида у (л). Для проведения линейной регрессии в систем;
Matlirari встроен ряд приведенных ниже функций:
• corrfVK, VY) — возвращает скаляр — коэффициент корреляции Пирсона;
28
Глава 1. Функции, ряды и преобразования Фурье
intercrpt(VX, VY) — возвращает значение параметра а (смсщспис линии per
рессии по вертикали);
slope(VX, VY) — возвращает значение параметра b (угловой коэффициент пи-
нии регрессии).
ЛИНЕЙНАЯ РЕГРЕССИЯ
ORIGIN - 1
Вь1'|ислвние коэффицио! irca а и b nni 1сйной
регрессии и задание се функции i(x)
а = intercept(VX,vy) b = sIope',V0C,V1)
fk>) = a + bx Примерь. сс.|Ч.1Сг^|1ий
Рис. 1.6. Лилейная регрессия
На рис. 1.6 показан пример проведения линейной регрессии для данных,
представленных значениями элементов в векторах V.X n VY. Обратите внимание
на то. что узлы при линейной регрессии расположены неравномерно
Как видно ни рис- 1.6. линия регрессии проходит в «облаке» исходных то-
чек с максимальным средиекнадра тинным приближением к ним. Чем ближе ко-
эффициент корреляции к 1, тем точной представленная исходными точками за
висимость приближается к линейной.
1.3.3. Реализация линейной регрессии
общего вида
В Matherd реализована возможность выполнения линейной регрессии об-
щего вида. При пей задгиная совокупность точек приближается к функции вида:
Ь'(х,К1,К2, , K-i)=K -KJ (х) । К2-Г2 (х) - лКп-Fn ( < '
Таким образом, функция регрессии является линейной комбинацией
функций 11(х), t2(x), .., Гп(х), причем сами эти функции могут быть нели-
нейными, что резко расширяет возможности такой аппроксимации п распрост-
раняет ее на многие нелинейные функции
Для реализации линейной регрессии общего вида используется функция
linfxt (V>:, vy, i-) , возвращающая вектор к коэффициентов лиееиной р« рессии
общего вида, при кот< ром среднеквадратичная погрешность приближения <об-
29
Глава 1. Функции, ряды н преобразования Фурье
лака» исходных точек, координаты которых хранятся в векторах VX и VY. оказы-
вается минимальной. Вектор F должен содержать функции F1(к). F2 (х). ,
£'п (х) , записанные в символьном виде.
ЛИНЕЙНАЯ РЕГРЕССИЯ ОБЩЕГО ВИДА
Рис. 1.7. Пример проведения линейной регрессии общего вида
Рис. 1-7 поясняет проведение линейной регрессии обшего вида с примене-
нием функции 1 infit. Процедура проведения вычислений настолько проста,
что не нуждается в особых комментариях.
Расположение координат точек исходного массива может быть любым, но
вектор VX должен содержать координаты, упорядоченные в порядке их возраста-
ния. Вектор \Y должен содержать координаты, соответствующие абсциссам s
векторе -. X.
1.3.4. Реализация одномерной и многомерной
полиномиальной регрессии
В Mathcad введена и функция для обеспечения полиномиальной регрессии
при произвольной степени полинома регрессии regress (VX,VY,п), которая воз-
вращает вектор VS, запрашиваемый функцией а псе гр (VS, VX, VY, х ) и содержа-
щий коэффициенты многочлена л-й степени, который наилучшим образом при-
ближает «облако» точек с координатами, хранящимися в векторах VX и VY.
На рис. 1.8 показан пример выполнения полиномиальной регрессии. Для вы-
числения коэффициентов полинома регрессии используется функция submacrix.
На практике по рекомендуется делать степень аппроксимирующего полян
ма выше 4—6. поскольку погрешности реализации регрессии сильно возрастают
Обычно рекомендуется проводить регрессию для рядя полиномов с нарастающим
степенями, оценивая погрешность с помощью МПК. Этот процесс останавливаю
на этапе, дающем наименьшую погрешность.
30
Глава 1. Функции, ряды н преобразования Фурье
ПОЛИНОМИАЛЬНАЯ РЕГРЕССИЯ
Степень полинома к=з
Создание зектооов X и Y исходных данных
У iTit(X) - mean(Y))'
-nean(Y)i2
Гоафикпопичоиа
и исходные то'ки
Рис. 1.8. Полиномиальная регрессия
Рис. 1.9. Пример регрессии отрезками полиномов второй ct cite пи
ника регрессии на основе ортогональных полиномов лишена этого недостатка
При этом, рассчитанные на предшествующем шаге, коэффициенты .юлинома
астаютсг с прежними значениями, так что каждый этап регрессии позволяет
31
Глава 1. Функции, ряды н преобразования Фурье
пойти очередной коэффициент аппроксимирующего полинома. Однако главного
недостатка — быстрого нарастания погрешности при увеличении степени поли-
нома эта техника, увы, не ликвидирует.
функция regress создает единственный приближающий полином, коэф-
фициенты которого вычисляются по всей совокупности заданных точек. Иногда
полезна другая функция полиномиальной регрессии, дающая локальные при-
ближения отрезками полиномов второй степени loose (VX, VY, span) . кото-
рая возвращает вектор VS, используемый функцией interp iVS, VX, VY, x) для
паглучшего приближения данных векторов VX и VY отрезками полиномов вто-
рой степени. Аргумент span.>0 указывает размер локальной области приближа-
емых данных (рекомендуемое начальное значение — 0.75). Чем больше span,
гем сильнее сказывается сглаживание данных. При больших значениях span
эта функция приближается кфункцни reyiess (VX,VY, 2).
Ня рис. 1.9 показан пример приближения сложной функции со случайным
разбросом ее значений с помощью совокупности отрезков полиномов второй сте-
пени (функция Loess) для двух значений параметра span. Пример дан для
Mathcad 2001.
На рис. 1.8 нетрудно заметить, что при малом значении span=0.05 отсле-
живаются характерные случайные колебания значений функции, тогда как уже
при span=r, 5 кривая регрессии становится практически гладкой, К сожале-
нию, из-за отсутствия простого описания аппроксимирующей функции в виде
отрезков полиномов этот вид регрессии широкого применения не нашел.
1.3,5. Проведение многомерной регрессии
Mathcad 2000/2001 PRO позволяет выполнять также многомерную регрсс
сию. Самый типичный случай ее использования - приближение поверхностей в
трехмерном пространстве. Их можно описать, задав массив значений высот z.
соответствующих двумерному массиву Мху координат точек (х, у) на горизон-
тальной плоскости.
Новых функций для этого не задано. Используются уже описаипыс ранее
функции, но в несколько иной форме:
• regress (Мху, Vz, П) — возвращает вектор, запрашиваемый функцией
in Leip (VS, Мху, Vz, V) для вычисления многочлена п-й степени, который на-
илучшим образом приближает точки множества Мху и Vz (Мху — матрице
размера тх2, содержащая координаты х и у, Vz — m-мерный вектор, содержа-
щий z—координаты, соответствующее m точкам, указанным в Мху);
• loess (Мху, Vz, span) —аналогична loess (VX, VY, span), но н много
мерном случае;
• inteip(VS, Мху, Vz, Vi —возвращает значение z по заданным вектора,
vs (создается функциями regress или loess) и Мху, Vz и V (вектор коорди
наг х и у заданной точки, для которой находится z).
Пример многомерной интерполяции был приведен выше. В целом мно
мирная регрессия применяется сравнительно редко из-за сложности сбора исход
пых данных.
32
Глада. 1. Функции, ряды и преобразования Фурье
1.3.6. Проведение нелинейной регрессии
общего вида
Под нелинейной регрессией общего вида подразумевается нахождение век-
тора К параметров произвольной функции F (х, KI, К2,... Кп), при котором обес-
печивается минимальная среднеквадратичная погрешность приближения «об
лака» исходных точек.
Для проведения нелинейной регрессии общего вида используется функция
gentit (V> УУ, vs, F), которая возвращает вектор К параметров функции F,
дающий минимальную среднеквадратичную погрешность приближения функ-
цией F (у., К1 ,К2, ..,Кп; исходных данных.
Вектор F должен быть вектором с символьными элементами, причем они
должны содержать аналитические выражения для исходной функции и ее про-
изводных по всем параметрам. Вектор VS должен содержать начальные значе-
пия элементов вектора К. необходимые для решения системы нелинейных урав-
нений регрессии итерационным методом.
На рис. 1.10 показан пример выполнения нелинейной регрессии общего
вида с помощью нелинейной функции F(x,a,b)=aexp;-b-x)+a.o.
НЕЛИНЕЙНАЯ РЕГРЕССИЯ ОБЩЕГО ВИДА
При решении агой задачи возникают две проблемы. Во первых, подо вы-
числить значения производных по переменным а и б. В документе на рис. 1.10
это сделано средствами символьных операций (первая строка документа после
заголовка), что наглядно показывает пользу от таких операций. Вторая пробле-
ма связана с необходимостью применения функции genf it в ее стандартном ви-
де. Поэтому пришлось заменить параметр а На к>, а параметр b на к2. Остальные
операции в примере на рис. 1.10 достаточно очевидны.
33
Глава 1. Функции, ряды н преобразования Фурье
1.3.7. Новые функции для проведения регрессии
в Mathcad 2000/2001
В последних версиях систем Mathcad 2000/2001 PRO введен ряд новых
функций регрессии:
• exp£j.L(vx, vy, vg) — возвращает вектор, содержащий коэффициенты
(а, Ь и с) аппроксимирующего выражения вида а*еЛ (Ь*х +с, график кото-
рого лучшим образом приближав гем к точкам, координаты которых хранят-
ся в векторах vy. и vy (вектор vg содержит первое приближение к решению);
• lgs£j.t । vx, vy, vg) — то же, ио для выражения я/ (1 +Ь*₽Л (- с*х) ) ;
• logfrt । vx, vy) — то же, но для выражения а*'.п (х+b) +с (начального при-
ближения не требуется);
• trudLiLivx, vy) —то же, но для выражения а+Ьх (начального приближения
не требуется);
• ivx, vy, vg) —то же, но дня выражения а'хЛЬ+с (вектор vg содер-
жит первое приближение к решению);
• s’nfitivx, vy, vg) —то лее, по для выражения a* sj п (ктЬ) + с.
ВНИМАНИЕ________________________________________________
С помощью алгоритма реализации нелинейной регрессии общего вида
(см. рис. 8.9) можно легко осуществить регрессию любого частного вида, в том
числе и всех тех вадов, которые реализуются приведенными выше функция-
ми. Нетрудно это сделать и с помощью функции Minerror. Тем не менее, ес-
ли пользователь нуждается в данных видах регрессии, то к его услугам теперь
есть ряд функций, которые можно применить без «долгих раздумий» (эти
слова взяты в кавычки, ибо любые вычисления без обдумывания лучше не
выполнять).
1.3.8. Пример синусоидальной регрессии
в Mathcad 2000/2001
Еще один вид регрессии — синусоидальной — представляет документ, по-
казанный на рис. 1. П. Здесь исходные векторы данных формируются путем до-
бавления к значениям синусоидальной функции случайных чисел. Регрессия ре-
ализуется функцией sinfit.
Рекомендуется разобраться в небольших отличиях выполнения регрессии
в приведенных выше примерах
1.3.9. Функции сглаживания данных
живания данных. Ряд функций Mathcad предназначен для выполнения оиера-
гтооШ(гладкий):
34
Глава. 1, Функции, ряды и преобразования Фурье
СИНУСОИДАЛЬНАЯ РЕГРЕССИЯ (Mathcad 2000/2001)
>•0 50 Х-0.С1 50 X • 1 У ••«WJ-1+п>4®
(1159 ']
-0069 I ад . Ej sm(x + Ej + Ej
-O|47,I
0 5 10 15 Л 45 _U 33 « 43 50
Рис. 1.11. Пример свнусоидадьиой регрессии (Mathcad 2001/2001)
Рис. 1.12. Сглаживание данных
35
Глава 1. Функции, ряды и преобразования Фурье
• medsmooth(VY, п) — для вектора с m действительными числами возвращав
лг-мерный вектор сглаяссппых данных по методу скользящей медианы, пара
метр п задает ширину окна сглаживания (п должно быть нечетным числом
меньшим п)>
• ksmootr (VX, vy, b) — возвращает n-мерный вектор сглаженных данньп
VY, вычисленных на основе распределения Гаусса. VX и VY — п-мерные некто
ры действительных чисел. Параметр Ь (полоса пропускания) задает ширин}
окна сглаживания (Ь должно в несколько раз превышать интервал между точ
ками по оси x)j
• s-ipsmocth (VX, VY) —возвращает п-мерныйвектор сглаженных данных VY,
вычисленных на основе использования процедуры линейного сглаживания
методом наименьших кзадратов по правилу 7? ближайших соседей с адаптив-
ным выбором k. vx и VY — n-мерные векторы действительных чисел. Элемен-
ты вектора VX должны идти в порядке возрастания.
На рис. 1.12 показан пример применения функции sabsmooth (X, Y), ко-
торая выполняет- сглаживание функции Y (X) s представленной векторами X и Y
координат ее точек.
В примере на рис. 1.12 для получения исходного массива точек использу-
ется синусоидальная функция с шумом, смоделированным с помощью генерато
ра случайных чисел. В средней части графика сглаживание неплохо выделяв
зашумленную зависимость. Однако по краям заметно существенное отклоненн '
сглаженной кривой от синусоидальной. Это наглядно свидетельствует о не впол
яс точной работе алгоритма сглаживания. При сглаживании бывает полезно
применение функции ^ortfY), сортирующей данные векторов, что иногда
уменьшает погрешности численного алгоритма сглаживания,
1,3,10. Предсказание зависимостей
Весьма интересной является включенная в систему Mathcad (начиная с шс
стой версии) функция предсказания (экстраполяции) predict (data, k,N), где
data — вектор данных, к. — степень полинома регрессии nN — число точек. Она
;ю ряду заданных равномерно расположенных точек позволяет рассчитать неко-
торое число N последующих точек, то есть, пи существу, осуществляет экстрапо-
ляцию произвольной (но достаточно гладкой и предсказуемой) зависимости.
На рис. 1.13 показано применение функции предсказания — экстраполяции.
Функция предсказания обеспечивает высокую точность при монотонных
исходных функциях или функциях, представляемых полиномом невысокой сте-
пени, и при достаточно большом числе исходных точек. Рис. 1.13 иллюстрирует,
что она неплохо предсказывает функцию, содержащую колебательную нараста-
ющую (или затухающую) составляющую на интервале, примерно равном на-
чальному. Однако, при больших N ошибка предсказания может быть значитель-
ной. Улучшенные функции предсказания имеются в пакетах расширения
Numeric Recipes и Signal Processing системы Mathcad [26—28].
36
Глава. 1. Функции, ряды н преобразования Фурье
ПРИМЕНЕНИЕ ФУНКЦИИ ПРЕДСКАЗАНИЯ
Задаем 100 точек исходной зависимости k-o ioc , Г k\ ft
datak = cos - exp -
p prsdicl(data ,20,150)
Строим график исход| юй и эктраголируемой зависимости
100 150
kj-t-IOI
Рис. 1.13. Применение функции предсказания (экстраполяции)
У почитателей экономических расчетов может появиться соблазн приме-
нить эту функцию для предсказания таких событий, как наш российский «чер-
ный вторник» или августовский (1998 года) обвал рубля. Придется огорчить эко-
номистов — функция prpdirt применима к предсказуемым событиям,
поведение которых описывается реальной математической зависимостью. Ука-
занные же события относятся к разряду непредсказуемых, так что здесь приме-
нение данной функции предсказания просто бесполезно. Однако в странах со
стабильной экономикой эта функция вполне подходит для описания сезонных и
стабильных колебаний курса валют, прибылей фирм и предприятий и других за-
кономерных явлений. Она даст неплохое представление о динамике развития
сложных процессов, что уже само по себе важно к полезно.
1.4. Введение в ряды Фурье
1.4.1. Синусоидальная функция
Описанный выше и в целом хорошо известный аппарат приближения
функций страдает рядом ограничений. Он плохо приспособлен для приближс
пня периодических функций и функций с локальными особенностями. Аппарат
страдает отсутствием единообразия и общности в представлении функций и» осо-
бенно. сигналов и изображений. В значительной мере от этих недостатков сво-
бодны ряды Фурье и основанные ца их применении методы приближения функ-
ций. Ряды и преобразования Фурье стали трамплином для появления вейвлетов
и еейвлет-преобразований.
37
Глава 1. Функция, ряды н преобразования Фурье
Ряды Фурье представляют собой тригонометрические многочлены постро-
енные на основе периодической базисной функции — синусоиды (и косинусои-
ды, представляющей собой синусоиду с фазовым сдвигом в л/2). Благодаря это-
му ряды Фурье способны приближать Периодические функции. В рядах Фурье
используются синусоиды и косинусоиды с кратными частотами, получившие на-
звание — гармоники.
На особое значение и своеобразную гармонию синусоиды обращали внима-
ние многие ученые (отец и сын Бернулли, Эйлер и др.) при изучении колебаний
сложных механических систем — от звучащей струны рояля до мостов н иных
сооружений. Оказалось, что главные колебания таких систем (это такие колеба-
ния при которых все точки сис(емы одновременно проходят через состояние рав-
новесия) происходят по почти синусоидальному зак ону. Вскоре выяснилось, что
колебания могут иметь куда более сложный характер из-за разных частот коле-
баний отдельных частей систем.
Если вы крутите прикрепленный к веревке камень с постоянной скоро-
стью (числом оборотов в единицу времени), то проекция камня на ось ординат и
есть синусоида — рис. 1.14 сплошная линия. Рис. 1.14 получен прямо в СКМ
Malljcad 2001. Синусоидальные колебания характерны для многих физических
объектов, их генерируют, к примеру электронные генераторы синусоидальных
сигналов, Ввиду их неизменности но времени, симметрии н гладкости синусои-
дальные колебания получили название гармонических колебаний-
Одним из важных свойств синусоиды является ее периодичность. Значе-
ния функции sin(x) повторяются с периодом а=2л, так что эта функция удовле-
творяет условию периодичности функций Другое не менее важное
свойство синусоидальной функции — ее стационарность. Все это означает, что в
какой бы интервал времени в прошлом или в будущем мы не рассматривали си-
нусоиду, опа будет всегда представлять кривую одного и того же вида с неизмен-
ными во времени параметрами, которые мы рассмотрим чуть ниже. Значения
этой функции будут периодипрски (с периодом в 2л) повторяться в интервале
значений от [—1,1]. А интегральное значение синусоиды для любого периода или
ряда целых периодов равно 0, поскольку площади положительных и отрица-
тельных полупериодов синусоиды одинаковы.
Гис. 1 14. Синусоидальная функция без сдвига фазы (сплошная линия) н со сдвигом
фазы, соответственно на —0.1л, —0.2Л и +Л/2 (другие линии)
38
Глава 1, Функции, ряды и преобразования Фурье
Рис. 1.14 показывает синусоиду в интервале от —2п до +2л. Если попробо
вать построите график синусоиды в более широком интервале (заинтересованный
читатель может Приделать это самостоятельно), то станет ясно, что отмеченные
закономерности синусоиды полностью сохраняются. Более того, оказывается,
что синусоида определена в интервале [—oo,+s«] (или R), т. е. на всей временной
оси. Это значит, что синусоида в неизменном виде представлена не только на не-
котором определенном промежутке времени, но и в прошлом и даже в будущем.
Эта своеобразная гармония синусоидальной функции дала повод назвать синусо-
идальные колебания гармоническими.
Часто синусоидальная функция в виде сигнала записывается как функция
от времени;
s(t) = A sin(2n/,t+<p), (1.3.а)
Где А — амплитуда синусоиды, f — ее частота выраженная в Гц (Гц — одно иол-
вое колебание в одну секунду) и <р — фазовый сдвиг (или просто фаза). Нередко
используется и понятие круговой частоты синусоиды <у=2л/, тогда синусоида за-
писывается в виде
s(t) — A з!п( cot+<р). (1.3, б)
Как нетрудно заметить, отрицательный фазовый сдвиг <р сдвигает синусо-
иду вправо на величину <р, выраженную в радианах или в долях безразмерного
периода 2л. Если ?*=л/2, то синусоида вырождается в функцию cos(W) или
cos(x) — см. на рис. 1.14 кривую из точек.
С параметрами синусоиды не все так просто, как кажется на первый
взгляд. Достаточно очевиден параметр — амплитуда А. Это максимальное от-
клонение синусоидальной функции в обе стороны (положительных и отрица-
тельных значений s) относительно нулевого уровня, взятое по модулю. О фазе
только ито говорилось. А что такое частота?
Оказывается, что тут есть уже ряд определений. Иногда говорят, что час-
тотаэго число периодов синусоиды в одипицу времени (чаще всего в секунду). Но
тогда частота либо будет всегда целым числом, либо нам придется ввести поня-
тие о части периода Т. Можно также определить частоту, как (=1/Т, г. а. вели-
чину обратную периоду. Но, пожалуй, математически наиболее точным будет
понятие частоты, вытекающее из прямого преобразования Фурье. Оно будет опи-
сано в згой главе далее. При этом любая частотная компонента сигнала с нвиз
денными параметрами характеризуется вертикальной линией на частотном спе-
ктре сигнала. Она становится частотной компонентой спектра.
ВНИМАНИЕ _____________________________________________________________
Частоту принято измерять в герцах, 1 Гц — это одно колебание в 1 секунду.
1000 Гц это 1 кГц, 1000 кГц есть 1 МГц, 1000 МГц есть 1 ГГц и т. д. Период
синусоидальных колебаний измеряется в секундах, в миллисекундах
(1мс—0,001 с), в микросекундах (миллионная доля секунды — мкс), з нано-
секупдах (миллиардная доля секунды — нс) и т. д.
39
Глава 1. Функции, ряды н преобразования Фурье
Примеры дифференцирования и интегрирования и
с-инусоицальнсй функции
— sin(x) -» cos(x) ~i,sin(x) —> -cos(x)
dx dxJ
fl uu
J ^.ЬМ-о «,
j sm(x) dx —> undefined j sir(x) dx -» undefined
Риг. 1.15. Примеры дифференцирования и интегрирования синусоиды
(документ Mathcad}
Важно отметить, что синусоида является плавно изменяющейся по вели-
чине функцией, т. е. гладкой функцией. Она не содержит ни разрывов самой
функции, ни разрывов ее производной. Синусоида — легко дифференцируемая
функция. Интегрирование синусоиды в конечных пределах также не вызывает
трудностей, одиако интегралы с бесконечными пределами (или хотя бы с одним
бесконечным пределом) не вычисляются (расходятся). Это поясняют примеры.
Приведенные на рис. 1.15 (напомним, что для примененной системы Mathcad
оператор -ч задает символьный вывод результатов вычислений, т. е. дает резуль-
тат в виде формулы, в частности числа).
Обратите внимание па то. что вывод вместо результата слова undefined оз-
начает. что соответствующий интеграл не определен и не берется.
1.4.2. Модуляция синусоидальных колебаний
Поскольку синусоида характеризуется тремя параметрами (амплитудой,
частотой и фазой), то у практиков — радистов тут же появился соблазн исполь-
зовать электрические синусоидальные сигналы для передачи информации — по-
нача пу звуковой. Заметим, что в стационарном случае параметры синусоиды не-
изменны и потому ица никакой информации (кстати, как и постоянный ток) не
песет. Стимулом к применению синусоидальных колебаний в технике связи ста-
ла не только возможность их передачи по проводам, но и через «свободное прост-
ранство» (эфир) в виде электромагнитных волн с малой длиной волны и, соответ-
ственно, с высокой частотой.
Очевидно, что если менять какой либо один параметр синусоиды во време-
ни, то есть модулировать синусоидальный сигнал, то можно реализовать три ос-
ионных вида модуляции: амплитудную, частотную и фазовую. Разумеется, мож-
но предположить возможность (и она реально есть) и комбинированных видов
модуляции.
40
Глава 1. Функции, ряды и преобразования Фурье
Однако изменение любого параметра синусоиды во времсЕЕИ означает, что
условие ее стационарности (A=const, f=constH <p=const) нарушаеген. Получен-
ное в результате модуляции колебание с математической точки зрения уже не
является синусоидальным. Оно приобретает сразу букет новых свойств, часть из
которых погерлня, а часть в определенных условиях вредна, Например, в силу на-
рушения математических свойств гармонического колебания.
В качестве примера возьмем наиболее известную амплитудную модуля-
цию. Она представляет собой типичный мультипликативный процесс, то есть
неизменная амплитуда синусоиды умножается на некоторую, зависящую от вре-
мени функцию (или множитель). Начнем с умножения амплитуды на экспонен-
циальный множитель с отрицательным показателем экспоненты. Для интервала
времени [О,'"] это означает, что мы получаем «затухающую синусоиду». Возьмем
пока эти слова в кавычки, ибо результирующее колебание (рис. 1.1G) или сигнал
с позиций строгой математики уже нельзя именовать «синусоидой».
Интегрирование 'задающей синусоиды"
ГПх) = « ” Sujz)
Рис. 1,16 Затухающее синусоидальное колебание и примеры его интегрирования
Понему, строго говоря, мы не может использовать понятие о синусоиде в
данном случае? Да потому, что многие свойства затухаюхцей синусоиды карди-
нально отличаются от свойств просто синусоиды. И дело не только в количест-
венных отличиях (пики уже пс достигают значений +1 и -1 для каждого перио-
да), а в куда более глубоких кячественнЬЕХ отличиях.
Результирующая функция — «ватухающвя синусоида» — Фунеспия явеео
i-рсимметричная. Даже на глаз отчетливо видно, что площадь каждого последу-
ющего иолуиериода меньше, чем площадь предыдущего полупериода Если ин-
тегральное значение синусоиды за период или за время, равное кратному числу
периодов, равно 0. то в нашем случае оно должно выражаться положительным
числом. К примеру, интегрируя функцию fl(x) в пределах от 0 до Юл мы полу-
чим зиачепие интеграла 0.947.
Но еще разительнее ведет себя наша «затухающая синусоида» при интег-
рировании в пределах от 0 до =°. Оказывается (см. рис. 1.3), что в отличии от
обьЕЧЕЕОЙ синусоиды (рис. 1.2) интеграл в этом случае благополучно вычисляется
41
Глава 1. Функции, ряды и преобразования Фурье
(или, как говорят математики — сходится) и полученное значение равно
100/101. Это легко понять: даже на глаз видно, что суммарная плошадь лолояя
тельных и отрицательных полупериодов конечна.
А что будет, если создать «нарастающую синусоиду». Этот случай показе
па рис. 1.17. Тут мы явно видим, что площадь каждого отрицательного полутк
риода всегда больше площади предшествующего ему положительного полуперр
ода. Следовательно, можно ожидать, что интеграл в пределах, кратных период
синусоиды, будет конечен н выражаться отрицательным числом. Однако, по
пытка интегрирования в пределах от 0 до “ завершается полным фиаско та
кой интеграл не берется (расходится).
Итак, синусоида не так проста, как кажется и ее модуляция по существ
означает появление новой функции. Чтобы описать модуляцию, сохранив пре;
ставление о синусоиде используется понятие медленности модуляции, благода
ря чему используемые колебания в некотором интервале времени приближен»
можно считать синусоидальными. К примеру анализ амплитудной модуляции:
радиотехнике осуществляется хорошо известным методом медленно меняющие
ся амплитуд.
Но техника развивается чрезвычайно быстрыми темпами. И понятие t
медленности модулирующих колебаний в наши дни подвергается все большем)
и большему сомнению. Наступила пора четко осознать, что модулированные ко
лебания и иные сложные сигналы (особенно пифровые, звуковые и видеосигна
лы) в общем случае не являются стационарными. Они явно нестационарны ;
требуют новых математических методов для анализа. К ним относится техноло-
гия вейвлетов, но пока о ией говорить подробно рано. Мы должны обсудить свой-
ства рядов Фурье и преобразований Фурье, которые многие десятилетия господ-
ствовали в теории и практике электротехники, радиотехники и связи. И, кстати
вовсе- не потеряли свое значение в наши дни.
В этом разделе мы впервые ввели важные для последующего материал:
понятия об умножении синусоидальных функпий на меняющийся во времеш
t (или в пространстве переменной х) множитель. Такая операция, в отличит
42
Глава 1. Функции, ряды н преобразования Фурье
от обычно линейной операции сложения (аддитивной операции), является ти-
пично нелинейной (мультипликативной) операцией. Мы выяснили, что в оп-
ределенных условиях (пример с «затухающей синусоидой») это позволяет
, интегрировать такую комбинированную функцию с бесконечным пределом
интегрирования. В дальнейшем мы расширим этот подход введением понятия
временных, частотных и пространственных окон, а также убедимся в том, на-
сколько важно интегрировать в бесконечных пределах функции, содержащие
. произведение синусоидальной (косинусоидальной) функции на подобные
множители.
1.4.3. Понятие о гармоническом синтезе
Синтез сложных колебаний на основе суммирования синусоидальных
сигналов с кратной частотой был известен задолго до того, как Фурье сделал
свое замечательное открытие, показав, что его тригонометрические ряды спо-
'• собны (при определенных условиях) представлять любую математическую
функцию.
С помощью СКМ Mathcad мы можем легко поставить эксперименты по та-
кому синтезу. Один из примеров этого представлен па рис. 1.18. Здесь задана
амплитуда каждой из гармоник равная 2//гтг, где k — номер заданной синусоиды,
которую мы называем Л-ой гармоникой в память о гармоническом характере си-
нусоиды). Рис. 1.18 показывает графики функции sin(x) и два графика сумм для
5 и 15 гармоник.
Рис. 1.18. Гармонический синтез пилообразных колебаний
Результат синтеза может удивить неопытного в спектральном синтезе чи-
тателя. Оказывается, наш ряд гармоник неплохо описывает пилообразное коле-
бание с протяженным участком линейного спада и быстрым ростом. Нетрудно
заметить, что нем больше гармоник мы используем, гем ближе временная зави-
симость синтезируемого колебания к временной зависимости линейно-спадаю-
щего пилообразного импульса.
43
Глава 1. Функции, ряды и преобразования Фурье !
А теперь рассмотрим еще один рисунок (рис. 1.19). Здесь показано сумми
рование только нечетных гармоник: первой, третьей и пятой и от первой до двад^
цать первой. Амплитуды гармоник вычисляются как 4/kn (где k есть, соответс!
nciino hl и А2). На этот раз хорошо видно, что представленные ряды гармоний
синтезируют прямоугольные колебания, в идеале называемые меандром. ц
Рис, 1.19. Гармонический синтез меандра
Может возникнуть вопрос, почему именно такими соотношениями заданы
амплитуды гармоник? Точный ответ дает следующий раздел книги. А пока отме-
тим. чго мы эмпирически пришли к идее гармонического синтеза рассмотрен-
Это явления получило название эффекта Гиббса. Мы еще не раз вернемся к егэ
описанию, обоснованию и попыткам исключения.
ПРИМЕЧАНИЕ____________________________________________________
Эффект Гиббса более широкое понятие, чем в случае Фурье-анализа и синте-
за. Он в той или иной форме встречается в различных методах синтеза слож-
ных колебаний, в том числе и при выполнении вейвлет-анализа и синтеза.
1.4.4. Фурье-анализ и синтез
периодических функций
Итак, задача замены произвольной сложной или неудобной для вычисле-
ний функции давно занимала умы математиков. Как было показано выше, час-
тично опа была решена с помощью интерполяции и аппроксимации функций и
регрессии. Однако, все эти математические приемы страдали одним серьезным
Ш'ойчиво т ребовало новою аппарата приближения периодических функций.
44
Глава 1. Функции, ряды и преобразования Фурье
Над решением этой задачи бились многие ученые прошлых веков. Но под-
линное открытие в этой области удалось сделать в 1807 году Фурье, который на-
шел и обосновал метод вычисления коэффициентов тригонометрического ряда
при котором такой ряд был способен приближать любую периодическую функ-
цию. Правда, при выполнении условий, известных как условия Дирихле для
функции у(х) на промежутке(-л, я);
• функция непрерывна или имеет конечное число разрывов первого рода.
* промежуток (-л, л) можно разбить на конечное число тиких промежутков, на
которых функция меняется монотонно.
Здесь важно отметить, что условия Дирихле выполняются для всех прак-
тически существующих сигналов, поэтому в дальнейшем мы будем опускать
ссылки на эти условия. Рядом Фурье для функпии, удовлетворяющей условиям
Дирихле, является ряд:
y(t) = — + 31П(2лА^Г) + cos(2^/jt), (1.4)
2 ли
коэффициенты которого находятся по формулам Эйлера — Фурье:
= — f y(x)cos(kx)dx
П >
(1-5)
^ = 1 |у(х)эн1(М<*х (1.6)
Строгое доказательство того, что ряд (1.4) может приближать произволь-
ную функцию базируется на элементарных тригонометрических преобразовани-
ях и понятии ортогональности набора функций, образующих этот ряд;
I, cas(x), sin(г), cos(2x). sin(2x)cos(nx), sin(nx)
Ортогональность означает, что интеграл от произведения двух любых раз-
личных функций этого (возможно и иного) набора функций в промежутке от 0 до 211
равен нулю. Само доказательство можно найти в учебниках по высшей математи-
ке, например и [21].
Важными сферами применения рядов Фурье являются расчеты радиотех-
нических устройств. В них обычно периодические сигналы представляют как
функции времени y(t) на отрезке [0,Т] с периодом Т—1 /ft, где ft — частота пер-
вой гармоники периодического сигнала. Вотом случае ряд Фурье, пог-ле неслож-
ных преобразований, записывается в виде:
У(<) = ~ + У, («„cos^nk^t) + b„
“ Л-1
(1.7)
45
Глава 1. Функции, ряды н преобразования Фурье
где
2 ?
ak = - J y(t) соз(2яй^«)с(« (1.8)
и
\ = |jy(r)sin(27rfe/|£)d( (1.9)
В этом случае коэффициенты Д* и ft* описывают косинусную и синусную со-
ставляющие /?-ой гармоники сигнала с периодом Т и частотой f;—l/Т'. Часто zc
пользуется иная форма ряда Фурье, упрощающая его синтез [2,3]'
У(*) = -у + S соз(2я*А* + <Р») (1-Ю)
где амплитуды гармоник М& и их фазы (распределяются выражениями:
«. - V“.z 1 (i-ii)
и
<pk = —arctan(i>s/a<). (1.12)
Преимущество ряда в этой форме заключается в том, что для вычисле-
ния каждого члена ряда нужно липть один раз обращаться к довольно мед
лепному вычислению тригонометрической функции. В дальнейшем будут
приведены формулы, позволяющие вычислять коэффициенты Фурье (либо
амплитуды и фазы гармоник) для любой функции y(t). Эго является задачей
ci ектрального анализа. Однако вначале мы рассмотрим обратную задачу —
задачу синтеза зависимости y(t) путем вычисления ряда Фурье с ограничен-
ным числом членов.
Разложение функции иа гармонические составляющие, то есть вычисление
коэффициентов Фурье, принято назвать спектральным анализом. А воссоздание
функции представленной рядом Фурье, называют спектральным синтезом.
Гармонику с k=l называют основной или первой гармоникой сигнала. Она
задает его частоту повторения ft. Остальные гармоники называют высшими, их
частоты равны /*=£•//, где k=2,3,4.Таким образом спектр периодических сиг-
налов, представимых рядом Фурье, дискретный — он содержит набор фиксиро-
ванных частот fb, где k=l .2,3.
46
Глава 1. Функция, ряды и преобразования Фурье
1.4.5. Прямой Фурье-анализ
и синтез периодических сигналов
Современные СКМ открывают обширные возможности в отработке прак-
тических методов Фурье-анализа и синтеза. Можно отметить, что нередко вы-
числение коэффициентов Фурье (1 5) и (1.6) или (1.8) и (1.9) можно выполнить
по встроенным функциям интегрирования. Назовем такой спектральный анализ
и синтез прямым.
Интересное воплощение прямого спектрального анализа в системе Mathcad
представлено на рис. 1.20. Это начало обсуждаемт-о здесь документа (програм-
мы). Здесь для вьщисленпя коэффициентом Фурье используется программный
модуль cHcreMbiMathcad, имеющий легко попятный вид. Для удобства представ-
ления периодических функций пределы интегрирования от —я до т заменены нор-
мированными пределами от —L до L, где L=1 — нормированный полупсриод коле-
баний. Отчетливо видно, что коэффициенты Фурье задаются прямо интегралами.
Пня при этом вычисляюгея настолько точно, насколько это возможно при исполь-
зовании встроенных операторов интегрирования. Вычисленные коэффициенты
становятся столбцами матрицы R.
РАЗЛОЖЕНИЕ ФУНКЦИИ В РЯД ФУРЬЕ И ЕЕ
ГАРМОНИЧЕСКИЙ СИНТЕЗ
нслугтерюд колебаний l-i Чисто гармони ряда м=ю
Программа вычисления
Коэффициентов ряда
Фурье с трииенением
их интегрального
представления
Рис. 1.20. Документ системы Mathcad, реализующий Фурье-анализ периодической
функции с периодом па интервале от —1 до 1
Далее мы рассмотрим серию примеров, которые являеотся второй частью
документа рис. 1.21 и реализуют- Фурье-анализ для заданного числа гармоник
(N-10 в начале документа) и затем синтез заданной функции f(х). На рис. 1.21
эта функция задаст линейно падающий в интервале от -1 до 0 пилообразный им-
пульс. После этого задается ряд Фурье, суммирующий полученные гармоники-
Рисунок внизу показывает исходную функцию и результат ес Фурье-синтеза.
Векторы А и В выводят значения косинусных и синусных коэффициентов Фурье.
47
Глава 1. Функции, ряды и преобразования Фурье
Рис. 1.21. Пример прямого спектрального анализа и синтеза
для лниейно-спадающего пилообразного импульса
Рис. 1.22 Пример прямого спектрального анализа и синтеза для меандра
Нетрудно заметить, что форма синтезированной функции при 2V—10 непло-
хо согласуется с исходной функцией. Впечатление портит только проявление эф-
фекта Гиббса.
Рис. 1 23 показывает спектральный анализ и синтез прямоугольного сим-
метричного колебания — меандра. И здесь получено в целом неплохое соответст-
вие между исходной функцией и результатом синтеза гармоник. Эффект Гиббса,
упы, виден налицо. В спектре меандра отсутствуют четные гармоники, причем
вес косинусные коэффициенты нулевые
48
Глава 1. Функции, ряды и преобразования Фурье
Прямоугольный импульс длиной в четверть периода
Г(х) 11 jf -1 < х < -5 res FC(t'j'l,L) A « res D res^
Формула синтеза функции 2 IА" cos[—i- ) 6,1 ’'д
Рис. 1.23. Пример прямого спектрального анализа и синтс.и
для короткого прямоугольного импульса
) । "Выпрямленная' синусоида
res = Г С (f. IN, L) A = res^' В = tei1
N / Zn Я К' 'n 1 X
Формула синтеза функции р(х)!,Ап + 2 ^Ап ios|^^—J « 6Г, sm^—
Рис, 1.24. Пример прямого спектрального анализа и синтеза
для «выпрямленной синусоид!,I»
На рис. 1.23 представлен пример спектрального анализа и синтеза для ко-
роткого прямоугольного импульса положительной полярности, длительность
KCTOpoi-o составляет 1/4 от периода колебаний. В особых комментариях прибли-
жение исходной функции в данном случае не нуждается. Разве что полезно обра-
коэффициентами, причем часть из них имеет нулевое значение.
49
Глава 1. Функции, ряды и преобразования Фурье
Нис. 1.24 демонстрирует спектральный анализ и синтез для функции типа
«выпрямленная синусоида» (такая функция опиеыняет напряжение на выходе
идеализироваикого двухполупериодного диодного выпрямителя переменного
юна). В данном случае функция более гладкая, поэтому пример дан для меньше-
го числа гармоник при синтезе — N-5. Здесь эффект Гиббса проявляется слабо,
по он все ясс виден.
Наконец, на рис. 1.25 представлен пример прямого спектрального анализа
п синтеза для радиоимпульса, содержащего три периода синусоидальных коле-
баний. При W=10 он неплохо приблнясаетоя синтезированной функцией, хотя
эффект Гиббса и здесь замэтен.
Рис. 1.25. Пример прямого спектрального анализа и синтеза для радиоимпульса
Итак, мы рассмотрели достаточно прсдстапитсльиьгй набор функций (сиг
на юн) и выполнили для них практический спектральный анализ и синтез при
конечном числе гармоник. Можно заметить следующие общие закономерности
подобного спектрального анализа и синтеза:
ни в одном из приведенных случаев точная реставрация исходной функции
(колебания) путем их гармонического синтеза не достигается, а различия та-
ковы, ч то о тчетливо видны невооруженным глазом;
функции приближается. к форме исходной функции (вы можете это прове-
рить, меняя в приведенных примерах N);
плавные функции требуют меньше •’ярмоник для удовлетворительного их
представления результатами гармонического синтеза;
во всех случаях заметен эффект Гиббса в виде характерных колебательных
процессов, отсутстнуюгтшх у исходных функций;
50
Глава 1- Функции, ряды н преобразования Фурье
* увеличение конечного числа гармоник не устраняет эффект Гиббса, а лишь
повышает частоту колебательных процессов,-
• эффект Гиббса особенно сильно проявляется в местах разрыва функций и в
точках с явно присутствующими особенностями
• из-за эффекта Гиббса интерполяционные возможности рядов Фурье невысо-
ки. поскольку точность интерполяции весьма невысока;
• нередки функции, у которых часть Фурье-коэффициентов имеет нулевое зна-
чение.
Итак, мы рассмотрели примеры спектрального анализа и синтеза сравни-
тельно простых функций и сигналов, для представления которых вполне доста-
точно до сотни отсчетов (значений ранжированной переменной х). Однако реаль-
ные сигналы гораздо сложнее и число отсчетов сигналов нередко достигает
многих сотен и тысяч. В этом случае рассмотренный выше метод становится Ма-
лоэффективным вследствие следующих причин:
• интегралы, входящие в формулы для коэффициентов Фурье, трудны для вы-
числений, поскольку содержат быстро осциллирующие множители, что тре-
бует интегрирования по очень большому числу интервалов интегрирования;
♦ периодичность значений осциллирующих Множителей не учитывается;
• вычисления по встроенным функциям интегрирования идут медленно из-за
применения в них сложных адаптивных методов интегрирования с контро-
лем погрешностей в ходе интегрирования.
1.5. Специальные типы преобразований
Фурье
1.5.1. Дискретный Фурье-анализ и спектр
периодических функций
Предположим, что некоторая функция (или сигнал) задана рядом равноот-
стоящих дискретных отсчетов с числом N, т. е. у , у2,...,Уц. В этом случае у Нас
лет никаких оснований считать, что в промежутках между узлами значения
функции не постоянны. Если же они постоянны, то интегралы при расчете коэф-
фициентов Фурье (1.8) и (1.9) могут вычисляться простейшим методом прямо-
угольников:
2 v" ,2лп1 , 2 А . ,2лп1,
= (1.13)
Детальный анализ, выходящий за рамки данной книги, показывает, что
приведенные формулы для коэффициентов Фурье являются единственными те-
оретически обоснованными формулами приближенного вычисления коэффици-
ентов Фурье [22,23]. Для произвольных функций они обеспечивают минимум
средиеквадрятичеекой погрешности.
51
Глава 1- Функции, ряды н преобразования Фурье
При дискретном задании функции (сигналя) встает вопрос о том. какое
число гармоник М (k от 1 до М) может представлять сигнал? Или напротив при.
заданном числе гармоник, какое число отсчетов N допустимо? Ответ на этот во-
прос дает теорема об отсчетах Шеннона, у нас именуемая теоремой Котельнико-
ва. Ответ довольно прост: число отсчетов должно минимум вдвое превышать чис-
ло гармоник. Это легко понять умозрительно: на высшую гармонику спектра в
идеале достаточно иметь два отсчета.
Многие СКМ имеют реализации дискретного преобразования Фурье по
формулам (1.13), Наглядное представление и i-аком виде спектрального анали-
за и синтеза дает документ СКМ Mathcad, начало которого представлено па
рио. 1.26, В этой части документа приведена реализация спектрального анали-
за для заданного в виде вектора Yi сигналя. R документе по формулам (1.18)
вычисляются коэффициенты Фурье, а по формулам (1.11) и (1.12) — амплиту-
ды и фазы гармоник. Небольшое расхождение в обозначениях не принципи-
ально.
Зависимости амплитуд и фаз гармоник от частоты получили название амп-
литудного и фазового спектра сигнала. Для периодических колебаний такой
спектр является дискретным. Его удобно представлять вертикальными отрезка-
ми прямых, длина которых определяет значение амплитуды или фазы той или
иной гармоники. Амплитудный и фазовый спектры заданного сигнала показаны
внизу рис. 1.26. При этом, на амплитудном спектре (его часто называют просто
52
Глава 1. Функции, ряды и преобразования Фурье
спектром) представлена огибающая спектра (пунктирная кривая). Спектр имеет
важное значение для оценки свойств и параметров сигнала, подвергаемого раз-
ложению в ряд Фурье,
1.5.2. Гармонический синтез дискретно
заданного сигнала
Теперь рассмотрим реализацию Фурье-синтеза дискретно заданного сигна-
ла. Он представлен на рии. 1.27 и соответствует формуле (1.10). Она более удоб-
на, чем (1.7), поскольку требует вдвое меньшего числа вычислений тригономет-
рической функции косинуса.
Спак-рапьный синтез.
Рис. 1,27. Стандартный дискретный спектральный анализ
и синтез (конец документа)
Внизу рис. 1.27 представлены графики исходного сигнала и результата его
синтеза по 20 гармоникам. В данном случае задан довольно сложный сигнал.
Увы, его синтез подобен «старой песенке»: отчетливо видно сильное проявление
эффекта Гиббса, связанное с ограниченным числом гармоник М i N.
В результате стандартного синтеза дискретного сигнала мы получаем уже
не дискретное, а непрерывное представление сигнала рядом Фурье с числом
гармоник М. К сожа пению, из-за уже не раз отмеченного эффекта .Гибоса триго-
нометрическая аппроксимация и интерполяция сигнала имеет довольно низ-
кую точность. Повышение точпости возможно за счет резкого увеличения чис-
ла отсчетов N (и гармоник М при синтезе) — нередко до многих сотен и тысяч.
Но, в атом случае мы столкнемся с полной непригодностью описанного метода
анализа и синтеза, связанной с недопустимо большими временными затратами
на вычисления.
53
Глава 1. Функции, ряды н преобразования Фурье
1.5.3. Непрерывное преобразование Фурье
До сих пор мы рассматривали периодические фупкции И сигналы. А как
быть, если они не периодические? Тут правомерны два подходя. Если функции
или сигнал определены на некотором конечном промежутке пространства или
времени (по терминологии вейвлетов на носителе конечной длины), то мы мо
жем считать сигналы как бы периодическими и применять к пии описанный вы-
ше спектральный аначиз и синтез. Например, если сигнал определен на некото-
ром промежутке времени tn, то его можно посчитать периодическим с периодом
t„ или частотой Г1“’1/Со.
Другой путь заключается в переходе к непрерывному преобразованию Фу-
рье в общем виде — для произвольного сигнала. Прямое преобразование Фурье в
таком виде позволяет получить в аналитическом виде функцию частоты F((i>) от
временной функции f(t). Оно реализуется формулой
W = J f(t)e ‘“'dt
(1.14)
Здесь f(t) — скалярная функция независимой переменной t. Поскольку
мы исходим из предположения, что f(t) в общем непериодическая функция, то
уже нельзя вести речь об отдельных гармониках и о дискретном спектре сигна-
ла. Спектр F(ru) становится непрерывным и Можно говорить лишь о плотности
энергии сигнала в некоторой малой (стремящейся к нулю) полосе частот. Так что
в данном случае F( а) есть зависимость плотности энергии сигнала от частоты.
Соответственно, обратное преобразование Фурье задается следующим об-
разом:
(1-15)
Эта формула позволяет по функции F(6}) найти в аналитическом виде
функцию f(i).
Из формулы (1.14) вытекает главный недостаток прямого преобразования
Фурье: интегральная оценка всех Частотных составляющих спектра вне зависи-
мости от времени их существования. Это связано непосредственно с бесконечны-
ми пределами интегрирования в (1.14). В результате вполне возможны случаи,
когда совсем разные сигналы имеют одинаковый частотный спектр. Другими
словами, Фурье-анализ прекрасно подходит для стационарных сигналов, но не
годится для нестационарных, у которых определенные частотные компоненты
существуют только в определенные промежутки времени или когда параметры
сигнала меняются во времени.
Многие СКМ имеют средства для аналитического вычисления прямого и
обратного преобразований Фурье. Например, система Mathcad реализует это с
помощью функций символьного процессора fourier и itourier. Рис. 1.28 де-
монстрирует это на целом ряде примеров: линейно нарастающей функции, сниу-
54
Глава 1. Функции, ряды н преобразования Фурье
се. затухающей и нарастающей экспоненте и затухающем синусоидальном сиг-
нале, Обратите внимание, что во всех примерах, кроме функции синусн, после
прямого и обратного преобразований Фурье получено исходное выражение.
Лрммерыпрямогои обратного преобразовании Фурье
Рис. 1.28, Примеры прямого и обратного преобразования Фурье
в аналитической форме
В случае функции синуса Mathcad тоже справился с задачей, но привел хо-
рошо известное выражение для синуса, представленное через экспоненциальные
функции. Его удалось Преобразовать в обычное с помощью функции упрощения
символьных результатов simplify. Для ряда функций прямое преобразование
Фурье дает представление, содержащее функцию Дирака Dixac iW). Эта функ-
ция не является внутренней функций системы Mathcad, но входит в ядро сим-
вольных вычислений куда более мощной системы Maple. Это ядро используется
системой Mathcad, благодаря чему функция icourier понимает выражения, в
состав которых входит Функция Dirac (СО).
Соотношения (1*14) и (1.15) носят скорее фундаментальный теоретичес-
кий. чем практический, характер. Это видно в наших примерах хотя бы из того,
что мы не можем построить график функции F(a) и вычислять ее значения. Не-
редко формы записи этой функции понятны лишь символьному процессору, а
решатели выражений в численном виде ее не понимают-
В связи с этим на практике удобнее применять уже упомянутый подход:
периодизацию ограниченных во времени сигналов. Тем более в связи с тем, что
интегрирование в пределах от -«о до +<» встречает большие и подчас непреодоли-
мые трудности и даже вызывает принципиальные сомнения в такой возможнос-
ти. В частности, оно по существу означает, что мы должны знать поведение сиг-
нала не только в прошлом (даже весьма далеком), но н в будущем. Разумеется
для сигналов с носитрирм конечной д пины можно использовать конечные преде-
лы интегрирования, если за пределами носителя значение сигнала равно нулю.
1,5,4, Быстрое преобразование Фурье (БПФ)
С позиций практики главным недостатком всех описанных выше методов Фу-
рм»-янялизя v синтеза функций и сигналов являемся болъпгое время вычис пений.
Это связано с тем, что в формулах для коэффициентов Фурье присутствуют быстро
осциллирующие Множители, что требует разбивки интервалов интегрирования на
очень малые части. В итоге объем вычислительных операций резко возрастает.
55
Глава 1. Функции, ряды н преобразования Фурье
Для пряодоления вычислительных трудностей, связанных с интегрирова-
нием в ходе ППФ и ОПФ быстроизменяющихся функций, были предложены ме-
тоды быстрого преобразования Фурье (ВПФ или, в англоязычной транскрипции
FFT). Они используют специальную технику комбинации отсчетов футщий, по-
множенных на осциллирующие множители, и учитывают периодичность значе-
ний тригонометрических функций. Алгоритмы БПФ не уменьшают погрешнос-
ти вычислений при заданном числе гармоник, ни позволяют резко уменьшить
время спектрального анализа и синтеза — особенно, если число временных от-
счетов y,(t) крртпо 2N, где N — Целое число.
ВНИМАНИЕ____________________________________ ________________________
Поскольку в этой книге Фурье-анализ и синтез является лишь прелюдией к
рассмотрению вейвлет-трхнологий обработки функций, сигналов и изображе-
ний, мы не будем рассматривать алгоритмы ВПФ подробно. Зато соответству-
ющие алгоритмы быстрого вейвлет-преобразования будут рассмотрены в гла-
ве 2 достаточно подробно.
Далеко не все СКМ имеют функции, реализующие БПФ. Отчасти это связа-
но с тем, что высокая эффективность ВПФ обеспечивается только при числе от-
счетов функции кратном 2 в целой степени. Если отсчетов меньше, то чаще всего
их просто дополняют до числа, кратного 2 в целой степени, путем добавления ну-
левых отсчетов. Достаточно эффективные средства ВПФ имеют СКМ Mathcad и
MATLAB, тогда как мощные системы символьной математики Mathematics 4/4.1
и Maple 6/7 таких функций не имеют.
ФункцияТ/г (v) системы Mathcad выполняет БПФ для данных, представ-
ленных действительными числами — значениями исходного вектора о. Он дол-
ями» иметь точно 2"' составляющих, где m — целое число. В противном случае вы-
водится сообщение об ошибке — неверном размере вектора. Если число
элементов вектора v все же отличается от целой степени двух, то его можно до-
полнить нулями до этой величины. Элементы вектора, возвращаемого функцией
f f L (v), соответствуют формуле:
с.
и-3
Здесь п — число элементов вектора V. i — мнимая единица, k — индекс
суммирования (от О до п—1), и j — номер гармоники (от 0 до п/2). Эти элементы
вектора соответствуют следующим частотам:
Здесь /„ — частота квантования сигнала, который подвергается БПФ. Эле-
менты вектора, возвращаемого функцией ff f (v) в общем случае комплексные
числа, даже если сигнал представлен вещественными отсчетами.
56
Глава 1. Функции, ряды и преобразования Фурье
Прямое преобразование Фурье по существу означает перевод временной за-
висимости в ее частотный спектр. А обратное преобразование Фурье переводит
частотный спектр вновь во временную зависимость.
Функция if ft (v) реализует обратное (инверсное) преобразование Фурье
для вектора v с комплексными элементами. Вектор v здесь должен иметь 1+2'гИ
элементов. В противном случае выдается сообщение об ошибке. Функция
if ft (v) вначале создает вектор w, комплексно-сопряженный с v, и затем при-
соединяет его к вектору и. После этого вычисляется вектор d с элементами, рас-
считанными ни формуле;
Функции f ft (v) Hifft(v) даютточные(впределах погрешности числен-
ных расчетов) обращения. При этом ifft(fft(v) ) — v, что можно использовать
для проверки пряобразоваиий.
Функция cf ft (А) аналогична предыдущей, Но реализует прямое преобра-
зование Фурье для вектора А с комплексными элементами. Если А — матрица, то
реализуется двумерное преобразование. Введение функции f ft (V) обусловлено
тем. что преобразование для векторов с действительными элементами реализует-
ся по более быстрому алгоритму (БПФ) и занимает меньше времени. В этом слу-
чае более прост и ввод исходных данных.
Функция icff t (в) выполняет обратное преобразование Фурье по полно-
му алгори гму, при котором как исходный, так и результирующий векторы или
матрицы содержат элементы с комплексными значениями.
ПРИМЕЧАНИЕ_____________________________________________________
В основе БПФ лежит прореживание ио частоте и пирамидальный алгоритм,
исключающий повторные вычисления периодически повторяющихся членов
тригонометрического ряда Фурье, БПФ алгоритм выполняется за - N\ogN
операций, где N — число отсчетов сигнала.
1.5.5. Примеры выполнения БПФ
Для проверки функций БПФ можно задать некоторый вектор из 21" дейст-
ьптельных или комплексных элементов. Проведя прямое преобразование, по-
лучим новый вектор. Затем над ним проведем обратное преобразование. Мож-
но заметить, что полученный таким двукратным преобразованием вектор
полностью совпадаете исходным. Читатель может легко проверить эту методи-
ку тестирования функций самостоятельно. Мы же перейдем к более сложным
примерам.
Техника проведения Ь'ПФ на примере разложения прямоугольного импуль-
са и последующего его синтеза с помощью ряда Фурье с ограниченным (k — 10)
числом гармоник демонстрируется на рис. 1.29. Здесь исходный вектор задан эле-
ментами действительного типа, поэтому используются функции fftH ifft.
57
Глава 1. Функции, ряды и преобразования Фурье
ПРИМЕНЕНИЕ БПФ ДЛЯ СПЕКТРАЛЬНОГО
РАЗЛОЖЕНИЯ И СИНТЕЗА ИМПУЛЬСА
Задание сигнала в виде
прямоуголы ioro импульса
Прямое БПФ
Задание максимального числа кармзиик
у, -ч(|« k,f(.o) Ограничение числа гармоник
Обратное БПФ
Построение графиков псходого и преобразованного
сигналов
Характерные
колебательные
процессы на
графике пре-
образованного
сигнала иллюст-
рируют эффект
Г иббса
Рис. 1.29. Применение БПф для спектрального разложения
и синтеза прямоугольного импульса
Рис. 1.30. АЧХ (сверху) и ФЧХ (снизу) спектра прямоугольного импульса (рис. 1.29)
при использовании функции fft для прямого БПФ
58
Глава 1. Фуикцин. ряды н преобразования Фурье
ВПФ широко применяется при решении задач фильтрации сигналов или
аппроксимации функций. При ограниченном числе гармоник приближение
функции тригонометрическим рядом Фурье обеспечивает наименьшую средне-
квадратичную погрешность, если при этом используется БПФ.
На рис. 1.30 представлено построение АЧХ иФЧХ спектра прямоугольно-
го импульса (см. документ рис. 1.29) Для случая, когда прямое БПФ рссли.тсва-
ио функцией f ft. Обратите внимание на то, что для вычисления амплитуд гар-
моник используется оператор вычисления Модуля, а для вычисления фаз
гармоник — функция arg.
При вычислении АЧХ и ФЧХ использован график типа error, причем за
вторую линию взят О. При использовании функции f f t спектр ограничен чис-
лом гармопик, вдвое меньшем, чем число отсчетов сигнала — в пашем случае
прямоугольного импульса. Это ограничение хорошо видно на рис. 1.30. АЧХ и
ФЧХ спектра имеют обычный вид.
А на рис. 1.31 показаны АЧХ и ФЧХ того же импульса, но полученные с
помощью функции cf ft На этот раз можно заметить два принципиально важ-
ных отличия:
• выходной вектор имеет то же число отсчетов, что и входной, т. е. вдвое боль-
ше, чем при использовании функции fft;
• АЧХ и ФЧХ спектра имеют двойную длипу и представлены как обычным сво-
им видом в левой части графика, так и их зеркальных отражением в правой
части графика.
Рис. 1.31. АЧХ (сверху) и ФЧХ (снизу) спектра прямоугольного импульса (рис. 7.15)
при использовании функции efft для прямого БПФ
59
Глава 1. Функции, ряды и преобразования Фурье
Рис. 1.32. Пример БПФ для сложной функции
с построением ее спектрограммы
Ня рис. 1.32 показан еше один пример применения прямого и обратного
преобразований Фурье. Здесь для преобразования использована сложная трех-
компонентная функция, содержащая два синусоидальных компонента и компо*
пент в виде случайных чисел.
Здесь па графике слева производится сравнение исходной функции с ре-
зультатом ее прямого и обратного преобразований Фурье, а на графике справа
дается построение спектрограммы функции (на этот раз линией, представляю-
щей собой огибающую спектра). Обратите внимание, что несмотря па наличие
заметной шумовой составляющей на спектрограмме четко выделяются пики, со-
ответствующие частотам синусоида пьных компонент входного сигнала. Читате-
лю рекомендуется после прямого БПФ задать искажения гармоник, характер-
ные для работы какого-либо фильтра — при этом можно наблюдать степень
искажения си» нала, прошедшего через фильтр.
1.5.6. Альтернативные преобразования
Фурье
Рассмотренные выше функции основаны на обычных формупах преобразо-
ваний Фурье. Однако существуют и альтернативные формы такого преобразо-
вания, две из которых показаны ниже:
л») -
во
Глава 1, Функции, ряды н преобразования Фурье
Вместо множителя 1/\п перед обоими выражениями перед первым выра-
жением стоит множитель 1/п, а перед вторым — 1. Знак «минус» перед показа-
телем степени имеется только в первой формуле (его нет во второй).
ВНИМАНИЕ_______________________________________________________
Альтернативные формулы преобразований Фурье используются в функциях
FFT(v), IFFT(v), CFFT(v) и ICFFT (v). В остальном использование этих
функций не отличается от аналогичных функций fft (v). if ft (•/). efft (v)
и icfft (v) . Надо лишь помнить и гим, чти Нормировка функций ВПФ ь ли-
тературе может быть различной и это нередко создает путаницу при проведе-
нии операций спектрального анализа и синтеза и приводит к разным резуль-
татам при их проведении.
В заключении отметим, что если в функциях преобразования Фурье в качест-
ве вход ною параметра задана матрица, то реализуется двумерное обратное преобра-
зование Фурье. В раниих версиях Mathcad эта возможность отсутствовала, но иог-
лабыть реализована (хотя и более сложным путем) с помощью одномерного БПФ.
1.5.7. Эффект Гиббса и борьба с ним
Мы уже столько раз упоминали эффект Гиббса, что пора разобраться с при-
чинами его возникновения и обсудить способы борьбы с ним. В том. что с этим
эффектом надо всерьез бороться говорит тот факт, что амплитуда пульсаций син-
Шоировинных сигналив (самих пи себе не имеющих пульсаций) достигает 18% и
практически не меняется при увеличении числа гармоник; просто выбросы при
пульсациях становятся короче. Между гем известно множество задач, где точ-
ность приближения должна составлять значения намного меньшие 1% . а порою
не превышать и тысячных долей процента.
Поскольку пульсации эффекта Гиббса наиболее явно проявляются в мо-
менты скачков анализируемой функции, ограничимся рассмотрением случая
представления скачка
ограниченным спектром. Ограничение спектра можно учесть, введя в (1.15) ум-
ножение на прямоугольное частотное окно
Эю окно задает резкое ограничение спектра. Опуская детали вывода, кото-
рые можно найти в [23], найдем, что в этом случае
Лх) = 1+л Sf(n)
61
Глава 1. Функции, ряды н преобразования Фурье
где функция St(z) известна как интегральный синус
Задание функции b'i(z) и построение зависимости f(x) для данного случая
представлено на рис. 1.33.
Итак, как следует из рассмотренного, эффект Гиббса существует, увы. как
теоретически обоснованная реальность. И связан он. прежде всего, с неудачно
подобранной (или просто поневоле существующей) формой частотного окна, рез-
ко ограничивающего число используемых при спектральном синтезе гармоник
(частот) — прямоугольного.
Наша русская поговорка «Клин клином вышибают» наводит па мысль, что
применяя более совершенные частотпые окна, чем простейшее прямоугольное,
можно ослабить эффект Гиббса или даже избавиться от него. И это совершенно
верный метод. К этой возможности мы будем возвращаться неоднократно. Одна-
ко. надо отметить, что задание окон различного вида, в том числе ослабляющих
и подавляющих эффект Гиббса — это пререгативя программных средств, имену-
емых Signal Processing и входящих в число пакетов расширения СКМ Mathcad.
MATLAB и Mathematica. К сожалению, введение частотных окоп неизбежно
ухудшает реставрацию сигналов на участках их быстрых изменений.
Рис. 1.33. Пример двумерного прямого БПФ для функции двух переменных
А закончим мы этот раздел на слегка грустной нотке; оказывается эф-
фект Гиббса «всеяден». Он встречается в разложениях сигнала не только по си-
нусоидальному базису, но и по другим базисам, в том числе и характерным для
вейвлет-преобрязований сигналов. Так что с ei-o проявлением мы столкнемся
еще не раз.
62
Глава 1. Функции, ряды н преобразования Фурье
1.5.8. Улучшенное моделирование сигналов
на основе спектрального подхода
К сожалению, встроенные в Mathcad функпии прямого и обратного быст-
рого преобразования Фурье не устраняют эффект Гиббса. Более того, они кри-
тичны к выбору числа гармоник и числа отсчетов сигналов. Желательно, чтобы
число отсчетов было равно 2т, где m — натуральное число. Это не всегда удобно,
особенно если функция задана малым числом отсчетов.
Кардинальное улучшение моделирования сигналов при спектральном
методе достигается заменой дискретных отсчетов функции на плавную функ-
цию y(t). получаемую при той или иной методике интерпоияции. При атом
появляется возможность задавать произвольное число отсчетов по интерполи-
руемой функции y(t) и получить сколь угодно большое число гармоник для ее
синтеза.
В этом случае отсчеты берутся для несколько иной функции, но на прак-
прл достаточно большом числе выбранных для синтеза гармоник синтезируе-
мая функция почти повторяет исходную, а эффект Гиббса исчезает практичес-
ки полностью.
R документе рис 1.34 показана реализация этого улучшенного метода в
СКМ Mathcad. В документе приняты меры по уменьшению времени вычислений
оа счет отказа от умножений на нуль.
Численный спектральный анализ
СПЕКТРАЛЬНЫЙ АНАЛИЗ И СИНТЕЗ СИГНАЛОВ
С ЛИНЕИнОИ ИНТЕРПОПЯЦИЕЙ y(t) МЕЖДУ УЗЛАМИ
Вектор-строка иоодных отсчетов y(t)
Yi _ (0 □ 1 1 1 0 0 0 0 £ 051 1 1 05 05 0 0 25 0 25 0 0)
исходные данные чаепга н - 250000 и '-испо гармоник и 20
Г инейная интерпопяцит y(t)
Y - Y|J fn - 1ength(Y) ett = ——
B ' (f1 Mj)
i-O Ni - i trf - r dt y(1) . iiriterp(ti.Y.;)
I . о n- i y, . y(iot
dk Z?(v,= и-и'\ 5|Г|1Р hl>)
Y'pi-2...
функции между узлами (начало документа)
63
Глава 1. Функции, ряды н преобразования Фурье
Как видно из конца этого документа, показанного на рис, 1.35, степень
совпадения исходной и синтезируемой функций очень высока. Это свидетельст-
вует о высокой степени достоверности моделирования сложного сигнала на осно-
ве описанного подхода.
В приведенном примере использован достаточно сложный сш нал со скач-
ками, полками и участками линейного изменения. В реальной ситуации функ-
ция у (t) чаще всего является довольно ппявной. и эффект Гиббса проявляется в
гораздо меньшей мерс, чем в примененном тестовом примере- Это говорит о том,
что все описанные методы имеют право на жизнь.
на рис. 1.34 (конецдокумента)
В представленную на рис. 1.35 формулу спектрального синтеза сигнала не-
1 рудно ввести члены, учитывающие изменение спектра сигнала при прохожде-
нии его через те или иные устройства, например усилители или фильтры. В ре-
зультате будет получена временная зависимость сигнала с учетом искажений его
этими устройствами. Читатель может попробовать свои силы в решении подоб-
ных затаи, в том числе используя и иные виды интерполяции функций, кроме
линейной.
64
Глава 1. функции, ряды и преобразования Фурье
1.6. Оконное преобразование Фурье
1.6.1. Ограничения и недостатки
преобразования Фурье
Вейвлет-преобразования в понимании, к сожалению, существенно слож-
neei чем преобразования Фурье. Поэтому для практического применения вейв-
летов важно четко понять отличия между этими преобразованиями. Основопо-
лагающее различие — потеря информации и времени существования частотных
компонент сигнала при обычном Фурье-преобразовании мы уже отмечали.
В основе представления периодического сигнала y(t) рядом Фурье лежит
соотношение:
(1.16)
где i — мнимая единица Функция y(t) представляется суммой произведений
синусоид, представленных членом е“'‘, на коэффициенты Фурье е„. Они вычисля-
ются как:
(1.17)
Коэффициенты Фурье — комплексные числа. Они представляют набор
(спектр) гармонических сигналов, называемых гармониками. Число п — номер
гармоники (0, 1,2,...). Теоретически ряд Фурье имеет бесконечное число членов
(гармоник), но на практике оио acei да конечно и равно N. Поэтому ряд (1.16) за-
писывается как приближенный. Гармоники, представляющие собой синусоиды
с разной частотой, кратной частоте первой гармоники, и разной фазо^ образу-
ются умножением с" на е'"'.
С позиций точного представления преобразованием Фурье произвольных
сигналов и функций можно отметить целый ряд его недостатков:
• неприменимость к ана пилу нестапионарпых сигналов;
• преобразование Фурье даже для одной заданной частоты требует знание сигнала
не только в прошлом, но и в будущем, что является теоретической абстракцией;
образований Фурье теоретически (и. тем более, практически) невозможно, в
частности, из-за появления эффекта Гиббса;
базисной функцией при разложении в ряд Фурье является гармоническое (си-
нусоидальное) колебание, которое математически определено в интервале
времени от ^<> до - ц имен jjsti .'-и ши п м> i,|>' - цчщ параметры,
65
Глава 1. Функции, ряды н преобразования Фурье
численное интегрирование во временной области от — оо до +оо при прямом пре
образовании Фурье (ППФ) и от -® до в частотной области при обратном пре-
образовании Фурье (ОПФ) встречает большие вычислительные трудности;
ясно, что такая плавная базисная функция, как синусоида, в принципе вооб-
ще не может представлять перепады сигналов с бесконечной крутизной, хотя
такие сигналы (например, прямоугольные импульсы) применяются весьма
широко;
единственным приспособлением к представлению быстрых изменений сигна-
лов, таких, как пики или перепады, является резкое увеличение числа гармо-
ник, которые оказывают влияние па форму сигнала и за пределами локаль
пых особенностей сигнала;
рактер;
для нестационарных сигналов (а таковых сейчас большинство), трудности
ППФ и ОПФ (и, соответственно, быстрого преобразования Фурье (БПФ)) мно-
гократно возрастают.
Рис. 1.36. Спектральный анализ п синтез синусоидального сигнала
с небольшими ступеньками при переходе через нуль
66
Глава 1. Функции, ряды н преобразования Фурье
Небольшие разрывы (ступеньки) на синусоидальном или любом плавно из-
меняющемся сигнале трудно обнаружить в его Фурье-спектре, ибо они создают
множество высших гармоник очень малой амплитуды (рис. 1.36). Сигнал здесь
получен суммированием синусоиды с меандром, который моделируется выраже-
нием вида 0.1 *sign(fein(x)). Таким образом, ступенька имеет величину 0,1 от амп-
литуды синусоиды и видна па осциллограмме сигнала и его реставрации (для ус-
транения слияния кривые раздвинуты по вертикали).
Спектр таких сигналов (см. спектрограмму внизу рис. 1.36) содержит едва
заметные высокочастотные составляющие спектра, по которым распознать ло-
кальную особенность сигнала и, тем более, ее место и характер, практически не-
возможно. Составляющие спектра особенности как бы размазаны по оси частот.
1.6.2. Кратковременное (оконное)
преобразование Фурье
Проблемы спектрального анализа и синтеза сигналов, ограниченных во
времени, частично решаются переходом к так называемому кратковременному
или оконному преобразованию Фурье. Идея этого преобразования очень проста;
временной интервал существования сигнала разбивается на ряд промежутков —
временных окон. В каждом промежутке вычисляется свое преобразования Фу-
рье. Если в каком то окне существовали частотные составляющие некоторого
сигнала, то они будут присутствовать в спектре. А если нет — будут отсутство-
вать. Таким образом, можно перейти к частотно-временному представлению сиг-
налов, которое является особым разделом техники обработке сигналов.
Кратковременное (оконное) преобразование выполняется с использовани-
ем выражения'
А(ш) = J у(г) • iv(t - b) • е ""'dt
(1.18)
Здесь, в отличии интеграла Фурье, функция у(I) под знаком интеграла до-
полнительно умножается на оконную функцию w(t-b;. Параметр b окна задает
его сдвиг на временной оси. Обычно задастся ряд фиксированных значений Ь в
пределах полного окна. Например, для простейшего прямоугольного окна функ-
ция w(t-b) в пределах окна даег 1, а за пределами окна присмотра — 0. При
этом, для калсдого окна мы получаем свой набор комплексных амплитуд сигна-
ла в частотной области.
Сказанное поясняет рис, 1,37. Окно, показанное на временной зависимос-
ти сигнала (слева), скачками перемещается, и за некоторое число таких переме-
щений позволяет «просмотреть» весь сигнал. В каждом окне выполняется свое
спектральное разложение, так что вместо обычно одной спектрограммы мы те-
перь получает набор спектрограмм, схематично показанный в правой части
рис 1.37 в виде прямоугольников.
Естсстеспно, что iiocko-ilk. к. л.дое окно ох г. 1 ты в<)сг небольшой участок
к., ыюхчч и. точи' (плотня юк гьпых и г-1 < iciiiii < iirn.i.T.i мола* г быть козы-
67
Глава 1. Функции, ряды и преобразования Фурье
шена. Часто используются окна Гаусса, или иные окна, обеспечивающие малые
искажения спектра из-за граничных явлений и уменьшающие проявление аф-
фекта Гиббса.
window
Tlrne
Пте
Рис. 1.37. Иллюстрация к технике оконного
преобразования Фурье
Казалось бы раз оконное преобразование Фурье даетнам частотно-времен-
ное представление сигналов, то достаточно им и ограничиться. И не нужно было
открывать вейвлет-преобразования?
Однако ситуация не так проста! Она упирается в известный принцип нео-
пределенности Гейзенберга. Согласно ему, невозможно получить одновременно
высокое частотные и высокое временное разрешение. Выбирая окно с малой ши-
риной по времени мы получаем высокое временное разрешение, но низкое час-
тотное разрешение. Взяв окно с большой шириной во времени получаем хорошее
разрешение по частоте, но плохое во времени. Оконное преобразование опериру-
ет с окнами, имеющими одинаковую ширину, а потому данное противоречие для
него неразрешимо. Мы вернемся к этой проблеме после рассмотрения современ-
ных методов представления спектра. А пока отметим еще один принципиальный
недостаток оконного преобразования Фурье: в нем по-прежнему используется
единственная базисная функций — синусоида со всеми ее отмеченными ранее
недостатками.
1.6.3. Функции оконного спектрального анализа
в пакете Signal Processing СКМ Mathcad
Пакет Signal Processing популярной системы Mathcad имеет ряд функций
оконного (короткого) спектрального анализа. Мы не рассматриваем этот пакет
полностью, но отметим применение функций оконного спектрального анализа.
Они позволяют разбить сигнал на диапазоны (окна) как без перекрытия, так и с
перекрытием п выполнить спектральный анализ следующего типа:
pspecirum(х, ц, l [, w] ) — расчет средней спектральной мощности сигнала х;
cspectrum (х,n,г [, w]) — расчет кросс-спектра сигнала х;
cohe -егмт (х. у, n, г [, wl) — расчет когерентности сигналов:
-mr (х, у, n, г [, vz, . и чс- /сношения сигнал/шум для векторов х и у.
В эт.1х функциях х п у — векторы с комплексными или вещественными
цементами, п - число поддиапазонов входного сигнала (лежит в предечах or I
68
Глава 1. Функция, ряды и преобразования Фурье
Рис. 1.38. Сравнение специальных функций спектрального анализа пакета
Signal Processing СКМ Mathcad
до длины вектора х), г — фактор перекрытия поддиапазонов (от 0 до 1) и w — код
окна, выбираемый следующим образом:
1 rectangular —прямоугольно^ окно;
2 tapreg rectangular — окно типа трапеции;
3. triangular — треугольное окно.
4. harming — окно Хэннинга;
5. harming — окно Хэммиш а;
6. blackman — окно Блэкмана;
Рис. 1.38 дает сравнение этих функций при построении дискретных спек-
тров зашумленных сигналов.
1.6.4. Спектральный анализ с помощью функций
FFT и pspectnun
Поскольку мощность сигнала пропорциональна его уровню, то построе-
ние спектра спектральной мощности (СПИ) сигма гоп с помощью функции
psfpctnrn позволяет эффективно отсеивать составляющие спектра с малым
уровнем, например, боковые лепестки радиоимпульсов. Это наглядно иллюст-
рирует рис. 1.39, на котором задано построение радиоимпульса (пачки синусо-
идальных колебаний) и построены спектры, вычисляемые функциями еггт и
pbyectru-n.
69
Глава 1. Функции, ряды и преобразования Фурье
Рис. 1.39. Построение спектров радиоимпульса
с помощью функций CFFT и pspectrum
Нетрудно заметить, что боковые лепестки у основных спектральных ли-
ний, хорошо заметные в спектре, полученном функцией Cb t г, практически от-
сутствуют в спектре, созданном с помощью функции pspcctrum.
1.7. Современные методы получения
и визуализации спектров
1.7.1. Спектры на основе оконного
преобразование Фурье
Существенным недостатком спектров, полученных при обычном преобра-
зовании Фурье, является их малая информативность. Локальные особенности
сигналов, например короткие всплески или провалы, разрывы и ступеньки и
т. д. ведут к появлению в спектре высших гармоник с малой амплитудой, разма-
занных по всей часч о гной оси. Определить по ним характер локальных особенно-
стей довольно трудно.
70
Глава 1. функции, ряды и преобразования Фурье
Кардинальное решение этой задачи кроется в применении вейлет-преобра-
зоваиий, описанных в следующей главе. Но и на основе использовании Фурье-
преобразований также был предложен ряд современных методов спектрального
анализа, позволяющих с высокой детальностью представлять спектры сложных
сигналов. Ниже представлено описание методов и их реализаций в па.-сегеSignal
Processing систем класса Mathcad. Нельзя не отметить, что некоторые из пред-
стаплений спектра, обзорно представленных ниже, имеют определенные пре-
имущества даже перед вейвлет-преобразованиями. Приходится сожалеть, что у
нас практически нет литературы, описывающей и обосновывающей эти виды
представления спектров. А объем данной главы вынуждает ограничиться лишь
ебзорным описанием функций новых представлений спектра.
Одним из методов улучшенной визуализации спектра является короткое
(оконное) преобразование Фурье. Оно реализуется функций stft(x[,n][,s][,w]), где
х — вектор данных действительных или комплексных;
п — число частот преобразования (по умолчанию 64),
s — число пропущенных при преобразовании периодов частоты дискретизации
(по умолчанию п/2);
w — индекс окна или вектор с его коэффициентами.
Рис. 1.40. Короткое (оконное) преобразование Фурье для двух пачек
синусоидальных колебаний (пример 1)
71
Глава 1. Функции, ряды н преобразования Фурье
Рис. 1.41. Короткое (оконное) преобразование Фурье
для сложного сигнала с шумом (пример 2)
Окно можно задавать или вектором его коэффициентов или индексом для
ряда заранее определенных окон, реализованных в виде фильтра с КИХ:
1 rectangular —прямоугольное окно (по умолчанию);
2 tapreg rectangular — окно типа трапеции;
J. Lrianguiar треугольное окно,
zi. oanning — окно Хэннинга;
5. tamiring— окно Хэмминга;
6. blackman— окно Блэкмана.
Формула для такого преобразования дана сверху на рис. 1.40 для сигнала,
который представляет собой две пачки синусоидальных колебаний с разной час-
тотой.
В отличии от обычного преобразования Фурье функция х(т) умножается
па окно w(r-t), значение которого (в первом приближении) равно 1 в пределах
окна и 0 за его пределами. Это окно перемещается по временной оси без пере-
крытия и спектр по методу Фурье вычисляется в пределах каждого окна. Та-
ким образом, получается набор спектрограмм в плоскости время-частота. Спе-
ктрограммы представлены ниже для окоп разной ширины. На спектрограммах
72
Глава 1. Функции, ряды и преобразования Фурье
момно четко выделить спектральные линии для обеих пачек синусоидального
сигнала. Отчетливо выделяются их длительность и длительность пауз между
пачками.
На рис. 1.41 представлен результат анализа этим методом для более слож-
ного сигнала, имеющего к тому же шумовую компоненту.
Представление сигнала стало (особенно при малой ширине окна) намного
более разнообразным, хотя по детальности трудно сравнимо со специальными
приемами осуществления короткого преобразования в пакете Signal Processing
Toolbox для системы MATLAB.
1.7,2. Время частотное билинейное
представление спектра сигналов
Пакет SP имеет ряд специальных функций для детального билинейного
еремя-частпотного представления (или презентации) спектра сигналов:
timeireq (xr "t", f r s [, d]) — представление спектра сигнала на плоскости
ьремя-частота;
timecotr (х, "t", tг s [, d] ) — представление спектра сигнала на плоскости
время-корреляция;
time:rec (х, "custom", s, гr 1 — представление спектра сигнала на плоскости
рремя-частота с заданным пользователем типом представления;
timecorг (х, "custom", s, г) — представление спектра сигнала на плоскости
время-корреляция с заданным пользователем типом представления
Здесь:
х — вектор с элементами вещественного типа;
t — строка, задающая тип представления (презентации) спектра;
f — целое число лагов для функции timecor или число частот для функции time-
freq, которое должно быть вычислено;
s — число шагов в виде целого числа, которое должно быть пропущено между со-
седними вычислениями;
d — опционно заданный параметр, задающий фактор демпфирования для пред-
ставления Чои-Вильямса (равен 1 по умолчанию, игнорируется при других пред-
ставлениях);
г — матрица с целочисленными элементами и с ядром представления ‘'custom'*,
задаваемым пользователем.
Тип представления задается строкой t и может быть следующим:
wigner — представление Вагнера;
cone — коническое представление;
bornjordan — представление Борна-Жордана;
margin!! — представление Маргенау-Хилла;
choiwil! — представление Чои-Вильямса;
custom — представление пользователя.
73
Глава 1, Функции, ряды и преобразования Фурье
В начале документа рис. 1.42 даны определения для время-частотных пре-
образований и представлений сигнала.
Рис 1.42. Определения для вреия-частотиых преобразований
и представлений сигнала
Поскольку все эти представления мы рассматриваем лишь как прелюдию
к вейвлет-анализу, ниже мы ограничимся только примерами их реализации без
детального описания каждого из представлений. Такое описание заинтересован-
ный читатель найдет в справках по этим представлениям.
1.7.3. Представление Вагнера,
Рис. 1.43 иллюстрирует начало документа, поясняющего представление
Вагнера. В этом представлении используется ядро r(t.t) в виде дельта-функции,
На рис. 1.43 представлено задание простого сигнала для представления И опре-
делены Фурье-преобразования C(t,co).
Рис. 1.43. Представление Вагнера (начало)
74
Глава 1. Функции5 ряды и преобразования Фурье
Рие. 1.44. Представление по Вагнеру
Конец документа с этим представлением дян на рис. 1.44. Здесь для пред-
ставления использован сигнал, полученный из текстового файла batsig.txt. Та-
кой сигнал при его считывании во времени представляет собой набор кодов. Вре-
менная зависимость сигнала представлена на рис. 1.44 (график сверху)
be-ctapstn - atfrb«:tap. 6) b.tctapsg = Qb.trh4-Jlft| |b*tchirr^
Рис. 1.45. Спектрограмма, полученная с помощью функции «tft
75
Глава 1. функции, ряды и преобразования Фурье
График снизу рис. 1.44 представляет собой спектрограмму данного сигна-
ла, соответствующую представлению Вагнера. Нетрудно заметить, что она име-
ет весьма замысловатый вид, соответствующий сложности сигнала Вы можете
сравнилъ эту спектрограмму со спектрограммой, полученной с помощью функ-
ции stft. Эта спектрограмма показана на рис. 1.45.
По дета пыгости представления спектра эта спектрограмма заметно уступа-
ет представленной на рис. 1.43.
1.7,4, Представление Мзргинау-Хилла
Представление Маргинау-Хилла (с параметром «I» — «niarghill») особен-
но аффект но в трехмерном пространстве. Это хорошо видно из рис. 1.46.
Спектр в данном случае напоминает горный ландшафт и отличается де-
тальностью и выразительностью. Цветная функциональная окраска (увы не вид-
ная па рисунке в книге) дополнительно выявляет детали спектра.
Рис. 1.46. Представление Маргннау-Хнлла для сложного сигнала с шумом
1.7.5. Представление Чои-Вильямса
Представ пенне Чои Вилья мса представлено ня рис. 1.47 в двух вариантах.
Они показывают возможности управления детальностью спектрограмм.
Это представление также служит наглядной иллюстрацией сложности ре-
а 11ьных цифровых сигналов, к которым относится и сигнал от текстового файла,
использованный в приведенных примерах.
76
Глава 1. Функции, ряды и преобразования Фурье
Ядро области Времй-ззпаздывзние' для представления Чои-8ильйл<са эадап.и
выражением
tjetrfwrp • REACPRV^betngtxt*) bstcfwPcta, 1 ’ timefreq(6atch«p, чНолпа" ,33,-»)
Ml:hirpcho7 • timafreq(baKhpp,-choiwiir ,128,4,8)
Рис. 1Л7. Представление Чои-Вилъямса
1.7.6. Представление Борна-Жордала
и коническое представление
Еще два представления спектра сигнапа представлены на рис. 1.48. Это пред-
ставление Борна-Жордана и так называемое коническое представление. Детали
этих представлений описаны в электронной книге по пакету Signal Processing
batchitp;,
batchi/p^^
Рис. 1.48. Представления по Борну*Жардану и Коническое представление
(конец документа)
77
Глава 1. Функции, ряды и преобразования Фурье
Эти представления также отличаются детальностью спектрограмм. Выбор
ряда представлений одного и того же сигнала (и, разумеется, разных сигналов)
позволяет подбирать представления, наиболее подходящие для выявления тех
или иных особенностей сигналов. Сложные представления сигналов лежач в ос-
нове техники распознавания речи (звуковые сигналы) и изображений.
1.7.7. Трехмерное представление спектров
Некоторые программные средства дают возможность получения трехмер-
ных спектров, что особенно полезно при оценке частотно-временных методов
представления сигналов, таких как оконное преобразование Фурье.
Для оценки возможностей трехмерного представления спектра рассмот-
рим 3-D спектрограмму сложного сигнала, содержащего 4 косинусоидальные
компоненты с частотами 5, 10, 20 и 50 Гц, с единичными амплитудами и нуле-
выми фазами:
s(t) — cos(2n5t) + сов(2л10Г) + cos(2n20t) -Н cos(2n50t)
Этот сигнал содержит четыре аддитивные компоненты и является стацио-
нарным сигналом. То, что этот сигнал не так уж и прост свидетельствует осцил-
лограмма сигнала, представленная на рис. 1.49. По виду осциллограммы трудно
судить о том, какие компоненты и с какими частотами входят в этот сигнал. Раз-
ве что бросается в глаза периодичность сигнала, связанная с первой частотной
компонентой. Обычный спектр такого сигнала для нас уже тривиален; он просто
представляет собой четыре линии единичной высоты на частотной оси с указан-
ными выше частотами.
Рис. 1.49. Осциллограмма сигнала, имеющего четыре аддитивные косинусоидальные
компоненты с частотами 5,10, 20 и 50 1'ц (время в миллисекундах)
78
Глава 1. Функции, ряды и преобразования Фурье
А теперь усложним задачу. Представим себе, что каждая из компонент (на-
чиная с самой высокочастотной) на интервале времени 1000 мс существует всего
по250 мс. Таким образом, мы перешли от рассмотрения стационарного сигнала
к рассмотрению нестационарного сигнала. Временная зависимость нового сигна-
ла представлена на рис.1.50.
Рис. 1.50. Осциллограмма сигнала, имеющего четыре косикусоидальиые компоненты
с частотами 30. 20,10 и 5 Гц. присутствующими в разное время
Сравнение сигналя с осциллограммой рис. 1.50 с сигналом, осциллограм-
ма которого дана на рис. 1.49, показывает, что мы имеем два абсолютно разных
сигнала. Изменится ли от этого вид обычного спектра? Мы показали в этой гла-
ве чуть выше, что он будет представлен четырьмя вертикальными линиями на
частной осн, хотя и меньшей высоты для второго сигнала, поскольку энергия
каждой частотной составляющей стала меньше. Качественно вид спектра оста-
нется прежним.
Л теперь рассмотрим 3-D спектры такого сигнала с оконным преобразова-
нием Фурье (1.18). Выберем хорошо известное временное окно Гаусса
w(t) = е 2
Это окно имеет колокоппобразную временную зависимость, острота кото-
рой задается параметром а. Чем больше а, тем уже пик зависимости iv(I).
Рис. 1.51 показывает 3-D спектр для а=0.01. Мы зидим. что все компонен-
ты сигнала хорошо различаются ио времени и удовлетворительно по частоте.
79
Глава 1. Функции, ряды н преобразования Фурье
Рис. 1.51. 3-D спектр сигнала при а—0.01
Рис. 1.52.3-D спектр сигнала при а=0.001
Теперь увеличим ширину окна, уменьшив а. Полученный при а==0.001
спектр показан на рис. 1.52. Становится отчетливо видно, что разрешение во вре-
мени заме1но ухудшилось и появились признаки перекрытия фрагментов сигна-
ла В тоже время разрешение по частоте заметно упучагилоеь.
80
Глава 1. функции, ряды и преобразования Фурье
Пойдем дальше и построим 3-D спектр для а=0.0001 (рис. 1.53). Теперь
уж? разрешение по времени стало совершенно неудовлетворительным, а по час-
тоте стало еще лучше. Заметим, что при а—>0 наш спектр во всех временных ин-
тервалах выродится с обычный спектр Фурье.
Рис. 1.53. 3-D спектр еигпала при «=0.0001
Итак, мы еще раз наглядно убедились в том. что в случае оконного преоб-
разования Фурье действует принцип неопределенности, согласно которому
улучшение разрешения по одному параметру (частоте и пи времени) ведет к ухуд-
шению разрешения по другом у параметру. Можно предположить, что а ю проти-
воречие разрешимо путем перехода к адаптивному оконному преобразованию,
при котором ширина окна адаптируется к особенностям сигнала, а число окоп
становится не вполне определенным. Однако, при этом перед нами встанет весь-
ма сложная задача выбора критерия адаптации и его реализации. Подавляющее
большинство практических реализаций окопного преобразования Фурье базиру-
ется на применении икон одинаковой ширины и, таким образом, не решают про-
блему неопределенности частотного и временного разрешения.
1.7.8. Трехмерные венвлет-спектрограммы
Альтернативой оконному преобразованию Фурье и заодно и его частному
виду — обычному преобразованию Фурье и стала разработка вейвлет-преобра.чо-
пения на основе повогп и довольно представительного набора базисных функ-
ций, порождающих вейвлеты. Эго и является предметом рассмотрения в после-
дующих главах данной книги.
А в завершении этой главы мы, ради сравнения со спектро1раммами оконного
преобразования Фурье, рассмотрим типичную трехмерную вснвлет-спектрограмму
для описанного ’гуть выше сигнала. Рис. 1.54 показывает такую спектрограмму.
81
Глава 1. Функции, ряды и преобразования Фурье
Гори.'сшта/ц.няя плоскость спектрограммы построена по осям SCALE
'jvlai птп.,6) к TRANSLATION (Преобразованное время). Высота задастся знаке
it. <н ‘in ней в.п т-ко’ффициентов. Эти понятия мы рассмотрим подробно в Главе
A ослм им, что вейвлет-спектрограмма выглядит куда более представи-
•Iс.чьпо. 'юм обычные даже трехмерные спектрограммы оконного преобразова-
ния ‘Pvp.>e. В частности, можно четко локализовать места на спектрограмме,
•.аракгеряые для каждой ио четырех компонент сигнала. Это особенно заметно
net '-laerKax спектрограммы, соответствующих представлению коэффициентов
< малыми поморами вейвлет-коэффициентов (малые значения SCALE). При
бо !£.ших номерах коэффициентов хорошо виден постепенный эффект сглажг-
ндш1я, находящий практическое применение для фильтрации сигналов, их
1 ж-.i-i ия (компрессии) и очистки от шума.
ПРИМЕЧАНИЕ______________________________________________________
Несмотря на icpacoi у (особенно в цвете) трехмерных спектрограмм па практи-
ке они применяются редко. Эго связано с громоздкостью таких спектрограмм
и необходимостью н ецециал ьном программном обеспечении их построения.
8Э
Глава, Я. Вейвлеты
и вейвлет-преобразования
2.1. Некоторые математические понятия
теории вейвлетов
2.1.1. Пространство сигналов и его базисы
В последнее время наметилась тенденция к использованию ширсисополос-
ных импульсных и цифровых сигналов (видеоиипульсная локация, видеосред-
ства компьютеров и т. д.), которые относятся к классу нестационарных. В этом
лов. Приведенная ниже сводка математических понятий нужна тем, кто хочет
достаточно глубоко вникнуть в теорию вейвлетов. Если, пока, вы такой цели пе-
ред собой не ставите, то можете смели пропустить этот раздел и вообще бегло по-
знакомиться с этой главой-
В математической теории сигналов принято считать, что они определены
как векторы в некотором пространстве V. Не претендуя на строгость, можно счи-
тать, что вектором является некоторый набор чисел, представляющих сигнал
Бесконечно-размерное пространство, часто используемое в теории вейвле-
тов, называется гильбертовым пространством L2IRJ (см. главу 1). Вейвлет-фупк-
цли ‘Л принадлежащие пространству L2[R], принципиально должны иметь ну-
левое сроднее значение (интеграл) и затухать на бесконечности. Именно это
свойство побудило считать вейвлеты короткими волнами.
Ввиду ограниченности действия вейвлетов они мщуг покрывать всю ве-
щественную ось или ее достаточно большую часть только в том случае, если об-
ладают возможностью сдвига по этой оси. К этому стоит добавить возможность
масштабирования (сжатия/растяжения), которое можно уподобить измене-
нию частоты гармоник в рядах Фурье, приближающих сигналы или функции.
При наличии этих свойств вейвлеты обеспечивают свое главное преимущество
веред синусоидами! возможность представления локальных особенностей
функций и сигналов.
Базисом векторного пространства V называют множество линейно незави-
симых векторов, таких, что любой вектор из пространства V может быть записан
в виде их линейной комбинации. У векторного пространства может быть один
базис или много базисов. Однако, число векторов во всех базисах одинскс.во и на-
зывается размерностью векторного пространства. К примеру, в двухмерном про-
странстве базис состоит из двух векторов, в трехмерном — аз трех.
83
8. Вейвлеты и вейвлет-преобразования
2.1.2. Скалярное произведение функций
В дальнейшем мы часто будем использовать понятие скалярного произве-
дения функций. Повгому дадим его общее определение. Пусть имеются две
функции f(t) и g(t), определенные в прострапстве L2[a,Z>]. Тогда скалярное про-
изведение обозначается как;
(/(О, - J
Напомним, что L2[u,i<] означает множество функций, интегрируемых с ква-
дратом в интервале [а,£]. Знак * (иногда черточка над именем функции) означает
комплексное сопряжение для соответствующей функции — в нашем случае g(t).
2.1.3. Норма функции
Для функции f в пространстве L2[R] существует понятие нормы функции:
И= (f.fT
Понятие нормы широко используется в доказательствах сходимости рядов
Фурье и вейвлетов. Эти доказательства можно найти в специальной литературе
[11,12,21 — 23]. Мы же будем считать, что для всех реально применяемых кусочно-
непрерывных сигналов и функций сходимость указанных рядов обеспечивается.
2.1.4. Ортогональность и ортонормироваиность
Два вектора, например v и W, называются ортогональными, если
I
т. п. er-пи их скалярное произведение равно нулю. Соответственно две функции
являются ортогональными, если
(/(<), «(<)}=]/(»)<?'(<)Л = О-
Множество векторов называют ортонормированным, если все векторы по-
парно ортогональны и имеют единичную длину, что записывается как;
(vm,wn) = 8„^.
Гильбертово пространство всегда имеетортонирмированнные базисы. Для
него справедливо выражение:
84
2. Вейвлеты и вейвлет-преобразования
Ана логично множество функций называют ортоиормирозанным, если:
= ft, k*l |{К(£)|}2л=1
“ и
Это можно записать в виде:'
Б этих выражениях
|1, к=1
'k' |0. h^l
функция Кропекера
2.1.5. Базис Рисса
В гильбертовом пространстве могут быть и более общие семРЙсч’Вя линейно
аезависимых базисных векторов, называемых базисом Рисса (Riesz). Дли них
действуй! условие — неравенство:
гдея>0. Ь--'». Эти базисы являются безусловными, т. е. в них порядок размеще-
ния векторов может быть произвольным. Вейвлеты часто принадлежат к базису
Рисса, обиегчаюпщму доказательства полной реконструкции сигналов (и функ-
ций) на основе вейвлет-цреобразовщигй.
В данной книга представленные выше понятия используются только там,
где это принципиально необходимо. Большую часть последующего материала
можно понять, зная обычны г курсы по i сирин chi налов и их обработке.
2.2. Основы теории
вейвлет преобразований
2.2.1. Идея вейвлет-преобразования
На основании понятия о векторном пространстве общеприняты м подходом
к анализу таких сигналов s( I) стало их представление в виде взвешенной суммы
простых составляющих — базисных функций помноженных на коэффи-
циенты Cki
(2.1)
85
2. Вейвлеты и вейвлет-преобразования
Так как базисные функции 4',,(t) предполагаются заданными как функции
вполне определенного вида, то только коэффициенты С) содержат информацию
о конкретном сигнале. Таким образом, можно говорить о возможности представ-
опия произвольных сигнапон на «г-иойе рядов (2.1) с различными базисными
функциями.
К примеру, ряд Фурье использует в качестве базисных функций синусоиды
и кос инусоиды, представленные комплексной экспопсптэй e''*=cos(£Z>) 1 г sin(i/t):
s<i) - ^С\е"\ (2.2)
Они предельно локализованы в частотной области (вырождаясь на спект-
рираммс вперт .|кал|.иую Л|Ш|1|О), по очень плохо локализованы (точнее, вообще
по лок.1 । >.<евапы) во временной области. Коэффициенты Фурье ряда (2.2) для
ii poii.jHo 1Ь11>>г(> сигнала s( I) вычисляются как:
G - s(t)e-"kdt.
2” Jo
с'о.п ы;к гвующие формулы для периодических s( t) были приведены в гла-
1'о > И j 1 казанного ясно, что ряды Фурье плохо годятся для представления корот-
кий локальных особенностей сигналов и функций, таких как перепады и скачки.
Прямо противоположный пример — некая импульсная базисная функция
(ф'.тгкция Кронскера):
(1, k = t
*^=^=\0. ^1-
O)j;i четко локализована во временной области и потому подходит дл
ирмпакэрпиа разрывов сигнала. Ио зга базисная функция не несет никакой ин-
.I'.-jia.iцпи •' частоте сигнала ц потому плохо приспособлена для представлена
с ип'пчо мс мятшихся сигналов па заданном отрезке времени и. тем более, ие
мда цч । ; < с in налов.
Р : । о ' :1окг1з<иел1>иь1х примерах базиспыс функции имеют один серьезный
;> -гпишпп । -I ьный недостаток они не способны адаптироваться к локальным изм
ч-'циям сигнала)-. Этот же недостаток проявляется у всех методов аппроксимации
.11 палов о функций, раи.мо1 репных в главе 1 от ряда Тейлора до рядов Фурье.
Нет кильке особняком стой г преобразование Габора. В нем в качестве базо-
вой фудьцнн была использована синусоида, пропущенная через окно Гаусса (га-
честит). Такие функции могут быть локализованы и по частоте и по времени.
Одчако, спсплалогь, что они в принципе но ортогональны и унаследуют псдостат
кп синусоиды в чащи представления локальных особенностей сигналов. Пр
н-ом функции анализа оказываются плохс обусловленными, что ведет к боль-
шим ошибкам D ходе преобразований, результаты которых «•размазываются»
как ио всей частотной, так и пространственной областях.
86
3, Вейвлеты н венвлет-преобразовання
Таким образом, назрела острая необходимость в создании нового матема-
тического аппарата приближения функций и сигналов, свободного от указанных
недостатков. Им и стали вейвлеты и вейвлет-преобразования.
Термин вейвлет, введенный впервые Морле (J, Morlet), в переводе с англий-
ского wavelet означает «короткая или маленькая волна ». У нас его изначально пере-
водили как «всплеск», «выброс» и т. д. [15], что менее удачно, поскольку большин-
ство вейвлетов имеет временные зависимости с ярко выраженной колебательной
компонентой (как и волны). Слова «всплеск» и «выброс» нс Отражают факта осцил-
ляций вейвлетов. Вейвлеты занимают промежуточное Положение между рассмот-
ренными нами крайними случаями (синусоидой и импульсной функцией) и образу-
ют некоторый набор функций, удовлетворяющих сформулированным далее
условиям, основанным на использовании представления сигнала в виде (2.1).
Довольно грубо можно представить вейвлеты как некоторые волновые
функции, способные осуществлять преобразование Фурье не по всей временной
оси (или оси х), а локально по месту сроего расположения. Для этого вполне ес-
тественно, что кроме изменения «средней частоты» маленькие волны должны
перемещаться к тому месту сигнала.или функции, в котором должно осуществ-
ляться «локальное преобразование Фурье». Хотя подобная интерпретация вейв-
летов способна дать стимул к пониманию сути вейвлет-преобразований, она яв-
ляется чрезмерно упрощенной и подчас даже принципиально ошибочной.
Прежде всего потому, что подавляющее большинство вейвлетов не имеет ничего
общего с модулированной по амплитуде синусоидвльной волной.
Базисными функциями вейвлетов могут быть различные функции, в том
числе, близко или отдаленно напоминающие модулированные импульсами си-
нусоиды, функции со скачками уровня и т. д. Это обеспечивает легкое представ-
ление сигналов с локальными скачками и разрывами, наборами вейвлетов того
или иного типа и открывает простор в подборе наиболее походящих вейвлетов
исходя из условий решаемых задач и делает такое решение отнюдь не тривиаль-
ным. К сожалению, почти все вейвлеты не имеют аналитического представления
в виде одной формулы, но могут задаваться итерационными выражениями, лег-
ко вычисляемыми компьютерами.
S. Wolfram — основатель корпорации Wolfram Research Inc. и создатель
системы Mathematics [30] (лидера среди систем для аналитических вычислений)
последние годы был занят удивительными исследованиями. Ему удалось пока-
зать и зачастую доказать, что многие процессы в природе описываются не столь-
ко математическими выражениями, сколько программами. Подобными том, что
применяются в компьютерах. Вейвлеты несомненно пополняют копилку этих
удивительных представлений. И это делает создание программных инструмен-
тальных средств по вейвлетам и их применению стиль же принципиально и
практически важным, как и само по себе фундаментальное открытия всйалстоп,
как особых объектов математики.
ВНИМАНИЕ_____________________________________________________________
Методика проектирования вейвлетов рассматривается в конце этой главы.
Пока мы будем считать, что вейвлеты уже существуют и мы можем выбрать
подходящий тип вейвлета для решения той или иной прикладной задачи.
87
а. Вейвлеты и вейвлетпреобразования
Вейвлеты характеризуются своим временным и частотным образами
(рис. 2.1). Временной образ определяется некоторой psi- функцией ty(t) времени,
А частотный образ определяется ее Фурье-образом = F(CO) который задает
огибающую спектра вейвлета, Фурье-образ определяется выражением:
F(<0) = ^(t)e-liadt
Для демонстрации этих параметров вейвлетов часто используется вейвлет
типа «мексиканская шляпа». Его временной образ, в отличии от подавляющего
большинства других вейвлетов, описывается аналитическим выражением:
m.hat(t) = (1- t2)e'(2/!
Это выражение является второй производной гауссиана, в которой опущен,
не имеющий принципиального значения, числовой множитель. С помощью систе-
мы Mathcad, имеющей оператор символьного преобразования —» и средства постро-
ения графиков функций, нетрудно получить и представить графически временной
и частотный образ этого вейвлета (рис. 2.1). Иногда предпочитают перевернутый
вейвлет «мексиканская шляпа» у которого главный пик обращен вниз.
Рис. 2.1, Временной И частотный образы вейвлет «мексиканская шляпа»
88
2. Вейвлеты и вейвлет-преобразования
Хорошо видно, что данный вейвлет напоминает затухающее синусоидаль-
ное колебание с некоторой «средней частотой» и площадью (над осью времени и
ПОД ней) близкой к нулю. На самом деле точное нулевое значение площади (над
и под осью времени) — одно из важнейших условий, позволяющих отнести Вре-
менную зависимость mhat(t) к вейвлетам. Если вейвлет в пространстве сужает-
ся, его «средняя частота» повышается, спектр вейвлета перемещается в область
более высоких частот и расширяется. Этот процесс можно считать линейным: ес-
ли вейвлет сужается вдвое, то его средняя частота и ширина спектра возрастают
также вдвое.
Тут важно отметить, что невозможна хорошая локализация вейвлетов
одновременно во временной и частотной областях. Однако было бы неверно оце-
нивать это обстоятельство как недостаток вейвлетов. Напротив, в сравнении с
оконным преобразованием Фурье, именно хорошая временная локализация
локальных особенностей сигналов. Словом, ситуация как в нашей модной песен-
ке «что-то теряешь, что-то находишь».
Даже интуитивно ясно, что совокупность волновых пакетов, напоминаю-
щих модулированную импульсами синусоиду, или подобных приведенному на
рис. 2.1 вейвлету «мексиканская шляпа», способна хорошо отражать локальные
изменения сигналов (рис. 2.2). Однако, вопрос о представлении произвольного
сигнала в произвольно заданном промежутке времени целом рядом разных по
виду вейвлетов пока остается открытым. Он будет решен ниже и, в частности, с
введением понятия кратномашптабниги анализа.
Рис. 2.2. Иллюстрация к вейвлет синтезу сигнала
Итак, с помощью вейвлетов сигнал представляется совокупностью волно-
вых пакетов — вейвлетов, образованных на основе некоторой исходной (базовой,
образующей и т. д.) функции 4>0(t). Эта совокупность, рапная в разных частях
временного интервала определения сигнала и корректируемая множителями,
имеющими вид порой сложных временных функций, и представляет сигнал с
той илп иной степенью детализации (рис. 2.2). Такой подход на.тыкают вейвлет
анализом сигналов.
Число используемых при разложении сигнала вейвлетов задает уровень де
композиции сигнала. При этом за нулевой уровень декомпозиции часто принима
ется сам сигнал, а последующие уровни декомпозиции образуют обычно ниспада
ющее вейвлет-дерево того или иного вида (иногда дерево задается «оастущим»
вверх). Точность представления сигнала по мере перехода на более низкие уровни
89
2. Вейвлеты и вейвлет-преобразования
декомпозиции снижается, но зато появляется возможность вейвлет-фильтрации
сигналов, удаления из сигналов шумов и эффективной компрессии сигналов.
Иными словами становится возможной вейвлет-обработка сигналив.
ВНИМАНИЕ__________________________________________________________
Вейвлет-составляющие сигнала даже внешне не имеют ничего общего с сину-
соидами, и они представлены сигналами подчас весьма сложного и, порою, не
вполне понятного вида. Это, кстати, существенный недостаток вейвлетов с
позиции наглядного их понимания и представления. Он ликвидируется соот-
ветствующими инструментальными средствами, вошедшими в пакет расши-
рения Wavelet Toolbox системы MATLAB и в расширения по вейвлетам раз-
личных СКМ.
Вполне очевидно, что для представления сигналов, как в локальных обла-
стях их возмущений, так и во всем временном интервале изменения сигналов,
надо иметь возможность сжимать или растягивать вейвлеты и перемещать их по
временной оси.
Прямое вейвлет-преобразование (ПВП), именуемое также непрерывным
преобразованием, означает разложение произвольного входного сигнала на прин-
ципиально новый базис в виде совокупности волновых пакетов — вейвлетов,—
которые характеризуются четырьмя принципиально важными свойствами:
• имеют вид коротких, локализованных во времени (или в пространстве), вол-
новых пакетов с нулевым значением интеграла;
• обладают возможностью сдвига по времени;
• способны к масштабированию (сжатию/растяжению);
• имеют ограниченный (или локальный) частотный спектр.
Этот Оазис может быть ортогональным (см. выше), что заметно облегчает
анализ, дас г возможность реконструкцип сигналов и позволяет реализовать ал-
горитмы быстрых вейвлет-преобразований. Однако, есть ряд вейвлетов, которые
свойствами ортогональности не обладают, но которые, тем не менее, практичес-
ки полезны, например, в задачах анализа и идентификации локальных особен-
ностей сигналов п функций.
2.2.2. Аппроксимирующая и детализирующая
компоненты вейвлет-анализа и синтеза сигналов
Одна из основополагающих идей вейвлет-представления сигналов за-
ключается в разбивке приближения к сигналу на две составляющие: грубую
(аппроксимирующую) и утонченную (детализирующую), с последующим их
уточнением итерационным методом. Каждый тяг такого уточнения соответ-
ствует определенному уровню декомпозиции и реставрации сигнала. Это воз-
можно как но временной, так и в частотной областях представления сигналов
вейвлетами.
Такой подход нельзя назвать абсолютно новым. Он реализован давным-
давно, к примеру, в технике представления функций рядами Тейлора или
Фурье, а также в современной технике обработки изображений. В математи-
90
8. Вейвлеты и вейвлет-преобразования
ке можно найти не мало соотношений, по форме (нс вовсе не по существу)
напоминающих выражения для вейвдег-лреобразований Новым стало от-
крытие целого класса функций, удовлетворяющих ряду особых условий и
способных представлять произвольные функции, сигналы и изображения и
обеспечивать повышенную в сравнении с рядами Фурье эффективность обря
ботки последних.
В основе непрерывного вейэлот-прсобр;.новация НВП (иди: CWT -
Continue Wavelet Transform) тржит использование двух непрерывных и и зтег-
рируемых по всей оси t (или х) функций:
• вейвлег-функцпя psi ч/ft) с нулевым зналсиисм иптогрнла ( j W(,t)dt = 0), опре-
деляющая детали сигнала и порождающая детализирующие- коэффициенты;
» масштабирующая или окейлииг-функцня phi $(t) с единичным значением
интеграла ( |(p(f)dt = 1), определяющая грубое приближение (аинроксима
цию) сигнала и порождающая коэффициенты аппроксимации.
Phi-функции <р(t) присущи далеко не всем вейвлегам, а только тем. кото-
рые относятся к ортогональным. Такие вейвлеты мы рассмотрим в дальнейшем,
а цока остановимся только на свойствах рэз-функцин Ц/(1) и на ириблпженгнз
ими локальных участков сигналов sf I).
Psi-функцпя iff/t) создается на основе той или иной fia.iwi-UHi функции
Hi,(tI. которая, как m//( tj, определяет гид вейвлета. Базисная функция должна
удовлегвирять всем тем требованиям, которые были отмечены для рггфункцци
y(t). Она должна обеспечивать выполнение двух осноиных опер-щли:
» смещение по оси времени t - voft-b) при б? R;
» масштабирование — о ' i/Jn| при а'0 и не Я .{0].
Параметр а задаст ширину этого пакв"я, л b — ого положешде. В ряде лите-
ратурных источников вместо явно: о указания времени г используется «pi умь-нт
X, а вмести параметров а и b используются имеющие гот же смысл иные обозна-
чения. Нетрудно убедиться в том, что следующее выражение задаст сразу два
этих свойства функции \у( t
i/(t) - w(a,b, ') « ! Ь |2.3)
I a
Итак, для заданных з и 6 функция I) и ость cteiia.'/eni. П-?пслоты, обозна-
чаемые как >f/(t) ичогдь называют «материнскими вейвлетами», поскольку они
порождают целый ряда вейвлетов определенного оода.
Вейвлеты являются вещественными функциями времени I и ю> -в. б лют г н
вокруг оси I (или х). Параметр Ъ в (2.3) задаст положение аейвлотов, а щ’.рамртр
91
2. Вейвлеты и вейвлет-преобразования
а — их масштаб. О вейвлетах, четко локализованных в пространстве (или во вре-
мени), говорят, чго они имеют компактный носитель.
Применительно к сигналам, как функциям времени, параметр 6eR задает
положение вейвлета на временной оси, я параметр и задает ею масштабирование
цо времени. Поскольку параметр масштаба а реально может быть только положи-
тельным и его нельзя брать равным пулю, то считается, что aeR*-{0). В дальней-
шем мы будем опускать выражение -{0}, означающее исключение значения аН).
На рис. 2.3 показано построение вейвлета, уже известного нам под назва-
нием «мексиканская шляпа». На этот раз «шпян.т» представлена перевернутой
сменой знака у исходной временной функции. Для вычисления и построения
графинов ,« того вейвлета вновь использована популярная СКМ Mathcad.
типа «мексиканская шляпа»
На рис. 2.3 представлена базисная функция данного вейвлета п фупкци
77 ) для разных а и Ь, что иллюстрирует сдвиг вейвлета и его масштабирова
пне В Mai ht'dd для обеспечения изменений а и b функцию ) приходите
задавать в более полном ни де, чем Ч'( t), в котором зависимость Wot а и b лит
подразумевается — см. (2.3).
В частотной области малые зпачгчгня а соответствуют высоким частотам,
большие низким частотам. Таким образом, операция задания окна, испольэу
ем<|Я в оконном преобразовании Фурье, как бы заложена в самой ба <испой функ
ции вейвлетов Это создаст предпосылки их приспособления (адаптации) к с
налам, которые могут быть представлены совокупностью вейвлетов.
9Э
2. Вейвлеты и вейвлет-преобразования
2.2.3. Непрерывное прямое
вейвлет-преобразование
Для определенности, пусть энергия сигнала з(t), равная
конечна в пространстве сигнала с областью ограничения R. Прямое непрерывное
вейвлет-преобразование (ПНВП) сигпала s(i) задается, по формальной анало-
гии с преобразованием Фурье, путем вычисления вейвлет-коэффициентов по
формуле:
С(а,&) = {а((),1//(иД t)) = j s(()a'l/2i/^-—di (2.4. а)
где обозначение (...,.. ), введенное и поясненное в начале этой главы, означает
скалярное произведение соответствующих сомножителей. С учетом ограничен-
ной области определения сигналов и a.ftcR, a*0:
C(a,&)= js(t)a —~\dt (2.4,b)
Итак, вейвлет-коэффициеиты определяются интегральным значением
скалярного произведения сигнала на вейвлет-функцию заданного вида. Выра-
жение (2.4,Ь) используется, как основное для функции прямого непрерывного
вейвлет-преобразования в пакете Wavelet Toolbox.
Прямое вейвлет-преобразование можно рассматривать как разложение
сигнала по всем возможным сдвигам и растяжениям/сжатиям сигнала s(t) или
некоторой произвольной функции. При этом параметры а и Ъ могут принимать
любые значения в пределах указанных выше областей их определения. Заме-
тим. что прямое преобразование Фурье также можно рассматривать как раз-
ложение цо сдвигам (имеется ввиду фазовый сдвиг гармоник, задающих поло-
жение их графиков) и растяжениям/сжатиям (определяемым значениями
амплитуд гармоник), но применительно к одной функции (синусоиде), не очень
удобной для представления локальных особенностей сигналов.
ВНИМАНИЕ_______________________________________________________________
При вейвлет-преобраловании выбор типов вейвлетов намного более обширен,
чем при преобразовании Фурье. В качестве вейвлет-функций могут использо-
ваться ортогональные и биортогональные непериодические функции, функ-
ции имеющие глобальный экстремум г' быстрое затухание на бесконечности
и т. д. Основные требования к этим ф 1 циям обсуждались. Все это дает об-
।ии11 иы • вочможности для представления различных сигналов.
33
2. Вейвлеты н вейвлет-преобразования
2,2,4, Примеры выполнения прямого
вейвлет-преобразования
Для знакомства и техникой прямого вейвлет-преобразования удобна хорошо
известная у нас СКМ Mathcad, общение пользователя с которой происходит с по-
мощью математически-ориентироваиного языка общения и визуального програм-
мирования [26—28]. Рис. 2.4 демонстрирует документ системы Mathcad 2001,
обеспечивающий создание вейвлета «мексиканская шляпа» и проведение пря-
мого вейвлет-преобразования для функции, которая имеет вид симметричных
прямоугольных импульсов — меандра. Они создаются с помощью выражения
s(t):-= sign(sin(0.04At)), где sign — сигнум-функция sign(x)“l при х>0, 0 при х=0
—1 при х<0.
Рис. 2.4. Прямое вейвлет-преобразование
дпя периодических прямоугольных импульсов — меандра
В представленном документе системы Mathcad вычисление вейвлет-коэф
фициептов С(а,Ь) выполняется стандартным оператором интегрирования, чт
придает документу с одной стороны прекрасную наглядность.
На другом рисунке (рис. 2.5) представлено прямое вейвлет-преобразовани
для периодической функции синуса в кубе. Такая функция имеет ряд особенно
стей, в частности переходы производной через нуль в момепч ы ла цкоп хн-п и -иг
нЫе пор......... , , , । 11< i| \ иь-цип через iix.ii..
94
2. Вейвлеты н вейвлет-преобразования
Итак, эти примеры столь же наглядны, сколь и малоэффективны. Даже па
ПК автора этой книги с пропессором Pentium 111 600 МГц и оперативной памя-
тью в 320 Мбайт время вычислений составляет до нескольких минут. Последнее
связано с тем. что вычисление определенных интегро поп и СКМ Mathcad реалп
зовано довольно сложным адаптивным методом интегрирования. Он, кстати не
плохо, по ужасно медленно, справляется с вычислением определенных интегра-
лов с. бесконечными пределами интегрирования, например такими как (2.4,а).
Впрочем, надо отметить, что это имеет место не всегда п нередки ОГК' па от вы
числения И при этом Mathcad не выдает результат, а вычисляемое в .гриж^пг’с
сквашивается красным цветом.
На практике для вейвлетов с компактным носителем пет ника ii необхо-
димости вычислять интегралы с бесконечными пределами. Можно учесть, что
области изменения параметров а и b охраиичецы. К приме] у, io; же ьезульта г
можно получить, интегрируя в пределах от — N до N. Это соответствует вычисле-
нию вейвлет-коэффициентов по формуле (2.4,Ъ)
И еще одно важное обстоятельство. Практически нрцозыолгпо чести вычис •
летая с представленными непрерывными вейвлетами. На практики, так или
imi’ic ii।( । ы "i.i,i-i, гп<к!>‘'г-|ы<тшлчеш1яанЬ.папримердлЯ1-рафичос-
। lull । и, ii ।,и: 1(41,1-4 [>!11, i.ricii! ьн'л.г л 1 и и ( .( мио в конце документов,
цьг.Г 1 । г । \ 11 ,Ч| । 2 I । ’ । I- ii.. । 11 i - । । '<!), - -и । "I । , . - .-таиоиыо
2. Вейвлеты и вейвлет-преобразовання
непрерывного преобразовалгя в этих примерах, иногда ошибочно именуемого
» дискретным», является практически произвольный (в пределах общих теоре-
тических допущений) выбор значений а и Ь. Практически он сделай таким, что
бы представить вейвлет-спектрограммы в этих примерах в наиболее наглядном
(а точнее детальном) виде.
Непрерывное прямое вейвлет-прообразование обладает большой избыточ-
ностью, что и ведет к неоправданно большим затратам машинного времени на
его вычисления. Однако, как уже отмечалось, это преобразование, даже с вейв-
летами, не допускающими реконструкции сигналов. Может использоваться для
Построения вейвлет-спекл рограмм в плоскости «коэффициситы-время» (более
точно, пожалуй, назвать эту плоскость «коэффициенты-сдвиг»). Такие спектро-
граммы и представлены в Mathcad документах рис. 2.4 и 2.5. В данном случае
спектрограммы строятся с применением контурных графиков с функциональ-
но» закраской областей.
Всивлет-спектрогриммы являются своеобразными образами функций и
сигналов. Пакет Wavelet Toolbox системы MATLAB имеет специальные средств
для построения спектрограмм сигналов с существенно улучшенной визуализа-
цией, синтезированных вейвлетами. Эти спектрограммы также представляют
значения коэффициентов вейвлетов в плоскости масштаб (номера коэффициент
юл) — время. Снизу всйплет-спектрограммы расположены коэффициенты с ма
ними номерами, дающие детальную картину сигнала, а сверху — с большим
номерами, дающие огрубленную картину сигнала. При этом их значения опреде-
ляю'! н.пел соответствующей (обычно достаточно малой) области спектрограммы
Избыточность непрерывного вейвлет-преобразования в некотором смыс
дискредитирует его па практике. К примеру, вейвлет-егюктрограммы в зависи
мости от их конкретной реализации, заданной соответиьвующими программны
ми среде 1 ними, порой могут давать самую разнообразную окраску тех ИЛИ ивы
локя IIиных особенностей сигнала. Это может приводить к ошибочной интерпре
Тем >п> менее, вейвлет спектрограммы являются важнейшим продукте
ис'йвлет-:п1т пиал сигналов и прекрасным дополнением к обычным сцекгриграм
мам на oeuoiie оконного преобразования Фурье, которые, кстати говоря, в ра
ширенном варианте реп, в пакете Signal processing системы MATLAB. Вейвле
спектрограммы сигналов (рис. 2.5) норой выделяют такие особенности сигнале
которые вообще незаметны пя графиках сигналов и на Фурье-спектрограммах.
Чистым гармоническим сигналам соответствуют яркие горизонтальныеп
ЛЪСЫ, где модуль некоторого коэффициента вейвлета велик. Локальным особе
костям (нарушениям гладкости) отвечают вертикальные полосы, выходящие
точки, где Находился особенность. Пикам сигналов соответствует сгущение с
л ,ix обляг той вейвлет-спектрлгрямм, а впадинам — сгущение темных областей..
Чем резче выражена особенность сигнала, тем сильнее она выделяется
спектрограмме' п том выше уровни вейилет-коэффициентов. Бейвлет-спект
граммы огчелливо выделяют такие особенности сигнала, как небольшие раоры
96
3. Вейвлеты и вейвлет-преобразования
л ет-спекгро граммах.
Рис. 2.6. Сигнал с особенностями и его вейвлет-спектрограмма
Различия между обычными спектрограммами Фурье-анализа и вейвлег-
сиектрограммами носят принципиальный характер. Обычные спектрограммы
удобны для обнаружения периодического стационарного компонента сигнала
Если такой компонент — гармонический сигнал, то для его представления до-
статочна всего одна гармоника ряда Фурье.
При вейвлег-анализе даже гармонического сигнала нам придется исполь-
зовать множество вейвлетов, перекрывающих всю ось времени. Бесспорно, это
может показаться совершенно неоправданным усложнением для представление
го весьма частного случая: когда сигнал априорно известен как простая синусо-
ида, В этом случае преобразование Фурье просто означает представление синусо-
иды синусоидой! Однако, если сигнал имеет локальные особенности, если он не
периодичен и не стационарен, го вейвлет анализ и полученные по его результа-
там спектрограммы становятся именно тем инструментом исследования, к кото-
рым Фурье-анализ в классическом виде неприменим.
Большие уровни при вейвлег-анализе характерны только для коэффици-
ентов тех вейвлетов, которые располагаются вблизи той или иной локальной осо-
бенности функции. Это позволяет легко определять местоположение локальных
особенностей, что практически невозможно при Фурье спектральном анализе.
Таким образом, вейвлет-епектрограммы дают представление в амплитудно-вре-
менной области (если мы рассматриваем сигнал в виде временной функции).
ВНИМАНИЕ_________________________________________________________
Еейвлет-анализ сигналов открывает принципиально новые возможности в
детальном анализе тонких особенностей сигналов. Это особенно важно для
звуковых сигналов и сигналов изображения, где именно такие особенности
подчас определяют качество их воспроизведения. Биология, картография,
медицина, акустика, астрономия и космос — все это именно те области, где
97
Э. Вейвлеты и вейвлет-преобразования
применение вейвлетов способно привести к новым открытиям, путем выявле-
ния характерных особенностей сигналов и изображений, мало заметных на
временных зависимостях сигналов и на их спектрах Фурье. Однако пользо-
ваться формально построенными спектрограммами, без тщательного изуче-
ния причин возникновения тех или иных их особенностей, недопустимо, ибо
может привести к «лжеоткрытиям».
2.2.5. Вейвлеты в частотной области
Мы уже говорили, что вейвлеты, будучи функциями времени, имеют
свое частотное представление или Фурье-образ Налагаемое на функ-
цию yrft) условие (нулевое значение интеграла) означает, что ц7(0) =0. Послед-
нее указывает иа то, что Фурье-образ смещен по оси времени и будет располо-
жен вокруг некоторой ненулевой частоты Шо, которую можно рассматривать
как среднюю круговую частоту вейвлета.
В частотной области спектры многих вейвлетов напоминает всплеск, пик ко*
торого приходится на частоту соо (рис. 2.1). Если приближенно трактовать вейвлет
как модулированную синусоиду, то ее частота и будет средней частотой вейвлета.
В общем же случае, когда временная зависимость вейвлетов далека от синусои-
дальной. определение средней частоты требует обработки сигнала и реализуется
итерационными методами (см. описание вейвлетов в конце этой главы).
Частотный образ вейвлетов роднит их с оконным преобразованием Фурье,
Нетрудно понять, что подобрав набор вейвлетов можно осуществить синтез ло-
кальной особенности любой функции. Разница однако в том, что свойства окна
присущи самим вейвлетам, вследствие их частотной локализации; применение
вейвлетов не ограничено фиксированными областями пространства илн времени
окна и, главное, существует обширный выбор вейвлетов для наиболее подходяще-
го представления тех или иных функций. В их числе есть ортогональные вейвле-
ты, для которых возможность реставрации функций и сигналов после прямого и
обратного преобразований теоретически обоснована и строго доказана.
Частотное (спектральное) представление вейвлетов имеет важное значение
и в определении фильтрующих свойств вейвлет-преобразованнй и основанном на
них алгоритме быстрого вейвлет-преобразования (БВП). Нетрудно заметить,
Что есть прямая связь между временным и частотным представлением вейвле-
тов. Так, малые значения параметра а, характеризующие быстрые процессы в
сигналах, соответствуют высоким частотам, а большие значения (соответствую-
щие медленным изменениям сигнала) — низким частотам.
ВНИМАНИЕ_________________ ________________________________________
Временное и частотное представление вейвлетов — это две стороны одной ме-
дали, имя которой — вейвлет. Они образуют неразлучную пару и могут легко
преобразовываться друг в друга. И каждое такое преобразование имеет свои
достоинства и недостатки._____________________
Основанные на частотном подходе вейвлет-преобразования с помощью
фильтров будут описаны далее.
98
2. Вейвлеты и вейвлет-преобразования
2.2.6. Обратное непрерывное
вейвлет-преобразование
Обратное непрерывное вейвлет преобразование (ОНВП) осуществляется
по формуле реконструкции во временной области, которая имеет ряд форм, зави-
сящих как от математической стилистики записи, так и (что более важно) отоп-
ределенйя областей существования сигнала. Вработе [11] формула реконструк-
ции для произвольной функции / представлена в виде:
(2.5)
где
Обратите внимание на несколько непривычную запись интеграла в (2.5),
которая часто используется в работе [11] и в других работах западных авторов.
Непривычно записаны и параметры масштаба и сдвига (их индексы не надо
отождествлять со степенями). Здесь параметры сдвига и сжатия меняются не-
прерывно вдоль R с ограничением а^О. Постоянная С,, в (2.5) зависит только от
и определяется как:
С, =2ярф(£)|УГ’ = 2лdm.
Iй! (2.6)
Выше приведены две формы записи выражения (2.6) для Си. Одна соответ-
ствует стилистике [11], другая более привычна для наших читателей. Обе формы
записи абсолютно идентичны. Считается, что Cv< поскольку в ином случае
выражение для /не имеем смысла.
Если V/является вещественной функцией, то оказывается справедливым
следующее, более строгое чем (2.6) выражение:
С„ -2лр^(£)|^Г1 = 2лр^р^)|г|5р < (2.7)
В этом случае:
(2.S)
Читатель, заинтересовавшийся подобными математическими выкладка-
ми может обратиться к работам [1-12], где приведен еще целый ряд формул ре-
99
2. Вейвлеты и вейвлет-преобразования
конструкции. В частности, можно найти соответствующие формулы для так на-
зываемых «аналитических» f и и даже для разных на этапах разложения и ре-
конструкции сигналов функций <//.
В практическом аспекте интерес представляют лишь те формулы реконст-
рукции, которые используются в конкретных программных инструментальных
средствах, реализующих прямое и обратное вейвлет-преобразования. Так, ниже
представлена формула реконструкции сигнала a(t) в том виде, который использо-
ван в пакете расширения системы MATLAB 6.0/6 Л — Wavelet Toolbox (напомина-
ем, что он выбран в качестве основного для практического описания вейвлетов):
... Iff .. ... .2 I t & \dadb ,су
где Kv — константа, определяемая функций 1/. Нетрудно понять, что здесь
К^, = Cw и несколько иначе обозначены пределы интегрирования (с учетом обла-
сти R и исключения отрицательных и нулевых значений параметра масштаба а,
которые для целей практики не интересны).
Основной задачей теории вейвлет-преобразований является доказательст-
во того, что прямо? и обратное вейвлет-преобразования способны обеспечить ре-
конструкцию сигнала, причем точную или хотя бы приближенную, локальную
или для сигнала в целом на заданном промежутке времени. Учитывая нулевое
значение интеграла для функции y(lj, и то, что не все вейвлеты являются орто-
гональными, можно допустить, что эти преобразования не всегда способны вос-
становить любой сигнал в целом. Именно это и строго доказано в работах [11,12].
Несколько парадоксально выглядят утверждения, что произвольный сиг-
нал с отличным от пуля интегральным значениям может быть восстановлен с по-
мощью вейвлетов с нулевым интегральным значением. Однако, как показано И,
Добеши в [11], это имеет место сели выражение для С,, принадлежит (с некоторы-
ми ограничениями) норме Lr(R).
Пп-видимому, разумно считать, что в общем случае (для всех известных на
практике вейвлетов) вейвлет-преобразование па основе только детализирующей
ортогональной вейвлет-функции у(1) способной восстановить (реконструиро-
вать) по крайней мере тонкие детали временной зависимости сигнала s(t). Для
восстановления полной формы сигнала приходится прибегать к применению
еще одной временной функции называемой аппроксимирующей или «от-
цовским вейвлетом». Тут явный намек на то, что без существования папаши ма-
теринский вейвлет не способен воспроизвести потомство, полноценно представ-
ляющее функцию или сигнал.
Причины, порождающие необходимость в использовании этой функции, и
ее роль будут подробно рассмотрены чуть ниже — при описании кратномасштаб-
Пого анализа. Вейвлеты, которые допускают применение такого анализа и обес-
печивают полную реконструкцию сигнала являются ортогональными вейвлета-
ми. Пока именно они являются наиболее важным типов вейвлетов, способных-
полноценно приближать произвольные функции и сигналы.
100
2. Вейвлеты и вейвлет-преобразования
ВНИМАНИЕ______________________________________________________
Далеко не все типы вейвлетов гарантируют точную реконструкцию сигна-
лов в целом и даже таковую вообще. Тем не менее, применение и таких вейв-
летов может быть полезно для выявления тонких особенностей сигналов
или изображений, которые хорошо согласуются с определенными типами
вейвлетов.
Обратное вейвлет-преобразование (2.9) нецелесообразно выполнять прямо
по представленным формулам с помощью СКМ, подобных Mathcad. Мы уже убе-
дились в том, что куда более простое прямое вейвлет-преобразование выполняет-
ся крайне неэффективно и медленно. Намного более сложное обратное вейвлет-
преобразование без специальных приемов выполнять «в лоб» неразумно-
Эффективные приемы быстрого вейвлет-преобразования, к которым, прежде
всего относятся быстрые алгоритмы Малла, мы рассмотрим в этой главе несколь-
ко позже. Они реализованы в виде встроенных функций в ряд инструменталь-
ных пакетов расширения СКМ по вейвлетам и также будут рассмотрены ниже —
в последующих главах книги.
2.2.7. Сравнение различных
представлений сигналов
Мы уже отмечали, чти вейвлет-анализ не использует амплитудно-частот-
ную область для визуального представления спектров сигналов, как это имеет
место при спектральном анализе Фурье. Вместо нее используется область время
(точнее сдвиг) - масштаб (см. выше). Это схематично показывает рис. 2.7.
Рис. 2.7. Структура всйвлст-прсобраэовапил
Теперь мы можем наглядно отобразить различные виды представлений
сигналов в ходе тех или иных их преобразований (рис. 2.8). Здесь показаны ви-
ды представления сигналов не только с помощью вейвлет-преобразования, но и
с помощью других видов преобразования сигналов, описанных в Главе 1.
На рис. 2.8 представлены следующие наиболее известные формы представ-
ления сигналов;
• Time Domain — временное представление (по Шеннону);
» Frequency Domain — частотное представление (по Фурье);
» STFT — кратковременное (оконное) быстрое преобразование Фурье;
» Wavelet— вейвлет-преобразование.
101
2. Вейвлеты и вейвлет-преобразования
Рис. 2.8. Различные представления сигналов
Нетрудно заметить, что вейвлет-преобразование отличается наиболее
сложной и гибкой структурой представления сигналов в плоскости «Масштаб-
Время» (Scale-Time). Это открывает возможности более полного и тонкого вейв-
лст-анализа сигналов по сравнению с другими известными видами их анализа.
2.2.8. О скорости вычислении
при вейвлет-ттреобразованнях
Порой может возникнуть сакраментальный вопрос: чем же, с точки зрения
затрат машинного времени, вейвлет-преобразования лучше, чем преобразова-
ния Фурье? На этот вопрос ответить однозначно нельзя. Тем не менее, важно
учитывать следующие обстоятельства:
вейвлет-преобразование открывает принципиально новые возможности в об-
работке сигналов и изображений, и в этом случае затраты времени на вычис-
ления отходят на второй план (особенно с учетом, постоянного роста произво-
дительности компьютеров);
некоторые вейвлеты (например, Хаара) являются намного более простыми
функциями, чем синусоидальная функция, и в этом случае затраты времени
на вейвлет-преобразования могут быть заметно Ниже, чем на преобразования
Фурье, где вычисления множества трансцендентных тригонометрических
функций всегда требуют значительных затрат времени;
большинство вейвлетов представлено вещественными функциями, так что от-
сутствует необходимость привлечения для их вычисления аппарата ком-
плексных чисел, затрудняющего вычисления;
для ряда типов вейвлетов имеются быстрые алгоритмы вейвлет-преобразова-
ния, при реализации которых затраты времени (как и при реализации БПФ)
кардинально уменьшаются.
компьютерных программах.
102
2. Вейвлеты и вейвлет-преобразования
2.3. Кратномасштабный анализ
2.3,1. Первое понятие об ортогональных вейвлетах
Если желательно выполнение прямого и обратного вейвлет-преобразова-
вий, особенно с применением быстрых алгоритмов таких преобразований, нуж-
но иметь вейвлеты на основе ортогональных базисных функций. К таковым от-
носится, в частности, уже хорошо нам знакомый ряд функций
1, cos(x), sin(х), cos(2x), sin(2x),..., cos(nx), sin (пх),...,
которые. При x=2itft, образуют гармоники рядя Фурье для периодических сигна-
лов. На промежутке 2тс этот ряд обладает свойством ортогональности: интеграл
от произведения любых двух функций этого ряда равен пулю. Именно это свой-
ство лежит в основе строгого математического доказательства того факта, что
ряд Фурье способен представлять с заданной погрешностью любой сигнал 8(1),
удовлетворяющий условиям Дирихле. Детали этого доказательства можно най-
ти в учебниках по математике, например в [21].
В ортонормированием пространстве есть много и других классических ор-
тогональных базисов (и многочленов): Эрмита, Лагерра и др. Среди вейвлетов
также заметное место занимают ортогональные и биартогоналъные вейвлеты,
отличающиеся рядом выгодных качеств. Главные среди них — возможность вос-
становления (реконструкции) не только локальных особенностей произвольного
сигнала s(t), но и сигнала в целом, я также возможность осуществления быст-
рых вейвлет-преобразований.
Вейвлет, как уже отмечалось, представляет собой функцию одного аргу-
мента (хотя может существовать и многомерный wavelet), определенную в обла-
сти R, которая, будучи подверженной фундаментальной операции сдвига и дву-
хэлементного растяжения, порождает ортогональный базис L2(R). В дискретном
представлении, которое мы обсудим позже, это означает, что функция
^*:=2,/гИ2*—у), y.feeZ образует полную ортонориированную систему для i2(R).
Ограничения, представленные условием у,fee Z, где {Z-... 1,0,1,2,...} — множест-
во целых чисел, диктуются практическими соображениями. Д теперь дадим оп-
ределение ортогонального вейвлета:
Определение
Функция ’f'e.Zz(R) называется ортогональным вейвлетом, если семейство
|^,}, определяемое формулой ^р,*:-2*'2(К2*-у), y,feeZ, является ортонормирован-
яым базисом в пространстве L2(R). т. е.
8*т, f,k,l,meZ,
[1 для j = k
[0 для j 1
функция Кронекера, причем любая функция /fcL2(R) .может быть представлена
рядом
103
2, Вейвлеты н вейвлет-преобразования
/(*)-
который СХОДИТСЯ В Z.n(R).
Функция Хаара Н;=Х1/: i/y-Xti/ui — простейший пример ортогонального
вейвлета. Функция phi у него имеет значение 1 в интервале [0,1] и О за пределами
этою интервала. Функция psi имеет вид прямоугольных импульсов — меандра
(значение 1 в интервале [0,0.5[ и -1 в интервале [0.5,1]). Вейвлеты Хаара хорошо
локализованы в пространстве, но плохо локализованы в частотной области, по-
скольку меапдр имеет широкий спектр частот (теоретически бесконечный).
Ингрид Добеши первая предложила ортогональные вейвлеты, сосредото-
ченные на конечном интервале времени. К тому же, эти вейвлеты имеют хорошо
локализованный спектр в частотной области. «Ложкой дегтя» оказывается от-
сутствие у этих вейвлетов симметрии. Об усовершенствованных вейвлетах Добе-
ши, названных койфлетами и имеющих лучшую симметрию, можно прочитать
в [20]. Все эти вейвлеты реализуются итерационными формулами.
Детально свойства вейвлетов Хаара, Добеши и других ортогональных
вейвлетов мы опишем подробно несколько позже. Сейчас для нас главное то, что
такие вейвлеты существуют и способны точно представлять сигналы на нулевом
уровне реконструкции и то, что они имеют алгоритм быстрых вейвлет-преобра-
зоваиий. Ортогональные вейвлеты, кпк отмечалось, характеризуются двумя
функциями: вейвлет-функцией (psi) и масштабирующей функцией (phi). Их
можно наблюдать и исследовать в окне GUI пакета Wavelet Toolbox, впрочем,
как и другие типы вейвлетов. Ближе к концу этой главы описана методика со-
здания ортогональных вейвлетов.
2.3,2, Дладное вейвлет-преобразовалие
непрерывных сигналов
Мы уже убедились в том, что непрерывное вейвлет-преобразование требу-
ет больших вычислительных затрат при его проведении. Поэтому для практиче-
ского ого применения необходима дискретизация значений а и Ъ. Для избежания
избыточности вейвлет-преобразовапий можно задавать дискретные значения
о и Ь на некотором множестве {...-1,0,1,...} равные:
а=2; и b=k2l,
где j и k — целые числа, хотя возможны и иные способы задания дискретных
значений а и Ь. Параметр иногда обозначаемый в литературе как т, называет-
ся параметром масштаба.
Подобная дискретизация является наиболее распространенной, а сетка
дискретизации называется диадической. Соответственно, это преобразование
принято называть диадным (dyadic) вейвлет-преобразованисм. Ее важной осо-
бенностью является исключение перекрытия носителей вейвлетов, т. е. устране-
ние избыточности в ходе вейвлет-преобразоваиий.
104
а. Вейвлеты и вейвлет-преобразования
Выделение диадного преобразования в отдельный класс оправдано тем,
что и непрерывное вейвлет-преобразование на практике используется в дискрет-
ном варианте. Но при этом не накладывается особых ограничений на характер
дискретизапии параметров а и & и он может быть иным, чем в приведенном вы-
ше случае. Например, часто используется равномерный ряд значений а и Ъ. В от-
личии от дискретного вейвлет-преобразования непрерывных сигналов, имеюще-
го большую избыточность, диадное преобразование такой избыточности не
имеет. Это означает, что компактные носители вейвлетов плотно укладываются
наоси t (пли х) ие перекрываясь.
Итак, при дискретных значениях а и b нейвлет-функцпя может быть пред-
ставлена в виде:
V/;,»(f) = auHV(ao'f-*) (2,10)
Условие, что множество образует ортонормированную систему оз-
начает, что любая функция /eZ2(R) может быть представлена рядом:
/= s (2.11)
Тогда выражение (2.11) рассматривается как наложение вейвлетов (у,.*. со-
здающее функцию /.
Разложение (2.11) чисто внешне напоминает разложение в ряд Фурье для
функции /е L2(R) По экспоненциальным функциям е*;—e,k . Но есть и серьезные
отличия. Экспоненциальная функция имеет глобальный носитель. Таким обра-
зом, все члены разложения Фурье зависят от значения / в точке х. Вейвлеты
обычно имеют или компактный носитель или имеют экспоненциальный порядок
убывания на бесконечности. Итак, только члены разложения (2.11), соответст-
вующие с j, 2~k в окрестности точки х, вносят наибольший вклад в функцию
в этой окрестности. Разложение (2.11) в этом смысле локально. Другое важное
свойство вейвлет-разложения, не присутствующее напрямую в разложении Фу-
рье, заключается в том, что коэффициенты вейвлет-разложения обычно несут
всю необходимую информацию, чтобы установить находится ли функция f в
гладком пространстве
Итак, прямое дискретное вейвлет-преобразование (ПДВП) сводится в вы-
числению коэффициентов С(а,Ь) по формуле (2.4), естественно, с подстановкой
дискретных значений а и &, т. е., в конечном счете:
C(j,A) = d,k =
(2.12)
Здесь C(j.k — детализирующие коэффициенты для вейвлет-декомпо-
зиции сигнала уровня k (оба обозначения этих коэффициентов равноценны). Те-
перь эти коэффициенты дискретны, т. е. вычисляются для заданных j и k.
105
2. Вейвлеты н вейвлет-преобразования
Обратное дискретное вейвлет-преобразование (ОДВП) для непрерывных
сигналов задается формулой;
s(0 = -Д~ S X С(;’ fe)ao;/2V(a;zt - k) (2.13)
;eZ teZ
В пакете Wavelet Toolbox осуществляется нормировка базовых функций в
частотной области таким образом, что Сш=1. При этом окончательная формула
реконструкции сигнала на основании (2.13) записывается в виде:
*> = SSC<;. ««'„.(О (2.14)
Бы по доказано [11.12], что для ортогональных вейвлетов возможно точное
восстановление сигнала, именуемое реставрацией, после прямого и инверсного
дискретного вейвлет-преобразований с использованием дополнительно аппрок*
еимации сигнала с помощью phi-функции. В ином случае восстановление да
близкий к исходному сигналу a(t) приближенный сигнал, причем близость по*
нимается в смысле обеспечения минимума среднеквадратической погрешнее
восстановления.
Итак, диадное вейвлет-преобразование имеет характерную иерархическ
структуру. При фиксированном индексе разрешения j вейвлеты имеют одинако*
вые масштабы и лишь дискретно сдвигаются во времени. Прн увеличении рааре
шения на 1 величина сдвига уменьшается вдвое и вейвлеты сжимаются. Неч
похожее есть и у рядов Фурье, но только в их случае каждому уровню разрешени
соответствует пара гармонических функций, сдвинутых на нолпериода.
Любопытно, что и ряд Фурье можно рассматривать как грубое (нулевое
представление сигнала константой (значением «нулевой» гармоники) функции.
Первое приближение — это сумма константы с первой гармоникой. Затем при
ближение постепенно улучшается увеличением числа членов ряда учетом д
ноднительных гармоник. В принципе любое конечное число членов ряда Фур
можно считать за начальное приближение определенного уровня, а дополни
тельное число членов за уточнение (детализацию) сигнала или функции. Пр'
дискретном вейвлет-прсобразовании также нет явно нулевого представлени
сигнала. Чаще всего в качестве его берется представление для je0, но мож
браться иное значение j от— °® ди —1.
Диадное вейвлет-преобразование часто называют дискретным. Одц
такая подмена формулировки не совсем корректна. Правильнее говорить о дна
дном преобразовании как об особой разновидности непрерывного вейвлет прео
разования, позволяющей устранить избыточность последнего. Не стоит прово-
дить параллели между диадным вейвлет-преобразованием и дискретны
преобразованием Фурье.
Завершая описание диадного вейвлет-преобразования стоит упомян
еще один особый тип вейвлетов — фреймы. Вейвлет-фреймы используют кра
ное двум масштабирование, но непрерывные сдвиги. Таким образом они сохра
106
а. Вейвлеты и вейвлет-преобразования
няют избыточность, присущую непрерывному преобразованию, но н гораздо
меньшей мере, чем при этом преобразовании. Можно сказать, что вейвлет-фрей-
мы занимают промежуточное положение между диадным и непрерывным вейв-
лет-преобрязованиями. В описанные далее пакеты расширения вейвлет-фреймы
как самостоятельный класс вейвлетов не включены, так что мы ограничимся
лишь упоминанием о них, При необходимости соответствующие им инструмен-
тальные средства легко получить небольшой модификацией средств непрерыв-
ного вейвлет-преобразования.
2.3.3. Практические примеры
вейвлет-преобразований в среде Mathcad
Нетрудно догадаться, что представленный выше материал будет не слиш-
ком понятен многим читателям без практических примеров осуществления
вейвлет-преобразований. Еще совсем недавно для этого нужно было иметь до-
ступ к большой ЭВМ и недюжинные способности к программированию этих са-
мых вейвлет-преобразований. Однако, в наши дни мощные персональные ком-
пьютеры стали общедоступными, а для современных системы компьютерной
математики (СКМ) уже создано множество программ для реализации вейвлет-
преобразований .
Вейвлет-преобразования прямоугольного импульса
Рис. 2.9. Пример вейвлет-декомпозии для прямоугольного импульса
(начало документально)
107
а. Вейвлеты и вейвлет-преобразования
СКМ Mathcad стали первыми массовыми системами такого рода, в ядро ко-
торых были включены функции прямого и обратного дискретного вейвлет-пре-
образования, названные функциями волновых преобразований. В пих использу-
ется единственный тип вейвлета — Добеши порядка 4 (DB4 или db4), что не
мешает строить интересные практические примеры на выявление свойств вейв*
лет-преобразований. При этом, реализация этих примеров не требует никаких
дополнительных средств, а благодаря высокой скорости исполнения функций
ядра можно получить вполне приличную эффективность вычислений.
Восстановление сигнала с использованием
L первых вейвлет-коэффициентов
L -3 W1 -W j-2L N-l Wlj-0
I. - 5 W1 -W 1 -2L N- 1 Wij -0
L-8 Wl-W ]-2L N-l W1j-0
S3 - <w»ve(Wl)
35 - iwave(Wl)
SB - iwave(W1)
График исходного импульса и импульса,
синтезированного с помощью вейвлет - преобразования
Рис. 2.10. Пример реконструкции сигнала — прямоугольного импульса
(конец документа)
В ядро систем Mathcad (начиная с версии Mathcad 8) включены следующие
две функции для вейвлет-преобразований:
• wave (V) -- дискретное (диадное) вейвлет-преобразование действительных
чисел (вектор V должен содержать 2" действительных значений, где п — целое
число);
• iwuvc(V) — обратное вейвлет-преобразование относительно преобразование
v/ave (V — вектор, с числом элементов 2").
Рис. 2.9 показывает пример осуществления прямого дискретного вейвлет-
преобразования для прямоугольного импульса. Для наглядности результаты
преобразования представлены в виде графиков пяти первых вейвлет-коэффици-
ентов. Нетрудно убедиться, что для этого типа вейвлета коэффициенты пред-
108
а. Вейвлеты и вейвлет-преобразования
ставлены прямоугольными (или ступенчатыми) волнами разной амплитуды.
длительности и формы.
Некоторые детали разложения сразу бросаются в глаза:
• очевидно, что форма вейвлет-коэффициентов благоприятна для синтеза скач-
ков и импульсов, содержащих скачки;
• вейвлет-коэффициенты представляют собой прямоугольные колебания с явно
кратной частотой осцилляций;
• число максимально возможных уровней разложения невелико;
• вейвлет-коэффициенты хранятся в матрице и их всегда можно выделить (на-
пример для построения графиков отдельных коэффициентов или организа-
ции обработки и реконструкции сигналов.
Вейвлет-преобразования импульса с наклонной вершиной
S'1'” 7} i“0.i 1\ -1 W-wavs(S)
Прямое яе^йлет-прР0(!разпАЯниР имгупы-я
Nie\els -3
coefsOevei) - s«jbmattix(w.2Ievei,2Ieve''’1 -1,0 о)
График пяти
еейвлег -
коэффициентов
Рис. 2.11. Пример декомпозиции импульса с лиивйио-нарашакицей вершиной
(начало документа)
Вторая часть документа, представленная на рис. 2.10, демонстрирует про-
стую технику удаления части коэффициентов, путем обнуления соответствую-
комлозиции (реконструкции) сигнала. Из представленного рисунка видно, что
ограничение уровня реставрации ведет к появлению характерных для эффекта
Гиббса выбросов в местах, где сиптл имеет скачки уровня. Чем ближе уровень
109
а. Вейвлеты и вейвлет-преобразоваиня
реставрации к максимальному значению Nlevel, тем точнее реставрация.
Рис. 2.10 даст временные зависимости реставрированного сигналя для трех уров-
ней L—3, 5 и 8.
Теперь рассмотрим несколько более сложный сигнал — импульс с круты*
ми нарастанием и спадом и линейно растущей вершиной (линейным трендом в
формулировке, принятой в анализе временных рядов). Такой сигнал можно рас-
сматривать как суперпозицию прямоугольного и пилообразного сигналов. Здесь
(см. рис. 2.11 вновь построены пять вейвлет-коэффициентов, представляющих
декомпозицию сигнала.
Восстановление сигнала с использованием
L первых вейвлет - коэффициентов
34 - iw«e(W1)
S6 . iw»e(W1)
S8 - iwave(Wl)
График исходного импульса и импульса,
синтезированного с помощью вейвлет - преобразования
Рис. 2.12. Пример реставрации импульса с липойно-нарастающей вершиной
(конец документа)
Тут любопытно отметить, что, несмотря на отсутствие линейных трендов у
самих вейвлет-коэффициентов, линейно-нарастающая часть импульса прибли-
жается превосходно, без малейших намеков на ступенчатость (рис. 2.12). Здесь
показано восстановление сигнала для трех уровней L=3, 6 и 8.
А теперь рассмотрим вейвлет-преобразования для еще одного характерно-
го сигнала — радиоимпульса, представляющего собой вырезку синусоидального
сигнала. Соответствующий документ с прямым вейвлет-цреобразованием пред*
ставлен на рис. 2.13. По-прежнему для данного типа вейвлета коэффициенты
представляют собой прямоугольные формы.
110
2. Вейвлеты н вейвлет-преобразования
Несмотря на такую форму вейвлет-коэффициентов они весьма недурно вос-
производят довольно сложный сигнал в виде радиоимпульса. Это видно из окон-
чания документа рис, 2.14, представленного на рис. 2.13. Здесь реконструиро-
ванный сигнал дан для уровней реконструкции L—3, 5 и 8.
Итак, мы проиллюстрировали процесс дискретных вейвлет-преобразова-
ний для трех видов сигналов. Все они представляют трудности для стандартного
преобразования Фурье из-за наличия скачков. Тем не менее, во всех случаях
простейшие функции преобразований (для всего одного типа вейвлета из многих
десятков известных типов) дали вполне приличные результаты.
Вейвлет-преобразования радиоимпульса
Рис. 2.13. Пример декомпозициирадиоимпульса
В некоторой мере мы даже преуспели в выделении вейвлет-коэффициентов
и в удалении части из них, что, по существу, означает осуществление процесса
вейвлет-фильтрации. Последняя, естественно, сопровоясдастся некоторыми ис-
кажениями: отличиями реконструированного сигнала от оригинального. Порою
весьма заметными. Это хорошо видно во всех временных диаграммах реставри-
рованного сигнала для различных уровней реставрации.
Поскольку вейвлеты Добеши относятся к ортогональным, можно ожидать
возможности точного восстановления произвольного сигналя. Разумеется мы не
можем воспроизвести весь бесконечный набор произвольных сигналов. Но при-
ведем наглядный пример; вейвлет-преобразование для 16 точек сложного сигна-
111
а. Вейвлеты н вейвлет-преобразовання
Восстановление сигнала с использованием
L ncpDLix пойвлет коеффициентое
S3 = iwave(wi)
S5 - iwave(WI)
S8 - iwave(Wl)
Г рафик исходного радиоимпульса и радиоимпульса.
синтезированного с помощью вейелет. преобояпояяния
Рис. 2.14. Пример реконструкции радиоимпульса (конец документа)
Прямое и обратное вейвлет-преобразования сложного сигнала
Рис. 2.15. ВеИвлет-преобразованин для сложного сигнала
112
Й, Вейвлеты и вейвлет-преобразования
ла, представляющего собой смесь двух синусоид с разной частотой и амплитудой
и шумовой компоненты, созданной генератором случайных чисел (функция rnd
а системе Mathcad), Этот пример дан на рис. 2.15.
На этом рисунке показан как график реконструированного сигнала, так и
исходные его точки. Нетрудно заметить, что несмотря на случайный характер
исходного сигнала, связанный с наличием шумовой компоненты и потому ис-
ключающий его точное аналитическое описание, эти точки прекрасно укладыва-
ются на кривую реконструированного сигнала, что говорит о весьма малых
ошибках реконструкции,
В заключении надо отмстить, что в данных функциях системы Mathcad
точной реконструкции соответствует максимальный уровень реконструкции, а
не нулевой (к примеру как в большинстве других СКМ). Это обстоятельство
вепринципиальпо, но при практическом использовании описанных функций о
нем просто надо помнить.
2.3.4. Кратномасштабный анализ
Мы уже знаем, что возможно представление сигнала на основе суммирова-
ния его грубого представления с детализирующими локальными представлени-
ями сигнала в его разных местах. Для реализации этой важной возможности су-
ществует ряд вейвлетов, относящихся к ортогональным. Их можно создать, в
общем случае, базируясь на представлении пространства сигналов V в виде
системы вложенных подпространств V,, отличающихся друг от друга только пе-
ремасшгабировянием независимой Переменной. Основанный на этом анализ на-
зывается краткомасштабным анализом (multiresolution analysis) — KMA.
Иногда его называют и многомасштабным анализам, что, возможно, и точнее с
позиции перевода этого термина.
Этот вид анализа базируется на следующих, исходных предпосылках:
« пространство сигналов V может быть разбито на иерархически вложенные
подпространства V,, которые не пересекаются и объединение которых дает в
пределе L2(R);
• для любой функции s(t)z V, ее сжатая версия принадлежит пространству V,.^
» существует такая функция <p(x)eV0, для которой ее сдвиги <poj(t)—<p(t-k)ixpK
образуют ортонормированный базнс пространства Va.
Так как функции Vojrft) образуют ортонормированный базис пространства
/о, ТО функции
Ф,л(«) = 2-'^(2^-Л) (2.15)
образуют ортонормированный базис пространства . Таким образом, мы подошли
к важному уточнению понятия о масштабирующей функции для дискретного
вейвлет-преобразования непрерывного сигнала, называемой отцовским вейвле-
том. Этн функции называются масштабирующими именно цотиму, что они со-
здают свои масштабированные версии в пространстве сигнала. При этом сигнал
s(t) может быть представлен множеством последовательных приближений s/t)
в субпрострянствах V,.
113
2. Вейвлеты и вейвлет-преобразования
Переменная 1 (нередко обозначаемая как т) в рамках такой трактовки назъ?
вается масштабным коэффициентом. Поскольку дерено декомпозиции сигнала
при вейвлет-преобразовании принято отсчитывать вниз (хотя и не всегда), то мож-
но сказать, что сигнал eft) есть предел аппроксимации sf(t)e И;при у—»-» т. е.
e(t)= ИшвД*).
В соответствии с этим, при больших ] мы получаем грубые приближения
сигнала, а при малых — точные. Приближение (аппроксимация) сигнала соот-
ветствует итерационной формуле:
•,(*)-(2.1в)
/
причем <p0fi(t) = 2^hlt<p(2t-k), (2.17)
*
где h„ — некоторая последовательность. Сумма приближенной и детализирую-
щей компонент, в конечном итоге, и дает исходный сигнал с тем или иным при-
ближением — (2.16) и (2.17), В качестве стартового значения J часто берут О, но
в принципе начинать итерационный процесс приближения можно и при других
значениях J.
В общем случае реконструкция сигнала на n-ом уровне разрешения/, зада-
ется выражением:
»(о= S <2-18)
где через а обозначены коэффициенты аппроксимации, а через d — детализиру-
ющие коэффициенты.
Кратномасштабное представление лежит в основе многих применений
□сколет-анализа и вейвлет-преобразований. Например, применительно к сигна-
лам изображений, оно означает представление изображений последовательнос-
тью образов с разной степенью их детализации. При этом для создания грубого
образа сигнала служит функция а уточнение этого образа достигается с по-
мощью вейвлет-функций или вейвлет-коэффициентов.
Первым типом вейвлета, на котором была теоретически доказана возмож-
ность кратномасштабного анализа (КМА) был вейвлет Хаара, упомянутый чуть
выше. На его примере было показано, что D ходе прямого и обратного диадного
вейвлет-преобразования возможно полное восстановление сигнала, если для це-
лых k существуют такие коэффициенты {Л*}, которые удовлетворяют решению
функционального ураинения
= (2-19)
114
2. Вейвлеты н вейвлет-преобразрваиия
Это функциональное уравнение является одним из важнейших в теории
вейвлет-анализа н именуется как уравнение масштабирования или уравнение
уточнения (refinement equation). Для функции Хаара нетрудно найти, что коэф-
фициенты ht = h2 = 1/V2 • Для других ортогональных вейвлетов эти коэффи-
циенты были также вычислены (как это делается мы рассмотрим чуть ниже в
этой главе),
Уравнение масштабирования (2.19) может иметь и несколько иные формы
записи. Например, в пакете Wavelet Toolbox оно задано в виде (x=t для времен-
ных зависимостей):
= Xw^^x-71) , причем (ед.)„е1. (2.20)
пег
Нетрудно подметить, что вместо коэффициентов Л, здесь использованы ко-
эффициенты й)„ и несколько иная нормировка. Это, разумеется, пепрннципиаль-
во, поскольку учитывается в конечных алгоритмах вейвлет-аналнза и реализу-
ющих их вычислениях,
2.3.5, Кратнотааештабммй вейвлет-аналнз
в пакете Wavelet Toolbox
Пожалуй, наиболее полные средства кратномасштабного вейвлет-анализа
дает пакет расширения системы MATLAB 6/6.1 — Wavelet Toolbox. Этот пакет
представляет собой мощную и вполне завершенную математическую компью-
терную лабораторию, позволяющую выполнять все виды вейвлет-анализя, как в
командном режиме, так и с помощью средств интерфейса пользователя (GUI).
Данный пакет, впервые описанный в [25], мы рассмотрим далее в Главах 3
в 4, а пока ограничимся Полученным в нем рисунком 2.16, Который наглядно
отображает его возможности в проведении анализа и реконструкции одномер-
вык сигналов.
Как хорошо видно из рис, 2.15, основой вейвлет-приближении одномерно-
го сигнала s является получаемый в ходе прямого вейвлет-преобразования набор
коэффициентов прямого вейвлет-преобразования — аппроксимирующих ai и де-
тализирующих <й (показаны коэффициенты с индексами i от 1 до 5). Нарве. 2.15
первые представлены слева под временной зависимостью сложного сигнала, а
вторые — справа. Сверху справа построена также вейвлет-спектрограмма данно-
го тестового сигнала — cfs.
Полезно обратить внимание на то, что «дерево» (или порядок следования)
коэффициентов, дающий улучшение приближения, в данном пакете является
ниспадающим; за нулевой уровень точной реконструкции сигнала принят сам
сигнал. Чем меньше номера коэффициентов, тем ближе реконструированный
сигнала к оригиналу.
Просмотр рис, 2.16 полезен в том смысле, что он позволяет попять, каки-
ми временными зависимостями характеризуются коэффициенты аппроксима-
ции И детализации. Хорошо видно, что коэффициенты аппроксимации действи-
115
2. Вейвлеты и вейвлет-преобразования
телыго являются грубыми (как бы сглаженными) копиями сигнала, тогда как
детализирующие коэффициенты лишь выделяют локальные особенности сигна-
ла. Узреть прямую связь между видом детализирующих коэффициентов н видом
сигнала е может только очень опытный пользователь, много раз применявший
вейвлет-технологию Для обработки разных сигналов.
Рис. 2.16. Иллюстрация вейвлет-приближения
для случая одномерного сигнала
2.3.6. Точное и грубое разрешение
Дискретизация параметра я=2' по существу означает возможность управ-
ления разрешением сигнала в ходе вейвлет-преобразований. Значения парамет-
ров масштаба а и разрешения 1 /а представлены ниже.
J 10 9 2 1 0 -1 _2 -3
Масштаб 1024 512 4 2 1 1/2 1/4 1/8
Разрешение 1/2’° 1/2® j S 2 4 8
116
2. Вейвлеть! и вейвлет-преобразования
Здесь еще раз уместно напомнить. ЧТО в разных программных средствах
знак параметра масштаба J (т. е. направление роста разрешения) может иметь
разную трактовку — вплоть до диаметрально противоположной. Естественно,
wo в каждом конкретном программном средстве эта трактовка должна быть
единственной.
2.4. Частотный подход
и быстрое вейвлет-преобразование
2.4.1. Частотный подход
к вейвлет-преобразованиям
Хотя при восстановлении сигналов в ходе вейвлет-преобразований можно
наглядно пользоваться временными функциями — вейвлетами, они применяются
скорее для демонстрации сущности вейвлет-декомпозиции и реставрации сигна-
лов, чем для практической работы по обработке и представлению реальных сигна-
лов. Опа же обычно базируется на особой трактовке вейвлет-нреобразований в ча-
стотной области и позволяет плодотворно использовать хорошо разработанный н
давно известный аппарат частотной фильтрации (см. главы 1—3 книги [25]) и ме-
тоды быстрого вейвлет-преобразовання (ВВП). Онн основаны на пирамидальном
алгоритме Малла и прореживании спектра вейвлетов по частоте.
Вначале рассмотрим частотный подход чисто умозрительно и без строгих
доказательств. В соответствии с этим подходом, частотная область вейвлетов мо-
жет быть разбитя на две составляющие — низкочастотную и высокочастотную.
Их частота раздела равна половине частоты дискретизации сигнала. Для их раз-
деления достаточно использовать два фильтра; низкочастотный Lo и высокочас
тотиый Hi, ко входам которых подключается сигнал а. фильтр Lo дает частот-
ный образ для аппроксимации (грубого приближения) сигнала, а фильтр Hi —
для его детализации.
Пожалуй, главным выводом из теории вейвлет-преобразований является
вывод о соответствии вейвлет-коэффициентов коэффициентам передаточной ха-
рактеристики этих фильтров. Другими словами, коэффициенты фильтров Hi и
1х>и есть детализирующие коэффициенты вейвлет-декомпозиции сигналов и их
коэффициенты аппроксимации.
Поскольку фильтры передают только половику всех частотных компонент
сигнала, то не попавшие в полосу прозрачности компоненты могут быть безбо-
лезненно удалены. Ио аналогии с казней каждого десятого в провинившихся
войсковых подразделениях Древнего Рима, эта операция получила название
«децимация». В количественном отношении ей придается более общий смысл.
Так, децимация вдвое обозначается как 4-2 и означает удаление половины отсче-
тов. Если просто сложить полученные иа выходах фильтров сигналы, то полу-
чится исходный сигнал, т. е. будет иметь место полная реконструкция сигнала
ва ее начальном уровне.
117
2, Вейвлеты и вейвлет-преобразования
Однако Lo фильтр можно, в свою очередь, разложить иа два фильтра и сно-
ва подвергнуть спектры этих новых фильтров операции децимации. Это озиача-
ет изменение уровня реконструкции. Таким образом, может быть сформирована
система вейвлет-фильтров, реализующих операцию декомпозиции сигнала того
иди иного уровня.
Подобные операции в конце концов сокращают спектр соответствующих
компонентов сигнала, что лежит в основе приближенного представления сигна-
ла на разных уровнях декомпозиции сигнала. Такое представление необходимо,
например, для реализации операций сжатия сигналов и их очистки от шума,
Операция последовательной разбивки Lo фильтров и постепенного огрубления
сигнала была предложена Малла и известна как алгоритм Малла (в его француз-
ской фамилии Mallat буква <t> не читается).
Возникает законный вопрос, почему именно НЧ-фильтр удостоен опера,
ции деления? Можно сказать, что это следствие устоявшейся практики примене-
ния радиотехнических сигналов —- основные частотные компоненты их располо-
жены обычно в низкочастотной области спекгра. Считается, что именно она
несет больше информации, чем высокочастотная (уточняющая) область. Разуме-
ется, принимать это за абсолютную истину не стоит; в наше время есть виды сиг-
налов, где это допущение попросту неверно. И, как станет ясно из дальнейшего,
возможно деление полос и ВЧ-фильтров, порождающее особые, так называемые
«пакетные» вейвлеты.
2-4.2. Основы вейвлет-фильтрацнн
Теперь рассмотрим сказанное более подробно. Так, вполне очевидно, что
каждый ортогональный вейвлет имеет свой Фурье-образ. В ряде работ, включая
описание пакета Wavelet Toolbox, было показано, что Фурье-образ 1//(<У) можно
представить реализацией двух фильтров: низкочастотного Н((о) и согласованно-'
го с ним высокочастотного фильтра:
= -е-,шН(со + я) (2.21)
При этим Фурье-образ вейвлета имеет вид:
у(2о)) = G((o№((o) . (2.22)
В пакете Wavelet Toolbox задан ряд свойств базовых фильтров Н((о) со сле-
дующими их характеристиками:
• фильтры имеют тип ФНЧ с импульсной характеристикой класса FIR (КИХ);
• длина вектора коэффициентов фильтра равна 2N;
• сумма коэффициентов фильтра равна 1;
• норма вектора коэффициентов фильтра равна 1/V2?
Количественные данные по вейвдет-фильтрам в пакете Wavelet Toolbox си-
стемы MATLAB нетрудно проверить с помощью соответствующих простых ко-
манд командного режима работы. Например, для вейвлета Добеши db4. после
его зягрузки командой load, имеем:
118
а. Вейвлеты и вейвлет-преобразования
>>load db4
»db4
db4 -
0.1629 0.5055 0.4461 -0.0198 -0.1323 0.021g
0.0233 -0.0075
»length (db4)
ans =
8
»sum{db4)
1.0000
>>norrti(db4)
ans -
0.7071
8.4.3. Квадратурные фильтры
Для обоснования частотное подхода рассмотрим весьма важиоз для него
понятие о квадратурных фильтрах (КФ). Кратиомастптабный анализ основан
на двух хорошо известных методах обработки сигналов, заимствованных из тео-
рии фильтрации сигналов:
( разложение сигнала по поддиапазонам (subband decomposition) при помощи
квадратурных зеркальных фильтров (quadrature mirror filters);
♦ пирамидальное Представление (pyramid representation).
Первый метод возник иэ потребностей обработки звуковых сигналов, авто-
рой — из обработки сигналов изображения.
Пусть имеется некий обобщенный сигнал в виде последовательности чисел
Для сглаживания сигнала, подавления шума и других целей часто
используют фильтры, базирующиеся на операции свертки:
(2.23)
к
Сигнал у= получается «локальным усреднением» сигнала х с по-
мощью набора «весов» Л—{Аа}. Используя понятия частотного анализа, можно за-
писать
У(й)) = И(Ю)Х(Ю), (2.24)
или, что принято в анализе пифровых сигналов, в терминах z-преобразования
У(2) = Н(г)Х(г). (2.25)
119
2. Вейвлеты н вейвлет-преобразования
Транспонированный фильтр h состоит из тех же коэффициентов, что и
фильтр Л, но переставленных в обратном порядке. В частотной области транспо-
нированный фильтр записывается как /?(«). Коэффициенты всех сигналов и
фильтров предполагаются вещественными. Величина |Х(о>) | характеризует
распределение энергии сигнала по частотам ю е [-тг.тг).
А теперь попробуем найти два фильтра, которые позволяли бы разложить
сигнал на две частотные компоненты — высокочастотную Хя(г) и низкочастот-
ную Хс (з), их проредить бперацией децимации 12, а затем, с помощью транспо-
нированных фильтров, точно восстановить по этим данным исходный сигнал.
Этот, давно известный прием можно применять неоднократно, что и лежит в ос“
Иове быстрых алгоритмов преобразования Фурье и алгоритмов вейвлет-преобра-
зований для приближенного представления сигналов. Если спектр сигнала огра-
ничен, то разумно сделать полосы пропускания фильтров равными половине
общей полосы частот спектра сигнала — другим и словами граничная частоте
фильтров должна быть равна половине частоты квантования сигналов.
Пусть теперь вектор У(г) перед кодированием прореживается вдвое, а пе-
ред восстановлением исходного сигналя доводится до исходной длины вставкой
нулей между соседними значениями его элементов. При этом z-преобразование
из У(г) превращается в (У(г)+У(—z))/2. Подставим сюда (2.25) для каждого из
фильтров, и получим z-преобразоваиия компонент перед восстановлением
Хн (г)-----> (Л(г)Х(г) + 77(-z)X(-z)) / 2
Хс(г)------> (G(z)X(z) + G(-z)X(-z))/2
z-преобразования транспонированных фильтров имеют вид 77(z-1) и G(z-1). Сиг-
нал восстановится с их помощью точно, если:
X (z) = (Н (г’1 )Н (z) - G(z4 )G(z))X (z) / 2 +
(H-(z-’)H-(-z) + G(z'‘)G(-z))X(-z)/2.
Тогда условия точного восстановления (perfect reconstruction, PR) будут
иметь вид:
H(2-1)H(-2) + G(2-1)G(-z)-0
В матричной форме они записываются так:
“1-2Е,
где
M(z) =
’Я (2)
Ж-z)
G(-z)J'
120
а. Вейвлеты н вейвлет-преобразования
Подставив z = е'", получим условия на ДПФ искомых фильтрос:
|Н(й))|2 +|G(«u)|a = 2 (2.26)
Н[о)Н((и + я) 4- G(a»G(a) + д) = 0 (2.27)
Если
|Я(й>)|2 + |Н(Ю4-?г)|’«2.
Го, положив
G(<o) =-е'мЯ(й)+я),
мы видим, что (2.26) выполняется.
Фильтры HhG (или L). удовлетворяющие условию (2.26), называются к&а-
' дратпурными зеркальными фильтрами — КЗФ (quadrature mirror filters, QMF).
Понятие о них широко используется и в технике вейвлет-преобразований и со-
ставляет основу быстрого вейвлет-преобразования (БВП).
Итак, для ряда типов вейвлетов частотное представление открывает воз-
можности использования быстрого вейвлет-преобразования. в основе которого
лежит известный принцип «разделяй и властвуй», т. е. дели спектр на две со-
ставляющие и прореживай их по частоте. Его последовательное применение по
существу и есть пирамидальный алгоритм Малла, дающий приближения сигна-
ла с уменьшающейся по мере удаления от вершины дерева детальностью пред-
ставлении сигнала.
2.4.4. Быстрое вейвлет-преобразование
и алгоритм Малла
Для ортогональных вейвлетов существует быстрое вейвлет преобразова-
ние (Faet Wavelet Transform), называемое также алгоритмом Малла (Mallat
algorithm). Оно реализует основанный на фильтрации итерационный алгоритм,
причем число Итераций N может быть произвольным.
Прежде всего отметим, что быстрое вейвлет-преобразование можно осуще-
ствлять, вычисляя аппроксимирующие и детализирующие коэффициенты в
формуле реконструкции (2.18) по формулам:
при
Оо.* = j"/(t)iP(t~A)dt
Классическая схема Малла, однако, прадполагает рекурсивное Примене-
ние процедуры реконструкции сигнала в частотной области без явного вычисле-
131
2. Вейвлеты и вейвлет-преобразования
ния a ad. Коэффициенты фильтров при этом соответствуют приведенным ни
обозначениями:
Тип фильтра НЧ ВЧ
Декомпозиция Lo_D Hi_D
Реконструкция Lo_R Hi_R
Первый шаг алгоритма Малла поясняется следующей диаграммой вей*
лет-декомпозиции сигнала;
—> Lo_D —» 4-2 —» с А! (коэффициенты аппроксимации уровня 1)
S—I
—> Hi_D —> 42 cD, (детализирующие коэффициенты уровня 1)
Сигнал в подается на фильтры декомпозиции низких и высоких частот, по-
сле чего с помощью операции децимации 4-2 (уменьшения числа частотных со
ставляющих вдвое) можно получить коэффициенты аппроксимации на выход
фильтра низких частот и детализирующие коэффициенты на выходе фильт
высоких частот. Далее этот алгоритм может быть продолжен по схеме:
—> Lo_D —» 4-2 —» cApj (коэффициенты аппроксимации уровня j 11)
сА| — I
—> Hi_D —> 4-2 —> cDj.i (детализирующие коэффициенты уровня j+1)
В результате мы получим полный набор аппроксимирующих и детализи
рующих коэффициентов, Вплоть до уровня декомпозиции j+1. Это и есть ее
лет декомпозиция сигнала. По этому набору коэффициентов мы может постр
ить вейвлет-спектрограмму сигнала, например для оценки его особенностей.
Теперь перейдем к диаграмме быстрой вейвлет-реконструкции. Использу
операцию, обратную децимации, ?2 (увеличение числа вдвое составляющих
добавления нулевых компонентов вперемежку с имеющимися компонентами),
можно получить диаграмму понижения уровня коэффициентов аппроксимации:
сА| -> Т2 -> Lo_R
I —* функция wkeep —> сАь,
cD| '2 -» Hi_R-»
Смысл операции ?, обратной децимации, поясняет рис. 2.17.
Понижение уровня коэффициентов аппроксимации означает постепенв
приближение к исходному сигналу. В целом, несколько упрощенно (обознач
пис I i | указывает па итерационный характер вычислений), процесс декомпози
ции-реконструкцни можно представить общей диаграммой вейвлет-преобразр
ваний;
—> Lo_D —» 4-2 —» сА —> —> сА —» ?2 —> Lo_R —>
s—I 'fl (+)->se
-» 4-2-» cD —>cD->T2 >HI_R^
122
2. Вейвлеты и вейвлет-преобразования
Па рис. 2.18 представлена более наглядная диаграмма реализации быстро-
го многошагового алгоритма Малла на основе вейвлет-фильтрации. Для иагдяд-
аости здесь сигнал представлен 1000 отсчетами и схематично показаны АЧХ
фильтров. Из этой диаграммы легко проследить за процессом декомпозиции
вейвлет-фильтров и сигналов и затем за процессом реставрации сигнала. ВЧ-
фильтры обозначены как Н. а НЧ-фильтры как L.
Рис. 2.17. Иллюстрация операции t, обратной децимации
Рис. 2.18. Структура многошагового алгоритм Малла
при декомпозиции и реставрации сигнала
Рис. 2.19. Структура вейвлет-предетавления сигнала
Итак, в результате этого процесса исходный сигнал s раскладывается на
вейвлет-компоиенты вплоть до заданного уровня декомпозиции, после чего, в
123
3. Вейвлеты и вейвлет-преобразования
ходе реконструкции, восстанавливается до приближенного сигнала se—»s. Сте-
пень приближения зависит от уровпя декомпозиции и реконструкции. Нулевой
уровень соответствует точному восстановлению сигнала (se=s). Рнс. 2.19 пока-
зывает обычную диаграмму разложения (сверху-вниз) и реконструкции (сниз
вверх)сигнала я.
На этой диаграмме коэффициенты аппроксимации сигнала обозначен
как А, а детализирующие коэффициенты как D. Цифры указывают иа урове
декомпозиции и реконструкции сигнала (нулевой уровень отдельно не указыва-
ется, это есть сам сигнал в). Читатель легко найдет сходство между этой диаграм-
мой и диаграммой вейвлэт-преобразованнй в частотной области, представление
на рис. 2.17. Диаграмму рис. 2.19 можно рассматривать как дерево декомпози
ции сигнала.
2.5. Специальные вопросы
вейвлет-преобразований
2.5.1. Пакетные вейвлеты
Итак, при обычном алгоритме Малла на каждом шаге «отрезается» пол
вина НЧ-части диапазона сигнала. Напоминаем, что реализация алгоритма и
ходит из бытующего представления о большей информационности низкочаст
пой части спектра сигнала, что для многих видов сигнала (например цифровы
не всегда справедливо.
Р. Койфманом и М. Викерхаузером был предложен усовершенствован!!
алгоритм Малла, структура которого представлена на рис. 2.20. Здесь проц
«расщепления» (splitting) дерева применен как для НЧ, так и ВЧ компоне
сигнала.
Рис. 2.20. Структура (дерево) вейвлет-представления сигнала
для пакетных вейвлетов
При одном из вариантов такого алгоритма операция «расщепления» пр
меняется к любой из получающихся ВЧ-компонент. Этой схеме можно дать и
толкование применительно к вейвлетам. В этом случае происходит замена ве
лета ig(t) на дна новых вейвлета:
124
g. Вейвлеты н вейвлет-преобразования
t/i(O = и ^,(t) =
И так далее. Новые вейвлеты тоже локализованы во времени (пространст-
ве). но на вдвое более широком отрезке, чем исходный вейвлет.
Можно нарисовать бинарное дерево разложения, и ему будет соответство-
вать набор подпространств с базисами, построенными по аналогичному рецепту.
Функции, порождающие эти базисы, называются вейвлет-пакетами (wavelet-
packets). Преобразование с помощью вейвлет-пакетов является адаптивным
вейвлет-преобразованием, поскольку оно легко приспосабливается к особеннос-
тям сигнала и может успешно использоваться для компрессии сигналов и их
очистки от шумов — см. ниже. В частности, имеется возможность отсечения ча-
сти ветвей детализирующих коэффициентов дерева.
Достоинством (а в какой-то мере и недостатком) вейвлет-пакетов и адап-
тивных алгоритмов их реализации является отсутствие необходимости в обуче-
нии системы (характерном, например, для систем на основе нейронных сетей
[36]) и даже в оценке статистических характеристик сигналов. Все, что нужно —
это ввести опенку стоимости вейвлет-коэффициентов, мерой которой может слу-
жить энтропия — концентрация числа вейвлетткозффициентов, требующихся
для описания сигнала с некоторой заданной точностью (или погрешностью).
2.5.2. Дискретный вейвлет-анализ
и временные ряды
Уже давно внимание математиков и ученых привлекают временные ряды.
Напомним, что временным рядом называют совокупность некоторых значений
(сигналов или данных) в отдельные моменты времени. Эго могут быть темпера-
туры воздуха, отмечаемые ежедневно, курс доллара или стоимость акций компа-
ний Intel или Microsoft.
Основной задачей теории временных рядов является изучение их поведе-
ния во времени и, что, особенно желательно, в сфере решения экономических за-
дач, прогнозирования тех или иных событий, наподобие пресловутого ♦черного
вторника», вмиг превратившего наш ♦ оеребряный» рубль в ♦деревянный». До
сих пор основным методом исследования таких рядов был статистический ме-
тод, который лишь частично мог решать задачи предсказания.
В популярной литературе по временным рядам под компонентами детер
минированного ряда часто предполагают выражения вида:
d, = tr, + в, + ft, где t=l,2,...,N.
Первая составляющая является трендом, вторая сезонной составляющей и
третья — циклической компонентой.
ВНИМАНИЕ____________________________________ ______________________
В последние годы к указанным составляющим временных рядов стали добав-
лять новую составляющую — интервенцию, которая описывает резкие изме-
нения временного ряда в определенные (чаще всего довольно редкие) момен-
ты времени. _______________________________________________________
185
8. Вейвлеты и вейвлет преобразования
Имеется много типов временных рядов. Ряды Фурье, к примеру, получи
признание как один из типов временных рядов, в частности, удобных для оц
ки периодических изменений компонент временного ряда. Особенно велика рол»
временных рядов в математической экономике, где на их основе возможно пред-
сказание некоторых событий.
На наш взгляд, большие возможности в анализе временных рядов заложе-
ны в дискретных и в диодных вейвлетах. По существу, дискретный сигнал, для
обработки которого используются вейвлет-преобразования, представляет собой
типичный временной ряд. Он может содержать шумовые компоненты и удовле,
творять известным статистическим требованиям для временных рядов.
Следует отметить, что дискретное вейвлет-преобразование непрерывных
сигналов и вейвлет-преобразование дискретных во времени сигналов, напри-
мер, временных рядов, далеко не одно и то же. Строго говоря, для дискретных
сигналов не существует базисных функций, масштабированные и смешанны
версии которых дают базис пространства сигнала. Тем не менее, алгоритм Мал-
ла на основе концепции вейвлет-фильтров применим для вейвлет-преобразова
ний дискретных во времени сигналов. Для лучшего знакомства с тонкост
применения такого вида преобразований можно рекомендовать обращение
литературе [1—11].
Мощные средства выявления тонких локальных особенностей временны
рядов (и представляющих их сигналов) и превосходная степень их визуалнаа
ции — все это позволяет надеяться на то, что уже в ближайшее время вейвлет
станут одним из серьезных инструментов анализа временных рядов самого р
личного назначения. По существу, для временных рядов в виде дискретных си
налов они уже стали таковыми. И в следующей главе их возможности будутр
смотрены самым детальным образом.
Уже известен ряд успешных попыток применения вейвлетов для анали
временных рядов с целью предсказания таких событий, как возникновение зем
летрясений, цунами, обвалов в финансовой сфере, возможностей проведен
террористических актов (увы, даже подобных тем кошмарным событиям, кото-
рые произошли в США в очередной «черный вторник» 11 сентября 2001 года)
последствий бомбардировок в локальных конфликтах, при анализе томограмм
реальном масштабе времени в медицине и др.
2.5.3. Двумерные вейвлеты
Для работы с изображениями необходимо обрабатывать двумерные масси-
вы данных. Для общности пусть они по-прежнему задаются в пространстве V. н
теперь как функции двух переменных х и у. В этом случае вместо выражения
для одномерной вейвлет-функции вида
L/2 (% 1
записанной с независимой переменной х. мы можем воспользоваться ее дву-
мерным аналогом, учитывая, что теперь по каждому измерению (х и у) прост-
186
2. Вейвлеты и вейвлет-преобразрваиия
ранствь сигнала V имеются свои значевия а и Ъ. Обозначив их как al и а2, а
также Ы и Ь2, мы можем записать выражение для двумерного непрерывного
вейвлета в виде:
1 fж-М У-Ь2~\ „
\ al a2 j
Для двумерного дискретного вейвлет-анализа непрерывных сигналов мы
должны также задать условия дискретизации:
(J,fe)eZ’ a=2' b = k2'-ka
-ft) <Р1Л = 2~'<p(2JV-k)
Попробуем распространить описанные выше положения частотноизремеи-
нвго представления вейвлет-анализа иа случай сигналов в виде функций двух
переменных х и у. В данном случае, можно воспользоваться тензорным произве-
дением одномерных КМА и в качестве двумерной масштабирующей функции
взять
Ф(х,{/) = Ф(аОр({/).
Тогда, с учетом известного соотношения для тензорного произведения,
вместо одного вейвлета теперь возникает три:
VLH^,y) = 9(x)4/(y),'f,HL(x,y) = y/(x)(p(y),4'Нц(х,у)-^(х)ч/(у).
Здесь по-прежнему Z означает реализацию фильтра низких частот. Н —
реализацию фильтра высоких частот.
Скорректированные с учетом приведенных выше соотношений формулы
для вейвлет-преобразований двумерных сигналов и изображений используются
во всех описанных в данной книге инструментальных пакетов для их осуществ-
ления.
2.5.4. Вейвлет-компрессия сигналов
и изображений и их очистка от шумов
Вейвлеты открывают новые н необычные подходы в сокращении избыточ-
ной информации и в очистке сигналов н изображений от шумя. Суть одного из
таких подходов заключается просто в ограничении уровня детализирующих ко-
эффициентов. При этом возможно как глобальное ограничение всех коэффици-
ентов по уровню, так и локальное ограничение. Более того, возможны разные ти-
пи порогов ограничения, например, мягкий в виде одной вертикальной
ступеньки передаточной характеристики ограничения или жесткий в виде до-
полнительных горизонтальных полочек. Их реализацию и графическое пред-
ставление мы рассмотрим в следующей главе.
'.547
2, Вейвлеты и вейвлет-преобразоваиия
На практике, при сжатии данных или очистке сигналов от шума мы почт
всегда имеем дело только с частотными фильтрами. За счет выбора оптимально-
го дерева для данного сигналя или класса сигналов иногда можно существенно (в
несколько раз) повысить эффективность сжатия. Для выбора оптимального (или
квазиоптимального) дерева разработан ряд методов. Как отмечалось, некоторые
из них основаны на введении понятия энтропии, позволяющей оценить инфор-
мативность набора коэффициентов.
Функция стоимости на основе понятия энтропии М имеет различные зна-
чения. Она большая, если вейвлет-коэффициенты получаются примерно одной
величины, и мала, если они существенно отличаются. Это значит, что любое ус-
реднение коэффициентов увеличивает энтропию. Функция стоимости должна
быть аддитивной, что для сигнала х—в означает следующее;
М(0)“0 и M((xi}> ^М(х,\
Под энтропией обычно понимается величина:
о о
И = е , гдер, = |.г,| ||»|| .
При этом используется следующая стратегия: сначала строится полное де
во разложения, затем снизу вверх анализируются пары узлов, имеющих об
корень. Если при переходе от корня к узлам энтропия не уменьшается, эта пара за
меняется на корень. Возможен упрощенный вариант — это подобрать оптималь
ный уровень, т. с. высоту полного дерева, при которой энтропия минимальна.
2.6. Конструирование вейвлетов
2.6.1. Общий подход
Как уже отмечалось большинство вейвлетов, к сожалению, не имеет еди
ного аналитического выражения. Рассмотрим схематично процесс конструи
вания вейвлетов. Как нам известно, множество базисных функций образу
вейвлет-базис- Рассмотрим базис {¥'«}. в котором каждая функция — это п
ренос (УТх) —» *Р(х+1)) и растяжение (Т(х)-»Т(2х))той же функции прототипа У
называемой родительским вейвлетом. Пусть:
/ (2.28)
V<,*(x) - г'^^х - k). (2.29)
Коэффициент 2|/а в (2.29) появляется из-за общего требования ортонорми-
рованцости базиса.
128
2. Вейвлеты и вейвлет-преобразования:
Понятие вейвлета в общем случае (полагаем под независимой переменной х, в
частности x=t) проистекает из решения следующего функционального уравнения:
ф(х)« ^с,ф(2х-й), (2.30)
где Af — число ненулевых коэффициентов с„ (М — произвольное число, называ-
емое порядком вейвлета). Коэффициенты с4 в уравнении (2.30) зависят от
евойств масштабирующей функции. Вейвлет-функция, удовлетворяющая сфор-
мулированным дая нее условиям записывается в виде:
И*) = (2.31)
Очевидно, чтобы сконструировать конкретный вейвлет, необходимо ре-
шить уравнение масштабирования (2.30) для данного М и полученных вейвлет-
коэффициентов ск. Коэффициенты ск зависят от следующих свойств масштаби-
рующей функции:
Требуется, чтобы интегрируемая масштабирующая функция была равна еди-
нице:
J<p(x)dx=l (2.32)
« Масштабирующая функция должна быть ортогональна по отношению к ее
операции сдвига:
f ц>(х)(р(х - k)dx =1 (2.33)
Бажные свойства вейвлет-коэффициентов с» могут быть выведены из при-
веденных выше уравнений:
> Интегрирование выражения(2.30) с учетом (2.32) дает:
2 с, = 2 (2.34)
» Ортогональность масштабирующей функции к ее операции сдвига (2.33)
имеет вид:
£(-1)‘е, = О (2.35)
»=0
Требование ортогональности (2.29) вейвлета (2.31) гарантирует, что:
Ес»с*-2< = 2<5о< (2.36)
*=о
iill 26
139
Вейвлеты и вейвлет-преобразования
Желательно, чтобы для некоторого р были справедливо следующее уравне-
g(-l)lc,*" = O,l.p-l <2.3Т)
Уравнение (2.37) вытекает из требования точной аппроксимации полино-
мов степени р или меньшей линейной комбинацией ц>(х) и ее операции сдвига.
Из (2.37) следует, что:
jxml/r(x)dx = 0 т = 0,1...р - 1)
Альтернативно базису {можно использовать ортонормированный ба-
зис!^ х), f',*}. На основании принципов кратномасштабного анализа можно вос-
становить любую функцию f(x) с помощью выражения:
Лх) = Г + (2.38
В нем первая составляющая f(x) — ее приближение (аппроксимация) /*
вторая — уточнение функции на основе ее детализирующих коэффициентов,
эффициенты разложения b,h несут информацию о функции f около х=2' и Х-2Л
Q.6.Q. Конструирование вейвлета, Хаара
В качестве характерного и достаточно простого примера сконструиру
простейший ортогональный Вейвлет Хаара. Вычисление должно начинаться*
функции <ро(х):
(2.39)
где /=1,2.Выражение (2.89) будет сходиться к воссоздаваемой масштабиру
щей функции <р(х) во всех двухэлементных точках х = k/2‘.
Исходя из соображений традиционной нормировки, принятой в тсор
сигналов, имеем сь = 42ht и
Ф,(х) - V2 Л^.^Зх - k).
Итак, целое число М определяет число коэффициентов Л4, определены
на ортогональном базисе:
hh = V2jy?(x)(/?'(2x — k)dx
130
2. Вейвлеты и вейвлет-преобразовайия
при условии нормировки
J<p(x)dr=l
Поскольку масштабирующая функция известна, мы можем перейти к оп-
ределению бааиспой функции («материнского вейвлета»):
2М-1
i//(x) = V2 ^„д>{2х-к)
где £* =
Вейвлет Хаара получается, если взять М=1. Тогда он будет иметь два от-
личных от нуля коэффициента Л*, равны, равных 1/ -^2 и масштабирующую
функцию, определяемую из решения функционального уравнения
<Рн(х> = |?я(2х) + <рн(2х-1).
Решение этого функционального уравнения имеет вид:
<Ри(х) = 6(*М*-1).
где 9(х) — функция Хевисайда, равная 1 при положительных X и 0 при отрица-
тельных. Граничные условия, важные для реализации итерационного алгорит-
ма реализации вейвлета Хаара имеют вид <pn(ty = 1 и <ри(1) = 0, Таким образом,
вид масштабирующей функции <рц(Х) вейвлета Хаара полностью определен. Она.
имеет значение 1 в интервале х от 0 до 1 и О при любых других х.
Соответственно для psi-функции имеем:
1ДН(х) = в{х)0(2х - 1) - 0(2х -1)0(1 - х)
сграничными условиями 1Дн(0) =1, 1дн(1/2) =—1, и 1/и(1) =0.
Следовательно вейвлет Хаара имеет psi-функцию вида
fl, 0<х<1/2,
1//н(х) = -|-1, 1 /2 < х < 1
[О, otherwise
i phi’функцию вида
[1, 0 <х < 1,
Фн(*)= п . >
(0, otherwise
где otherwise означает значения в ином случае.
131
2. Вейвлеты и вейвлет-преобразования
Его масштабирующие и вейвлет-функции в дискретном варианте вычисля-
ются как:
«>,.>я V,., =2"V(2'x-4).
К сожалению, вейвлет Хаара имеет целый букет недостатков. К примеру,
он ие является гладким и его частотный спектр плохо локализовал (интенсив-
ность спектра убывает как 1 /f). Тем не менее это типичный ортогональный вейв-
лет и он может широко применяться на практике, например, для представления
сигналив, содержащих перепады уровня.
Q.6.3. Конструирование вейвлета
Добеши 4
Из конструирования вейвлета Хаара может показаться, что существует оп-
ределенный произвол в расчете коэффициентов фильтров вейвлетов. Однако это
не так и коэффициенты фильтров подчиняются жестким условиям. В 1987 Ин-
грид Добеши сконструировала ортонормированный базис вейвлетов, который
остается ключевым и сегодня для многих вейвлет-приложений. В частности, она
использовала (рп(х)=<Рн(х), чтобы сконструировать вейвлеты порядка 4 и 6. Рас-
смотрим вывод коэффициентов для вейвлетов Добеши порядка 4 (М=2) [20]. &то
«вполне полноценный» ортогональный вейвлет, который давно нашел себе мес-
то в мире вейвлет-технологий.
Конструирование будем вести на основе уже известных нам функциональ-
ных уравнений:
ф(х) = - /г), =->/2^g^(2x - k).
Из свойства ортогональности phi-функций
|ф(л)<р(л-гл)с(л -80m
можно найти уравнение, определяющее коэффициенты h
V. fylfyl+Sm = Ф).
откуда:
= <5<ы (2.40)
Далее из ортогональности psi — и phi функций, выражаемой как
JV(z)<p(x - m)dx = 0
132
2. Вейвлеты и вейвлет-преобразования
следует уравнение
2. = 0.
решение которого есть:
S), = (-1) Й2М-1-Я (2-41)
Таким образом, коэффициенты g„ для вейвлетов однозначно определяются
коэффициентами Л»рЫ*функции.
Гладкость и знакоперемсшюсть вейвлета задается условием его ортого-
нальности полиномам степени до М-1:
fxnt//(x)dx = 0, п = 0,1,..., М - 1,
что сводится к соотношению
или, с учетом (2.41):
= 0. (2.42)
k
Условие нормировки phi-функции (равенство 1 интеграла с ней в качестве
подынтегральной функции) задают еще одно условие для выбора коэффициен-
тов h:
2*. (2.43)
Теперь для М=2 запишем условия (2.40), (2.42) и (2.43) в явном виде:
^ + ^=0,
*2-Л,+*2-/13= 0,
-*!+2*2-3*3 =0,
Л0 + Л1 + Л2+*3 = л/2.
Эта система имеет следующие решения:
133
8. Вейвлеты и вейвлет-преобразования
К примеру, если в выражении для Лд использовать знак минус, то семейст-
во фильтров вейвлета Добеши 4 будет иметь чаще всего используемый вид?
й° -^-а + т/з),
hL = Ц=(3 + т/з),
4у2
\ = Д=(1-V2).
4V2
В некоторых случаях нормировочный множитель 1 /у2 опускается, по-
скольку его учет выполняется в других формулах.
Приведенные примеры конструирования вейвлетов, вероятно, могут пред-
ставить интерес для студентов, изучающих новые курсы по обработке сигналов
и изображений. Однако, для практиков стоит просто просмотреть этот материал,
положившись аа высокий имидж математиков, ухитрившихся создать не толь-
ко пару рассмотренных выше простецких вейвлетов, но и десятки (а сейчас уже
и сотни) вейвлетов, куда более сложных и практически интересных.
2,6,4, Сравнение различных типов
простых вейвлетов
Приведем вычисленные значения коэффициентов сй для вейвлетов Хаараи
Добеши. Они представлены в табл. 2.1.
Таблица 2.1
Коэффициенты вейвлетов Хаара и Добеши
Вейвлет Со с, с2 Сз C4 Й
Хаара 1 1
Добеши-4' 0 25(1+0) 0.25(3+0) 0.25(3-0) 0.25(1-0)
Добеши-6 0.332671 0.806891 0.459877 -0.135011 •0.085441 0.035226
* Нормировочный множитель 1 / V2 опущен. Заметим, что у уже приме-
ненного нами (в системе Mathcad) вейвлета DB4 масштабирующая функция не
является гладкой. Она имеет фрактальную структуру и всюду по дифференциру-
ема. Тем не менее, вейвлеты Добеши широко используются при обработке и пре-
образовании изображений и при сжатии данных.
Из описанного следует, что процесс конструирования вейвлетов достаточ-
но сложен для обычного пользователя, работающего в области прикладных ня-
ук. Это явно хлеб для достаточно опытных математиков и научных работников,
в совершенстве владеющих математическим аппаратом. К счастью, что отмеча-
лось, множество вейвлетов уже создано и их применение вполне возможно при
решении множества прикладных задач. Рис. 2.21 дает хорошее представление
об основных типах вейвлетов, которые могут использоваться для выполнения
одномерного анализа сигналов.
134
2. Вейвлеты и вейвлет-преобразования
Рис. 2.21. Основные типы вейвлетов для одномерного вейвлет-аиадиза
Заметим, что многие из приведенных на рис. 2.21 вейвлетов имеют множе-
ство вариантов. Большинство из этих вейвлетов имеет как вейвлет-функпию,
так и скейлинг-функцию, что делает возможным кратномасштабный и быстрый
вейвлет-анализ. Подробное описание одной из наиболее полных «коллекций»
вейвлетов, входящих в пакет расширения Wavelet Toolbox системы MATLAB
представлено ниже.
2.7. Вейвлеты в пакете
Wavelet Toolbox СКМ MATLAB
2.7.1. Типы вейвлетов в пакете Wavelet Toolbox
Вейвлеты в пакете Wavelet Toolbox СКМ MATLAB принято классифициро-
вать по виду и особенностям образующей функции и по имени ученого,
впервые предложившего тот или иной вейвлет. В этом разделе рассмотрено мно-
жество вейвлетов, входящих в пакет Wavelet Toolbox. Полный список 16 базо-
вых типов вейвлетов, включенных в пакет Wavelet Toolbox, с указаниями их
кратких обозначений (в апострофах) приведен ниже:
135
2, Вейвлеты и вейвлет-преобразования
'haar' —Хаара
'syiii' — Симлета
'Ыог' — биортогональный
gaus' — Гаусса
'тпогГ — Морле
'shan' — Шеннона
'meyr' — Мейера
'стог' — комплексный Морле
'db' — Добеши
'coif' — Койфлетса
'rbio' — обратный биортогональный
'mexh' — мексиканская шляпа
’rgau’ — комплексный Гаусса (гауссиана)
'fbsp' — частотный В-сплайиовый
'dmey’ — дискретная аппроксимация вейв-
лета Мейера
Для получения справки по какому либо типу вейвлета в командном режи-
ме работы MATLAB надо исполнить команду waveinfo (’ type '), указав тип
вейвлета. Например, для вейвлета Хаара:
'»'» waveinfо (’haar’)
HAARINFO Information on Haar wavelot.
Haar Wavelet
General characteristics: Compactly supported
wavelet, the oldest and
scaling function phi = 1
wavelet function psi = 1
0 otherwise.
Family
Short name
Examples
Orthogonal
Biorthogonal
Compact support
DWT
CWT
Support width
Filters length
he simplest wavelet.
on [0 1) and 0 otherwise.
on [0 0.5[, = -1 on [0.5 1) and
Haar
haar
haar is the same as dbl
yes
yes
possible
possible
1
2
Regularity haar is not continuous
Symmetry yes
Number of vanishing
moments tor psi 1
Reference: I. Daubechies,
Ten lectures on wavelets,
CBMS, SIAM, 61, 1994, 194-202.
Мы постепенно познакомимся co всеми указанными типами вейвлетов,
оценим их возможности и представим графики представляющих их функций.
136
а. Вейвлеты и вейвлет-преобразования
2.7.2. Вейвлет-менеджер — wavemngr
Вейвлет-менеджер — это мощное средство, которое позволяет добавлять (с
параметром' add ')> удалять, сохранять или считывать новые вейвлеты, интере-
сующие пользователя или создаваемые им. Вейвлет-менеджер представлен
функцией wavemngr, которая имеет следующие формы:
wavamnqr([’add’,]FN,FSN,WT,NUMS,FILE),
wavemngr ( [ ' add' , ] FN, FSN, WT, NUMS, FTT.E, B) ,
wavemngr([radd’,}FN,FSN,WT,[NUMS,TYPNUMS),FILE),
wavemngr([’add’,]FN,FSN,WT,[NUMS,TYPNUMS},FILE.R)
Входные параметры этой функции: FN — название семейства, FSN — ко-
роткое название семейства, WT — определяет тип вейвлета, NUMS — список па-
раметров вейвлета, разделенных пробелами, заканчивающийся двумя звездоч-
ками **, TYPNUMS — формат входного значения (‘integer’ , ‘real’ или string’,
FILE — имя МАТ или m-файла, В — вектор нижней и верхней границы эффек
тивной поддержки вейвлетов. Значения параметра WT могут быть следующими:
« WT= 1, для ортогонального вейвлета;
• WT = 2, для биортогонального вейвлета;
• WT = 3, для вейвлета с масштабирующей функцией;
• WT = 4, для вейвлета без масштабирующей функции;
• WT = 5, для комплексного вейвлета без масштабирующей функции.
Эта функция выходных параметров обычно не имеет, за исключением сле-
дующих вариантов ее записи:
3UT1 - wavemngr(1 read’) — возвращает названия всех семейств вейв-
летов :
0UT1 = wavemngr('read1N2) — возвращает названия веек вейвлетов
(IN2 — любое число);
0UT1 = wavemngr ('rcad_asc') — выводит ча экран содержание всех
файлов информации о вейвлетах в формате ASCII.
В следующем примере функция wavemnqr считывает полные и краткие на-
именования всех типов вейвлетов, которые входят в пакет Wavelet Toolbox:
» wavemngr(’read')
ans =
Hddi h a a r
Daubechies db
Symlets sym
Colflets coif
BiorSplines biur
ReverseBior rbio
Meyer meyr
UMeyer dmey
137
138
2. Вейвлеты и вейвлет-преобразования
139
2. Вейвлеты и вейвлет-преобразодаиия
В последнем примере показано, как можно задать новый вейвлет с именем
Leirina
» wavemngr('add1Leirinalei 1, 11 2 3 4 5',’leirinaf’) ;
Теперь можно проверить, что этот вейвлет вошел в общий список типов
вейвлетов:
>> wavemngr(’read 1)
При исполнении этой команды будет получен ранее приведенный список
типов вейвлетов, дополненный новым:
Leirina lei
2.8. Семейство вейвлет-фильтров
пакета Wavelet Toolbox
2.8.1. Множество фильтров бнортогонального
вейвлета — biorfilt
Как было показано в теоретическом разделе етой главы, весьма плодотвор-
ным в технике вейвлет-преобряэований является частотный подход, основанный
на особенностях квадратурных фильтров. В пакет Wavelet Toolbox входит ряд
функций для создания вейвлет-фильтров низких и высоких частот. Большинство
таких функций имеет имя в виде имени вейвлет-фуикции с буквой «Г» в конце.
Обычно декомпозиция сигнала при вейвлет-преобразовании типа фильтра-
ции заключается в фильтрации сигнала двумя фильтрами: низкочастотным Lo я
высокочастотным Hi. Каждый из фильтров представляет пару наборов коэффи-
циентов разного уровня: аппроксимирующих коэффициентов R, грубо представ-
ляющих сигнал, и детализирующих коэффициентов D. Указанные выше функ-
ции и служат для создания этих наборов коэффициентов.
Функция
[Lo_D,Hl_D,Lo_R,Hl_R] - biorfi1t(DF,RF)
возвращает четыре фильтра, связанных с биортогоиальным вейвлетом:
Lo__D — узкополосный фильтр разложения;
IIi_D - широкополосный фильтр разложения;
Lo_R — узкополосный фильтр восстановления;
Hr_R — широкополосный фильтр восстановления.
Другой вариант этой функции
[LO_D1,H1_D1,LO-Rl,H1_R1,LO_D2,H1_D2,LO_R2,H1_R2]=biorflit(DF,
RF,'8')
возвращает восемь фильтров, первые четыре из которых связаны с вейвлет-раа-
ложеиием, следующие четыре связаны с вейвлет-восстаиовлеиием.
Из теории фильтрации сигналов хорошо известно, что если одни и те же
фильтры с конечной импульсной характеристикой (КИХ или FIR) используются
140
2. Вейвлеты и вейвлет-преобразования
и для разложения и для восстановления, то симметричное и точное восстановле-
ние невозможно. Исключением является фильтр Хаара. Следовательно, с биор-
тогопальиыми фильтрами используются два вейвлета вместо только одного:
» один вейвлет ф используется в анализе и коэффициенты сигнала s следующие:
с1Л =р(Ь)1/гм(х)<2х
» другой вейвлет ц/ используется при синтезе:
8 =
Здесь и далее, как в оригинале, мы используем независимую переменную
х (при переходе во временную область t=x). Указанные два вейвлета взаимосвя
эаны в соответствии с выражениями;
если j*j' и k#k'
|фо.»(л)Фп,*'(х)^х=О еслик*к'.
Следующий пример задает представление на одном графике четырех вейв-
лет-фильтров на основе биортогоиальных вейвлетов:
[Rf,Df] — biorwavf (’ ЫогЗ . 5 ’ 1 ; [Lo D,Hi_D,Lo = bior-
filt(Df,Rf);
subplot(221) ; stem(Lo_D); title('Deo. low-pass filter
bior3.5');
subplot(2?2) ; stem(Hi_D); title (’Dec.. high-pass filter
ЬюгЗ.51 ) ;
subplot(223)i stem(Lo_R); title('Reo. low-pass filter
bior3.5 ' ) ;
subplot (224) : stem(Hi_R); LiLle('Rec. high-pass fil’-er
bior3.5’) ;
Коэффициенты фильтров представлены линейчатыми диаграммами
(рис. 2.22), что позволяет легко сравнивать эти фильтры. Все строки этого
примера, кроме наиболее важной первой, задают построение линейчатых ди-
аграмм в подоокнах окна графики. Эти, как и другие подобные графики полу-
чены с помощью средств графического интерфейса пользователя (GUI) систе-
мы MATLAB 6/6.1.
Для более полной иллюстрации возможностей биортогоиальных вейвлетов
на рис. 2.23 представлены пары вейвлет-функций дли вейвлетов biorl.5, Ыог2.4
иЫог2.8.
Аналогичные пары вейвлет-функций для вейвлетов ЫогЗ.З, bior3.7 и
Ъюг4.4показаны на рис. 2.24.
141
8. Вейвлеты и вейвлет-преобразования
Рис. 2.22. Графики коэффициентов четырех фильтров биортогольного вейвлета
Рис. 2.23. Пары вейвлет-функций для вейвлетов biorl.5, bior2.4 и Ыог2.8
Представленные вейвлеты дяют разнообразные возможности для прнблв
жения сигналов. Среди биортогональных вейвлетов есть вейвлеты с достаточ
высокой гладкостью, а есть и вейвлеты с резкими изгибами о острыми пикамй
венвлет-функции.
142
2. Вейвлеты и вейвлет-преобразоваЯмй
Рис. 2.24. Пары вейвлет-функций для вейвлетов blor8.3, bior3.7 и bior4.4
2.8.8. Множество фильтров
ортогонального вейвлета — orthfilt
Функция LLo_D, Hi_D, Lu__R, Hi_R] = orthfilt(W) возвращает четыре
фильтра ортогонального вейвлета, связанных с масштабирующим фильтром W.
Выходные параметры функции задают:
• Lo_D — узкополосный фильтр разложения
• Hi_D — широкополосный фильтр разложения
. Lo_R — узкополосный фильтр восстановления
• Hi_R широкополосный фильтр восстановления
Схему их вычисления можно найти в справке по этой функции. Для орто-
гонального вейвлета одно иа фундаментальных соотношений — это соотношение
со сдвоенным масштабом
Все фильтры, используемые функциями dwt и idwt, тесно связаны после-
довательностью (га„)л€г. Если phi-функция имеет компактный носитель, то по-
следовательность (ta„) конечна и может рассматриваться как FIR фильтр (с ко-
нечной импульсной характеристикой — КИХ). '
143
2, Вейвлеты и вейвлет-преобразования
Рис. 2.25. Графики вейлета Добеши db8 и коэффициентов
производных от него фильтров
Следующий пример командой load загружает вейвлет Добеши db8, строит
его график и графики ксеффициентов фильтров (рис. 2.25):
load db8; w — db8;
subplot । 321)/plot Ixval,psi); title('Wavelet1)/
subploti322);stemiw); title('Original scaling filter');
[Lo__D, H1_D, LO_K,H1__K] - orthfilt(w);
яnhplatП?3); stem(Lo_D); title('Decomposition low-pass fil-
ler 1 ) ;
subplot(324); stera(Hi_D|; title('Decomposition high-pass fil-
ter ') ;
subplot(325); stem (Lo__R) ; title ( 1 Reconstruction low-pass fil-
ter 1 ) ;
subplot(32 6); stem(Hi_R); title(1 Reconstruction high-pass
filter 1 ) /
Рис. 2.26 показывает вейвлет-функции для вейвлетов Добеши db2-dbl0,
Нетрудно заметить, что гладкость вейвлетов Добеши возрастает по мере увели-
чения их номера. Одновременно растет и частота осцилляций.
144
2. Вейвлеты и вейвлет-преобразования
Рис. 2.26. Всйвлет-функции для вейвлетов Добеши db2-dbl0
Вейвлеты Добеши, как наиболее типичные среди ортогональных вейвле-
тов широко используются в практике вейвлет-анализа и вейвлст-лреобразова-
ний. Иногда надо считаться с тем, что эти вейвлеты несимметричны, так что для
них понятие средней частоты не совсем корректно.
2.8.3. Фильтры ортогональных
или биортогональных вейвлетов — wfilters
Функция [Lo D,Hi d,Lo_R,Hi_R1 = wfilters (’wname'l возвраща-
ет четыре фильтра, связанные с ортогональным или биортогональным вейвле-
том, указанным в строке ' wname 1. Назначение выходных параметров здесь оче-
видно, поскольку уже описывалось. В связи с этим ограничимся примером
применения функции wfilters для задания четырех типов фильтров на основе
вейвлета Добеши db8:
[Lo_U,Hi D,Lo_R,Hi_R] = wfliters(1db8');
subplot (221) ; stem(Lo_D); title('Decomposilion low-раьь fj.1-
ter');
subplot(222); stem(Hi_D); 1111e ( 1DecomposLLion htqh-pass fil-
ter' ) ;
subplot (22 J) ,• stem(Lo_R); title (1 Recoiibix uction low-pass til-
lex ') ;
subpluI(224); stem(Hi_R); title('Reconstruction high-pass
filter');
xlabel('The four filters for db8')
Представление их коэффициентов в виде диаграмм отсчетов представлено
на рис. 2.27.
145
2. Вейвлеты и вейвлет-преобразования
Рис. 2.27. Представление коэффициентов фильтра вейвлета db8
2.8.4. Биортогональный сплайновый
вейвлет-фильтр — biorwavf
Функция [RE, DF] = biorwavf(W) возвращает два масштабирующих
фильтра, относящихся к ортогональному wavelet, указанному в строке W. Стро*
ка W записывается в виде 'biorNr.Nd' где возможные комбинации Nr и Nd соот-
ве гствуют приведенным ниже данным:
Кх - 1 Nd - 1 , 3 or 5
К- - '> Nd = 2 , 4 , 8 or 8
Nr = 3 Nd = 1 , 3 , 5 , 7 or 9
I'l_ = 4 Nd - 4
N: 1 Nd = 5
!•!-- = Nd = S
Выходными аргументами является пара фильтров: RF — фильтр восста-
новления и DF фильтр разложения. Пример:
'..папе = 'ЬюгЗ.1';
fif,rd] — biorwavf(wname)
rf -
0.1250 0.3750 0.3750 0.1250
146
2. Вейвлеты и вейвлет-преобразования
rd =
-0.2500 0.7500 0.7500 -0.2500
Вейвлет функции для биортогональных вейвлетов мы узко описывали —
см. рис. 2.23 и 2.24.
2.8.5. Комплексный Гауссовский
вейвлет — cgauwavf
Функция [PSI/X] = cgauwavf (lb, JB, N, Р) возвращает значения Р-ой
производной комплексной функции Гаусса
2'’<х)=Сре "е
в N-ой точке регулярной сетки на интервале [LB.UB]. Здесь величина Ср такая,
что вторая норма Р-ой производпой функции F(х) стремится к 1. Выходным ар-
гументом является функция PSI, вычисленная на сетке X. Следующий гример
строит графики действительной и мнимой частей комплексного Гауссова вейвле-
та (гауссиана) порядка 5 (рис. 2.28):
1Ь = -5; пЪ = 5; п = 1000,- [psi,x] “ egauwavf(lb,ub,п,5);
subplot(211); plot (x,real(psi)); xlabel(’Keal part’), grid
subplot(212); plot(x,imag(psi)); xlabel(’Imaginary pair’),
grid
Рис. 2.28. Графики действительной и мнимой частей
для комплексного Гауссова вейвлета порядка 5
147
2. Вейвлеты и вейвлет-преобразования
2.8.6. Комплексный вейвлет
Морле — cmorwav
рины полосы частот FB, центральной частотой wavelet FC и выражением:
r-'SI (X) = I (р!*ГВ) А ( 0.5)) *ехр(2*i*pi*FC*X) *схр (-XA2/FB)
и N —точках регулярной сетки на интервале [LB.UB]. Выходным аргументом яв«
ляется вейвлет-функция PSI, вычисленная на сетке X. Приведенный ниже при*
мер строит графики действительной и мнимой частей комплексного вейвлета
Морли с заданными в первой строке параметрами (рис. 2.29):
1Ь - 0.75; fc - 1; lb - -1; ub = 4; n = 500;
[psi,x] - CTWwavf (1 b, nb, n, fh, f c) ;
subplot(211); plot(x,real(psi)); xlabelf'Real part')/ grid
si.hpl-ot (212) ; plot(x,imag(psi)); xlabel ('imaginary part') ,
qi id
Pile. 2.29. Графики действительной и мнимои частей
комплексного вейвлета Морле
2.8.7. Вейвлет-фильтр Койфлета — eoifwavf
Функция F - eoifwavf(W) возвращает масштабирующий фильтр для
вейвлета Койфлета, определенного строкой W. Строка W задается как 'coifN',
где N — целое число от 1 До 5. Пример:
>> wname = 'coif2';
f - co 1Lwdvf(лиате)
148
2. Вейвлеты и вейвлет-преобразования
Columns 1 through 7
0.0116 -0.0293 -0.0476 0.2730 0.5747 0.2949 -0.0541
Columns 5 through 12
-0.0420 0.0167 0.0040 -0.0013 -0.0005
Вид вейвлет-функции для трех вейвлетов Койфлета показан на рис. 2.30.
Рис. 2.30. Вейвлет-функции для вейвлетов Койфлета порядка 1, 2 и 3
2.8.8. Вейвлет-фильтр Добеши —
dbaux и dbwavf
Вейвлеты Добеши — одни из самых известных. Госпожа Ингрид Добеши вне-
сла огромный вклад в создание теории вейвлетов. Функция W = dbaux(N,SUMW) —
возвращает масштабирующий фильтр Добеши порядка N, при этом sum (w) £>UMW.
Возможные значения для N — 1,2,3.Вычисление порядка N масштабирующе-
го фильтра Добеши W выполняется за два шага:
1. Вычисление праметра Р (в оригинале именуемого «Lagrange a trous»)
симметричного фильтра длиной (4N-1) и определенного как
P=[a(N) 0 a(N-l) 0 ... 0 а(1) 1 а(1) О а(2) 0 ... О a(N)],
где
“<Ч" А, х л«яА-1...N.
2. Извлечение квадратного корня. При этом, если W является масшта-
бирующим фильтром Добеши «dbN» sumV2, то W — квадратный корень Р:
Р = conv(wrev(w),w), где W — фильтр длиной 2N.
Вычисление масштабирующего фильтра Добеши «dbN» требует извлече-
ния корня полинома степени 4N. Нестабильность в вычислениях может прояв-
ляться при очень большом N.
Функция F = dbwavf (W) возвращает масштабирующий фильтр, свя-
занный с вейвлетом Добеши, определенным строкой W, где W='dbN' и
№1,2,3..45.
149
2. Вейвлеты и вейвлет-преобразования
Пример:
woame = ’db6’;
f = dbwa'jf (wname)
0 5311 0.2229 -0.1600 -0.0918
(. oldiniiS 9 through 12
0.0223 0.0004
0.0034
-0.0008
2.8.9. Частотный В-сплайновын
вейвлет— fbspwavf
Функции [PSI,X] - fbspwavf (LB, UB,N, M, ГВ, FC) возвращает значения
комплексной частоты В-сплайнового вейвлета, определенного порядком М (це-
лое число 1 < М), шириной полосы частот FB, центральной частотой wavelet ГС,
Функция PSI вычисляется, используя следующее выражение:
PSI(X) (FR'0 5) * ( (ч 1 ос. (FB’X/M) . ЛМ) . *ехр (2*i*pi*FC*X) )
ь N-точнях регулярной сетки в интервале [LB,UB]. FB и FC должны быть такие,
Hit) FC "•* FB/2 > О. Выходными аргументами являются вейвлет-функция PSI,
вычисленная на сотке X. Пример, приведенный ниже, строит графики действи-
тельной и мнимой частей комплексного вейвлета Морле и виданными в первой
строке параметрами (рис. 2.31):
сс = 3; (I.. - 1- |\' (1. 7L,.- ill.! = 'IO.- n 50Г);
Рис. 2.31. Графики действительной и мнимой частей
частотного В-сплайнового вейвлета
150
2. Вейвлеты и вейвлет-преобразования
subplot(211); plot(х,real(psi)):
xlabcl('Real part’), grid,- subplot (212)
plot(x,imag(psi)); xlabel(’Imaginary part'), grid
2.8.10. Гауссовый вейвлет — gauswavf
Функция [PSI,X] = gausuavf (L3, UB, N, P) возвращает яиячриия Р-ой
производной функции Гаусса
F(x) = С/’*2
bNточках регулярной ссткн для интервала [LB,UB]. Значение Ср такое, что 2-нор-
ма Р-ой производной функции F стремится к 1. Построение графика (рис. 2.32) Га-
уссового вейвлета (гауссиана) порядка 10 представлено следующим примером:
1Ь = -5; ub = 5; п = 1000;
[psi,х] = gauswavf(lb,ub,n,10) ,-
plot(x,psi); grid
Рис. 2.32. Хфафик Гауссового вейвлета 10-го порядка
2.8.11. Вейвлет «мексиканская шляпа» — mexihat
Функция [PSI.X] = mexihat (LB,UB,N) возвращает значения вейвлета,
известного под образным названием «мексиканская шляпа», в N точках регу-
лярной сетки X на интервале [LB,UB]. Выходными аргументами является вейв-
лет-функция PSI, вычисленная на сетке X:
Эта функция (тут она дана без упрощений, использованных в начале этой
главы) пропорциональна второй производной Гауссовой функции плотности веро-
ятности. Вид этого вейвлета (рис. 2.33) позволяет наблюдать следующий пример:
151
2. Вейвлеты и вейвлет-преобразования
1Ь = -6; uh = 6; п - 500;
[psi,x] = гпАх i hat !lh, ub, n) ; plot(x.psi)
Рис. 2.33. График вейвлета «мексиканская шляпа»
Обратите внимание на то, что иногда вейвлет-функцию такого вейвлета
изображают в перевернутом виде.
2.8.12. Вейвлет-функция Мейера —
шеуег и meyeraux
Вейвлет-функции Мейера определены в частотной области следующим об-
I Z ( Z7T )) А о
"/V ,г> кЧ /л / 3 , , 4л ,| 8л
|/(«>) = (2л) ^"cod-^—|а>|-1П — <|о>|< —
л „ Г2л 8л1
= О ше — ; —
v(a) = а4 (35—84а + 70а" -20а3) а е [О,] ]
Соответствующая масштабирующая функция есть:
?>(со) - (2л) 2 1^1 -
<р(сс») - (2л) 2 е1” cos^ |ft)| - 1
<p(ui) = 0 |wj >
152
2. Вейвлеты и вейвлет-преобразования
Функция [PHI,PSI,T] = meyer (LB,UB,N) возвращает масштабирую-
щую функцию и вейвлет-функцию Мейера, вычисленную в N точках регулярной
сетки в интервале [LB.UB]. Переменная N должна быть степенью числа 2. Вы-
ходными Параметрами являются Масштабирующая функция PIII и вейвлет-
функция PSI, вычисленные на сетке Т. Если требуется к качестве выходного ил-
раметра Получить только одну из перечисленных функций, то требуется
четвертый аргумент:
[РНТ, Т] = meyer (Г,В, UR, N, ’phi ' ) или
[FSI,T] - meyer(LB,UB,N,’psi')
Следующий пример строит графики вейвлета Мейера и его Масштабирую-
щей функции (рис. 2.34):
1Ь = -5; ub = 19; л = 1024;
[phi,psi,х| = meyer(lb,ub,n);
subplot(211), plot(x,psi); titie(rMeyer wavelet')
subplot(212), plot(x,phi); titlel’Meyer scaling funct.on’)
Если использовать функцию Y-meyeraux (x), можно вычисляв дополни-
тельную функцию, которая описывается Полиномом 35х4“85х5+7Ох6“2Ох7.
2.8.13. Вейвлет Морле — morlet
Функция [PSI,X] — moilet (LB, UB, N) возвращает значения вейвлета
Морле в N точках регулярной сетки на интервале [LB.UB]. Выходными аргумен-
тами является вейвлет-функция PSI, вычисленная на сегке X и сетка X:
W(x) - е 2 cos(5x)
153
2. Вейвлеты и вейвлет-преобразования
Для построения графика этой функции (рис. 2.35) можно использовать
следующий пример:
1Ь “ -5; ub = 10; п = 512;
[psi,x] = morlet(lb,ub,л);
piot(x,psi), title(’Morlet wavelet')
Рис. 2.35. График вейвлета Морле
2.8.14. Обратный биортогоналъный
вейвлет-фильтр — rbiowavf
Функция [RF.DF] = rbiowavf(W) возвращает два масштабирующих филь-
тра, связанных с биортогоиальным вейвлетом, определенным строкой W.
W “ 'rbioNr.Nd', где возможные значения для Nr и Nd: следующие:
Ni - 1 Nd = 1 , 3, 5
Nr = 2 Nd = 2 , 4 , 6, 8
Nr - 3 Nd = 1 , 3 , 5 , 1, 9
Nr - 4 Nd = 4
Nr - 5 Nd = 5
Nr = 6 Nd = 8
Выходными аргументами являются два фильтра: фильтр разложения RFa
фильтр восстановления DF. Пример:
[iL.df] - rbiowavf('rbio3.1')
rf -
-0.2500 0.1500 0.1500 -0.250С
df =
0.1250 0.3750 0.3750 0.1250
154
2. Вейвлеты и вейвлет-преобразования
2.8.15. Вейвлет-фильтр Шеннона
Функция [PSI.X] = shanwavf (LB, UB,N,FB, ГС' возвращает значения
комплексного вейвлета Шеннона, определенного параметром ширины полосы
частот 1'В, центральной частотой FC и выражением:
FSI(X) = (FBA0.5)*(Sine(FB’X).’exp(2*i’pi’FC’X))
в N точках регулярной сетки на интервале [LB.UB]. Причем. FB и FU должны
быть такими, что FC > FB/2 > 0. Выходным аргументом является вейвлет —
функция PSI, вычисленная на сетке X.
2.8.16. Масштабирующие фильтры
вейвлета Снмлета — syniaux и symwavf
Функциям = svmaux (N,SIIMW) возвращаетмасштабирующийфильтрСигл-
лета порядка N, такой 4toSUM(W) = SUMW. N принимает следующие возможные
значения 1,2, 3,... Симлет-вейвлет это наименьший асимметричный вейвлет Добе-
ши. Пример, представленный ниже, в особых комментариях не нуждается:
» wdb6 - dbaux(6)
v.db-6 =
Columns 1 through 8
0.3789 0.3498 0.5311 0.2229 -C.1600 -0 09:8
C.0889 0.0195
Columns 9 through 12
-0.0223 0.'0004 0 0034 -0.0008
F - symwevf (W) возвращает масштабирующий фильтр, связанный с
Симлет-вейвлетом, определяемым строкой W, где W ='symN'. N принимает зна-
чения 2, 3.45.
>> w = symwavf('sym51)
v =
Columns 1 through 8
0.0138 -0.0149 -0.1240 0.011' 0.4483 0.5 _ 1 ri
0.1410 -0.0277
Columns 9 through 10
0.0209 0.0193
2.9. Сравнение вейвлетов
разного типа
типов вейвлетов и множество вариантов для ряда базовых типоз вейвлетов. Од-
нако, необоснованное применение того или иного типа вейвлета способно привс-
155
2. Вейвлеты и вейвлет-преобразования
сти к разочарованию. Поэтому ниже обобщены основные свойства вейвлетов раз*
личного типа. Их учет позволяет подбирать наиболее подходящие типы вейвле-
тов для решения конкретных задач обработки сигналов и изображений.
Такой выбор надо рассматривать как «пробу пера» .-Разумеется, при реше-
нии серьезных задач в области обработки сигналов и изображений желательно
применение хотя бы нескольких типов вейвлетов с последующим сравнением ре-'
зультатов и выбором наилучших из них.
2.9.1. Грубые (Crude) вейвлеты
К «грубым» вейвлетам относятся вейлеты Гауссова типа (gaus), Морле
(mor]et) и «мексиканской шляпы» (mexihat). Они обладают минимумом свойств,
которыми должны обладать вейвлеты, обеспечивающие полноценные возмож-
ности в технике преобразования сигналов:
• функция phi у них отсутствует;
• аня лип не является ортогональным;
• psi не имеет компактного носителя;
• возможность реконструкции не гарантирована;
• возможна непрерывная декомпозиция;
• главные свойства: симметричность, функция psi задается явно;
• быстрые алгоритмы преобразований и точная реконструкция невозможны.
2.9.2. Бесконечные регулярные вейвлеты
К бесконечным регулярным вейвлетам принадлежат вейвлеты Мейе
(ineyr). Они имеют следующие свойства:
• имеют функцию phi и их анализ ортогональный;
• функции не определены явно psi и phi;
• функции psi и phi не имеют компактного носителя;
• вейвлеты симметричны и регулярны в бесконечности;
• быстрый алгоритм преобразований не поддерживается.
У этих вейвлетов возможны следующие методы анализа;
• непрерывные преобразования;
• дискретные преобразозания, ио бея FTR фильтров.
Еще один вейвлет этого типа — дискретный вейвет Мейера (dmey). Е
свойства:
• аппроксимация фильтром класса FIR;
• поддержка непрерывного и дискретного преобразований.
2.9.3. Ортогональные вейвлеты
с компактным носителем
К этим вейвлетам относятся вейвлеты Добеши (dbN), Симлота (eymN)
Кийфлега (coifN). Их основные свойства:
156
а. Вейвлеты и вейвлет-преобразования
• функция phi имеется и анализ относится к ортогональному типу;
• функции имеют определенное число моментов исчезновения;
» функции psi и phi имеют компактный носитель;
• возможны непрерывные преобразования и дискретные преобразования с при-
менением быстрого вейвлет-преобразования;
• обеспечивается принципиальная возможность реконструкции гигнапов и
функций.
Некоторые трудности! недостаточная периодичность. Специфические про-
блемы:
• вейвлеты dbN несимметричны;
• вейвлеты symN: близки с симметричным;
• вейвлеты coifN; отсутствие симметрии, функций phi и psi, наличие моментов
исчезновения.
2.9.4. Бнортогоиальиые парные вейвлеты
с компактным носителем
К ним относятся В-сплайновые биортогональные вейвлеты (biorNr.Nd и
rbioNr.Nd). Они имеют следующие свойства:
• функция phi имеется, и анализ относится к биортогональному типу;
• обе функции psi и phi для декомпозиции и реконструкции имеют компакт-
ный носитель;
• phi и psi для декомпозиции имеют моменты исчезновения;
• psi и phi для реконструкции могут иметь периодичность.
Возможные виды анализа: непрерывное преобразование и дискретное пре-
образование с использованием алгоритма быстрого вейвлет-преобразования.
Наиболее существенные достоинства: симметрия с фильтрами, желаемые
свойства для разложения и восстановления разделень:, возможно их хорошее
распределение. Наиболее существенные трудности: отсутствие ортогональности.
2.9.5. Комплексные вейвлеты
К комплексным относится довольно большая группа вейвлетов: Гаусса
(cgauN), Морле (cmorFb-Fc), Шенона (shanFb-Fc) и частотные В-сплайпооыс
вейвлеты (fbspM-Fb-Fc). Они обладают минимальными свойствами:
• функция phi отсутствует;
• анализ не ортогональный;
• функция psi не имеет компактного носителя;
« свойства реконструкции не гарантируются;
« возможен анализ типа комплексной декомпозиции.
Трудности применения: быстрый алгоритм и реконструкция невозможны.
157
2. Вейвлеты и вейвлет-преобразования
Итак, мы рассмотрели множество вейвлетов, входящих в пакет расшире-
ния Wavelet Toolbox системы MATLAB 6.0/6.1. Эти вейвлеты (или их большин-
ство) входят и в состав пакетов расширения других СКМ, например Mathcad илн
Mathematica.
ВНИМАНИЕ___________________ ________________________________
Обилие классов вейвлетов и их конкретных реализаций в каждом классе поз-
воляет легко использовать для решения каждой практической задачи наибо-
лее подходящий тип вейвлета. По-видимому, в настоящее время создание но-
вых типов вейвлетов рационально только при решении новых и довольно
специфических задач и при условии, что для этого не удается подобрать под-
ходящий тип вейвлета из числа описанных.
158
Глава 3. Работа, с Wavelet Toolbox
в командном режиме
3.1. Краткая характеристика пакета
расширения Wavelet Toolbox
3.1.1. Назначение пакета Wavelet Toolbox
Пакет расширения систем MATLAB 6.0/6.1 Wavelet Toolbox 2/2.1 — одно
из новейших и мощных инструментальных средств для изучении, создания и
применения вейвлетов и проведения вейвлет-преобразований. Пакет представля-
етпольяователю обширные и одновременно уникальные возможности для работы
с вейвлетами, причем как в командном режиме, так и с помощью специальных
средств графического интерфейса пользователя (GUI) данного пакета. По обилию
типов вейвлетов и функций для обработки сигналов, а также по числу весьма по-
учительных и наглядных примеров в фирменном описании, г; от ii.ikci является
лучшим среди пакетов расширения для СКМ в этой области (пакеты расширения
по вейвлетам есть и в новых реализациях СКМ Mathcad и Mathematical.
В этой главе вначале описываются средства, используемые в командном
режиме работы. Пакет Wavelet Toolbox предоставляет:
• инструментальные средства для вейвлет-анализа и синтеза сигналов и изоб-
ражений;
« множество уже встроенных вейвлетов разного тина, в том число пакетных;
• возможность задания своего вейвлета с заданными свойствами;
• средства обработки сигналов и изображений;
• средства для непрерывного и дискретного вейвлет-анализа;
• средства очистки сигналов от шума и специальной обработки;
• средства обработки и компрессии сигналов изображений;
• мощные средства визуализации вейвлетов и всех операций с ними.
Указанные средства предоставляются как на уровне функций, выполняе-
мых из командной строки или программных модулей, так и па уровне хороню
проработанного и удобного графического интерфейса пользователя (GUT).
3.1.2. Техническая документация
по пакету Wavelet Toolbox
Техническая документация по пакету расширения Wavelet Toolbox
представлена электронной и обычной книгами «Wavelet Toolbox. For Use with
MATLAB. User Guide». Для версии пакета 2.0 этого паке ia объем книги состав-
ляет 941 стр., объем PDF-файла электронной версии кпиги около 13.8 Мбайт.
159
3. Работа с Wavelet Toolbox в командном режиме
3.2. Основные функции вейвлет-анализа
3.2.1. Центральная вейвлет-частота — eentfrq
Мы уже отмечали важность понятия центральной частоты вейвлетов, ко-
торая определяет положение пика Фурье — образа вейвлета ня оси частот. Как
правило, эта частота вычисляется итерационным методом. Она определяет пик
спектрального образа вейвлета.
Функция FREQ = centfrq ( 1 wname 1 ) возвращает центральную частоту
(в Гц) войвлет-фуикции с именем ’wname1. Другой вариант этой функции
FPEQ -- cenLfrq('wname',ITER) возвращает центральную частоту вейв-
лет- Функции с дополнительным аргументом ITER — числом итераций, выпол-
ненных функцией wave fun, которая используется для вычисления вейвлета.
Следующий пример задает вейвлет Добеши типа db2, вычисляет его цент-
ральную частоту при 16 птерациях и строит графики вейвлета и синусоиды
(рис. 5.10), имеющей ту же частоту, что и центральная частота вейвлета:
wnu.r,- 'do?1.- iter = 16;
centlrq(wname,iter,'plot');
Рис. 3.1. Графики вейвлета Добеши db2 и синусоиды с частотой,
равной средней частоте вейвлета
Рис. 3.1 дает наглядное представление о различии базовых функций в Ф
рье преобразовании (синусоида) и в вейвлет-цреобразовании (в данном случ
вейвлет Добеши г)Ъ2).
160
3. Работа с Wavelet Toolbox в командном режиме
Рассмотрим еще один особенно характерный пример. Здесь задано вычис-
ление центральной час10ТЫ так называемого Гауссова комплексного вейвлета
. cgau6. который можно, и впрямь, трактовать как вырезку из синусоидального
сигнала с частотой, равной средней частоте вейвлета:
wname = 1 cqaufi1 ; с 1 req = ceni f i q { wr.ame ,1b, ’ plot')
clreq
Вычисление средней частоты также сопровождается автоматическим пост-
' роением сравнительных графиков вейв-чега и синусоиды (рис. 3.2).
Рис. 3.2. Графики комплексного Гауссова вейвлета cgalifi и синусоиды с частотой,
равной средней частоте вейвлета
Приведенные примеры дают наглядное представление о том, как можно
трактовать тот пли иной вейвлет. Однако проще всего это сделать, используя
GUI пакета, который мы рассмотрим несколько позже.
3.2.2. Уменьшение размера матрицы вдвое —
dyaddown
В ходе осуществления кратпомасштабного вейвлет-анализа приходится
ТО И дело уменьшать или увеличивать вдвое размеры матрицы X со значения-
' ми сигнала. Вектор X рассматривается как частный случай матрицы X. Функ-
ция Y = dyaddown (X, EVENODD) возвращает масштабированную (уменьшен-
ную вдвое) версию матрицы X. Причем матрица Y может содержать четные
или нечетные элементы матрицы X в зависимости от значения положительной
переменной evenodd:
О» 26
161
3. Работа с Wavelet Toolbox в командном режиме
• если EVENODD — четное, ТО Y(k) = X(2k);
• если EVENODD — нечетное, то Y(k) = X(2k+1).
Функция Y = dyaddown (X) аналогична функции Y = dyaddown (X, 0).
функция
Y— dyaddown(X,EVENODD, 'type') или
Y = dyaddown (X, 1 type 1 , EVENODD) , где type — r,c пли m
возвращает масштабированную версию матрицы X, сжатую по строкам (г)
столбцам (с) или и по строкам, и по столбцам (т) в зависимости от значения пе
ременной typo. Пример:
dec = dyaddown (s, 0 , 1 с 1 )
d?r = dyaddown(s,1,'г 1)
deni = dvaddown(s, 1, 'm')
12 3
2 4 6
12 3
3.2.3. Увеличение размера матрицы вдвое — dyadu
Функция Y = dyadup (X, EVENODD) , в отличие от рассмотренной вы
функции, возвращает дополненную нулями версию матрицы X. Другими слов
мн, она увеличивает размер вектора вдвое. Нулевые элементы могут быть четны
ми или нечетными в зависимости от значения переменной EVENODD:
• если число EVENODD — четное, то Y(2k-1) = X(k), Y(2k) = 0;
• если EVENODD — нечетное, то Y(2k-1) - 0, Y(2k) - X(k).
Функция Y — dyadup(X) эквивалентна функции Y — dyadup(X,l).
Y = ayadup(X, EVENODD, ’type’) ИЛИ Y = dyadup(X, ’type 1,EVENODD)
возвращает масштабированную матрицу X, дополненную нулями по стоттбц
или по строкам или и по столбцам, и по строкам, в зависимости от значения ле
менной type. Приведенный ниже пример в особых комментариях не нуждается:
s (1:J) 1 *(1:2)
der — dyadар (з,1, 1 г’)
doc - dyad tp (s, 0, • с ')
163
3. Работа с Wavelet Toolbox в командном режиме
dem = dyadup(s, 1,' m')
3.2.4. Интегрирование вейвлет-функции — intwave
Функция [INTEG,XVAL] - intwave (’ wname ’, PRFt~) вычисляет интег-
рал INTEG wavelet-функции (от -°o до значения XVAL-т):
для x в XVAL. Функция у(у) аппроксимируется на сетке из 2’’REC точек, где
PREC — положительное целое число, а ' wname ' — символьный аргумент (строка
символов), содержащий имя вейвлета. Результат INTEG — вещественный или
комплексный вектор, в зависимости от типа вейвлета.
[INTEG,XVAL] = intwave(’wname•)
Функция [INTEG,XVAL] - intwave ( 1 wiicnue 1) эквивалентна
[INTEG,XVAL] - intwave(1wname8)
163
3. Работа с Wavelet Toolbox в командном режиме
Для биоргогональниго вейвлета применяется функция
[INTDLC,XVAL,INTREC] - intwdve(’wnamePREC)
которая B03i ” " ' -1КЦИИ разло
ния и вейвлет <i > v к k.i hi и посети поил опия соотвстствимно.
Рис. 3.3. Графики вейвлета Добеши db2 и интеграла от него
Следующий пример строит график вейвлета Добеши db2 и интеграла от в
/о (рис. 5.12):
•vr.-.ioc 'аЬ2'; ) pF 1, psi, xval ] = wavefen(wname, 7) ;
ubpJ or (211) ; plot (xval, psi) ; title('Wavelet');
[iiitcp.xval] = intwave (wname, 7 )
s u( plo I (212 ) , plot( xval, j nteg) ; title (1 Wavelet integrals’ ) ;
3.2.5. Масштабирование к частоте — scal2frq
Функция? = scal2frq(A,’wname1,DELTA) —возвращает псевдо-част
ты, соответствующие масштабированию, задаваемому в А, вейвдет-фумкц
1 wnaine ' и выборочному периоду DELTA.
Следующий пример задае г вейвлет Добеши dblO и строит его спектрограф
w-idine = ’dLlC’, А - -64, В = 64; Р - 224;
delta - (В—А) / (Р-1) ; I = 1±пърасе (А, В, Р) ,-
ищеча — 5; х - cos (omega * t) ; freq = omega/(2*y.| ,-
to Tics [0.25:0.25:3.75];
TA?_T,F = scal2frq (sea les, wname, del ta);
[dummy,ind] = min(abs(TAB_PF-freq) ) ;
'r^q_APP - TAB_PF(ind); scale_AEP = scales(ind);
164
3. Работа с Wavelet Toolbox в командном режиме
seU(axliTL,
Как нетрудно заметить, большая часть этого примера задаст строковое об-
рамление графика, который представлен па рис. 3.4.
ii 11111«i e 111 liiii i ii
Рис. 8.4. Спектрограмма вейвлета Добеши dblO, построенная
с масштабированием к частоте функцией scal2frq
3.2.6. Вейвлет и масштабирующие функции ~
wavefunavefun
Функция wavefun возвращает аппроксимацию вейвлет-функции 1 wi > агг<
и связанную с ней масштабирующую функцию, если последняя существует. По-
ложительное число TTERопределяет число итераций. Для ортогонального вейв-
лета эта функция задается в следующем виде:
[ PHI,PSI,XVAL] - wave fun('wname1,1ГЕР)
165
3. Работа с Wavelet Toolbox в командном режиме
Она возвращает масштабирующую и пейв л₽т-фуикцию в 2|1Е1! точках сетки
XVAL. Для биортогональнщ о вейвлета эта функция задается в виде:
[PHI,,PSI1,PHI 2,PS 12,XVAL] = wavetun(’wname',ITFR)
Функция wavef _in возвращает масштабирующую и вейвлет-функшш для
разложения (РШ1,Р8И) и восстановления (PHI2,PSI2).
Для вейвлетов без масштабирующей функции (Морлета, koviii wkchoto
вейвлета и т. д.) применяется следующая форма функции:
[PST,XVAL] - wavefun(’wname11LR)
Приведенный ниже пример показывает итерационный процесс (10 итера-
ций) приближения к вейвлету типа sym2 (рис. 3.5):
_tei = 10; wav = ’sym2';
for _ - l:iter
[phi, psi,xva] ] = wa vefun (wa v, i) :
p1 or(xva1,psi) ; hold on
tir:e([1 Approximations of Lhe wavelet
1 for 1 Lo 1,nun2str(iter),’ iterations’I) ;
Pirc. 3.5. Итерационное уточнение (аппроксимация) вейвлета sym2
Выбранный для иллюстрации вейвлет типа syni2 имеет довольно тонкую
структуру, Тем не мопсе, по рис. З.б хорошо видно, что десятка итераций процесса •
аппроксимации вполне достаточно для ₽гю представления в окончательном виде.
166
3. Работа с Wavelet Toolbox в командном режиме
3.2.7. Максимальный уровень
вейвлет-разложения — wmaxlev
Функция L = wmaxlev(S, 1 wnamp 1 ) возвращает максимальный уро-
вень разложения сигнала или изображения размера S, используя wavelet, оп-
ределенный в строке 'wname'. Приведем примеры применения этой простой
уккции:
S = 2”10; w - 1 dbl'; 11 — wmaxlev(s,w)
11 =
10
w - 1db71; 12 = wmaxlev(s,w)
12 =
3.3. Утилиты управления построением
деревьев
3.3.1. Обзор утилит управления
построением деревьев
В пакет Wavelet Toobox включено довольно много утилит для построения
деревьев вейвлет-преобразований. Они предназначены, в основном, для построе-
ния таких деревьев в примерах, реализованных на основе GUI пакета и в составе
ряда самостоятельных функций пакета. Самостоятельно эти утилиты применя-
ются редко, но такое применение не исключено, особенно для утилит, строящих
завершенные графики деревьев и иных графических объектов. Такие утилиты
рассматриваются более подробно.
Набор утилит для управления Построением деревьев представлен ниже-
Allnodes — создает дерево узлов;
depo2 rnd определяет местоположение узла по отношению к его индексу;
drawtrcc — дает построение дерева разложения пакетного вейвлета с соответст-
вующим обрамлением в окне GUI;
dtree — задает конструктор для класса DTREE;
Get — дает получение компонентов дезева;
lnc2depo задаст индекс узла по отношению к глубине его позиции;
isrode — возвращает логическую единицу, если узел существует и логический
нуль, если он не существует;
strode — определяет индексы для терминальных узлов;
leaves — определяет терминальные узлы;
nodeasc задаст шщедентпость узла;
167
3. Работа с Wavelet Toolbox в командном режиме
noccdcsc — задает потомки данного узла;
nndej oin — задает восстановление узла;
nodepar — надает родительский узел;
nodespit — задаст узел разложения;
н jludvei — определяет количество нетерминальных узлов;
ntO'-de — возвращает количество терминальных узлов ;
г11 геи - задает конструктор класса NTREE;
ploi--строит график объекта дерева;
lo id - считывает значение в поле объекта дерева;
ic.iati-c — считывает декомпозицию дерева пакетного вейвлета с фигуры;
,е i — задаст установки содержания полей объекта дерева;
.„uJe*; определив г терминальные узлы;
i г eecior h — возвращает глубину дерева;
trccoi J — возвращает порядок дерева;
Л'рi гее — задаст конструктор класса WPTREE;
wpvj.ou.-f строит коэффициенты пакетных вейвлетов в цвете (вейвлет-спек
рограмму):
л г j I ? — записывает значения в поле объекта дерева ;
wtbe. — задает конструктор для класса WTBO;
-V i госщ-jг — задает менеджер объекта NTREE.
Напоминаем, что команда help лате funct-on позволяет вывести опис
ние каящой из этих функций, при замене name function на имя конкуренте
функции- В большинстве описаний функций можно найти демонстрацией
примеры па их применение.
3,3.8. Построение дерева разложения пакетного
вейвлета, — drawtree
Одна из важных утилит diawtiee (Т) строит дерево пакетного вейвлета
а функция F drawtree (Т> строит дерево пакетного вейвлета и графитеск
метку. Эти построения происходят в окне GU1 и обеспечены соответствующп
возможностями, например, в построении графика сигнала (функции), проем
ра временных диаграмм в узлах дерева, установкой параметров и т. д.
Приведем пример построения дерева функции t>in(x)/x с уровнем 8 деком
позиции и на основе вейвлета Добеши db4:
X - б •'pi ’ [ 0.001; 0.005 : 1 ] ; y-sin (х) ./х;
t — wpaec(у, 3,’db41) ; zig - drawtree(t) ;
Получаемое нри этом окно для просмотра пакетных вейвлетов показано
рис. 3.6.
168
BCJEi
ИПЕЗ
3. Работа с Wavelet Toolbox в командном режиме
3.3.3. Построение дерева — plot
Функция plot (Т) строит график дерева и график вейвлетов в указанн
на этом дереве узлах. Пример такого построения:
load norcbloc; к _ noisbloc;
i - wpdcc(х,3,'db4’); plot(t)
Построенные графики представлены на рис. 3.7.
Активизируя те или иные узлы дерева (рис. 3.7, слева), можно набюдат
построение в них вррмрнных зависимостей для декомпозиции сигнала (рис. 3.7
справа).
3.3.4. Построение цветной
вейвлет-спектрограммы — wpviewcf
Функция wpviewcf (Т, CMODE) строит коэффициенты пакетных вейвлета
в цвете, причем возможно задание до 8 режимов (числами от 0 до 7). В следу
щрм примере: 1
х - sin (8*pi*[0:0.005:1] । ; t = wpdec(х,3, 'dbl') ;
plot (t); wpviewcf(t,1);
вначале функцией plot строится дерево пакетного вейн пета и временные зав
симости в узлах (рис. 3.8).
Рис. 3.8. Построение дерева пакетного вейвлета
170
3. Работа е Wavelet Toolbox в командном режиме
Затем функция wpvicwcf строит спектрограмму, показанную на рис. 3.9,
для значения параметра CMODE—1. К сожалению цвета спектрограммы при ее
печати в книге отсутствуют и заменяются оттенками серого цвета, что делает
спектрограмму блеклой.
Рис. 3.9. Пример построения цветной спектрограммы
3.4. Основные утилиты
В этом разделе рассматривается четыре функции, в оригинале названные
основными утилитами. Эти функции не имеют прямого отношения к вейвлетам,
но они полезны для некоторых операций с ними.
3.4.1. Кодировали ая версия матрицы —
wcodemat
Утилита Y = wcodemar(X,NBCODES,ОРТ,ABSOL) возвращает кодирован-
ную версию входной матрицы X, если ABSOL — О, или АВЯ(Х) если ABSOL — не-
нулевой аргумент, с использованием первых NBCODES целых чисел. Кодирова-
ние может быть выполнено построчно (ОРТ — 'row' or ‘г’), по столбцам (ОРТ =
'со.' или ’с’) или глобально (ОРТ = ’mat' or’m').
Кодирование выполняется на равномерной сетке между минимальным и
максимальным значениями каждой строки или столбца матрицы соответственно.
Y = wcudeuiaL (X, NBCODES, ОРТ) эквивалентна Y =
wcod^ma. (X,NBCODES,ОРТ,1).
171
3. Работа с Wavelet Toolbox в командном режиме
v = wcociemat (X, NBCODES) эквивалентна Y =
wcodemat(X,NbCODES, 1 mat ’ , 1) .
Y = wcodemat (X) эквивалентна Y = woodemat (X, 16, ' nat' , 1) .
3.4.2. Утилита расширения — wextend
Утилита расширр-тая Y = wextend (TYPE, MODE, X. L [, LOCI ) служит для
расширения X в соответствии с типом расширения TYPE:
, 1 ! ' , 'Id 1 или ' 1D' — 1-D расширение;
2, ' 2 ' , '2d' или '2D' — 2-D расширение;
’„1 ' или • addrow' —добавлении строк;
«- ' или ' addco 1 ' — добавление столбцов;
Допустим',га режимы расширения (MODE) приведены ниже:
' /; с-' — нулевое расширении:
' _лрЭ ' — гладкое расширение нулевого порядка;
';;fd' (или 'spl') — гладкое расширение первого порядка; 1
' cvm' — симметричное расширение;
' орсГ — периодическое расширение (1),
' per ' — периодическое расширение (2).
Если TYPE = {1, ' 1 ' , ' Id ' or ' ID ' } :
LUC = 'Г (or V) — для расширения влево или вверх;
LOC = 't ’ (or d') - для расширения вправо или вниз;
LOC -- 'Ь' - для расширения в обе стороны;
LOC = ’и’ — левое расширение.
Пример расширения вектора;
- - . = [12 3 J
> яо>;/р-;1 = wpxiend zpd 2 )
2 3
2 0,1 2 3 0 0
>> xextper = wexzend('ID', 'per',х,2)
3 3 1 2 3 3 1 2
Пример расширения матрицы:
3. Работа с Wavelet Toolbox в командном режиме
Xextzpd =
2
>> Xextsym
Xextsyrr =
2
3.4.3.
Извлечение — wkeep
Для вектора X функция y - wkeep (k, L, ОРТ) навлекает вектор Y из век-
ТораХ. Длина вектора Y задастся параметром L. Если ОР'1' = с' (Т, г', соответ-
ственно), Y — центральная часть (левая или правая, соответственно) вектора X.
ФункцияУ - wkeep (X, L, FIRST) возвращает вектор X(FIRST:FlR&T-!-L-1).
Функция У = wkeep (X, L) эквивалентнаY - WKeep (X, L, ' с ‘ ).
Примеры извлечения элементов вектора даны ниже:
у = wkeep(х, 3)
2
173
3. Работа с Wavelet Toolbox в командном режиме
Для матрицы X функция Y - wkeep(X,S) извлекает центральную част
матрицы X. Размер матрицы Y задается векторам S.
Функция! = wkeep(X,S,(FTRSTR FIRS'Z'C]) извлекает часть матриц
X размера S, начиная с элемента матрицы XfFlRSTR.FIRSTC),
Примеры извлечения части матрицы:
m = magic ( 4 )
16 2 3 13
5 11 1U 8
9 7 б 12
4 14 15 1
>> у =- wkocpfm, {2 3])
5 11 10
3.4.4. Разворот вектора — wrev
Утилита Y - wrev(X) осуществляет разворот вектора X. Например:
» X = [5 3 1]; 1 = wrev(X)
13 5
1
3
3.5. Прочие функции
3.5.1. Обратное нестандартное БПФ — instdfft
Функция [X.TJ = instdfft(XHAT,LOWB,UPPB) возвращает нестандарта
обратное БПФ (IFFT) для параметра ХНЛТ на регулярной сетке на интервал
[LOWB.UpPB], Выходными аргументами является сигнал X, вычисленный н
интервале Т следующим образом Т = LOWB + [0:n-l]"’(UPPB-LOWB)/u, где п
длина параметра ХНАТ-
3.5.2. Нестандартное прямое БПФ — nstdfft
функция 1ХНЛТ, OMEGA] = nstdfft(X,LOWB,UPPB) возвращает нестан-
дартное одномерное прямое БПФ ( FFT) для сигнала X на регулярной сети
(towr, и^РВ] с числом измерений, равным степени 2. Выходной аргумен
174
3. Работа с Wavelet Toolbox в командном режиме
ХНАТ сдвинутое БПФ по X , вычисляемое в интервале OMEGA, который задает-
ся как OMEGA = [~п:2:п—2] / (2*(UPPB - LOWB)), где и— leugth(X). Выходные
векторы ХНАТ И OMEGA также имеют размер п. Используется для аппроксима-
ции коэффициентов непрерывного разложения Фурье методом БПФ, прямое
^применение которого возможно только для дискретного преобразования Фурье.
Обратная функция instdfft позволяет восстановить сигнал по его нестандарт-
ному разложению.
3.5.3. Точки оценки — wvarchg
Функция (PTSOPT,KOPT,T EST] - wvarchg (¥,К,Ь) возвращает точки
оценки сигнала Y для j точек с j = 1. 2.К-1. Целое число КОРТ определяет
число точек (U < КОРТ < К-l). Вектор РТ8__ОРТ содержит соответствующие точ-
ки. Если КОРТ — О, PTS_OPT “ [] (пустое множество). Целое число D — зто ми
нимальная задержка между двумя точками. К и D должны быть числами, таки
ми что 1 < К « length(Y) п 1 Г>« length(Y).
Функция wvarchg (i, К) эквивалентна wvarohy (У, К, 10).
Функция w>zarchg (Y) эквивалентна whichy (Т, f>, 10).
3.6. Непрерывное одномерное
веивлет-преобразование
3.6.1. Функция одномерного непрерывного
вейвлет-преобразования — cwt
Непрерывное одномерное вейвлет-преобразование (НВП 1-D) лежит в осно-
ве применения вейвлетов в технике обработки сигналов. Уже само по себе (без
реконструкции) оно используется для анализа сш налов и выявления их локаль-
ных особенностей. Это преобразование реализуется функцией cwt, которая ис-
пользуется в следующих формах:
COEFS - cwt (S, SCALES, 'wname') —возвращает коэффициенты непрерывно-
го прямого вейвлет-преобразования вещественного или комплексного сигнала S
в вещественном положительном SCALES. Строка 'wnarne' задает имя вейвлета;
COEFS = cwt (S, SCALES, 1 wname 1, 1 plot1 ) — возвращает вейвлет коэффици-
енты и создает график вейвлет коэффициентов:
COEFS = cwt (S, SCALFS, ' wnamePLOTMODE) —возвращает коэффициенты и
строит их график с использованием настроек цвета PLOTMODE, приведенных
ниже:
• ’Ivl’ —окраска шаг за шагом;
• 'gib' —окраска с учетом всех коэффициентов;
• 'abslvl' или ’ivlabs' —окраска шаг за шагом с использованием абсолют-
ных значений коэффициентов,
175
3. Работа с Wavelet Toolbox в командном режиме
• 'absqlb' или 'glbabs' —окраска с масштабированием и с использованием
абсолютных значений коэффициентов;
(-.TTS - cwt (S, SCALES, 'wname’,PLOTMODE,XLIM) — возвращает и строит
график цветных коэффициентов непрерывного wavelct-прсобрааования с ис-
пользованием переменных настройки PLOTMODE и XLIM.
3.6.3. Вейвлет-спектрограмма синусоиды
Вейвлет-анализ открывает уникальные возможности в распознавании тон-
ких особенностей сигналов и функций. Необходимость в этом возникает повсе-
местно и акустике при анализе качества звука, в биологии при распознании тон-
кой структуры клеток, в медицине при анализе рентгеновских снимков, в
геофизике при изучении карт залежей полезных ископаемых и во многих дру-
гих областях пауки и техники.
Рис. 3.10. График сигнала sin(t) и его пейвлет-епектрограммы
Рассмотрим данную возможность на нескольких характерных примерах.
В приведенном ниже примере строится график функции sinfi^ и с помощью
функции cwt создается вейвлет-сиикгрограмма этою сигнала (рис. 3.10):
t - linepdce(-6,6,2048): s = sin(t);-
uabplot(2i1), plor(t,s); title('function s(L)')
subplot (212), c — r'w L (s , 1 : 1 : 1 0 , 1 ^'ab^lvl'jtlOO 400]);
ci tic(’Wavelet spectr s'l) ')
176
3. Работа с Wavelet Toolbox в командном режиме
Напоминаем, что спектрограмма представляет собой зависимость коэффи-
циентов вейвлет-представления (масштаба) от времени. Нетрудно заметить, что
для этой простой функции полезна оценка лишь младших вейвлет-коэффициен-
тов, заданных параметром 1:1:16 (выводятся коэффициенты от 1 до 16 с шагом 1).
При этом спектрограмма синусоиды особой выразительностью не отличается.
Тем he менее, на ней отчетливо выделяются переходы сигнала через нуль и экс-
тремальные точки. Благодаря этому явно выделяется периодичность синусои-
дальной функции, как чередование темных и светлых областей. Переходы от тем-
ного к светлому и наоборот различны для четных и нечетных коэффициентов.
Некоторое четко видимое усложнение спектра по краям — краевые разры
вы, чуть «украшающие» вейвлст-спектрограмму — трактуются как вызванные
ограниченной во времени областью существования сигнала. Коэффициенты с но-
мерами около 40 и выше практически бесполезны. В целом, спектрограмма си
нусоиды выглядит маловыразительно. Это и понятно — синусоидальная функ-
ция не имеет ярко выраженных особенностей, за исключением краевых
разрывов, что было отмечено. Заметим, чти на графике обычного спектра Фурье
эта функция вообще ие показывает каких-либо особенностей: она представлена
просто вертикальной чертой с абсциссой равной ее частоте и ординатой, задан-
ной амплитудой синусоиды.
ВНИМАНИЕ________________________________________________________
Для построения эффектных вейвлег-спектрограмм наряду с функциями ко-
мандного режима работы можно воспользоваться входящими в состав MAT-
LAB утилитами, построенными на основе графического интерфейса плпк.чова-
тсля UGI. В них имеется как масса готовых интересных примеров на
построение вейвлет-сцектрограмм, так и возможность загрузки своих функ-
ций для этого.
3.6.3. Вейвлет-спектрограмма
слегка искаженной функции синуса
А теперь чуть усложним функцию и представим себе, что она описывает
сигнал вида sin(t)+0.1.*sin(t).*3. Это означает, что к функции синуса добавлена
небольшая компонента в виде степенной функции (кубической) синуса. Соста-
вим программу построения графика этой функции и спектрограммы на основе
первых 64 вейвлетов:
t - linspace(-6, 6,2048) ;
s = sjn(t)+0.1.’Sin(t).'7;
Subplot(211) , plot(L,s); title ('function s(t)')
subplot(212), c = cwt(s,1:2:64 , 1sym41, 1ahslvl’, (100 400]);
title(1 Wavelet spectr s(t) ')
Полученные при этом графики функции и вейвлет-спектрограммы пред-
ставлен на рис. З.Ц. Спектры рамма буквально преобразилась на паишх глазах,
несмотря иа то, что на глаз заметить расхождение графика повой функции от си-
нусоиды обнаружить невозможно!
177
3. Работа с Wavelet Toolbox в командном режиме
Рис. 3.11. График слегка искаженной синусоиды и ее вейвлет-спектрограмма
На эточ раз отчетливо видны многие особенности данной функции, в том
числе совсем незаметные на ее графике. Например, переход функции через 0 при
t-О на ее графике происходит очень плавно и не выявляет ровным счетом ниче-
1 о лам и тог и. Однако, темные вертикальные полосы на спектрограмме при пере-
ходе функции через 0 явно показывает на то, что здесь не все так просто. Вейв-
лот-спектрограмма отчетливо выделяет все особенности функции в точках
перегиба. Светлые столбы спектрограммы отчетливо выделяют экстремумы
ф'гнкцпп, по и между ними хорошо видны представления каких-то па первых
н.,г .ял игпишп -H.IX локальных особенностей данной функции.
3.6.4. Венвлет-представление
сигнала с разрывами и шумом
Еще в одном примере строится график синусоиды с двумя разрывами по
вертикали и наложенным на нее шумом, а также и ее вейвлет-спектрограмма
(рис. 3.12).
I х , s । и1.<.)1ье(3,10,5);
suoyLot (311), plot(x); title(’Clear signal'); axis ([0, 1000,-
178
3. Работа с Wavelet Toolbox в командном режиме
subplot(312), plot(s); title('Signal+noicc' ); axis([0, 10 00, -
15,10])
subplot(313), c = cwt (s,1:1:40,'sym4','abslvl', [100 400]);
tiLie(’Wavelet spectr s(t) ’)
Рис. 3.12. Графики синусоиды с разрывами, сигнала с шумом
на ее основе и его спектрограммы
В этом примере используется функция генерации ряда тестовых сигналов
wnoise, которая подробно описана в конце этой главы. Вейвлет-спектрограмма
сигнала (рис. 3.12 снизу), несмотря на его сильное искажение шумами, в своей
верхней части отчетливо показывает наличие двух разрывов. В нижней части
спектрограммы видна весьма сложная структура вейвлет-спектра шумов. Этот
пример является наглядным свидетельством высокой разрешающей способнос-
ти вейвлетов при выявлении тонкой структуры сигналов.
3.6.5. Вейвлет-аяалнз
реальных звуковых сигналов
А теперь построим временную диаграмму и вейвлет-спектрограмму реаль-
ного звукового сигнала, загружаемого из файла mtlb с выборкой в 110 отсчетов:
load mtlb; v=mtlb (1:110); lv “ length(v);
subplor(211), plot(v); title('Sound signal.');
set(goa, 'XIim1, [0 110]); [c,l] - wavedec(v,b,'sym2 ') ;
179
3. Работа с Wavelet Toolbox в командном режиме
180
3. Работа с Wavelet Toolbox в командном режиме
cfd = zeros (5,lv); subplot(212)
cols = cwt(v,1:128, 'syn 4', 'plot') ;
title>’Continuous Transform, absolute coefficients.')
colormap(pink(64)); ylabcl('Scala1)
Как нетрудно заметить (см. рис. 3.13), вейвлет-спектрограмма при "акой
выборке дает прекрасный образ сигнала с мельчайшими его деталями. Из-за ма-
лости выборки видна дискретность спектрограммы, хотя и используются непре-
рывные вейвлеты. Спектрограмма состоит как бы из квадратиков.
1 Изменив число выборок на 1010 можно получить те же графические зави-
симости, показанные на рис. 3.14. Здесь прекрасно выделяются частотные ком-
поненты звукового сигнала, имеющие разные частоты. Так в нижней части от-
четливо видны частые изменения яркости спектрограммы, указывающие па
наличие периодических высокочастотных компонент, тогда как в верхней части
заметны изменения яркости менее частые, соответствующие более пизкочастот-
1 ным компонентам.
Хотя в данном случае спектрограмма по-прежнему довольно детальна, по-
является ощущение, что эта детальнось в большом интервале времени все же ху-
же, чем в малом интервале. Это можно было бы и предвидеть — ведь вейвлеты
принципиально приспособлены к деталировке локальных изменений сигнала,
занимающих небольшие промежутки времени.
• ПРИМЕЧАНИЕ ________________________________________________
Как показывают приведенные примеры, вейвлет-спектрограммы наиболее
пригодны для анализа тонкой структуры сигналов, содержащих резкие скач-
ки, переходы производных через нуль и т. д. К таким сигналам сейчас отоо-
' сятся звуковые сигналы речи и музыки и сигналы изображений.
3.7. Дискретное одномерное
вейвлет-преобразование
3.7.1. Нахождение вейвлет-коэффициентов
одномерного преобразования — appeoef
Как уже отмечалось в главе 2, наряду с непрерывным вейвлет-преобразо-
ванием существует дискретное вейвлет-преобразование. Его главным достоинст-
вом является наличие эффективных алгоритмов быстрого вейвлет-прообразова-
ния, которое отчасти напоминает быстрое преобразование Фурье. В частности,
для быстрого вейвлет-преобразования (ВВП) может эффективно использоваться
пирамидальный алгоритм с прореживанием по частоте, хорошо знакомый спе-
циалистам в области БПФ. Благодаря этому появляется возможность анализа
больших выборок за вполне приемлемое для практических целей время. Правда,
падо помнить, что эти возможности реализуются не для всех типов вейвлетов.
Функция для нахождения одномерных коэффициентов аппроксимации
appeoef имеет ряд форм. Рассмотрим варианты данной функции.
181
3. Работа с Wavelet Toolbox в командном режиме
А - appccet (С, L, 'wname',N) возвращает коэффициенты аппроксимации на
уровне N, используя струыуру вейвлет- разложения [C,L], wname’ — строка,
содержащая имя конкретного вейвлета, уровень N должен быть целым 'шелом,
таким, что 0<NS length(L)-2
(C,L, 1wnumc*) —возвращает коэффициенты аппроксимации на
п.х ледрем уровне- lcngtli{L)-2.
Вместо указанного имени вейвлета в качестве входного аргумента могут
быть Заданы фильтры:
/ ,,। -р. eof (С, L, I о R, !1х Р > или А = appeoef (С, L, Lo_R, Hi К, N) , где
Lo Д - узкополосный фильтр восстановления, Н1_К — широкополосный фильтр
ы-сс !-аног>ления.
Следующий пример задает построение временной зависимости звукового
i нгнила из файла intlb и графиков первого и третьего коэффициентов вейвлета
Д >бсши (1Ь1 (рис. 3.15):
ги-1Ь,- ь - mtlb U:900) ;
с < 1 ] - 'лслееес ( , 3 , ' dbl ' ) ,
„aJ д:>рсое.< (С, 1, ' dbl ’ , 3) ;
.ub- i (ill), plot (1: length (s),s);
',b; _>>-.( < ‘‘’I , i> I о l (1 : length (г) , r) ;
(-'j'-o- (113), rlot(l: length (ca3),ca3);
«кого сигнала s(t) и его всйвлст-коэффициситов
182
3. Работа с Wavelet Тоо11юх В командном режиме
3.7.2. Функция нахождения одномерных
детализирующих коэффициентов — detcoef
Функция detcoef служит для вычисления детализирующих коэффициен-
тов для одномерных сигналов. Рассмотрим сс основные формы.
D - detcoef (С, L, N) —возвращает детализирующие коэффициенты на уровне
N из структуры wavelet разложения [C,L]. Уровень N должен быть целым чис-
лом, таким, что 1 < N < NMAX, где NMAX — length(L)-2.
D = dctcocf(C,L) —возвращает детализирующие коэффициенты на пос лед-
нем уровне NMAX.
Если N является вектором целых чисел, таким что 1 < N(j) < NMAX то
функция
DCELL = detcoef(С,L,N, 'cells') возвращает массив ячеек, где DCELL{j} со-
держит детализирующие коэффициенты N(j).
Если length(N) > 1, то функция
DCELL = detcoef (С, L, N) эквивалентна DCELL = detcoef (С, L, N, ' cells ').
DCELL = detcoef (С, L, ' cells ’) эквивалентна DCELL =
detcoef(C, L, [1:NMAX]) .
Наконец, функция [DI, . . . , Dp] = detcoef (C, L, [N (1) , ..., N(p)])
возвращает детализирующие коэффициенты на уровне [N(1).N(p)J.
В приведенном ниже примере из файла vonkoch загружается сложный сиг-
нал (отрезок фрактальной кривой, состоящей из множества ступенек — в том
числе мелких), после чего строится его график и две спектрограммы: дискретно-
го и непрерывного вейвлет-преобразований (используются вейвлеты типа sym2):
load vonkoch; vunkoch-vonkoch(1;510); lv - length(vonkoch);
subplot(311), plot(vonkoch);title('Analyzed signal.');
set(gca,’Xlim',[0 510]);
[c, 1] = wavedec (vonkoch, 5, ’ syni2 ') ;
cfd = zeros (5,lv);
for k - liS
d = detcoef(с,1,k); d = d (ones(1,2 Ak) , !) ;
cfd(k, :) = wkeep(d(t ) ',lv);
end
cfd = cfd(:),- T = f i nd (abs (cfd) <sqrt (eps) ) :
cfd(I)=zeros(size(I)); cfd = reshape(cfd,5,lv);
subplot(312), colormap(pink(64));
img = image(flipud(wcodemat(cfd,64,'row *)));
set (get(img,’parent'),' YtickLabel’,[]);
title('Discrete Transform, absolute coefficients.’); yla-
bel('level');
183
3. Работа с Wavelet Toolbox в командном режиме
subplot(313); Gets = cwt(vcnkoch, 1:32,' sym2',’plot’);
title ('Cent i niiGns Transform, absolute coefficients . ’)
colormap(pink(64)): ylabel(’Sca_e')
Полученные при исполнении этого примера графические представления
даны на рис. 3.16.
Рис. 3.1 в Графики фрактального сигнала и его вейвлет-спектрограммы,
полученные прн дискретом и непрерывном преобразованиях
Нетрудно заметить, что вес, даже мельчайшие, детали сложной временной
зависимости фрактальной кривой отчетливо выделяются на спектрограмме как
непрерывного, так и дискретного преобразования. Последнее выполняется за-
метно быстрее, но все же по детальности представления сигнала уступает непре
рывному вейвлет преобразованию.
3.7.3. Одноуровневое дискретное одномерное
вейвлет-преобразование.
Для проведения одноуровневого дискретного одномерного вейвлет-преоб-
разования служит функция dwt. Рассмотрим формы ее применения.
[c?i,cD] — dwt(X,'wname') —возвращает вектор коэффициентов аппроксима-
ции сА и вектор детализирующих коэффициентов cD. полученных в результате
разложения исходного вектора X. Строка 'wname’ задает имя используемого
вейвлета.
184
3. Работа с Wavelet Toolbox в командном режиме
[cA,cDj = dwt (X, Lo_D, Hi_D) —возвращает векторы вейвлет-разложения, ис-
пользуя в качестве входных аргументов низкочастотный Lo_D и высокочастот-
ный Hi_D фильтры разложения равной длины.
Пусть 1х — длина вектора X и If = длина векторов фильтров Lo_D и Hi_D:
тогда length(cA) = length(cD) = la, где la = ceil(lx/2), если DWT метод расшире-
ния (extension mode is set to periodization). Для других методов расширения la =
floor(lx+lf-l)/2).
Функция [cA,cD] = dwt (. .., 'mode',MODE) возвращает вейвлет-разло-
жение задаваемого пользователем метода расширения MODE. MODE — строка,
содержащая желаемый метод расширения.
В следующем примере с помощью генератора случайных чисел создается
сигнал s и выполняется дискретное вейвлет-преобразование с вычислением ко
эффициентов аппроксимации и детализирующих коэффициентов для двух ти-
пов вейвлет (Хаара и Дебоши db4):
randn (’ seed ',1234567889); s = 2 + kron (ones (1,8), . . .
[1 -1]) + ( (1:16) .A2)/16 + 0.3*randn (1,16);
[Cd 1, cdl] = UW L ( S , ' lid dr ' ) ;
subplot(311); plot(s); titie('Origina1 signal');
subplot(323); plot(cal); title('Approx. coef. for haar');
subplot’(324) ; plot(cdl); title ('Detail coef. for haar');
185
3. Работа с Wavelet Toolbox в командном режиме
(LO_D, Hi_D] = wfilters(lhaar',ld'); [cal,cdl] =
dwt(s, Lo_D,Hi_D);
[ca2,cd2] = dwt(я,'db4');
subplot (325) ; pl or (ca2); title ('Approx. coef. for dt>4');
subplot(326); plot(cd2); title ('Detail coef. for db4'),
Графики сигнала и полученных коэффициентов для этого примера пред-
ставлены на рис. 8.17.
Представленные графики при их внимательном изучении позволяют по-
пять, какие именно части сигнала представляются теми или иными коэффици-
ентами.
3.7.4. Метод расширенна вейвлет-преобразования
dwtmode
Функция dwtmode устанавливает метод расширения сигнала или изобра-
жения для дискретного или дискретного пакетного вейвлет- преобразования.
Методы расширения предоставляют различные возможности решения пробле-
мы граничных искажений при обработке сигналов и изображений.
Функция ST = dwtmode и ST = dwtmode (' status ') возвращают в выход-
ной параметр ST текущий метод. В виде ST = dwtmode (' status 1, 1 nodiap1)
функция возвращает в ST текущий метод без текста в командном окне MATLAB, а
в виде dwtmode (1 mode ') устанавливает метод расширения прямого вейвлет-пре-
образования (DWT) соответственно строке ' mode' :
• ' sym' — метод симметричного дополнения, т. е. граничные значения симме-
трично дублированы (используется по умолчанию);
• 'zpd' —метод дополнения нулями;
• 1 spd' или 1 spl1 —метод гладкого дополнения первого порядка;
• 'еро' —метод гладкого дополнения нулевого порядка;
• 'рра' —метод периодического дополнения.
Метод, используемый по умолчанию, загружается из файла DWTMODE.DEF.
Функция dwtmode (' save', MODE) сохраняет метод MODE как новый ис-
пользуемый по умолчанию метод в файле DWTMODE.DEF.
Для примера оценим текущий метод:
>> uleai global, dwtmode
DM’ Extersion Mode: Symmetrizstion
Изменим метод:
>> dwcmode(1 per')
WARNING: Change DWT Extension Mode
186
3. Работа с Wavelet Toolbox в командном режиме
DWT Extension Mode: Periodization
Нетрудно заметить, что после этой команды выдается два сообщения —
предупреждение о замене текущего метода на заданный новый и сообщение об
установке заданного метода. Вернемся к исходному методу:
» clear global; dwtmode
DWT Extension Mode: Symmetrizatior
3.7.5. Одноуровневое обратное
вейвлет-преобразование — idwt
Для выполнения одноуровневого одномерного обратного вейвлет преобра-
зования с заданным типом вейвлета ( 1 wname 1) или пары фплы ров восстановле-
ния (Lo_R и Hi_R) служит функция idwt. Рассмотрим ее варианты:
X = idw L (с A, oD, ' wnaiue 1 ) —возвращает вектор восстановлении одних ровлс-
вых коэффициентов аппроксимации X дня входных кек .проц гА и cD, игшнщ.-уя
ТИП вейвлета, заданный строкой 'wname'.
X - idwt (сА, cD, Lo R,H_ R) —возвращает вектор восстановления, как опи-
сано выше, используя заданные фильтры. Lo_R — изкочастотяый фильтр вос-
становления, Hi_R — высокочастотный фильтр восстановления.
X - idwt(сА,cD, 1wnameL) и X = idwt (сА. cD, Г,с_Р, 1: _К, Г. / возвращаю!
центральный блок результирующего вектора Xфункции idwt (гА, cD, ' wn-nr'j 1 .
X = idwt (..., 'mode MODE) — возвращает вектор восстановления, используя
метод расширения MODE.
X - idwt(сА,[],.
— возвращает вектор X для входного вектора гА.
X = idwt ( [ ] , cD, . . . ) — возвращает вектор X для входного Вектора cD
Теперь, имея средства прямого и обратного дискретного нейв ют-ирообрл-
иу (функция dwt — сигнал s), а затем обратному (функция id*-. — сигнал чя)
вейвлет-преобразовакиям с использованием вейвлета Добеши типа db4:
randn(1 seed', 1234 56789)
s = 2 + kron(ones(1,8),[1 -1]) + ((1:16) . "'2)/3? +
0.3‘randn(1,16);
[ cal,cdl] = dwt(s, 1db4') ;
subplot (221) ; plot(cal); title(1 Approx. coi.f. for obi 1 ) ;
187
3. Работа с Wavelet Toolbox в командном режиме
Gubplo U (222), ploL(cdl); trLlc('Detarl coef. for dh<1 ’ ) ;
ss = rdwt(cal,cdl,1db4’);
eri = ниim(s-5s); % Check reconstruction.
rubplcL(212), plot([5;Gs-.l]’);tLtle('0rxgLiial and recon-
str uctea signa 1s’) ;
xldbel (['Error norm = nuir.2str(err) ])
Результат (см. рис. 3.18) поразителен — погрешность реконструкции сиг-
нала ничтожно мала и практически составляет около 5*10 12, что близко к точ-
ности машинных расчетов с вещественными числами «двойной» точности. Это
связано с тем, что данное преобразование Для такого сигнала и выбранного типа
вейвлеи теоретически обеспечивает точное его восстановление. Чтобы разде-
лить слившиеся кривые сигнала s и результата его вейвлет-цреобразований за
пришлось при построении графика искусственно сместить сигнал ss на величи-
А теперь проделаем еще один интересный эксперимент. Зададим вейвле
фильтры 1 o_r (ФПЧ) nHi_R (ФВЧ) для вейвлета Добеши db4 и выполним реке
струкдито ранее созданного сигнала с помощью этих фильтров с построена
снона графика сигнала до и после реконструкции в одном окне:
188
3. Работа с Wavelet Toolbox в командном режиме
Полученный график сигнала до и после реконструкции будет абсолютно
аналогичен представленному на рис. 3.18 снизу. Итак, несмотря на иной подход
к реконструкции сигнала, результат остался тем же.
ПРИМЕЧАНИЕ_________ ___________________________________
Как известно в реальных условиях при ограничении числа гармоник точное
восстановление случайного сигнала при использовании прямого и обратного
преобразований Фурье невозможно в принципе. Как показывает данный при-
мер, всйвлст-прсобрааованпе способно обеспечить точную реконструкцию сиг-
нала послсего прямого и обратного преобразований. Это, безусловно, является
огромным принципиальным преимуществом вейвлег-технологии обработки
сигналов. Однако, надо помнить, что не все типы выйвлетов способны ла это.
3.7.6. Прямое восстановление нз одномерных
вейвлет-коэффнцнентов — upcoef
Функция г upcoef (О, X, ’ wname N) возвращает вектор коэффициен-
тов восстановления за N шагов для вектора X. ' wname ' — строка, содержащая
имя данного вейвлета. N должно быть только целым положительным числом.
Если О = ’ а 1, то возвращаются коэффициенты аппроксимации. Если о -
то возвращаются детализирующие коэффициенты.
Y = upcoef (О, X, ’ wname 1 , N, L) возвращает коэффициенты восстановле-
ния за N шагов для входного вектора X и выделяет центральный блок результи-
рующего вектора заданного размера L.
Вместо указания имени вейвлета, в качестве входных величин можно за-
дать низкочастотный и высокочастотный фильтры восстановления. Тогда функ-
ции восстановления имеют вид: Y = upcoef (О, X, Lo_R, Hi_R, N) или Y -
Функция ¥ = upcoef(О,X, 'wname') эквивалентна
Функция
Следующий пример демонстрирует технику аппроксимации сигнала с
применением вейвлет-коэффицисптов и с построением их графиков (рис. 3.19) в
одном и том же масштабе с учетом сжатия вейвлетов (оно задается переменной
essup е начальным значением 10, которое каждый раз удваивается);
a single 1
189
3. Работа с Wavelet Toolbox в командном режиме
Рис. 3.20. Представление сигнала но его вейвлет-коэффициентам
при переменном масштабе по горизонтали
190
3. Работа с Wavelet Toolbox в командном режиме
Другой пример демонстрирует технику аппроксимации сигнала с приме-
нением вейвлет-коэффициептов и с построением их графиков в соответствую
щем изменяющимся масштабе по горизонтали ~~ рис. 3.20 (он задается перемен-
ной essup с начальным значением 10, которое каждый раз удваивается);
cfo — [1] ; mi - 12; ma “ 30,- N=6;
rec — upcoef(1d’, cfc, 'db81 , 1);
figure(2) ; subplot(611) ; plot(rcc(3;12)) ;
for r=2 • 6
rec = upcoef ('d',cfs,1db61 , i) ;
subpl or (N, 1 , ? ) , plot (rec (mi‘2A (i-2 ) -ma * 2 A ( i -2 ) । )
end
subplot(N,1,1) ; title (['Detail sionals obtained li;->rk н -i ,i
'coefficient aL levels 1 to N'])
3.7.7. Одноуровневое восстаноктение
одномерного вейвлет-разложення — iipvvJeiv
Функция [NC»NL,cA] = upwlev(C,L, 'wname' ) задает одноуровневое
восстановление для определенной структуры вейвлетризложения [C,LJ, заме-
няя его новой структурой [NC.NJ,], и извлекает последний вектор пиироксиня-
ционных коэффициентов сА. При этом [C,L] — это эазложеки!’ на ровне ,
length(L)-2, (NC,NL) —то же самое разложение па уровне п-l, и < A - вектор
аппроксимационных коэффициентов на уровне п. ’wmimc' — имя заданного
вейвлета, С — вектор первоначального вейвлет-разлогкения. Т, • - voo1 вег •ц',|<>-
щий вектор учета.
Вместо указания имени вейвлета, в качестве входных величин .можно :.*
дать низкочастотный и высокочастотный фильтры восстановления. Тогда функ-
ция восстановления имеет вид: [NC,NL,cA] - upwlov (С, L, Lo При-
мер на применение функции upwlev дается в следующем разделе.
3.7.8. Многоуровневое одномерное
вейвлет-разложение — wavedec
Функция wavedec выполняет многоуровневый одномерный веивлет-апа-
лиз, используя или вейвлет ’ wname' или фильтры разложения Lo_D и Hi_D.
Еевариант [C,LJ = wavedec (X,N, 'wname') возвращает вектора wavelct-
разложсния сигнала X на уровне N, используя wavelet 'wname '. N должно быть
положительным целым числом. Выходная структура разложения содержит век-
тор разложения С и вектор разложения L.
Функция [С, Л] - wavedec(X,N, Lc D, Hi D) возвращает векторы разло-
жения для входных низкочастотного и высокочастотного фильтров разложения -
191
3. Работа с Wavelet Toolbox в командном режиме
Ниже представлен пример на использовании функции wavedec примени-
тельно к сигналу, загруженному из файла sumsin (сумма синусов с равной часто-
той и амплитудой):
load sumsin; ° = sumsin; [с,1] = wavedec(s,3,'haar');
subplot(311) ; plr.t-(s); xlabel ('Original signal s.'), sub-
Pior (312) ; plot (c);
x .ibcl (L'Coefs for approx, at level 3 and for det. at levels
J, 2 and 1 ’ ] )
npnl] - upwlev (c, 1, ' dbl ' ) ; subplot ( 31 3) ; plot(nc);
i i ['Cocfs for approx. at level 2 and for det. at levels
/ ai.v. _' 1 )
1 Гримср строит временную зависимость сигнала и его вейвлет-разложения
разного уровня.
3.7.9. Многоуровневое одномерное
вейвлет-восстановление — waverec
Функция waverec осуществляет многоуровневое одномерное вейвлет-вос-
становление, используя или вейвлет с именем ' wname ', или фильтры восстанов-
ления Lo_D и Hi_D.
Функция X - waverec (С, L, ' wname ’) восстанавливает сигнал X, в соот-
ветствие с многоуровневой вейвлет-структурой разложения [C,L] и заданн
строкой 'wname' типом вейвлета.
Функциях = waverec (С, L, Lo R,Hi_R) восстанавливает сигнал X, ИС
нользуя фильтры восстановления Lo_D и Hi_D.
В приведенном ниже примере для сигнала из файла Leleccum выполнен
косстановление этого сигналя по его вейвлет-разложению, после чего исходны
и uocci.пювленный сигналы сопоставлены друг е другом:
Iwad l“l.sccum; s = leleccum(1.-392 0);
[ i , 1) - wnvcdec(s,3, 'db5'); aO waverec(c,1, 'db5');
— norm(s-aO)
1.G717e-009
Как нетрудно заметить различие в использованных вариантах восстанов
ления достаточно малое.
3.7.10. Восстановление одиночной ветви
из одномерных вейвлет-коэффициентов — wreoef
Функция wreoef восстанавливает коэффициенты одномерного сигнал
используя векторы разложения (С и L) и заданный строкой ' wname ’ тип нейвл
та или фильтры Lo_R и H1_R.
192
3. Работа с Wavelet Toolbox в командном режиме
X = wrcoef ( ' type ’ , С, L, ' wname ’ , N) возвращает вектор восстановлен-
ных коэффициентов, используя вектора разложения [C.L] на уровне N. Аргу-
мент ' type ' определяет в каком виде будут восстановлены аппроксимационные
коэффициенты (’ г уре 1 _ ' а ') или (’ Гуре1 = ’d').
X — wrcoef (' type ’, с, L, Lo R,Hi R,N) возвращает коэффициенты как
описано выше для фильтров восстановления.
X = wrcoef (’ type ', С, L, ' wiiaiue ') и X = wrcoef (' type ' , С, L, Lo_R, Hi R)
возвращают коэффициенты максимального уровня N = length(L)-2.
Приведенный ниже пример задает загрузку сигнала sumsin из файла и
обеспечивает реконструкцию вейвлетом Хаара 5-го уровня (рис. 3.21):
load sumsin; s = sumsin;
[с, 1] = vavedec ( s, 5, ’ haar ’ ) • a 5 = wrcoef ('a ' , с, 1, ’haar',5);
subplot(311) ; plot(s); xlabel (’Oriyriial signal s.’);
subplot (312) ; plot(c); xlabel (’Coefs wavelet, level 5’) ;
axis([0,1000,-10,10])
subplot (313); plot (a5) ,• xlabel([’Reconstructed signal '])
Рис. 3.21. Сигнал в виде суммы синусов и его реконструкция
нейнлетом Хаара 5-го уровня
Из рис. 3.21 нетрудно заметить, что вейвлет Хаара в даппом случае не обес-
печивает приемлемой степени реконструкции низкочастотной синусоиды. Вы-
ходной сигнал имеет вид ступенчатой кривой, в которой угадывается аизкочас-
26
193
3. Работа с Wavelet Toolbox в командном режиме
тотиая компонента сигнала. Высокочастотная компонента попросту отсеивает-
ся, т. е. реконструкция высокого уровня сопровождается эффектом фильтрации.
Заменив во второй строке имя вейвлета Хаара ' Паг.г ' на имя ’ dblO ’ (вейвлет
Добеши) ненова пустив пример, получим-результаты, приведенные на рис. 3.22.
Рис. 3.22. Сигнал в виде суммы синусов и его реконструкция
вейвлетом Добеши dblO 5-го уровня
Нетрудно заметить, что теперь низкочастотная компонента сигнала выгля-
дит как синусоидальная функция (за исключением небольшого участка в конце).
Зато высокочастотная компонента отсеяна. Вы можете сами попробовать в этом
примере снизить уровень реконструкции: при нулевом уровне сигнал будет вос-
станавлипаться полностью- Данные примеры показывают, что выбор типа вейв-
летов для решения тих или иных задач может иметь весьма важное значение.
3.8. Дискретное двумерное
вейвлет-преобразование
Функции аррсое€2, detcoef2, dwt2, dwtmode, idwt2, upcoef2,
ui'v,lf>v2, wavedec2, wavered, wrcoef 2 по своему назначению аналогичны
оиисаипым выше функциям для проведения одномерного дискретного вейвлет-
преобразования. но применяются для двумерного преобразования. Па это указы-
вает окончание имен функций в виже цифры 2 Ниже представлено подробное
описание этих функций, но без довольно громоздких графических диаграмм ре-
ализации их алгоритмов, которые можно найти в справке по этим функциямв
194
3. Работа с Wavelet Toolbox в командном режиме
формате HTML или в документации в формате PDF. Практическое применение
данных функций для обработки изображейип будут описано в конце этой главы.
Здесь же мы приведем простые численною примеры работы данных функций.
3.8.1. Нахождение вейвлет-коэффициеитов
двумерного преобразования — appeoef2
Функция А = аррсоеГ2 (С, 5, 'wname' [, N ] ) возвращает коэффициенты
аппроксимации для двумерного преобразования уровня N, используя структуру
вейвлет-декомпозиции [С,8[, для вейвлета с именем wname'. Уровень преобра-
зования N - целое число от О до о: zc ($, 1) —2.
Функция А - appeoef 2 (С, S, 1 о_Р , 111_Р ) или
А = аррсое;-2 (С,S,Lo_R, Hi 3,N) дает то же самое, но при использовании
фильтров реконструкции низкочастотного Lo_R и высокочастотного Hi_R
(см. функцию wliltern для более детального знакомства).
Пример применения функции apccot'f2:
load woman,• L с, о ] = waveac с2 (X, 2 , ' obi ' , 2 ) ; bizox _._ze(X)
sizex =
256 256
S
64 64
64 64
128 128
256 256
3.8.2. Функция нахождения двумерных
детализирующих коэффициентов — deteoef2
Функция D = dctcoer2(0,C,S,N) возвращает детализирующие коэффи-
циенты D уровня N для структуры всйплст-декомнозиции[С,3] по горизонтали,
вертикали и диагонали для 0= ’h’, v' или'd', соответственно. Возможные значе-
ния N были отмечены выше.
Функция [II,V,Г] = det сое!2(1 all',С,S,N) возвращает все (горизон-
тальные Н, вертикальные V и диагональные DJ детализирующие коэффициенты
уровня N.
D = d«L(_oel2 ( ' соырас t', С, S, N) - возвращает детализирующие коэффи-
циенты уровня М, записанные одной строкой. Функция detcoef2 ('а', С, S, N)
эквивалентна elercoef2 ('all', с, d, М , а функция dcicoei2 (' t 1,с, s, М) —
detcoef 2 (' compact', С,S, N) .
195
3. Работа с Wavelet Toolbox в командном режиме
Пример:
load woman;
3.8.3. Одноуровневое дискретное
двумерное вейвлет-преобразование — dwt2
Функция 1%,'t с одна из важнейших в технике двумерного вейвлет-преоб-
разовнцил.В виде | - <\w_y (X, • wtiame ' ) она вычисляет матри-
цу сЛ коэффициентов аппроксимации дп₽ дискретного двумерного вейвлет-пре-
образования (декомпозиции) матрицы X для вейвлета типа 'wnamo', а также
матрицы детализирующих коэф(ищцеи iив сН, cV\ and cD (по горизонтали, вер-
тикали и ди<н опали).
[ А, । .1, r v , , L'] 1л I .1 'D, Uj Г)) — делает тоже на основе фильт-
ров декомпозиции.
[(. д, < । , -V, '_pj - dw. < ( . . ., 'шк.г ', НОЛЬ) — обеспечивает вейвлет-де-
композицию со спецификацией моды.
Пример ан ;>ту функцию дао гея в следующем разделе.
196
3. Работа с Wavelet Toolbox в командном режиме
3.8.4. Одноуровневое дискретное
двумерное обратное вейвлет-преобразование — idwt2
Функция X - idwt2(сА,сН, eV, cD, ’ wname • ) для заданного вейвлета
'wname’ осуществляет одноуровневое дискретное обратное вейвлет-преобразо-
вание. Смысл параметров этой функции был отмсчеп в описании предшествую-
щей функции dwt 2.
X - idwt2 (сА, сН, eV, cD, T,o_R, Hi_R) —делает тоже, используя в каче-
стве параметров фильтры.
С другими, менее распространенными, формами записи функции idwt?
можно познакомиться из справки по данной функции.
В следующем примере загружается изображение из файла woman, вычис-
ляется размер матрицы изображения X, затем выполняется прямое (функцией
dwt2) и обратное (функцией •idwt?) дискрстпыс двумерные вейвлет-преобразо-
вопия для вейвлета Добеши db8, после чего вычисляется наибольшая погреш-
вость результата реконструкции оригинального сигнала:
load woman;sx = size(X);
[cAl,CHI,cVl,CUI) = dwt2(X,'db8');
AU = idwt2(cAl,cHl,cVl,cDl,'db8', &X) ;
max(max(abs(X~A0)))
ans =
6.5441e-010
Погрешность восстановления очень мала, так что в данном случае можно
считать реконструкцию сигнала практически полной.
3.8.5. Прямое восстановление
из двумерных вейвлет-коэффициентов — upcoef3
Функция Y = upcoef?(О,X,' wname ', N, S) — для вейвлета 'wname' вы-
числяет коэффициенты N-ro шага реконструкции для центральной части матри-
цы X размера S. Если О = 'а', создаются коэффициенты аппроксимации, иначе,
если 0= h' ('v‘ или ‘d’, соответственно), горизонтальные, вертикальные или ди-
агональные детализирующие коэффициенты, соответственно.
Y = upcoef 2 (О, X, Lo__R, Ui R, N, S) —задает прямое восстановление по
данным фильтров ВЧ и НЧ.
Y = upcoef2(О,X, 'wnameN) ИЛИ Y = upcoef 2 (О, X, Lo__R, Hi_K, N) —
возвращает вычисленные результаты без всех усечений матрицы X.
Y = upcoef 2 (О, X, 'wname') эквивалентно Y = upcoef2 (О, X, ' wname ', 1).
Y = upcoef2(О,X,Lo_R,Hi_R) эквивалентно
Y = upcoef 2 (О, X, Lo_R, Hi__R, 1) .
Следующий пример демонстрирует применение функции upcoef 2:
load woman; [с,s] = wavedec2(X,2,'dh4');
Siz = S(Size(s,1), : ); cal = appcoe£2 (c,s, 'db4',1);
197
3. Работа и Wavelet Toolbox в командном режиме
al = vpcoef2('а',Vdl, 'db4' , 1, Sxz} ;
chai - detcoaf2('h', c, s, 1) ; hd_ =
uyc oef2 (' h , cncll, 'do4 •, ] , siz) ;
~vdl = dctcoef2 (' v', c, s, 1) , vdl =
i.pcocf 2 ( ' v ', cvdl, 'd.b4 ', 1, si 7 ) ;
cddl = detcoef2('d',c,s,1); ddl =
upcoetz('d',cddl,'db4',l,b±z).
Полученные коэффициенты вы можете просмотреть самостоятельно —
ввиду громоздкости вывода он не приводится.
3.8.6. Многоуровневое двумерное
вейвлет-разложение — wavedec2
Функция [C,S] = wavedec2 (X, N, ' wname ') возвращает вейвлет-деком-
позицию уровня N матрицы X, используя вейвлет с именем 'wname', Выходны-
ми аргументами являются вектор декомпозиции С и соответствующая учетнай
матрица S.
Функция (С, SI = wavedec2 (X, N, lo_D, Hi_D) дает тот же результат, ис-
пользуя коэффициенты НЧ Lo_D и ВЧ Hi_D фильтров декомпозиции.
Вектор С организован с ггодующим образом:
С - [ A(N) | H(N) | V(N)1 D(N) | ...H(N-l) | V(N-l) I D(N-l) ... H(l) | V(l) | D(l) 1,
где A, H, V, D — векторы-строки A — коэффициентов аппроксимации, H — го-
ризонтальных, V — вертикальных, D диагональных детализирующих коэф-
фициентов.
Матрица S трактуется как: 8(1.;) = число коэффициентов аппроксимации
(N); S(i,:) = число детализирующих коэффициентов (N-i+2) для i = 2, ...N+1 и
S(N+2,-.) = size(X).
3.8.7. Одноуровневое восстановление
двумерного вейвлет-разложения — upwlewS
Функция [ПС, NS, ед] = upwlev? (г, ч, ' wname ') обеспечивает одноуров-
невую вейвлет-реконструкцию на основе структуры [ С, S ]. где С вектор вейв-
лег-декомпозиции, S — учётная матрица возвращает новую структуру
(W, NS ] и последнюю матрицу коэффициентов аппроксимации <_д.
Так как [С, S] — разложение на уровне п = &1ге(3,1)-2,то [NC,NS] —
то же разложение на уровне n—1, а сА — матрица коэффициентов аппроксима-
ции уровня п.
[NC,NS,cA] = upwLevZ (С,Ь,LO_R,Hi_R) —обеспечивает декомпозицию
но данным структуры [С, S) и фильтрам Lo_R и Hi_R реконструкции.
Б следующем примере видна работа функция wavedec2 и upwlew2:
lo.-id wcriidn; = wavedcc2 ;x, 2, ' db2 ’ ) ; sc = size(c); s
(nc, 11 ч1 upwlev2(c,s, 'ob2’); ?nc - size(nc); ns
198
3. Работа с Wavelet Toolbox в командном режиме
66 66
еь бь
129 129
256 256
129 129
129 129
256 256
3.8.8. Многоуровневое двумерное
вейвлет-восстановление — wa.verec2
Функциях = waverec2 (С, S, ' wname’) обеспечивает многоуровневую дву-
мерную вейвлет-реконструкцию для структуры [C,S] и вейвлета типа 1 wname 1.
Функция X = waverer2 (С, S, Lo_R, Hi_R) задает реконструкцию, ис-
пользуя заданные фильтры Lo_R и Hi_R,
Функция waverec2 является инверсной по отношению к функции
wavedec2. На этом основан приведенный ниже пример:
load leleccum; s — 1 еleccutn (1 : 392С ) ; Is = length ( s) ;
[c, 1 ] — wavedec (s , 3, 1db4') ; = 0 = waverec(c,2,’db4');
err = nerm(ч-aO)
err =
l.C935e-009
3.8.9. Восстановление одиночной ветви
из двумерных вейвлет-коэффнцнентов — wrcoef2
Функция X = wrcoef2 (1 type ' , С, 9 , ' wname ', N) вычисляет и возвраща-
ет матрицу коэффициентов реконструкции уровня N по данным структуры де-
композиции [C,S] с вейвлетом wname’. Пени type' = 'я' возвращаются коэффи-
циенты аппроксимации, иначе, если 'type' 'b', 'v' или 'сГ,— горизонтальные,
вертикальные или диагональные детализирующие коэффициенты, соответст-
венно. Уровень N задается целым числом [О N size(S,l)-2] если 'type' 'а'и
[1 Nsizc(S,l)-2] если 'type' = h', v или'd'.
Функциях = wreoef 2 ( ' Lype ', С, S, Lo R,H1 R,N) видает реконструк-
цию на основе фильтров НЧ Lo_R и ВЧ Hi_R реконструкции.
Функциях - wreoef 2 ('typeС, S, ' wname') или X =
wrcoe f2 । ' type 1 , C, S, Lo P.,Hi R) задает реконструкцию коэффициентов с
максимальным уровнем N = sizefSJ )-2.
Примеры применения этой функции представлены ниже:
199
3. Работа с Wavelet Toolbox в командном режиме
3.9. Пакетные вейвлет-алгоритмы
Пакетный вейв.чеымстод является обобщенном вейвлет-преобразования и
предлагает более широкий спектр функции анализа сигналов. Функции пакет-
ных вейвлетов онисывают исходный сигнал с помощью трех параметров: как по-
зиции и мост габггроваиня, как дня кплесичеекого вейвлет-преобразования, так
и частоты. Для данной ортогональной вуйвлш-фуньции генерируется библиоте-
ка баз пакетных тк-йвлетов. Каждая из >тих баз предполагает конкретный путь
кодирования сигнала и его точного восстановления. Пакетный вейвлет может
также быть ислольаопои для многочисленных разложений исходного сигнала.
Простые и эффективные алгоритмы существуют и для пакетного вейвлет-разло-
жения, и для выбора оптимального разложения.
3.9.1. Наилучшее дерево уровня — bestlevt
Функция 1-( ’ Lcvl выполняет одно- или двумерный пакетный вейвлет-
анализ. Она возвращает онтимал ьиое полное поддерево исходного дерева относи-
тельно критерия типа энтропии. Причем, результирующее полное дерево может
быть меньшой глубины, чем исходное.
Т — ' vi (Т) возвращает модифицированное пакетное вейвлет-дере-
во Т, соответствующее нанлучшему уровню разложения дерева.
1 I , к I I i .г. у г (г 1 возвращает наилучшее дерево уровня Т и наилуч-
Iнес значение эн I риппп Е. Причем, оптимальная энтропия узла с индексом j-1 —
это E(j)
Пример применения функции bestlevt представлен ниже (для сигнала из
файла uoiveilopp и вейвлета Добеши dbl):
load ii1? J . J( рр . .. =- igj self-ipр ; wp I — WpdeC (x, i , ' rib! 1 ) ;
ЭОО
No
НПЕ
PjO) 0.1) o,!) 03) p.4) 05) ОЯ 0.П
wi) w'i)
list» for nltfl® ^)ЛгС11)
20 40 60 ao 100 120
НИЕ
100 120
3. Работа е Wavelet Toolbox п командном режиме
Исходное дерево представлено на рис. 3.23 слева. Справа представлена вре-
менная зависимость сигналя в одном из терминальных (оконечных) узлов (3,1),
Для ее получения надо установить указатель мыши на нужном узле и щелкнуть
левой клавишей мыши. Эти графики получопы функцией plot Утилита wpqp't
относится к утилитам управления построением деревьев и была описана выше.
Дерево, полученное с помощью функции beetievL показано на рис. 3.24,
слева. Оно действительно несколько короче дерева, показанного па рис. 3.23.
Показана также временная зависимость сигнала в терминальном узле (3.0).
Это — очищенный от шума исходный сигнал, который можно наблюдать на вер-
шине дерева — узел (0.0).
Этот пример иллюстрирует возможность очистки сигнала от шума. Реко-
мендуется присмотреть временные зависимости сигнала во всех узлах на левой
ветви дерева — это позволяет оценить степень очистки сигнала от шума по мере
увеличения уровня декомпозиции и реконструкции сигнала.
З.9.Э. Наилучшее дерево по критерию энтропии —
besttree
Функция besltree возвращает оптимальное поддерево исходного дерева
оиюситепьно критерия типа энтропии. Результирующее дерево может быть на-
много меньше, чем исходное.
Рис. .4.25. Дерево, построенное функцией besttree
202
3. Работа с Wavelet Toolbox в командном режиме
'Г = oesttree(T) возвращает? ыаилучшее дерево Т, соответствующее луч-
шему значению энтропии.
[Т,Е] = besttree (Т) возвращает наилучше дерево Т и наилучшее .зна-
чение энтропии Е.
[T,E,N] - besttreeiT) возвращает иаилучшее дерево Т, наилучтпее зна-
чение энтропии Е и вектор N, содержащий индексы соединенных узлов.
Следующий пример строит исходное (аналогично рис. 3.21) и наилучшее
(рис. 3.25) дерево по критерию энтропии:
load noisdopp; х = norsdopp; wpI = wpdec(x, 3,'dbl');
wpt = wpsplt (wpt, [3 0 ] )/plot (wpt)
bst = besttree (wpt); plot (bst);
На рис. 3.25 помимо дерева (слева) построена временная зависимость сиг-
нала в узле (0,0). Фактически — это исходный сигнал для данного и предшеству-
ющего примеров.
3.9.3. Вычисление энтропии — wentropy
Функция Е = wentropy (X, Т, Р) возвращает энтропию Е для входного
вектора или матрицы X. В обоих случаях энтропия Е — вещественное число, Т —
строка, в которой задается тип энтропии. Т - ‘shannon’, ' thrcsho.d',
‘norm’, 'log energy', 'sure', 'user’.P — произвольный параметр, за-
висящий от значения Т:
• если 1 =• ' shannon ' или ' log enei gy ', то Р — нс используется;
« если Т - ' threshold' или ' sure', Р— пороговое значение и должно быть
положительным числом;
» если Т = 'погт'.тоР — мощность и величина Р должна быть такой, что 1 <Р;
» если! = 'user'.P — строка, содержащая имя М-файла пользователя с его
собственной функцией энтропии с одним входом X.
F, - wentropy (X, Т) эквивалентна Е - wentiору(X,Т,0) .
Примеры вычисления энтропии даны ниже:
х = randn (1,200) ; el = wentropy (к, ' sluiiinu ।' )
e2 — wentropyfx, 'log energy')
c3 — wentropy(x,'threshold',2.2)
e4 — «entropy(x,'sure',3)
e5 = wentropy(x,'norm1.1)
el =
-72.0871
e2 =
-290.1447
e3 =
168
203
3. Работа с Wavelet Toolbox в командном режиме
-35.1299
е5 =
147.9G05
3.9.4. Обновление энтропии — entrupd
Функция entrupd является одной из пакетных вейвлет-утилит.
1' = entrupd (Т, ENT) или Т = entrupd(Т,ENT,PAR) возвращает для за-
данного вейвлета пакетное дерево Т, модифицируя дерево с учетом функции эн-
тропии ENT с оптимальным параметром par.
Для примера найдем энтропию для сигнала noisdopp для уровня 2 и вейв-
лота db2:
load noisdopp; х — noisdopp; t = wpdec(x,2,1db2', 'shannon') ;
nodes - allnodes(t); ent - read(t,'entnodes) ;
ent'
aus “
L.0e+004 *
Columns 1 tlirouyli 5
-5.8615 -6.9393 -0.0259 -7.S6S9 -0.0361
Columns 6 through 7
-0.0145 -0.0102
Теперь выполним обновление энтропии;
t - entrupd(tthreshold',0.5);
nent = read(t,'ent’);
nent'
aus =
937 491 296 243 156 157 152
3.9.5. Извлечение вейвлет-дерева
из пакетного дерева — wpQwtree
Функция Т = wp2wtree (Т) возвращает модифицированное вейвлет-па-
кегное дерево Т, соответствующее wavelet-дереву разложения. Пример ее Приме-
нения дан ниже (см. рис. 3.26):
load noisdopp; х = noisdopp; wpt = wpdec(х,3,'dbl');
wt = wpXwtree(wpt); plot(wt)
3.9.6. Пакетные вейвлет-коэффициенты — wpcoef
Функциях = wpcoef(T,N) возвращает коэффициенты, присоединенные
к узлу N вейвлет-пакетного дерева Т. Если узел N пе существует, то X = [ ].
Функциях = wpcoef (Т) эквивалентна X = wpcoef (Т, 0) .
204
3. Работа с Wavelet Toolbox в командном режиме
Рис. 3.26. Дерево, построенное функцией wp2tn-c — слева
и сигнал п узле (1.0) — справа
ют г
Рис. 3.27. Графики си1 нала и двух его
накетпых ко йв лет-коэффициентов
‘WsiWisS'
205
3. Работа с Wavelet Toolbox в командном режиме
В приведенном ниже примере строится график временной зависимости ис-
ходного сигнала и графики двух пакетных всйвлст-кооффнцнептов (рис. 3.27):
loud noisdopp; л - noisdopp; subplot(311) ; plol(x);
title ( ' Ozrig inal signal' )
•fsl - wycuel (wpl, [2. 1] ) ;
; I ot (ofsi) ; title ( 'Packet.
,rt2 - rfpcoe; (wpt, [2 .•’]);
>Lot (clsd); tAble(’Packet
wpt = wpdec(x, 3,'dhl
sjbplut (312) ;
(2,1) mdli^unb') i
subplot (313);
(2,2) coefficients');
3.9.7. Сечение вейвлет-пнкетного
дерева wpeutree
Функция Т = wpeut г ос (Т, L) возвращает фрагмент дерева Т на уровне L.
[RN] - wpcu tree (Т, L) возвращает фрагмент дерева, как описано вы-
ше, и вектор RN, содержащий индексы восстановленных узлов.
Следующий пример строит усеченное дерево пакетного вейвлета
(рис. 3.2&):
1 и 'л □ I £\ х = 11 1 jd f; J t - fd ( ( , _ , JU ) ,
Этот пример в особых комментариях пр нуждается.
Рис. 3.2S. Усеченное дерево, построенное функцией wpeutree — слева
и сигнал в узле (2,3) — справа
206
3. Работа е Wavelet Toolbox в командном режиме
3.9.8. Пакетное одномерное
вейвлет-разложение — wpdec
Функция'Г = wpdec(X,N, 'wname',Е,Р) возвращает вейвдет-накпние
дерево Т, соответствующее войвлот-пакетному разложению вектора X на уров-
не N. для данного вейвлета ' wname '. Строка К содержит тип энтропии и может
принимать следующие значения: Е = ' si.анион ', ' thres.-iold ’, ’ no ггг •,
' log energy ' , ' si_re ', ' user '. P — произвольный параметр. Его выбор по-
ясняется ниже;
• если Т - ' shannon' или ’ log energy', то Р — не используется;
• если Т - ' threshold' или 'sure', Р — пороговое значение и должно быть по-
ложительным числом;
« если Т - 'noim',ToP — мощность, и величина Р должна быть такой, что I Е Р;
« если Т — 'user',P строка, содержащая имя М-файла пользователя с его
собственной функцией энтропии с одним входом X-
Функция? - wpdec (>:,N, 'wname') эквивалентна
Т = wpdec(X,bi, 'wname', 'shannon').
В следующем примере строится дерево, аналогичное рис. 3.24:
load norsdopp; х — noisdopp;
wpt = wpdec(x,3, 'db8', 'shannon') , plot(wpt)
Вы можете просмотреть это дерево самостоятельно и сигналы в его узлах.
3.9.9. Пакетное двумерное вейвлет-разложение —
wpdec2
Функция? - wpdec2(X,N, 'wname' ,Ь,Р) возвращает всйвлет-пакет-
ное дерево Т для матрицы разложения X и уровня N с указанием имени данного
wavelet в строке ' wname'. Строка Е содержит тип энтропии- Р — произвольный
параметр, описанный выше.
Функция? = wpdec2(X, N,1wname') эквивалентна
I = wpdcc2(X,N,'wname','shannon').
Просмотрите получаемое дерево при исполнении следующего примера:
load tire; t = wpdec! (X, 2, ' гЫ ' ) ; p-or(t)
3.9.10. Пакетная вейвлет-функция—
wpfun
Функция [WPWS,X] — wpiun('wname',NUM,PREC) возвращает пакет для
данного вейвлета, заданного строкой ' wname ' на двойном интервале 2 rRi:c. prec
должно быть положительным целым числом. Выходная матрица wpws содержит
W функций с индексами от 0 до NUM, сохраненными построчно [WO; W1; ;
Wvum]- Выходной вектор X соответствует вектору сетки.
207
3. Работа с Wavelet Toolbox в командном режиме
[WPWS,X] = wpfun(’wname’,NUM) эквивалентна [WPWS.X] =
wpfun('wname',NUM,7).
Схема вычисления пакетного вейвлета заметно облегчается при использо-
вании ортогонального вейвлета. Процесс вычислений начинается с задания двух
фильтров Ь(п) и g(n) длиной 2N для данного вейвлета. Далее определяется после-
довательность функции (W„(x),n = 0,1,2,...):
W„(x)-V2 £ft(ft)W,(2» ft)
где W(/x^ — <p(x) — масштабирующая функция, Wt(x) •= yf(x) — wavelet функция,
Следующий пример строит графики вейвлетов Добеши db2 (рис. 3.29).
[v;p,xj = wpf un (1 db2 ’, 3) ; plot(x,wp)
Рис. 3.29. Графики вейвлетов Добеши db2
Поупражняйтесь в построении каждого графика в своем подокне.
3.9.11. Перекомпоиоваииый пакетный вейвлет —
wpjoin
Функция wpjoin обновляет дерево пакетного вейвлета после перекомпо-
новки узлов. Узлы нумеруются слева направо и сверху вниз.
Т - wpjoin (Т, N) возвращает модифицированное дерево пакетного вейв-
лета Т, соответствующее перекомпонованным узлам N.
308
3. Работа с Wavelet Toolbox в командном режиме
[Т,Х] = wp-join(T,N) также возвращает коэффициенты узлов.
т = wpjoan(T) эквивалентна Г = wpjoin (Г,0).
[Т,Х] = wpjoin(T) эквивалентна [т,Х] - wpjoin (Т,0).
Для оценки работы функции wpjoin просмотрите графики (деревья), кото-
рые строит этот пример:
load noisdopp; х - noisdopp;
wpt = wpdec(х,3, 'dbl'); plot(wpt)
wpt = wpjoin(wpt,[1 1]); plot(wpt)
3.9.12. Восстановление коэффициентов
пакетного вейвлета — wprcoef
Функциях = wprcoef(T,N) возвращает восстановленные коэффициенты
узла N дерева пакетного вейвлета Т.
Функция X = wprcoef (Т) эквивалентна X • = wpicuef (Т, 0).
Рис, 3.30. Графики исходите сигнала и двух восстановленных коэффициентов
Приведенный ниже пример строит график сигнала и графики двух восста-
новленных коэффициентов вейвлет-пакета (рис. 3.30):
load noisdopp; х = noisdopp; subplot (311) plot(x);
title('Original signal'); t = wpdec(x,3,'dbl','shannon');
axis((0,1000,-10,10]); rcfsl = wprcoef(t,[2 1]);
209
3. Работа с Wavelet Toolbox в командном режиме
subplot (312); plot(rcfsl) ; title ('Reconstructed packet
(2,1)');
axis([0,1000,-4,4 ] ) ; rclsl = wprcoef(t,(2 2 ] ) ;
subplot (31J) ; piot(rcfs2); title ('Reconstructed packer
.-i к i s ( [0, 1000,-2,2] )
3.9.13. Пакетное вейвлет-восстановление —
wprec и wprec2
Функциях - wprec (т) возвращает вектор восстановления X, cooi-ветст-
В'-ющин дереву одномерного пакетного вейвлета Т.
Функция X - wprec2(Т) возвращает матрицу впестяновпения X, соответ-
1 гвчощую дерену двумерного пакетного вейвлета Т.
Вы можете самостоятельно составить примеры на эти функции и изучить
их работу.
3.10. Дискретное стационарное
вейвлет-преобразование
3.10.1. Дискретное стационарное
одномерное вейвлет-преобразование — swt
Обычное вейвлет-преобразование dwt осуществляется исходя из предпо-
сылки нестациоиарности сигнала. В специальном стационарном вейвлегп-преоб-
/Hi.uidfiHiit; сигнал рассматривается как стационарный. Наиболее часто этот вид
преобразования используется для очистки сигналов от шума.
Для обеспечения дискретного стационарного одномерного вейвлет-преоб-
разования служит функция sw L в ряде форм записи:
,-лС - _»L(X,N, ’wname') — возвращает стационарное вейвлет-разложе-
ние сигнала х на уровне N, используя вейвлет ' wname '. N должно быть строго по-
ложительным целым числом, и размер X должен быть кратным 2,;.
SivC - swl (X, N, Lo__D, Hi_D) — возвращает стандартное вейвлет-разло-
жение для входных низкочастотного и высококочастотного фильтров Lo_D и
Hi Г) Выходная матрица SWC состоит Из векторов-строк. Для 1 < i < N выход-
ная матрица SWC(i,:) содержит детализирующие коэффициенты на уровне j,
3WC(N4-1,:) содержит аппроксимационные коэффициенты на уровне N.
['tWA, zWD]-swL (...) возвращает матрицу коэффициентов аппроксимации
Orin и матрицу детализирующих стационарных вейвлет-коэффициентов SWD. Ко-
эффициенты располагаются построчно, для 1 < i < N выходная матрица ’sWA(i,:)
содержит аппроксимирующие коэффициенты на уровне i, а выходная матрица
iWE.(i,i) содержит детализирующие коэффициенты па уровне i.
210
3. Работа с Wavelet Toolbox в командном режиме
load noisbloc; s = noisblnr; swc = swt (s,3, 'dbl');
Iswa,swd] = (5,3, 'dbl') ; aO = iswt (swc, 'dbl'):
aObis = i <4Wt (swa, swd, 'dbl') err = norm(o-aO)
errbrs = norm(s—aObis)
err =
9.6566e-014
9.6566e~014
Малость Погрешности представления сигнала не нуждается в комментариях.
3.10.2. Обратное одномерное стационарное
дискретное wavelet преобразование — iswt
Обратное одномерное стационарное дискретное вейвлет-нреобразованис
реализуется функцией rswt. Она имеет ряд форм:
X = j. swt (SWC, ' wname ') , X = iswt (SWA, SWD, ' wname ' ) или
X = iswt (SWA (end, SWD, 'wname ') —восстанавливают сигнал л, основы-
ваясь на многоуровневой стационарной структуре wavelet разложения swc или
[SWA, SWD].
X = iSWt (SWC, LO_R, Нх_ F.) , X = iswt (SWA, SWD, Lo_R, H , _R) ИЛИ
X = iswt(SWA(end,;),SWD, Lo R, Hi R) —восстниявливают сигнал, исполь-
зуя соо1вс-тствующпе фильтры.
Пример:
load nbarbl; swc = swt2(X,3,'s vm4 ' ) ;
[Cd,chd,Cvd,edd] - swt2(X,3,'sym4');
aO - iswt 2 (swc, ' syni4 ' ) ;
aObis = iswt 2 (<• a, chd, c>zd, edd, ' syrn4 ' ) ,
en - max(max(abs(X-aO) ) )
errbis - max(max(abs(X-aObis)))
err =
2 _3432e-010
errbis =
2-3432e-010
3.10.3. Дискретное стационарное
двумерное вейвлет-преобразование — swt2
Дискретное Прямое стационарное двумерное вейвлет-преобралование реа-
лизуется функцией swt2. Она используется в следующих формах:
SWC -- swt2(X,N, 'wname') или t А, Н, V, D j = swt 2 (X, N, ’ unarm ' , --
возвращает стационарное вейвлет- разложение сигнала X на уровне N. иеполь-
211
3. Работа с Wavelet Toolbox в командном режиме
зуя веИВ-Зет ' л/ПЧИте' N доижнг» быть строго подпжитечьным целым числом и
Ь'/е(Х, I) и s rze (<, 2) должны быть кратны 2\ Выходной трехмерный массив
[А, V, 21 содержит коэффициенты аппроксимации на уровне i в матрице
2 ( : , : , I), а матрицы н (:, :, i). v (:, :, i) и D (:, ;, i) содержат детальные ко-
»ффициенты ira уровне i (горизонтальные, вертикальные и диагональные).
Функция SWC - ; Г)(:,:,1 :N) ; A(:,:,N)] или SWC =
-al2(X,N,Lo D,Hi D) или [A,H,V,D] — &wt2(X,N,Lu_D,Hi_D) — возвращает
•'rm i; ргиое нрйияет-]Ш1г(>жрнш> дня входных фильтров разложения — низко-
idi н" 1 ,>uiLi> D и нькажочас н> гного Hl _D.
Функция lwI шрает ключевую роль в обработке изображений на основе
ьейв'к 1-преобразования. Ниже приводится пример, иллюстрирующий это. Он
•<>< iui. и< ipex частей:
• .un-ц-. 1ка изображения из файла facets и его вывод на просмотр;
- В1!.-.’П1р<:ция декомпозиции изображения;
> ос '.ю । [I коэффициентов декомпозиции до уровня к.
листинг примера с краткими комментариями:
3. Работа с Wavelet Toolbox в командном режиме
[га, chd, cvd. r.dd] = swt2(X,3,’sym4’);
for k 1:3 *
^Visualize the decomposition.
<~od__ca = wcodemat (ca ( : , : , k) , nbr.ol) ;
cod__chri « wuiidcmat (ohd (:, :, k) , nbr.cl) :
coci__cvd = wcodemdl (cvd (;, :, k) , nbcol) ;
cod__cdd = wcodemat (odd (:,:, k),nbcol);
decl - [cod cu, Lud__chd; coa_cvd, --n'i_rdd] ;
subplot(2,2,k+1); imageiderl) % Coefs. of the decompo-
se sition nt level k.
title([1 SWT dec. : approx. ' , 'and det reels (lev.
', nmu2st r t k)
ml ormap (map)
Полученное при запуске этого примера изображение представлено на
рис. 3.31.
Рис. 3.31 наглядно иллюстрирует суть декомпозиции изображений разно-
го уровня.
3.10.4. Обратное стационарное двумерное
дискретное вейвлет-преобразование — iswt2
Следующие функции обеспечивают обратное стационарное двумерное дис-
кретное вейвлет-преобразование:
X = iswt2(SWC, 'wnam?’), х = iswt2(А,Н,V,D,*wname*) или
X = iswt2 (А (:, :, end) , Н, V, D, ' wname') восстанавливают сигнал X, основы-
ваясь на многоуровневой стационарной структуре вейвлет- разложения SWC или
[A,H,V, DJ
X - iswt2(SWC,Lo_R,Hx_R), X = i swt 2 (А, Н, V, D, Lo_R, Hi R) или
X = iswtZ (A (:, ;, end) , н, V, D, Lo R, 111 R) — восстанавливают сигнал, ис-
пользуя соответствующие фильтры.
В следующем примере выполняется загрузка файла изображения nbarbl и
оценивается погрешность после прямого swt2 и обратного iswt2 двумерных
вейвлет-преобразований:
load nbarbl; swe - swt2(X,3,'3yiri4');
[ca,rhd,evd,cddl = swt2(X,3,1sym4');
aO = iswt2 (swe, ' sytn4 ') ; aO - iswt2 (ca, chd, evd, edd, ' sym4 ' ) ;
err - max(max(abs(X-aO)))
errbis = max(max(abs(X-aObis)>)
en —
2.3482e-010
213
3. Работа с Wavelet Toolbox в командном режиме
errbib =
2.3482е-010
Малая величина погрешности указывает, что изображение восстанавлива-
ется с очень высокой точностью.
3.11. Удаление шумов
и сжатие сигналов и изображений
3,11.1, Принципы очистки сигналов и шумов
Для удаления шумов и сжатия сигналов и изображений используется хо-
роню известный из техники фильтрации прием — удаление высокочастотных
< <><"г,|И11Як>1цих из спектр,! сигналя. Однако применительно к войн нетям есть еще
один путь — ограничении уровня детализирующих коэффициентов.
Мы уже видели, что кратковременные особенности сигнала (а к ним мож-
но о гнести и шумы в виде множества таких особенностей) создают детализирую-
щие коэффициенты с высоким содержанием шумовых компонент, имеющих
большие случайные выбросы значений сигнала. Задав некоторый порог Для их
уровня, и срезав по уровню детализирующие коэффициенты, можно уменьшить
уповетц. шумов Но, пожалуй, самый интересный аспект этой проблемы заклю-
чается в юм, что уровень ограничения можно устанавливать для каждого коэф-
фициента отдельно, что позволяет строить адаптивные к изменениям сигнала1
системы очистки сигналов от шума на основе вейвлетов.
3.11.2. Установка параметров по умолчанию —
ddenemp
Функция [THR,SORH,КЕЕРАРР,CRIT| = ddenemp (INI, INZ, X) возвра-
щает параметры, используемые по умолчанию, для компрессии и удаления шу-
мов. используя вейвлеты, в том числе пакетные, Для входного вектора или мат-
рицы X. Матрица X может представлять собой одномерный или двумерный
< и гнал. Выходные параметры этой функции следующие:
• TrtF: — пороговое значение,
• — установка жесткого порога,
• ГЕЕРАРР — позволяет сохранить коэффициенты аппроксимации;
• 2PIT (используется только для пакетного вейвлета) — имя энтропии.
Входной аргумент JN1 может принимать два значения :
• ’don' — для удаления шумов;
• 'стр ' — Для сжатия (компрессии).
Аргумент IN2 принимает значение ’ wv ’ для простого вейвлета или ’ wp' —
для пакетного вейвлета. Заметим, что Для простого вейвлета функция имеет три
выходных параметра:
214
3. Работа с Wavelet Toolbox в командном режиме
[THR, SORH, KEEPAPPJ = ddencmp(INI, 'wv',X) .
. Для пакетного вейвлета функция использует четыре выходных параметра:
[THR,SORH,KEEPAPP,CRIT] = ddencmp (INI, ' wp ', X) .
Ниже приведены примеры применения данной функции для гауссовского
шумового сигнала, заданного (в первой Строке) генератором случайных чисел:
init = 2055415856; randn('seed',init); х = randn(1, 1000) ;
[thг, sorh, keepapp] = ddencmp ('don’, ' wv 1 , x)
[thrl,sorhl,keepappl1 = ddencmp(1emp' , 1wv' , x)
[thr,sorh,keepapp,crit1 = ddencmp('den’,'wp', x)
thr =
3.8593
keepapp =
1
thrl =
.0.7003
sorhl =
keepappl =
1
thr -
4.2911
sorh =
keepapp =
1
crit =
sure
3.11.3. Выбор порога для удаления шумов —
thselect
Функция THR = thselect- (X, TETR) возвращает пороговое значение для
вектора X, используя правило выбора, определенной строкой TPTR:
» TPTR = ' riytsure' адаптивная установка порога по методу Штейна:
» TPTR - 'heursure' —эвристический вариант порога по методу Штейна;
» TPTR = 'sqtwolog'—порог, равый sqrt(2*log(length(X)));
» TPTR = 'ntinimaxi' —минимаксный порог-
215
3. Работа с Wavelet Toolbox в командном режиме
Выбор порогового значения базируется на основной модели вида у = f(t) I е,
где <• белый шум N(0,l).
Примеры применения данной функции даны ниже:
niil - 2055'115866; rancln (' seed ' , iniz) ;
- rindn(1,1000);
i Hi tl'isele'-r (x, 'riqrsure')
i'л I - tbseec L (x, ’ sqtwolog')
> - ibseipci (x,'heursure');
3.11.4. Штрафной порог для удаления шума —
ivbmpen
Функция T11R = wbmpen (С, L, 5 tGMA, ALPHA) возвращает глобальный ио-'
рог , 1 для удаления шумов. Он получается из правила выбора вейвлет-кооффи-
циоитов с использованием «штрафного» метода Бирге-Массарта (Birge-Massart).
Г( структура разложения сигнала или изображения, которая должна обра-
Ьатып.,. 1.ся с; , с,ма — стандартное отклонение белого шума Гаусса в данной мо-
л;1-. J i’riA— параметр настройки для «штрафного» метода.
Б приведенном ниже примере показана техника очистки сигнала (с файла
r,iy?a<s сигнала (рис 3 32)-
И = wdonemp('gbl', с, 1.wname, lev,the,'s', keep-
216
3. Работа с Wavelet Toolbox в командном режиме
Рис. 3.32. Пример очистки сложного сигнала от шума
Рекомендуется поэкспериментировать с этим примером, менял уронеi, в де
композиции 1е 7, параметр alpha и тип вейвлета. Это поможет оцет, г I, во.» .;-»ц
вости вейвлет-технологии очистки сигналов от шума.
3.11.5. Порог одномерного вейвлета - wdcbm
Функция [TUR, NKKLP] -= wdcbm(С,L,ALPHA,М) возвращиег порог or
восительио некоторого уровня и число сохраненных коэффициентов tlFJ-’H для
сжатия или удаления шумов. Данная функция использует метод Вирге-.Мгссар-
та.[С,Ь] — структура вейвлет-разложения сигнала на уровне = i<i ji , -z.
ALPHA и M должны быть вещественными числами больше 1.1 ш — зек юг
длины j , TllR(i) содержит порог для уровня i.
NKEEP — вектор дпипы j. NKEEP(i) содержит число коэффициентов, кото
рые должны быть сохранены на данном уровне i.
Параметры j, И и ALPHA определяют сам метод:
* На уровне j+ 1 все сохраняется.
♦ Для уровня! от 1 до j.n, самых больших коэффициентов сохранено си, М (j-1-?-!)" |,,1Л.
Типично ALPHA — 1.5 для сжатия и ALP1]A= 3 для удаления шумов
По умолчанию м — L(l), рекомендуемое значение для М от 1,(1) до 1).
Функция wdcbm (С, Т , ат,РИА) эквивалентна wdcbm (С, L, ALl’I L (J 1 ).
217
3. Работа с Wavelet Toolbox в командном режиме
В следующем примере выполняется загрузка зашумленного сигнала, его
очистка от шумов с компрессией и построение графиков исходного и очищенно-
го сигналов (рис. 8.88):
load noismima; к = noismima;
г, ictnie — ' ЛЬ8 ’ , lev = 6; [с, 1 ] — wavedec (х, lev, wname) ;
а} r>li , = 2; in = 1(1); [thr, nkeep] — wdcbm (c, 1, alpha, m) ;
[xd,<xd,Ixd, pelf0, perf12] -
wdt-n'-nip ( ' Ivd ', c, 1, wname, lev, thr, ' h ' ) ;
sunplot(2 11), plot(x), title('Original signal');
axis([0,1000,-10,10])
subplot(212), plot(xd), title (’Compressed signal');
axis ( [0, 1000,-10, 10])
xlabl =- ['2-norm rec.: ',num2str(perf12)];
xlnbd - [' % — zero cfs: ’,num2str(perf0), ’ %’];
xiabel([xlabl xiab2|);
С этим примером также рекомендуется поэксперементировать. Тем более,
что из сравнения его результатов с результатами предшествующего примера
(рис. 3.32) видна разная степень и даже разный характер очистки одного и того
же сигнала от шума.
218
3. Работа с Wavelet Toolbox в командном режиме
3.11.6. Порог двумерного вейвлета — wdcbmS
Функция [THR, NKttP] = wdcbm2 (С, S, ALPHA,м) возвращает порог T.'IR от-
носительно некоторого уровня и число сохраненных коэффициентов NKEEP для
сжатия или удаления шумов. Данная функция использует метод Вирге-Масеарта.
[С, L] — структура вейвлет-разложения сигна та ня уровне 3 = S1 z ? ($, 1) - 2.
ALPHA и М должны быть вещественными числами больше 1. THR — матри-
ца размера 3xj, THR(:,i) содержит порог для уровня I в трех направлениях: верти-
кальном. горизонтальном и диагональном.
• NKEEP — вектор длины j; NKbEP(i) содержит число коэффициентов, которые
должны быть сохранены на данном уровне ь Типично значение ALPHA = 1.5 дня
сжатия и ALPHA = 3 для удаления шумов. По умолчанию М = prod (S (1, ,
рекомендуемое значение для М от prod (S(l,:)> до fi‘prod (S (',:)).
Функция wdcbm2 (C, S, ALPHA) эквивалентна
wdcbm2(C,S, ALPHA,prod(3(1,:))).
3.11.7. Создание архива отпечатков пальцев
Одним из ярких примеров применения техники сжатия изображений,
ставшим уже классическим, является создание архивов отпечатков пальцев для
криминалистических отделов милиции и полиции. Подобные отделы завалены
сотнями тысяч и миллионов отпечатков пальцев. К сожалению, их сканирова-
ние ведет к появлению больших графических файлов, для храпения которых
требуется множество файловых серверов.
Таким образом, актуальна разработка методов компрессии подобных изоб-
ражений. Тут мы сталкиваемся именно с тем случаем, когда вполне допустима
некоторая потеря точности изображения при условии, что она минимальна для
линий, по которым производится идентификация отпечатков пальцев. Качество
самих отпечатков изначально может сильно разниться в зависимости от приме-
няемых красителей, плотности прижатия пальца к листу бумаги и т. д.
Обработка снимков по вейвнет-технологии сжатия информации дала ирс
красные результаты, и это стало одним из первых серьезных применений данном
технологии. Приведенный ниже пример иллюстрирует несколько упрощенную
программную реализацию данной технологии:
load dettingr; nbc = size(map,l); wname - ’sym<'; lev = i:
[с,b] - wavedec2(X,lev,wname) ; alpha — 1.5; m =
2.7‘prod(s(1, :));
[thr,nkeep] = wdcbm2(c,s,alphd,m);
[xd,cxd,sxd,porf0,perf!2] =
wdenemp('Ivd',c,s,wname,lev,thr,’h');
colormap(pink(nbc)); subplot(221), image(wcodemat(X,nbc)),
title('Original image'); subplot(222),
image(wcodemat(xd,nbc)),
title('Compressed image'); xlabl — [ '2-norm roc. :
',num2 s t r(pe r f12)] ;
219
3. Работа с Wavelet Toolbox в командном режиме
xlab2 = (' ° - 7аго cfs: ' .num2str(perf0), ' %']; ’
Xlabel((xlabl xlab2])
На рис, 3.34 показаны исходный отпечаток пальца (из файла detfinger),
его вид после вейвлет-преобразования и сжатия изображения в десятки раз. Не-.
трудно заметить, что при такой степени сжатия качество снимка остается хоро-
шим, и он мало отличается от исходного.
Сходная с описанной ситуация наблюдается в медицинских учреждениях,
работающих с множеством снимков органов человеческого тела, в службах раз-
ведки полезных ископаемых, в картографических отделах и в других организа-
циях, широко использующих технику фотографии.
3.11.8. Автоматическое одномерное
удаление — wden
Функция [XD,CXD,LXD] = wden (X, TPTR, SORH, SCAL,N, ’ wname ') воз-
вращает очищенный от шума сигнал XD, полученный ограничением вейвлет-ко-
эффициентов преобразования входного сигнала X. При этом используется
[CXD, LXDj-структуря вейвлет-разложения очищенного от шумов сигнала хр,
Строка TPTR задает правило выбора порога:
• ' rigreure' — использует алгоритм Штейна несмещенной оценки риска;
• ' heursure' — эвристический вариант предыдущее метода;
• qtwolog' —для инверсного порога ;
• ' minimaxi' —для минимального/максимального порога;
• sorh (' ч 1 или ' h ’) — для гибкого или жесткого порога.
При параметре SCAL=' one' предполагается, что s(n)=f(n) I е(п), где с(п) —
белый шум [0,1].
Строка SCaL определяет мультипликативное пороговое перемасштабиро-
ванис (если шум вне пределов [0,1] или не белый).:
• 'one' —отсутствие перемасштабирования;
• 'sin’ — перемасштабирование с использованием единственной оценки уров-
ня шума, основанное на коэффициентах первого уровня;
220
3. Работа с Wavelet Toolbox в командном режиме
» 'mln' —для пере масштабирования с использование оценки уровня шума, за
висимой от уровня. ’ wname 1 строка с именем ортогонального вейвлета.
Функция [XD,CXD, LXD] = wnen (С, LpTPTR, SORH, SCAL, К, ’ип.Тпю ’ )
овращает те же выходные параметры, используя описанные выше параметры,
днако, получая их напрямую из входной структуры [C,L] на уровне N для орто-
гонального вейвлета с именем ’wname 1.
Основная модель для зашумленного сигнала имеет вид: s(n)=f(>i)-l-ne(ti) для
равномерных промежутков времени п.
В простейшем случае, предположим, что е(п) — белый шум Гну соц N(O,1) и
уровень шума предположительно равен 1. Процедура удаления шума состоит к
одавлении составляющей шума в сигнале s и восстановлении счета пляши (ей f и
включает в себя три шага:
1. Разложение. Выбор вейвлета и уровня декомпозиции N. Beinvici разложение
сигнала з на уровне N.
2. Детализация. Для каждого уровня от1 до N выбирается oiiiW',kh<m,i порог
и применяется гибкий порог для детализирующих коэффициен :•<.!.
2. Восстановление. Вейвлет-восстановление, основанное на исходных к-: >ффи-
. циентах аппроксимации па уровне N, модификация детальных коэффициен-
тов на уровнях от 1 до N.
Здесь следует подчеркнуть, что:
» Вектор детализирующих коэффициентов представляет собой ш-рномпциш ко-
эффициентов функций /и е, и разложение составляющей с приводит к тому, чть
детализирующие коэффициенты являются стандартным белым шумом Гш'сса.
• Мивимальпый/максимальяый и SURE методы выбора порога являются наи-
более традиционными и наиболее подходящими для случаев, koi.,.-, m.ijmi со
ставляющие функции f находятся в полосе шума. Две. других ме года удя ; лют
шум наиболее эффективно. Параметр ' б=птяп ге 1 ягяяется компромис chijm
между описанными методами.
На практике базовый метод не может использоваться напрямую Ирине
дем параметры для отклонений от базового метода. Для этого печольчуеч < я ияра
метр SCAL, который задает метод перемасштабирования nopoi а.
• Если SCAL - 'oneто используется базовый метод,
» Вообще, можно игнорировать оценку уровня шума. При этом детализирую-
щие коэффициенты CD1, по существу, являются коэффициентами ш>ма -ю
стандартным отклонением, равным ст. Среднее абсолютное отклонение коэф-
фициентов представляет собой устойчивую оценку ст. Использованш л гой
чивой оценки является определяющим. Если seal = 'ь1 и 1, то перс-масшта-
бирование порога выполняется с использованием единственной оценки
уровня шума на основании коэффициентов первого уровня.
• Если предположить что шум р не является белым, то порог должен быть т-ре
масштабирован с использованием оценки уровня шума, зависимой о > уровня
N. Такой метод реализован в М-файле wnoisost и использует оценку ст, . h.,mi
няющуюся от уровня к уровню.
221
3. Работа с Wavelet Toolbox в командном режиме
При SCAL - 'mln' происходит перемасштабирование порога с использо-
наймем опенки уровня шума, зависимой от уровня N.
Рис. 3.35. Примерь! очистки сигнала от шума
с помощью функции wden
Приведенный ниже пример показывает применение функции wden с раз-
ными параметрами для очистки сложного импульсного сигнала с шумом, взя-
тым из файла noisbloc (рис. 3.35):
lOrid цодЫос; х = no i sbloc; lev = 8;
subp]t- (11) , plni (x) ,• ylabel ('Noisy signal');
ixis ( ^.0, u-UGO, -] 0,20])
xdli - wden (x,'heursure','s','one', lev, ' syiu8') ;
subplot(412), plot(xdh); ylabel ('heuristic SURE');
uxn ( [0, 1000,-10,20] )
x<is = wden (x, ' sq two log', 's', 'sin',lev, ' sym8 ' ) ;
nubploi (413), plot(xds); ylabel ('Fixed form threshold');
axis([0,1000,-10,20])
Этот пример дает наглядное представление о том, насколько отличаюют
медоды очистки сигналов от шума, доступные с помощью функции wden.
22Э
3. Работа с Wavelet Toolbox в командном режиме
3.11.9. Удаление шума н сжатие —
wdencmp
Функция
[ХС,СХС,LXC,PERF0,PERFL2] = wdencmp('gbl', X, 'wname', N,THR,
SORH, КЕЕРЛРР)
возвращает очищенный от шума и сжатый вектор ХС, полученный из исходного
сигнала X (входной сигнал может быть как одномерным, так и двумерным) с ис-
пользованием положительного глобального порога THR. Дополнительные выход-
ные аргументы [CXC,LXC] являются структурой вейвлет-разпожгпия вектора
ХС. PERF0 и PFRFL2 — это —нормы восстановления и сжатия в процентах.
PERFL2 —100 * (norm(CXC)/ погт(С))2, [депопи — норма вектора, если [с,.,]
ЭТО структура разложения вектора X. Если сигнал X одномерный и веинт<»т
100||ХС||2
•wname ' ортогинниьиый, то PEFFL2 сокращается к —11—;— .
ИГ
Вейвлет-разложение выполняется на уровне N. Строка • wr.omo ' содержит
имя заданного вейвлета. SORH ('s' или 'h ') используется для установки, соот-
ветственно, гибкого или жесткого порога. Если параметр КЕЕРАРР = 1, то коэф-
фициенты аппроксимации не могут ограничиваться, хотя в другом случае это
возможно.
Функция wdencmp ( ' gbl', С, Т,, ' wname ' , N, THR, SOP.]), FEEРОГК) возвраща-
ет те же выходные аргументы, используя описанные выше опции, однако, полу
чая их напрямую из входной структуры [C,L] на уровне N для вей плотя ' wname '.
Для одномерного случая и параметра 'ivd' используются два варианта
описываемой функции:
(ХС,СХС,LXC,PERF0,PERFL2] =
wdencmp('1vd1,X,'wname',N,THR,SORH)
ИЛИ
[ХС, СХС, LXC, PERFO, PF.RFT,? J =
wdencmp(' ivd',C,L,'wname', N,THR,SORH)
Эти функции возвращают те же выходные аргументы, используя описан
вые выше параметры, но разрешают задавать зависимый от уровня порог, содер-
жащийся в векторе ТНК. Заметим, что по сравнению с функцией wder., функция
wdencmp является более гибкой и позволяет применить метод, задаваемый поль-
зователем.
Для двумерного случая и параметра 'ivd' используются два варианта
описываемой функции;
[XC,CXC,LXC, PERFO ,PERFL2]=
wdencmp('Ivd' , X, 'wname',N,THR,SORH) или
(XC,CXC, LXC, PERFO,PERFL2 1 -
wdencmp (' 1 vd',С, T,, ' wname ', N, THR, SORH)
223
3. Работа с Wavelet Toolbox в командном режиме
Рис. 3.36. Очистка сигнала от шума с помощью функции wdencmp
Выходной аргумент THR должен быть матрицей 3xN, содержащей зависимый,
от уровня порог в горизонтальном, вертикальном и диагональном направлениях.
Для сжатия используется процедура, содержащая три шага. Она описыва-
лась выше для функции wden. Пример применения функции wdencmp приведен
ниже (см. также рис. 3.36);
load noiqblor; х — noisbloc;
[ г hr, sorh, keepapp] = ddencrrp ('den', ' wv', x) ;
LXC, CXC, LXC, PERFU ,PEKtL2] =
wdeiicmp('gbl',x, ' sym4 ,3,thr,sorh, keepapp) ;
subplot (211) , plot(x); xlabel (’^Joisy signal');
axis<[0,i000,-10,20])
subplot(212), plot(XCi; xlabel (’Clear signal');
axis ([0, 1000,-10, 20])
Теперь оценим нормы восстановления и сжатия сигнала:
»PERF0
PERF0 =
85.4406
>>PERFT,2
PERFL2 -
96.929J
Э24
3. Работа с Wavelet Toolbox в командном режиме
3.11.10. Генерация тестовых сигналов — wnoise
Функциях = wnoj.se (FUN, N) возвращает тестовый сигнал, заданный как
функция входного аргумента FUN, на 2N ССТКё [0,1]-
Функция [X,XN] - wnoise(FUN,N,SQRT_SNR) возвращает тестовый век-
тор X, перемасштабированный следующим образом bid (X) — SQRT_SNR. Воз-
вращаемый вектор XN содержит тот же тестовый вектор, по с добавленным бе-
лым шумом Гаусса N(0,l).
[X,XN] = wnoise(FUN,N,SQRT_SNR,INIT) — возвращает векторы X и
XN. с использованием для инициализации значения INIT. Возможны шесть ти-
пов тестовых сигналов, задаваемых значением FTTN:
FUN = 1 или 'blocks';
FUN = 2 или 'bumps';
FUN - 3 или 'heavy sine';
FUN = 4 или 'floppier';
FUN = 5 или 'quadchirp';
FUN = б или 'mishmash'.
Рис. 8.37. Шесть тестовых сигналов бея шума
Следующий пример демонстрирует генерацию шести тестовых сигналов с
помощью функции wnoise (рис. 3.37):
ind = liiispsC-e ( 0, 1,2"10) ;
for i - 1:6
225
3. Работа с Wavelet Toolbox в командном режиме
х = wnoisc (i,10);
subplot(6,1,i), plotfind,x)
Риг. 3.38. Тестовые сигналы с шумом
В другом примере тс лее сигналы генерируются с наложенным на них шу-
мом (рис. 3.38):
j.iid — 1 inspace (0,1,2А10);
for i — 1:6
(х, xn] = wnoise(1,10,2) ;
subplot(6,1,1), plot find,xn)
end
ВНИМАНИЕ__________________________________________________________
Набор тестовых сигналов функции wnoice довольно ограничен. Однако с по-
мощью встроенных математических функций системы MATLAB 6/6.1 можно
создать тестовые сигналы пракч ически любого вида.
3.11.11. Оценка шума,
одномерных вейвлет-коэффициентов — wnoisest
Функция чтпе = wnni яачг (С, т,, S) для шумового сигнала возвращает ’
оценку стандартного отклонения детальных коэффициентов для уровня, задан-
ного во входном векторе S. [С, L1 — входная структура вейвлет-разложения.
226
3. Работа с Wavelet Toolbox в командном режиме
Если С является одномерным массивом ячеек, то STDC - wnoisest (С)
возвращает вектор, причем STDC (к) является оценкой стандартного отклонения
для С {к}.
Если С является матрицей, то STDC = wnoisest (С) возвращает вектор,
причем STDC (к) является оценкой стандартного отклонения для 0(к,:).
Пример опенки стандартного отклонения случайного сигнала дан ниже:
init = 123456789; хandn(’seed' , init) ; х - randn(1,1000);
{с,1) - wavedec (x, 2, ' db3 ’) ; wntl=wnoisest(c,l,1:2)
wntl =
0.9722 0.9836
3.11.12. Штрафной порог для удаления шумов
пакетного вейвлета — wpbmpen
Функция THR - wpbmpen (Т,SIGMA,ALPHA) возвращает глобальный по-
рог THR для удаления шумов. THR получается по правилу выбора коэффициен-
тов пакетного вейвлета с использованием метода Вирге-Массарта. Параметр Т —
дерево пакетного вейвлета, соответствующее пакетному вейвлет-разложению
сигнала или изображения для удаления шумов. SiGMA — стандартное отклоне-
ние в модели удаления шума по Гауссу. ALPHA — параметр настройки для
штрафного компонепта.
Э27
3. Работа с Wavelet Toolbox в командном режиме
В следующем примере сигнал, генерируемый функцией wnoise с номером 2,
подвергается очистке от шума;
{х, хп] = wnoise(2,10,2); wname = 'чутпЙ'г
lev = 3; tree = wpdec(xn,lev,wname);
net1 = wpcoef(tree,2); sigma = median(abs(detl))/0.6/4b;
alpha = 2; thr = wpbmpen (tree, sigma, alpha) ;
keepapp = 1; xd = wpdenemp(tree,'s','nobest’, thr,keepapp);
subplot(311), plot(x); title('Original signal');
axis((0,1000,-2,8])
subplot(312), plot(xn); title ('Signal with noise’);
axis([0,1000,-2,8])
subplot(313), plot(xd); title! 'De-noised signal’);
axis({0,1000,-2,8])
Па рис. 3.39 показан исходный сигнал без шума и с шумом, а также час-
тично очищенный от шума вейвлет-фильтрацИСЙ сигнал.
Рекомендуется поэкспериментировать с этим примером, изменяя вид’
входнени сигнала, тип вейвлета, уровень декомпозиции сигнала lev и параметр
alpha. Это позволит оценить реальные возможности очистки тех или иных сиг-
налов от шума, обеспечиваемые с помощью технологии вейвлетов.
3.11.13. Удаление шумов и сжатие
с использованием пакетного вейвлета — wpdenemp
Функция wpdenemp для пакетного вейвлета аналогична wden и wdencmp.
В виде; {XD, TREED, PERF0 , PERFL2 ] = wpdencmpfX, SORH, N, 'wname',
CRIT, par, Keepapp) пня возвращает сжатую и очищенную от шумов матрицу
XD входного сигнала X. Дополнительный выходной аргумент TREED является
оптимальным деревом вейвлет-разложения вектора XD. Выходные параметры
PERFL2 и PERF0 — L2 нормы возврата и сжатия, подсчитанные в процентах,
PERFL2 - 100 * (норму вектора WP коэффициентов XD / норму вектора WP-ко-
эффициентов of X)2. Если X является одномерным сигналом, а вейвлет ’ wname'
ioo||xd||2
задается ортогональным, то PERFL2 определяется как: --•
1И
Пакетное нейвлет-разложение выполняется на уровне N и для заданного
войвлета ' wname ’. Однако, наилучшего разложения можно добиться, используя'
критерий энтропии CRIT и параметр PAR.
Функция
(XD,TREED,PERF0,PERFL2] = wpdenemp (TREE,SORH,CRIT,PAR,KEEPAPP)
аналогична описанной выше, но для преобразования использует напрямую раз-
ложение дерева пакетного вейвлета — TREE.
Пример применения данной функции дан в следующем разделе.
228
3. Работа с Wavelet Toolbox в командном режиме
3.11.14. Пример очистки изображения
от шума.
Функции wpbmpen И wpdencmp могут использоваться для Очистки иска-
женных шумом иэображрмия. Приведенный ниже фрагмент программы обеспе-
чивает очистку изображения, загруженного из файла noisewom:
load noiswom; nbc = size(map,1); wname - ' coif 4',-
lev * 2; tree = wpdec2 (X,lev,wname);
detl == {wpcoef (tree,2) wpcoef(tree,3) wpcoef (tree,4) ] ;
sigma - median(abs(detl(:)))/0.6745;
alpha = l.i; thr = wpbmpen(Li«e,sigma,alpha); keepapp - 1;
xc == wpdenemp (tree, 's', 'nodes L',thr,keepapp);
colormap(pink(nbc));
stbplot(221), image(wcodemat(X, nbc)); title(’Original .mage')
sibplot(222), image(wcodemat(xd,nbc)) ; t itie ( 'De-noised
image')
Исходное (слева) и очищенное от шума (справа) изображения, полученные
при исполнении этого примера, представлены на рис. 3.40.
Рис. 3.40. Пример очистим от шума изображения
е помо1цыо функции wpdenciup
С этим примером также полезно поэкспериментировать. В частности, за-
дайте выходные параметры функции в полной форме и найдите нормы восста-
новления и сжатия изображения.
3.11.15. Порог коэффициентов
пакетного вейвлет — wpthcoef
Функция
NT - wpthcoef(Г,KEEPAPP,SORH, THR)
возвращает новое дерево NT пакетного вейвлета с пороговыми коэффициентами,
полученными из дерева Т. Параметр THR задает значение порога.
229
3. Работа с Wavelet Toolbox в командном режиме
3.11.16. Одномерный порог
вейвлет-коэффициентов — wthcoef
Функция nc - wthcoef ('cl', с, L, N, р) возвращирт коэффициенты, по-
лученные из структуры вейвлет-разложения [C,L] с помощью N-уровневой ком-
преисии, определенной в векторах N и Р, N содержит детализирующие уровни,
подвергающиеся компрессии, а Р — нижние коэффициенты в процентном соот-
ношении, которые должны быть установлены как нулевые. Вектор N должен
быть таким, что 1 < N(i) < length(L)-2.
NC - wthcoef (’ d C, L, N) — возвращает коэффициенты, полученные из
структуры [C,L], устанавливая детальные коэффициенты вектора N как нулевые.
NC - wthcoef('а',С,L) —возвращает коэффициенты, полученные в ре-
зультате установки нулевых коэффициентов аппроксимации.
NC = wthcoef (1 г ', с, L, N, г, SORH) —возвращает коэффициенты, полу-
ченные из структуры wavelet-разложения [C,L] установкой гибкого (SORII=‘s’)
или жесткого (SORH='h') порога, определенного векторами N и Т. [NC,L] — из-
меняемая структура вейвлет-разппжения.
3.11.17. Двумерный порог
вейвлет-коэффициентов wthcoefS
Для ’type' = ’h' ('v' или ’d’)функция
NC -- wthcoef 2 (' type С, S, N, T, SORH) возвращает горизонтальные, вертикаль-
ные и диагональные коэффициенты, полученные из структуры разложения fC,S] с
использованием гибкого (SORH=’b‘) или жесткого (SORII— Ъ') порогов, определен-
ных в векторах N и Т. Вектор N должен быть таким, что 1 < N(i) < size(S,l)-2.
Для ’ type ' = ’h’ (’ v' или ’d')функцияNC - wthcoef 2 ( ' type ’,C,S,N)
возвращает горизонтальные, вертикальные и диагональные коэффициенты, по-
лученные из структуры разложения [C,S], устанавливая деголизирующис коэф-
фициенты вектора N как нулевые.
Функция NC — wthcoefs ( 't',С,S,N,Т,SORH) возвращает коэффициен-
ты, полученные из структуры wavelet рппиожопия [C,S] установкой гибкого
(8ORH='s’) или жесткого (SORH=’h') порога, определенного векторами N и Т.
[NC,S] — изменяемая структура wavelet разложения.
3.11.18. Установка гибкого или жесткого
порогов — wthresh
Функция Y = wthresh(X,SORH,т) .задает вид порога при подавлении шу-
мов путем ограничения вейвлет-коэффициентов. Она возвращает гибкий ytsoft '
(SORH — ’s') или жесткий ythard (SORH = 'h') порог (thersold) T для вход-
ного вектора или матрицы X.
Приведенный ниже пример показывает вид зависимости у(х) при отсут- ,
ствии порога, при твердом и кри мягком порогах (рис. 3.41):
230
3. Работа с Wavelet Toolbox в командном режиме
Рис, 3.41. Типы порогов; отсутствие пирога, твердый порог и мягкий порог
у - linspace( 1,1,100); thr = 0.4;
ythard = wthresh (у, 'h',thr); ytsoft = wrhresh(y,'s',thr);
subplot(131), plot(y); titla ('No thersold ')
subplot (1 32 ) , plot (ythard) ; titlefthard thersold')
subplot(133), plot(ytsoft); title('tsoft thersold')
3.11.19. Управление параметрами порога —
wthrmngr
Функция THR = wthrmngr(OPTION,METHOD,varargiNj возвращает гло-
бальный порог или зависимый от уровня OPTION порог. VARARGIN зависит от
параметра OPTION и METHOD. Значения параметров можно найти в справке пи
этой функции.
231
Глава 4. Работа с GUI пакета
Wavelet Toolbox
4.1. Графический интерфейс
пользователя — GUI
4.1.1. Вызов окна GUI пакета Wavelet Toolbox —
wavemenu
Большинство вейвлет-преобразований, описанных в предшествующей гла-
ве в пакете Wavelet Toolbox, поддерживается с помощью специального графиче-
ского интерфейса пользователя Graphic User Interfice или GUI. Для доступа к
нему достаточно в командном окне системы MATLAB исполнить команду wave-
menu. Появится окно со списком разделов вейвлет-преобразований (рис. 4.1).
Рис. 4.1. Окно GUI пакета Wavelet Toolbox
ВНИМАНИЕ________________________________________________________
Рис. 4.1 показывает окно GUI пакета Wavelet Toolbox внутри окна команд-
ного режима работы системы MATLAB, Полное описание пользовательского
23Э
4. Работа с GUI пакета Wavelet Toolbox
интерфейса системы MATLAB можно найти в ряде книг, например в [27,29].
Однако, даже знакомства с рис. 4.1 достаточно, что бы ввести команду wave-
menu и приступить к работе со средствами пакета Wavelet Toolbox.
Как видно из рис. 4.1 список разделов в окне GUI соответствует общепри-
нятой классификации вейвлетов в пакете расширения Wavelet Toolbox и облас-
тей их применения, которые мы рассмотрели выше в Главе 3. Для выбора нуж-
ною раздела достаточно активизировать мышью соответствующую кнопку с
выбранной темой.
4.1.2. Просмотр вейвлетов — окно Wavelet Display
Знакомство с GUI пакета начнем с действия кнопки Wavelet Display. На-
жатие этой кнопки выводит окно просмотра вейвлетов, показанное на рис. 4.2.
В данном случае в этом окне просматриваются данные о вейвлете Хаара — пер-
вом и, пожалуй, самом простом вейвлете из всех ныне известных.
Рис. 4.2. Окно просмотра вейвлетов Хаара
Как вытекает из теоретического анализа вейвлетов (Глава 2), вейвлеты
этого типа характеризуются масштабирующей функцией phi (она имеет значе-
ние 1 при х от 0 до 1 и 0 при других значениях х) и вейвлет-функцней psi (в виде
меандра), а также коэффициентами НЧ и ВЧ фильтров декомпозиции и реконст-
рукции Rce эти данные и приведены в основной — левой части окна. Графики
функций, разумеется, даны несколько приближенно и у них перепады с беско-
иечио-большой крутизной представлены перепадами с конечной крутизной.
233
4. Работа е GUI пакета Wavelet Toolbox
Коэффициенты фильтров соответствующих вейвлетов отображаются вер-
тикальными линиями со светлым кружком на них. Высота центра кружка соот-
ветствует значению соответствующего коэффициента. Нетрудно заметить, что
вейвлеты Хаара имеют всего по два коэффициента каждого фильтра, линии ко-
торых расположены по краям окон просмотра. Функции phi и psi этого вейвлета
прекрасно приспособлены для учета перепадов и ступенек сигналов.
В этом окне имеется возможность выбора типа вейвлета из открывающего-
ся списка в правом верхнем углу окна, а также уровня декомпозиции и степени
итерационного уточнения (Refinement). В правой части окна имеется 4 кнопки
следующего назначения:
Display — запуск просмотра данных о выбранном вейвлете;
Name wavelets — присмотр Информации о вейвлете с именем Name;
Wavelets — просмотр общей информации о вейвлетах;
Close — закрытие окна контроля вейвлетов.
Рис. 4.3. Окно просмотра вейвлетов Wavelet Display
с данными о вейвлете Добеши db8
Теперь познакомимся с другим широко распространенным вейвлетом —
Добеши. Окно Wavelet Display с данными вейвлета Добеши db8 показано на
рис. 4.3. Для данного вейвлета (dbN) число коэффициентов всех фильтров рав-
но 2N. Вейвлет Добеши явно неплохо приспособлен для представления сигна-
лов сложной формы. Эти вейвлеты, однако, имеют характерную асимметрию —
нарастание psi-функции растянуто по сравнению со спадом. Поэтому нельзя го-
ворить о какой-то определенной частоте волн, но можно говорить о средней ча-
Э34
4, Работа с GUI пакета Wavelet Toolbox
стоте. Хорошо видно, что вейвлеты этого типа имеют компактный носитель,
т. е. быстро нарастают и быстро спадают.
Другим важным типом вейвлетов являются комплексные вейвлеты. Они
характеризуются следующими параметрами:
• действительной частью функции psi;
• мнимой частью функции psi;
• модулем функции psi;
• фазой функции psi.
Для примера на рис. 4.4 представлены данные до комплексному вейвлету
Морлета 1-1.5. Основную часть окна занимает представление отмеченных выше
функций. Полезно отметить, что представление этих вейвлетов существенно от-
лично от вейвлетов Добеши. В частности, действительная п мнимая части psi-
функции этих вейвлетов отличаются хорошей симметрией.
Рассмотрим еще один довольно распространенный вейвлет — биортото-
нальпый. Па рис. 4.5 представлены данные о таком вейвлете Ыог2.4. Эти вейвле-
ты характеризуются парой phi-функций и парой psi-функций, которые (вместе с
парами фильтров) и представлены на рис. 4.5. Эти функции имеют хорошую
симметрию, но они ие гладки и напоминают по виду фрактальные кривые.
Рис. 4.6. Детальный просмотр биортогоиального вейвлета bior2.4
В правом иижнем углу окна графиков вейвлета имеется кнопка View Axes,
активизация которой вызывает появление окно с тем же нажатием, также види-
мого в правом нижнем углу всего окна. Это окно имеет кнопки, расположение
которых соответствует расположению графиков вейвлета. Активизируя ту или
236
4. Работа с GUI пакета Wavelet Toolbox
иную кнопку можно вызвать график на просмотр в увеличенном виде, выделить
его часть и с помощью кнопок панели инструментов иод окном графики О
(рис. 4.6). Назначение се кнопок несложно и в особом указании не нуждаются.
С другими типами вейвлетов, подробно описанными в конце главы 2. мож-
но также познакомиться с помощью этого окна. Органы управления окном инту-
итивно понятны и мы не будем их описывать более детально.
ВНИМАНИЕ______________________________________________________
Окио Wavelet Ь1зр1аудает возможности детального изучения свойств всех ви
дов вейвлетов, включенных в состав пакета Wavelet Toolbox, что позволяет
использовать на практике.
4.1.3. Доступ к демонстрационным примерам —
wavedemo
Еще одним важным средством освоения пакетов расширения СКМ MAT-
LAB являются демонстрационные примеры. Обилие таких примеров облегчает
знакомство с возможностями этой системы и полезно для ее освоения. Коман-
да wavederno. введенная в командной строке MATLAB, вызывает появление не-
большого окопгка (рис. 4.7) с меню демонстрационных примеров.
Рис. 4.7. Окно меню демонстрационных примеров пакета Wavelet Toolbox
В этом окне представлено следующее меню:
• Command line mode — примеры работы в командном режиме;
• GUI mode — доступ к GUI средствам, описанным выше;
• Short ID scenario — слайдовая демонстрация возможностей одномерного
вейвлет-преобразования;
• Close — закрытие окна.
Мы уже неоднократно демонстрировали возможности использования
средств пакета Wavelet Toolbox в командном режиме. Рассмотренные примеры
полезно дополнить теми, доступ к которым дает позиция Command line mode —
меню демонстрационных примеров. Активизируя кнопку меню Command line
mode, можно вывести еще одно окно, показанное на рис. 4.8.
Нетрудно заметить, что многие ио примеров в этом окне те жр самые, что и
в окне GUI пакета.
4. Работа с GUI пакета Wavelet Toolbox
Рис. 4.8. Окно демонстрационных примеров пакета Wavelet Toolbox
4.1.4. Работа с демонстрационными примерами
11о ходу описания вайвлет-технологии мы рассмотрим многие примеры
применения вейвлетов, в том числе, доступные из перечня в окне рис. 4.1. Пока
ограничимся первым примером Wavelet 1-D. Он дает хорошее представление об
использовании одномерных ортогональных вейвлетов. При запуске этого приме-
ра появляется его окно, позволяющее просмотреть отдельные слайды этого при-
мера. Рис. 4.9 показывает один из таких слайдов; на нем показан исходный сиг-
нал и его грубое (аппроксимация) и детальное приближения, представленные
коэффициентами первого уровня al и dl. Такое представление сигналов являет-
ся его декомпозицией.
Реконструкция сигнала, как уже отмечалось, сводится к объединениюего
грубой и детальной компонент, то есть, Попросту говоря, к сложению al и dl. Это
представлено на другом слайде данного примера (рис. 4.10). Чем ниже уровень
декомпозиции, тем более детальным является реконструированный сигнал. При
нулевом уровне реконструкции она абсолютно точна.
Следующий слайд (рис. 4.11) демонстрирует уже реконструкцию сигнала
третьего уровня. На нем Представлены графики сигнала и четырех коэффициен-
тов аЗ и dl, d2 и d3. Внимательный просмотр исходного и реконструированного
сигнала показывает наличие видимых на глаз, хотя и не очень сильно, различий.
Заключительный кадр слайд-шоу данного примера приведен на рис. 4.12.
Здесь в увеличенном масштабе показаны сам сигнал и результат его реконструк-
ции нулевого уровня. Нетрудно заметить, что несмотря на весьма сложный харак-
тер сигнала (непериодический, имеющий как медленные, так и очень быстрые
компоненты), реконструированный сигнал ничем не отличается от оригинала. Это
еще раз Подтверждает уже отмеченное уникальное свойство ортогональных вейв-
летов: возможность точной реконструкции сигналов произвольного вида.
238
4. Работа с GUI пакета Wavelet Toolbox
Рис. 4.8. Сигнал и нейнлет-коэффициенты al и dl
Рис. 4.10. Сигнал и результаты его реконструкции Первого
и нулевого уровней
239
4. Работа с GUI пакета Wavelet Toolbox
Рис. 4.12. Сигнал и результат его реконструкции нулевого уровня
240
4. Работа с GUI пакета Wavelet Toolbox
Собственно говоря, все представленное мы уже рассмотрели, используя в
командном режиме функции пакета Wavelet Toolbox. Однако демонстрацион-
ные примеры даны н красочном обрамлении и виде слайд-шоу, облегчающем
понимание довольно сложной теоретически и достаточно простой практически
вейвлет-технологни обработки сигналов. В частности, последний пример хоро-
шо иллюстрирует справедливость теоретических положений вейвлет-преобра-
вовалий.
Как нетрудно заметить, в окне под рисунками каждого слайда имеется
окпшко с листингом программного фрагмента, осуществляющего то или иное
действие. Казалось бы логичным иметь возможность копирования этих фраг-
ментов для составления своих программ. Но, увы, MATLAB 6 такой возможнос-
ти в явной форме не предоставляет. Мало того, что окно демонстрационных при-
меров не имеет обычного меню, в нем нельзя вывести контекстное меню правой
клавиши Мыши.
Однако разработчиков этих примеров можно все же «обвести вокруг паль-
ца». Так, автором был испытан следующий прием копирования программных
фрагментов — вначале нужный фрагмент (полностью или частично без коммен-
тариев) выделяется мышью при нажатой левой клавише. Затем, при нажатии
клавиш Shift и Del фрагмент переносится в буфер е его исчезновением в окно.
Нажатие клавиш Shift и Ins позволяет вернуть фрагмент на место или (уже в ок-
не командного режима или в окне редактора Word 95/97) тем же самым приемом
поместить в строку ввода для исполнения.
4.1.5. Просмотр примера
Short ID scenario
Полное и весьма наглядное представление о возможностях одномерного
дейвлет-преобразования дает пример Short ID scenario. Он использует окно GUI
в дополнительную панель управления слайд-шоу (рис. 4.13).
Этот слайд демонстрирует уже обсуждавшуюся проблему — вейвлет де-
композиции сложного сигнала (па этот раз это сигнал типа «визг» с шумами).
От сигнал представлен грубой аппроксимацией а5 и питью детальными коэф-
идиентами от dl до d5. Используется вейвлет sym4. Показ слайдов сопровож-
дается выводом панели с комментариями — она видна внизу рис. 4.13.
Поскольку детали вейвлет-декомпозиции и вейвлет-реконструкции сигпа
ЛОВ МЫ уже неоднократно обсуждали, опустим ряд слайдов и покажем сразу
слайд рис. 4.14, на котором представлен результат аппроксимации сигнала пя-
того уровня и его очистки от шума. К сожалению, из-за чермо-белой печати ри-
сунков отличить сигнал от его аппроксимации трудно.
Можно заметить, что вейвлет-преобразование чуда в очистке сигналов от
шума не делает. Чем выше степень очистки, тем хуже воспроизведение быст-
рых компонент сигнала. В частности, в начале процесса нарастания амплиту-
ды сигнала во времени расхождение между реконструированным и оригиналь-
ным сигналами весьма заметно, тогда как в конце этого процесса оно резко
уменьшается.
241
4. Работа с GUI пакета Wavelet Toolbox
24Э
4. Работа с GUI пакета Wavelet Toolbox
4.1.6. Демонстрационные примеры
GUI
Окно GUI имеет стандартное меню. На рис. 4.15 это окно показано с от-
крытой позицией File. Нетрудно заметить, что эта позиция позволяет загружать
как отдельные сигналы, вейвлет-коэффициенты и данные декомпозиции сигна
лов, так и полные примеры применения вейвлет-технологии. На рис. 4.15 пока-
зано и открытое подменю с примерами раздела Wavelet 1-D. Видно, что только
вэтом (одном из многих) разделе имеется список из более чем 30 демонстраци-
онных примеров.
Рис. 4.15. Загрузка примеров из раздела Wavelet 1-D
в окне GUI
4.2. Выявление особенностей
функций и сигналов
4.2.1. Вейвлет-представление скачка уровня
В радиотехнике, космических системах связи, в ядерной физике и во мно
гих других областях науки и техники важное значение имеет анализ тонких осо-
бенностей сигналов. Эту тему мм уже поднимали в начале главы 2 и частично в
главе 3, а теперь выборочно рассмотрим на весьма наглядных примерах, реали
гованных в GUI пакета Wavelet Toolbox. Начнем с непрерывных и одномерных
Й43
4. Работа с GUI пакета Wavelet Toolbox
вейвлетов, как наиболее приспособленных для анализа тонких особенностей сиг-
налов. В титульной строке окна GUI каждого примера можно найти название
раздела из которого взят пример.
пятого уровня и, помимо сигнала и результата ого реконструкции, представлено
вейвлет-дерепп реконструкции. Оно содержит набор коэффициентов аппрокси-
мации и детальных коэффициентов, соединенных стрелками, отражающими
ход реконструкции.
Как видно из рис. 4.1G, деконструкция с декомпозицией сигнала пятого
уровня дает не самые хорошие результаты — реконструированный сигна к замет-
но отличается от исходного. Однако (и пы можете сами это проверить), реконст-
рукция нулевого уровня точно воспроизводит ступенчатый сигнал. Рис. 4.17 на-
глядно показывает, кик с понижением уровня реконструкции улучшается
приближение сигнала в виде одиночной ступени.
Мы будем еще не раз обращаться к демонстрационным примерам из окна
таких примеров и ио окна GUI по мере обсуждения возмлжипстрй вейвлет—гехцо-
логии.
4.2.2. Обнаружение скачков во времени
Рис. 4.18 показывает пример вейвлет-анализа линейнонарастающего и
аатем линейно спадаюп(Р1т» сигнала (треугольно! о). Весь «фокус» в том, ч го этот
сигнал имеет в середине стадий нарастания и спада едва зам энталь-
Рис. 4.18. Анализ особенностей сигнала с горизонтальными разрывами
245
4. Работа с GUI пакета Wavelet Toolbox
пые «разрывы» или «полочки». Еще одна особенность такого сигнала (на этот
раз четко видная на его графике) — это разрыв первой производной сигнала в1
его середине, иными словами, это переход от нарастания к спаду. Наконец, r
особенностям сигнала относятся и его концевые точки — за их Пределами сиг-
нал не определен.
Как видно из рис. 4.18, все эти особенности находят самое четкое выраже-
ние на спектрограмме. Особенно это заметно на линиях локализации экстрему-
мов Local Maxima Lines (внизу рис. 4.18). Эти линии создаются специальным ал-
4.2.3. Анализ функций н сигналов
по фазовому сдвигу
GUI-интерфейс Пакета Wavelet Toolbox открывают огромные возможности
в экспериментировании с сигналами разных видов и с различными вейвлетами.
При этом можно составить классификацию тех или иных признаков сигнала.
В этом нетрудно убедиться на еще одном примере анализа сложного сигнала,
представленном на рис. 4.19. Здесь дано сопоставление двух методов анализа,
названных анализом по модулю и по фазовому углу вейвлет-коэффициентов (см.
панель управления справа). Эти методы возможны при использовании ком-
плексных одномерных вейвлетов.
246
4. Работа с GUI пакета Wavelet Toolbox
До сих пор мы не обращали внимание на фазовый спектр вейвлетов. Но,
в данном примере изучается достаточно сложная функция, имеющая ряд осо-
бенностей. Некоторые из них могут существенно выделяться, если нарядку с
визуализацией значений коэффициентов по модулю выполнить ее с учетом фаз
коэффициентов. Это и делается в данном примере. Степень визуализации вейв-
лет-коэффициентов в данном случае в особых комментариях не нуждается! Од-
нако отметим, что нередко анализ изменения фазового угла вейвлет-коэффи-
циентов способен существенно повысить степень обнаружения особенностей
различных сигналов и функций. Так, в последнем примере видно прекрасное
• выделение сингулярности функции в центре ее графика.
4.2.4. Анализ скачка, по частоте синусоиды
При осуществлении тональной манипуляции возникают скачки по частоте
синусоидального сигнала с равной амплитудой в разных частях временного ин-
' тервала. Это означает, что сигнал является явно нестационарным. Такие скачки
трудно обнаружить при обычном спектральном анализе, поскольку они ведут
просто к некоторому переносу спектральной линии с одной частоты на другую.
Сам переходной процесс «размазывается» по всему спектру. Рис. 4.20 дает при-
мер вейвлет-апаляоа скачка синусоиды по чистоте.
Рис. 4.20. Анализ скачка частоты синусоиды
Нетрудно заметить, что скачок частоты хорошо выделяется при больших
омерах вейвлет-коэффициентов, кстати, как и периодичность низкочастот-
ной составляющей сигнала. Периодичность высокочастотной составляющей
247
4, Работа с GUI пакета Wavelet Toolbox
лучше выделяется при малых номерах коэффициентов. Это и понятно — они
выявляют детальную картину временной зависимости сигнала. Любопытно од-
нако наличие разных зон нечувствительности к синусоидальному сигналу
(ровный черный цвет).
Полезно обратить внимание на опции вывода разных графиков Selected
Axes:
Coeff i cients — вывод коэффициентов (спектрограммы);
Coefficients Line — вывод линии значений уровня коэффициентов:
Maxima Line — вывод линии выделения экстремумов.
На рис. 4.20 задан вывод первых двух графиков, что привело к представле-
нию спектрограммы в увеличенных размерах и в более детальном виде.
4.2.5. Вейвлет-анализ фрактальной
кривой
Комплексные непрерывные вейвлеты также обладают превосходными
возможностями в анализе тонких особенностей сложных сигналов. Это демон-
стрирует рис. 4.21, на котором показаны два способа анализа фрагмента фрак-
тальной кривой. Нетрудно заметить, что ес топкие особенности прекрасно
локализуются как на уровне представления вейвлет-коэффициентлв, так и
спектрограмм сигнала.
1ПН ВА
Liiii oze
Рис. 4.21. Анализ особенностей фрактальной кривой с помощью ней . ых
комплексных вейвлетов
248
4. Работа с GUI пакета Wavelet Toolbox
С рядом других примеров анализа тонких особенностей сигналов с помо-
щью непрерывных вейвлетов вы можете ознакомиться самостоятельно. Напоми-
наем, что окна GUI имеют меню со стандарными возможностями загрузки не
только демонстрационных примеров, но и разных видов сигналов. записи созда-
ваемых изображений и вейвлет-коэффициентов и другие возможности.
4.2,6. Анализ функций н сигналов
с помощью пакетных вейвлетов
Пакетные вейвлеты также могут использоваться для анализа сигналов.
Рис. 4.22 дает пример работы с сигналом, представляющим сумму двух синусо-
ид с сильно разнящейся частотой.
Рис. 4.22. Пример анализа сигнала в виде суммы
двух синусоид пакетным вейвлетом
Основная особенность GUI при работе с такими вейвлетами — вывод дере-
ва преобразований и возможность просмотра формы сигнала в любом, намечен-
ным мышью, узле дерева. Основные особенности применения пакетных вейвле
гов связаны с возможностью обрезания ветвей дерева преобразований и выбора
оптимального дерева. Реализуются эти возможности чаще всего при решении за-
дач очистки сигналов от шумов и их компресии. Соответствующие средства уп-
равления процессом преобразований представлены на панели управления спра-
ва окна GUI (рис. 4.22).
249
4. Работа с GUI пакета Wavelet Toolbox
4.3. Применение дискретных вейвлетов
4.3.1. Обработка сигнала с шумом
Одномерные дискретные вейвлеты наиболее приспособлены для анализа
сложных сигналов, нередко искаженных шумом. В отличие от непрерывных
вейвпетов дискретные вейвлеты используют быстрые алгоритмы вейвлет-разло-
жеиия и реконструкции сигналов. Их дискретность, в частности, при построе-
нии спектрограмм, перестает играть огрубляющую роль, если число отсчете
сигналов составляет сотни и тысячи.
Рис. 4.23. Вейвлет-обработка сложного сигнала
Рис. 4.23 демонстрирует возможности вейвлет-обработки сигнала с шуме
с помощью средств GUI. Для обработки используются одномерные дискреты
вейвлеты (wavemenu ► File. ► Wavelet 1-D) Сверху панели управления можн
сменить тип вейвлета и с помощью кнопки анализа Analyze выполнить разлож
ние для выбранного типа вейвлета.
Иод кнопкой анализа расположено еще 4 важные кнопки:
• Statistics — вывод окна с данными статистики;
• Histograms — вывод окна с гистограммами;
• Compress — вывод окна компрессии сигпала;
• De — noise — вывод окна очистки сигнала от шума.
Обратите внимание также на кнопку More Display Options (донолнительн
параметры дисплеи). Она открывает панель параметров дисплея, которая позв
Э50
4. Работа с GUI пакета Wavelet Toolbox
ляет уточнить многочисленные настройки дисплея. С этой панелью вы можете
Познакомиться самостоятельно (настройки дисплея настолько совершенны, что
менять их бея особой надобности не стоит).
4.3.2. Статистическая обработка
сигналов
Кнопка Statistics открывает окно сданными статистики выбранного сигна-
ла или его вейвлет-представления (рис. 4.24) для сигнала рис. 4.23. В этом окне
имеется представление сигнала и обычная и кумулятивная гистограммы отсче-
тов сигнала. Подобная статистика может быть получена также для синтезиро-
ванного сигиала. его аппроксимации и детального представления (по детализи-
рующим коэффициентам). Соответствующие параметры представлены в правой
части окна статистики.
Рис. 4.24. Окно с данными статистики сигнала
Волее детальные статистические данные могуг быть получены с помо-
щью окна гистограмм, которое открывается при щелчке мышью на кнопке
istograme (рис. 4.25). Гистограммы дают расширенную картину статистики
сигналов и их вейвлет-разложений, поскольку позволяют оценивать статис-
ческие характеристики ие только сигнала, его аппроксимации и деталей,
о и отдельных вейвлет-коэффициентов. Это может иметь существенное зна-
ение в том случае, когда данные спектрограмм ие могут быть истолкованы
аозначно и нужно обращаться к более тонкой материи — анализу (в том
исле статистическому) вейвлет-коэффициентов.
S51
4. Работа с GUI пакета Wavelet Toolbox
ВНИМАНИЕ__________________________________________________
Статистическая обработка сигналов и данных Их вейвлет-преобразован
открывает возможности углубленной оценки сигналов. Она особенно
лезна в тех случаях, когда результаты войвлет-анализа оказываются
вполне очевидными или когда они засорены случайными погрешностя
или игумими. ____________________
4.3.3. Компрессия сигналов
Функции компрессии сигналов мы уже рассматривали применительно
командному режиму работы. Кнопка Compession в окне GUT (рис. 4.23, нап
мер) открывает окно компрессии выбранного сигнала, показанное на рис. 4.
В этом окис молено выбрать тип сигнала и тип вейвлета, л также указать спос
компрессии — с установкой глобального порога ограничения вейвлет-коэффи
сн-|он или локального (адаптивного). Рис. 4.26 соответствует установке глоб
ного порога.
Более высокую степень компрессии обеспечивает установка локальных
рогов. Такой случай представлен на рис. 4.27. В левой части окна пунктирны
линиями показаны пороги ограничения (индивидуальные) для каждого коэ
циента. В правой части окна можно выставить ряд параметров компрессии, см
которых был описан при описании функций компрессии для командного реж
В заключении отметим, что данные о компрессии (нормах восстановле
и сжатия) также сообщаются в указанных окнах.
252
4. Работа с GUI пакета Wavelet Toolbox
4.3.4. Очистка сигнала от шума
Мы провели серьезный обзор возможностей очистки сигналов от шума
уровне использования функций пакета Wavelet Toolbox, доступных для раб
в командном режиме MATLAB. Остается продемонстрировать возможности
этом GUI пакета. Щелчок мышью на кнопке De -noise открывает окно очисти
сигналов от шума (рис. 4.28). Это окно во многом напоминает окно компресса
сигналов. И это естественно; как компрессия, так и очистка сигналов реализуя
ся в сущности одними и теми же методами и подчас общими функциями.
Рис. 4.28. Очистка сигнала от шума при гибком пороге
В этом окне мы найдем все возможности и методы очистки сигналов от
ма, которые уже упоминались. Так, на рис. 4.28 установлен мягкий тип поре
soft, при котором на передаточной характеристике имеется горизонтальная с
пень. В окне вы найдете выпадающий список типов шумового обрамления сиг
лов и ползунковые регуляторы для индивидуального задания порогов кажд
из вейвлет-коэффициентов.
То, насколько установка порога влияет на очистку сигнала от шума, по
зывает рис. 4.29. Он отличается от рис. 4.28 только тем, что теперь установл
другой типа порога — жесткий (hard).
Большое число ТНпов вейвлетов и их подвидов, широкие возможностир
гулировки порогов и выбора степени декомпозиции и реконструкции сигнал
а также различные методы подавления шумов позволяют добиваться прекр
ных результатов в решении этой актуальной Проблемы.
254
4. Работа с GUI пакета Wavelet Toolbox
Рис. 4.29. Очистка сигнала от шума при жестком пороге
4.3.5. Очистка сигналов от шумов
с помощью стационарных вейвлетов
Стационарные вейвлеты в ряде случаев представляют собой превосходные
детва для решения задач, связанных с очисткой сигналов от шумов. Ограни-
имся наглядным примером этого, представленным на рис. 4.30.
Как видно их этого примера стационарные вейвлеты хорошо разделяют
гнал от шума и позволяют легко выделять обе составляющие сигнала — ори-
альный сигнал и шум.
4.3.6. Оценка плотности сигналов
До сих пор мы рассматривали сигналы (непрерывные или дискретные), ко-
рме представлялись временными зависимости. Но есть сигналы, которые мо-
иметь множество значений в каждый момент времени. Для таких сш’налов
овным понятием является плотность, т. е. число отсчетов еигня ла в заданный
межуток времени. Вполне возможно представление и обработка таких сигна-
с помощью вейвлетов. Это иллюстрирует рис. 4.31.
4.3.7. Регрессии по результатам оценки
плотности сигналов
В физике, в химии и в других науках для уменьшения погрешностей экс
иментальных данных часто создаются большие массивы таких данных, кото-
255
4. Работа с GUI пакета Wavelet Toolbox
256
4. Работа е GUI пакета Wavelet Toolbox
иллюстрирует пример на рис. 4.32.
В этом виде обработки данных вейвлеты используются дня предваритель-
ной очистки данных от шума, под которым обычно подразумеваются случайные
отклонения данных от их точных величин. Сама по себе регрессия также являет-
ся средством очистки данных от шума, но менее мощным, чем технология очист-
ки сигналов от шума реализованная вейвлетами.
4.3.8. Расширение и экстраполяция
сигналов
Сигналы обычно заданы ни некотором промежутке времени и в пекоюром
интервале значений. Иногда важное значение имеет расширение сигналов в ту
или иную сторону, например, вправо, клево, вверх или вниз или сразу по ряду
направлений. Эта операция называется расширением сигналов. Частным случа-
ем расширения является экстраполяция сигналов. Операция расширения зада-
ется в разделе Extension окна GUI щелчком мышью на кнопке Signal Extension. R
появившемся окне надо выбрать подходящий пример и (это главное) выбрать
тип расширения с помощью открывающегося меню Extension Mode.
На рис. 4.33 дан пример для типа расширения Smooth (сглаживание).
В этом случае используется операция сглаживания для вектора данных и осуще-
ствляется наилучшая линейная интерполяция.
г»
257
4. Работа с GUI пакета Wavelet Toolbox
Рис. 4.33. Пример расширения — экстраполяции
Рис. 4.34. Пример периодическою расширения
258
4. Работа с GUI пакета Wavelet Toolbox
Еще один пример для типа расширения Periodic представлен „а рис. 4.34.
Вотом случае кривая сигнала повторяется в заданную сторону (или стороны) как
периодическая кривая. С другими методами расширения сигналов вы можете
познакомиться самостоятельно.
ПРИМЕЧАНИЕ
Представляется, что представленные примеры на расширение не носят закон-
4.3.9, Двумерное вейвлет-разложение
и реконструкция изображений
ти в разделе, который открывается активизацией кнопки Wavelet-2D в разделе
Two Dimensional GUI. На рис. 4.3d показан первый из этих примеров.
с изображением магической матрицы
Этот пример неслучайно дан первым. На нем дается реальное изображение
попавшей к нам из древности каменной плиты с рисунком магического квадра-
та. Исходное изображение в левом верхнем углу панели изображений подверга-
ется вейвлет разложению на отдельные сегменты прямоугольной формы, пред-
259
4. Работа с GUI пакета Wavelet Toolbox
ставленные в правом нижнем углу. Это делает операция прямого двумерного
вейвлет-преобразования dwt, рассмотренная нами. Операция обратного двумер-
ного вейвлет-преобразования idwt осуществляет реконструкцию изображения,
которая представлена изображением, показанном в левом нижнем углу панели
изображений.
Центральным моментом демонстрации является возможность просмотра
любою участка декомпозиции изображения с помощью последнего окна — в
правом верхнем углу панели изображений. Для этого достаточно мышью выде-
лить фрагмент декомпозиции изображения и щелкнуть мышью на кнопке
Visualize (визуализация). Кнопка Full Size позволяет вывести изображение в мак-
си мяльном размере, а кнопка Reconstruct — вывести в максимальном размере ре-
конструированное изображение.
Элементы управления декомпозицией и реконструкцией в правой части
окна практически аналогичны таковым для окна одномерного вейвлет-преобра-
зоваиия. Поэтому детального разбора они не требуют. Множество других приме-
ров на применение двумерных вейвлетов разного типа позволяет углубиться в
особенности их применения. Мы не будем лишать читателя удовольствия про-
смотреть эти примеры самостоятельно.
4.3.10. Двумерное пакетное вейвлет-разложение
и реконструкция изображений
Двумерные пакетные вейвлеты также могут успешно использоваться для
двумерного разложения и реконструкции изображений с использование для это-
го деревьев декомпозиции и реконструкции. Ограничимся одним примером та-
кого рода, представленным па рис. 4.36.
Возможности демонстрационного окна тут несколько иные. Центральное
место занимает показ дерева декомпозиции изображения. Элементы в правой ча-
сти окна позволяют выбирать различные типы дерева, осуществлять анализ,
компрессию и очистку изображения от шума (если загруженное изображение
имеет шум). Активизируя любой узел дерева, можно под ним наблюдать соответ-
ствующий фрагмент изображения.
Рис. 4.37 демонстрирует еще один пример работы с двумерным пакетный
вейвлет-преобразованием. Здесь уже дано другое изображение — женского ли-
ца, несколько искаженного шумом, а также иное вейвлет-дерево. В остальном
работа с этим примером та же, что и с предыдущими.
С другими примерами такого рода вы можете ознакомиться сами.
ПРИМЕЧАНИЕ________________________________________________________
Как и в случае командного режима работы обработка изображений средства-
ми пакета Wavelet Toolbox едва ли носит завершенный характер и предназ-
начена не столько для практической обработки сигналов и изображений,
сколько для знакомства с математическими алгоритмами ее н их совершен-
ствования. Для практического применения вейвлет-преобразований в этой
области следует использовать специализированные графические пакеты, на-
пример Corel DRAW 9/10.
260
4. Работа с GUI пакета Wavelet Toolbox
Рис. 4.37. Еще один пример иокстпого нейолет-рааложения
н реконструкции изображения
261
4. Работа с GUI пакета Wavelct Toolbox
4.3.11. Компрессия изображения
и очистка его от шума
Для компрессии изображения п его очистки от шума GUI предоставляет
ряд возможностей. Одна из них — кнопка Compress в окне демонстрации пакет-
ных вейвлетов (рис. 4.37). Щелкнув на ней мышью, можно получить окно ком-
ирсссии и очистки изображения от шума, показанное на рис. 4.38.
Активизировав в этом окне кнопку Compress, можно очистить изображение
от шума и заодно провести его компрессию. Степень очистки изображения и ком-
прессии но многом определяется установкой порога (г помощью ползункового пере-
ключателя). Вы можете выбыть дополнительно метод очистки и получить остаток
(погрешность) Residual. Окно с демонстрацией изображения, остатка и характери-
зующих его гистограмм (обычной и накопительной) показано на рис. 4.39.
Стационарные вейвлеты т ик«е хорошая основа для проведения очистки от
шумов. Ограничимся примером этого, приведенным на рис. 4.40. Для запуска
очистки от шума надо нажать кнопку De-noise. Хотя интерфейс окна рис. 4.40
заметно обличается от представленного на рис. 6.68 (другой тип вейвлета), разо-
ират ься С ним можно достаточно просто.
В целом надо отметить, что примеры очистки изображения г помощью GUI
носят скорее учебный, чем практический характер. Для практического приме-
нения реализованных методов очистки целесообразно использовать функции,
реализующие очистку в командном режиме.
262
4. Работа с GUI пакета Wavelet Toolbox
263
4. Работа с GUI пакета Wavelet Toolbox
4,3.12. Расширение изображений
' Подобно расширению сигналов возможно расширение изображений. Для
этоi-o служит кнопка Image Extension в разделе Extension меню рис. 4.1. Она от-
крывает окно, представленное на рис. 4.41.
Рис. 4.41. Пример расширения изображения
В данном случае выбран метод расширения Symmetric — симметричное рас-
ширение. Исходное изображение видно п выделенном прямоугольнике, расширен-
ное занимает все окошко с изображением. Смысл симметричного расширения, как
и других (например, периодического) вполне очевиден. Расширять изображение
можно влево, вправо, вверх или вниз или попарно в стороны или во все стороны.
ВНИМАНИЕ______________________________________________________________
Следует обратить внимание на то, что расширение изображения не является
его масштабированием. В ряде методов результатом расширения является не
само изображение, а довольно хаотические линии его фрагментов.
4.4. Пакет расширения Wavelet Toolbox 2.1
4.4.1. Новые возможности пакета
Wavelet Toolbox 2.1
С последней версией системы MATLAB 6.1 поставляется слегка обновленный
пакет расширения Wavelet Toolbox 2.1. В нем всего три небольших изменения:
• улучшена реорганизация и изменение пользователем GUI меню;
264
4. Работа с GUI пакета Wavelet Toolbox
» добавлена новая функция disp для отражения информации о деревьях пакет
ных вейвлетов;
» добавлена новая функция wavefun?, возвращающая массивы масштабирую-
щей функции и трех вейвлет-функций для двумерных вейвлетов, и строящая
их графики.
ВНИМАНИЕ______________________________________________________
Усовершенствования в пакете Wavelet Toolbox 2.1 не настолько серьезны, что
бы можно было считать этот пакет новым, и отдавать ему ивние предпочтение,
перед более у нас распространенным пакетом Wavelet Toolbox 2,0.
4.4.2. Документация по Wavelet Toolbox 2.1
Документация по пакету Wavelet Toolbox 2.1 несколько переработана
(PDF файл подрос до 15 Мбайт, зато число страниц описания уменьшилось до
891). Это говорит о некотором увеличении графической части описания и сокра-
щении его текстовой части. В частности, значительно расширено число дна
грамм, описывающих реализации быстрых алгоритмов Ма платя и структур
вейвлет-обработки сигналов (во временной и в частотной областях).
4.4.3. Новая функция disp
Новая функция disp(T) позволяет получить информацию о двумерных
вейвлетах, представленных объектом Т, например:
>> х = rand (1,500) ;
t = wpdec(х,2,'db2');
disp(t)
Wavelet- packet Object Structure
size of initial data
order
depth
terminal nodes
Wavelet Name : db2
Low Decomposition filter : [-0.1294
0.483]
High Decomposition filter : [ —0.483
-0.1294]
Low Reconstruction filter : [ 0.483
-0.12941
High Reconstruction filter : [-0.1294
-0.4831
0.2241
0.8365
0.8365
-0.2241
0.8365
-0.2241
0 224 1
0.8365
Entropy Name
Entropy Parameter
; shannon
265
4. Работа с GUI пакета Wavelet Toolbox
4.4.4. Новая функция wavefun2
Новая функция wavetun2 служит для получения массивов поверхностей
масштабирующей функции W и трех поверхностей детализирующей функции
Wl, W2 и W3 для двумерных ортогональных вейвлетов. Кроме того, эта функ-
ция возвращает двумерный массив XYVAL из 2ITERx2ITER, представляющий
гспзорное произведение (XVAL,XVAL). Здесь положительное число ITER опре-
деляется числом итераций в ходе аппроксимации.
Рис. 4.42. Представление масштабирующей функции
и трех вейвлет-фуикцин двумерного вкйвлета
Функция используется в нескольких формах:
[ S, Wl, W2, W 5, XYVAL] = wave furi2 ( ' wririnie' , А, В) —гдеАиВ -положительные
числа что эквивалентно [S, Wl, W2, W3, XYVAL ] - wav₽fnn2 ( ' wname ' , max (А, В)).
Результатом работы функции является получение указанных выше массивов и по-
приение поверхностей для масштабирующей функции и трех детализирующих
функций;
wavefun2 (1 wname ', U) — эквивалентно заданию
[S, 'All , W2 , W3 . XYVAL)
ФУНКЦИИ [ , W 1, W2 , W3 , X YVAL ] = w<i vef ш i2 ( ' wname ' , 4 , 0 ) ;
Г S,/JI, W2, W3, XYVAL] = wavefun2 ( ' wnanie ’ ) эквивалентно заданию функции
'S, cJl, W2, W3, XYVAL ] wave full 2 ( 1 wname ' , 4 ) .
Следующий пример иллюстрирует применение функции wavefun2 (рис. 4.42):
I er = 4; wav - ' sym4 ' ; [s,wl,w2,w3, xyval ] •• wavef jn2
Как видно из рис. 4.42, функция wavefim2 дает наглядное представление о
скейлипг-функции и вейвлет-функциях двумерных вейвлетов, которые пред-
ставляются уже не одномерными графиками, а поверхностями.
266
Глава 5. Вейвлеты
в системе Mathcad
5.1. Функции вейвлет-преобразований
пакета Numeric Recipes
Разработчики системы Mathcad одними из первых ввили в нее средства для
работы с вейвлетами. Как отмечалось в главе 1 в ядре системы имеются всего две
функции такого рода — для прямого и обратного вейвлет-преобразований с вепв-
летами Добеши DB4. Остальные средства сосредоточены в пакетах расширения
системы, которые поставляются отдельно и перед использованием нуждаются в
обычной инсталляции их. Вместе с пакетами расширения инсталл ируются и ста-
новятся доступными электронные книги по ним.
Пакет расширения системы Mathcad для реализации численных расчетов
Numeric Recipes содержит восемь функций для вейвлш-преобразований;
wtlDaub4 (v) — одномерное прямое дискретное не it вне i -лриибра юпдние векто-
ра v, вычисляемое с использованием 4-коэффициеитного войвлет-фцньтря До-
беши;
jwtlDoub-1 (V) — одномерное обратное дискрехнос вийв'гет-преобрячовя'ние век-
тора v, вычисляемое с использованием 4-коэффицирнтиого войвлет-фильтра До-
беши;
wtnUaub4 (v, п) — «-Мерное прямое дискретное войн ют-преобразоваипс век
тора v, вычисляемое с использованием 4-коэффициентн<н’п войвлет-фильтра
Добеши;
lWtnDaub4 (V, п) — «-мерное обратное дискретное вейвлс! преобразование
вектора v, вычисляемое с использованием 4-коэффицие1ттпогг1 вейвдет-фильтра
Добеши;
wtl?wt(v, w) —одномерное прямое ди< крегпос вейвлет преобразование векто-
ра v, вычисляемое с использованием 12- и йО-коэффииисипюго вейвлет-
фильтра Добеши (w задает порядок фильтра);
IWtlPwL (v, w) — одномерное обратное дискретное пейвлет-преобразовашю век-
тора v, вычисляемое с использованием 1-. 12- и 20-коэффициептного вейвлот-
фильтра Добеши (w задает порядок фильт ра),
wtnPwt(v, w, ш) —«-мерное прямое дискретное веивлст-прсобраповапис векто-
ра v, вычисляемое с использованием 4-, 12 и 20-ко 1ффш1И(чпного вейвле г филь-
тра Добеши (w задает значение пи каждой размерности, m - порядок фильтра);
iwtnPwt (v, w, m) — л-мерное обратное дкекротпор пей влет преобразование век1
тора V, вычисляемое с Использованием 4-, 12- и 20-коэффициент но, о вейвлет-филь-
тра Добеши (w задаст значение по каждой размерное! и, ,н — порядок фильтра).
267
5. Вейвлеты в системе Mathcad
Примеры применения функций вейвлет-преобразований пакета Numeric
Recipes в окне системы Mathcad 2001 представлены на рис. 5.1. Читателю, озна-
комившемуся с главой 2 этой книги, будет интересно разобраться с этими при-
мерами, если у него, разумеется, установлен этот пакет расширения в среде
Mathcad. >
Ри<. 5.1. Примеры работы <' функциями вейвлет-преобразований пакета
Numeric Recipes
ВНИМАНИЕ
Введение восьми функций по вейвлетам в пакет Numeric Recipes было про-
межуточным этапом расширения систем Matlicad в области вейвлет-преоб-
рязовя пий. Гораздо большие возможности представляет специальный пакет
расширения и Wavelet Extension Puck и электронная книга по нему, ориен-
тированные па системы Matlicad начиная с версии Mathcad 8.0.
5.3. Пакет Wavelet Extension
для системы Mathcad
В этой главе, в основном, описан пакет расширения систем класса
Mathcad — Wavelet Extension. Он содержит меньше функций, чем описанный
выше пикет Wavelet Toolbox систем MATLAB 6.0/6.1. Однако, благодаря извест-
ным преимуществам системы Mulheail в части визуального программирования и
подготовки документов, этот пакет дзет в руки пользователя весьма совершен-
ный инструмент для работы с вейнлегами. Пакет Wavelet Exnension и его элск-
268
5. Вейвлеты в системе Mathcad
тронная книга с таким же названием инсталлируются без каких то особеннос-
тей. При этом в перечень встроенных функций системы Mathcad включается ряд
функций этого пакета.
ВНИМАНИЕ____________________________________________________
Вез инсталляции пакета применение электронной книги по нему и примеров,
приведенных в этой плаве, не имеет смысля, поскольку дополнительные
функции пякета будут восприниматься синтаксическим анализатором как
неопределенные и ошибочные.
Рие. 5.2. Окна с содержанием электронной книги по пакету
Wavelet Extension
Рис. 5.2 дает представление о разделах электронной книги данного пакета.
Они охватывают все наиболее Важные разделы вейвлет-технологии обработки
сигналов и изображений.
5.3. Род вейвлет-преобразопаний
и фильтры
В пакете Wavelet Extension вейвлеты имеют род материнский или от-
цовский (см. главу 2). Отцовский вейвлет — это в сущности масштабирующая
phi-функция, а материнский — psi-функция. Существуют многочисленные сс
мейства вейвлетов. Каждое семейство, возглавляемое ма±еринским и отцовским
вейвлетами, имеет большое количество своих потомков. Это расширяет возмож-
ности вейвлет-технологии обработки сигналов и изображений.
269
5. Вейвлеты в системе Mathcad
Перед тек, как детально описать вейвлеты в данном пакете, необходимо
ввести понятие фильтра для конкретных семейств вейвлет-преобразования.
Описанные ниже функции создают коэффициенты ФНЧ с КИХ для конкретных
семейств вейвлетов в конкретных классах вейвлет-преобразований.
Понятно класс вейвлет-преобразовании относится к системе всех вейвлет- ,
преобразований, которые могут быть созданы любой из вышеупомянутых функ-
ций. Например, класс, созданный функцией coillel(n) — это класс вейвлетов
Койфле га. Фраза семейство вейвлет преобразований относится ко всем пакетам
вейвлет-преобразования, которые связаны с отдельными классами вейвлет-пре-
образования и отдельными значениями и. Например; семейство daublet (12) —
неивлет-преобразовапия, основанные на 12-коэффициентном вейвлет Добеши с
минимальной фазой. Все аргументы функции — целые числа, описывающие от-
дельное семейство вейвлет-преобразования.
Основные функции вейвлет фильтров пакета Wavelet Extension представ-
лены ниже:
daublet (п) — возвращает «-коэффициентный вейвлет Добеши с минимальной’
фазой и компактным носителем. Аргумент п — четные числа в диапазоне от 2до
20. Эта функция возвращает п коэффициентов ФНЧ, используемых во всех алго-
ритмах вейвлет-преобразования.
syrn-nleu (п) — возвращает n-коэффициентный вейвлет Добеши с наименьшей
асимметрией п компактным носителем. Аргумент п — четные числа в диапазоне
от 4 до 20. Функция возвращает п коэффициентов узкополосного фильтра, ис-
пользуемых в различных алгоритмах вейвлет-преобразования. Нужно заметить,
что фильтры daubleu (п) Hsymmlet(n) одинаковы для п - 4 и п = 6.
jo , ' L^r (п) — возвращает «-коэффициентные вейвлеты типа Койфлета с ком-
пактным носителем. Аргумент п — четные целые числа 6, 12, 18, 24, и 30. Эта
функция возвращает п коэффициентов Ф11Ч, используемых в различных алго-
ри|мвх вейвлет преобразования. Эти вейвлеты обладают простыми шаблонны-
ми свойствами и, следовательно, особенно полезны при обработке непрерывных
во времени данных.
о1 । nt- (i-i, г) — возвращает узкополосные фильтры, ограниченного во времени
сплайнового биортогоналыюго вейвлета Добеши. Допустимые пары тип: нахо-
дятся в пределах от (in n):=(l 1) до (ш in): (3 9). Первое число показывает степень
полинома для вейвлет-преобразования (вейвлет-преобразование для
Вьр1 । ое (2 , С) имеет степень 1). Второе число показывает длину носителя вейв-
лет-преобразования (вейвлет- преобразование для Bsp]ine(2,8) имеет более широ-
кий носитель, чем вейвлет-преобразование для Bspline(2,6)).
Tsplire возвращает матрицу, состоящую из двух столбцов, первый из кото-
рых определяет коэффициенты узкополосного фильтра анализа, второй — коэф-
фициенгы узкополосного фильтра синтеза, используемые в различных алгорит-
мах вейвлет-преобразования. Полезность применения вейвлетов этого типа в
вейвлет-прсибразовапях обусловлена их симметрией.
возвращает аппроксимацию узкополосного фильтра Battlc-Lcmarie
(или BL) вейвлет-преобразования, основанного на степени и основного В-сплай-
270
5. Вейвлеты в системе Mathcad
на. Это преобразование нс ограничено во времени и езрдоватепьно связанный с
ним ФНЧ — это IIR фильтр. Последнее означает, что конечная аппроксимация
в узкополосном фильтре должна быть сделана i ак, чтобы выполнить данное пре-
образование на компьютере. Из-за возможной погрешноец округления, функ-
ция Ы создает только BL-вейвлет-преобразование для степеней п от 0 до G. В про-
тивном случае будет сообщение об ошибке.
В отличии от преобразований для рассмотренных выше фильтров, BL-
вейвлет-преобразования не могут привести к точному восстановлению сигналов.
Кроме того, BL-войвлет-преобразования могут примени гьея только для функций
дискретного вейвлет-преобразования. a ite для основных функций вейвлег-пре-
образования. Функция Ы возвращает аппроксимацию узкополосного фильтра,
используемую в различных алгоритмах вейвлот-преобр! чонапия. Каиичество
коэффициентов в аппроксимации равно 40, когда п четное, и 39, если п нечет-
ное. Следует отметить, что одно из преимуществ ВЬ-вейвлет преобразования за-
ключается в том, что оно относится к симметричному ортонормировянпому
вейвлет-преобразованию.
5.3.1. Функции одномерного
вейвлет-преобразования
Итак, основные фильтры пакета Wavelet Extension описаны. Приступим к
описанию функций создания одномерны о вейвлет. Ниже дан синтаксис этих
функций:
wavelet (к, j , k, n, f, [ о, [ т ] ] ) alw< 1 е i (х, (, к . । • 1 . [ , L ' I )
father (к, [ц , kl, з) <l I 1 тг'пс ; ( , т , г , , с 1
тни Llital (х, [ з , kl , з) d т oi I or (.ч , | । )
Все эти функции возвращают значение одномерного (1 D) всивлет-преоб-
разования в любом масштабе и любой то псе. Аргументы функций имеют следу-
ющее назначение:
х — действительное число, обозначающее позицию. в которой возвращается
вейвлет-преобразование;
j — целое число, определяющее масштаб неивлет-преобрдзованпя;
к — целое чиспо, определяющее положение вейвлета;
п— целое число, определяющее роц вейвлет-преобразования;
f — семейство, которому припал нежит вгйв.тет-преобразование;
s - аргумент типа «строка», обозначающий фи 'н.т р, пл котором основано вейв-
лет-преобразование;
о— (необязательный параметр), целое число для ортонормированного семейства
или матрица целых чисел размерностью 1x2 дин биортогоналысого семейства,
определяющее смещение, соответствующее семейству f. Если аргумент не ука-
зан, то берется смещение по умолчанию для семейства f
i - (необязательный параметр), принимает значение 0 или 1 ДЛЯ ортонормиро-
ванного семейства, или матрица размерностью 1x2, чьи элементы являются ну
271
5, Вейвлеты в системе Mathcad
лем или единицей для биортогона л иного семейства, i определяет отмену коэффи-
циенгов широкополосного фильтра, заданных по умолчанию для семейства f.
Нуль не производит отмену, единица - - производит. Если параметр не указан, то
отмены коэффициентов не происходит.
Теперь рассмотрим сами функции Преобразования:
wavclel (х, j, k, n, f, [о [,! i)J —возвращает значение в точке х п-
ого пакета вейвлет-преобразования в положении к и масштабе j, соответствующих
фильтру f. Аргумент f — обмане» одна из встроенных вейвлет-фувкций, описан-
ных выше,
cllwdvelrt (х, j, к, ц, i, [о [, 1 i) ] — возвращает значение n-ого двой-
ного пакета вейвлет-преобразования в точке х для позиции к и масштаба j, соот-
ветствующих фильтру f. Для ортогональных семейств вейвлет-преобразования
функции л1 д. I et и ulwavelet возвращают одинаковые результаты. Для биор-
тогональных семейств вейвлет-преобразования функции wavelet и diwavelet
возвращают различные результаты.
Аргумент п определяет род вейвлет-преобразования: при г = 0 создается
отцовский вейвлет, при л = 1 — материнский, х указывает позицию вычисления
вейвлет, j — масштабирующий параметр, к — параметр смещения. Apiументыо
и i обеспечивают максимальную гибкость при работе с фильтрами вейвлет-
преобразования и определяются пользователем. Аргумент о влияет на располо-
жение отцовского вейвлет-преобразования вдоль оси х, а аргумент ( влияет ня
коэффициенты ши роки полисного фильтра, а следовательно, па симметрию мате-
ринского вейвлет-преобразования относительно оси х.
5.3.2. Визуализация вейвлетов
Для понимания ocoGeinioi 1 ей вейвлетов и оценки их пригодности для обра-
ботки тех или иных сигналов важное значение имеет визуализация вейвлетов, т. е.
их графическое представление Ниже мы дадим лишь основы и отдельные приме-
ры визуализации вейвлетов, поскольку их набор весьма обширен. Пользователь мо-
жет подобным образом просмотреть любой заинтересовавший его тип вейвлета.
Рис ;> 3 иоказывяес, кик можно создать отцовский и материнский 4-коэф-
фициентныс вейвлеты Добеши Графики этих вейвлетов представлены на этом
рисунке сверху.
Заметим, что двойной отцовский и материнский вейвлеты для биортого-
зоваиием функции dl w.jvel. t. Эю также показано на рис. 5.8 снизу.
Для упрощения процесса создания одномерных родительских вейвлетов
используются функции : 4', hex и гк ' her, создающие отцовское и материнское
вейвлет-преобразования. Функции dlfathei и dlnother создают отцовское и
материнское двойное вейвлет-преобразования. Простое и двойное вейвлет-цре-
образования отливаются для семейств биортогональцых вейвлетов. Например,
существуют отцовское и материнское вейвлет-преобразования для фильтров До-
беши 4, созданные с использованием этих функций (рис. 5.4). На этом рисунке
показаны также (снизу) отцовский и материнский В-сплайновые вейвлеты bs37.
272
5, Вейвлеты в системе Mathcad
Рис. 5.3. Отцовские и материнские 4-коэффициентные вейвлеты Добеши (сверлу)
И В-сплайнопыс вейвлеты типа Bspline(3,7) (снизу)
Строковый аргумент я задает семейство вейвлетов и состоит из аббревиа-
туры и чисел. Возможные значения аббревиатуры, указывающей тип вейвлета,
следующие: d, daub, daubjet, в, symrn, symmJet, c. coif, coif et, bl, bs, Bsplino,
hear. Числа, следующие за аббревиатурой, должны указывать на определенный
вейвлет-фильтр. Например, возможны следующие значения аргумента s: &d4»
для daublet- (4), «symrn 12» для symmlet (12), «ЬаЗЗ» для EspJine(3,3), «haar"
для daublet (2).
Вейвлеты с большими числами в своих именах, такими как 20 или 80 яв-
1 ляются относительно широкими и гладкими. Они удобны для представления
функций и сигналов с плавными изменениями уровня. Вейвлеты с маленькими
числами, такими как 4 или 6, являются более узкими и менее гладкими (и даже
вообще не гладкими). Их целесообразно применять для представления сигналов
с резко выраженными локальными особенностями, например разрывами и пере-
падами, присутствующими у импульсных сигналов.
Заметим, что аргументы j и к целочисленные, поскольку рассматривается
дискретное вейвлет-преобразование. Если яти аргументы опущены, то они при-
нимают нулевые значения. Большие значения j делают вейвлет более широким,
изменение к меняет положение вейвлета.
Результаты построения отцовского вейвлета Добеши 4 с различными зна-
чениями аргумента к приведены на рис, 5.5.
273
5. Вейвлеты в системе Mathcad
6 сплайновые
Рис, 5.4. Отцовский и материнский вейвлеты Добеши 4
и В-сплайноаые вейвлеты bs37
Рис. 5.6 показывает отцовский вейвлет Добеши 4 с различными знача- '
ниями аргумента j, задающего масштаб вейвлетов. Обратите внимание на то,
что при изменении масштаба меняется не только длительность вейвлета, ни и
амплитуда.
274
5. Вейвлеты в системе Mathcad
Рис. 5.7. Отцовский и материнский вейвлеты
d!2и 812
Отцовский и материнский вейвлеты Добеши 12 показаны на рис, 5.7. Там
де показаны отцовский и материнский 12-коэффициентные вейвлеты Добеши с
наименьшей асимметрией и с компактным носителем. По сравнению с вейвлета-
ми Добеши 4 эти вейвлеты имеют существенно более гладкую psi-функцию и хо-
рошо подходят для приближения плавных функций.
275
5. Вейвлеты в системе Mathcad
Заметим, что В-сплаймовые вейвлеты относятся к тину Сииртигональных
вейвлетов. Отцовский и материнский вейвлеты могут иметь степень О (отцов
ский вейвлет Хаара), степень 1 (функция типа треугольника), или степень 2
(квадратичная выпуклость). Различные пары двойных вейвлетов доступны для
каждой пары отцовского и материнского вейвлетов. Двойные вейвлеты имеют;
различную длину носителя.
Отцовский и материнский вейвлеты и их двойные вейвлеты могут быть иб*
ратимы. Возможно использовать функции father и mother в вейвлет-аппрокси-
мации и двойные вейвлеты difather и dimother для вычисления коэффициен-
тов вейвлетов.
5.3.3. Функции одномерного дискретного
вейвлет-преобразоваиия
В пакете Wavelet Extension определен ряд функций прямого и обратного
быстрого одномерного (1-D) дискретного вейвлет-преобразования, составляю,
тих фундаментальную основу вейвлет-преобразований. Различия между функ-
циями состоит в используемых граничных условиях, которые описаны ниже.
Заданные программными блоками в файле wavedef.mcd функции
MaxDWTr.evel (а) и MaxDWTST.evel (а) для заданного вектора преобразуемых
данных а возвращают соответственно максимальный допустимый уровень дис-
кретного вейвлет-преобразования (DWT) и дискретного вейвлет-преобразования
с симметричными граничными условиями (DWTS). Эти функции возвращают1
целые числа.
Для проверки сс работы создадим вектор случайных данных:
I ;- 0 . . 383 Vi != rnd(1)
и вычислим максимально допустимый уровень DWT для вектора V:
J MaxDWTLevel(v) J = 7
Аргументы описанных ниже функций дискретного вейвлет-преобразова-
пня следующие:
а — вектор преобразуемых данных;
п — число уровней вейвлет-преобразования;
f — семейство, которому принадлежит вейвлет;
о — (произвольный), целое число для ортонормированного семейства, или мат-
рица целых чисел размерностью 1x2 для биортогонального семейства, дающее
смещение, соответствующее семейству f. Если значение о не определено, то оно
принимает значение смещения по умолчанию для семейства f.
I (произвольный), принимает значение О или 1 для ортонормированного се-
мейства, или матрица размерностью 1x2, чьи элементы являются 0 или 1, для
биортогонального семейства. Аргумент 1 определяет отмену коэффициентов шц-'
рокополосцого фильтра, заданных по умолчанию для семейства f. Нуль цс про-
изводит отмену, единица — производит. Если параметр не указан, отмены коэф-
фициентов не происходит.
276
5. Вейвлеты в системе Mathcad
Каждая из функций волнового преобразования возвращает вектор, состоя-
щий из преобразованных значений входного вектора. Так, функция
dwt(а,п,f, [о, [i]])
возвращает n-уровневое дискретное вейвлет-преобразование вектора а, используя
кйвлет-фпльтр f. Для периодических граничных условий, значение rows(a)/2" долж-
но быть целым числом. Так как имеется отраничение на значения аргумента уровня,
Mathead генерирует сообщение об ошибках, когда используется слишком большое
внсчсиие аргумента уровня. Так, запись w := dwt (с, 7, daublet (й) ) допустима,
так как значение row(v)/27=3 — целое число. А вот запись w ;=dwt(v ,9 ,daublet(8)) не
допустима, так как значение row(v)/29=0.75 - не целое число. В этом случае второй
аргумент (цифра 9) будет выведен красным цветом •
Функция
idwt(а, л, f,[о,[ i ]1)
возвращает n-уровпевое обратное вейвлет-преобразовацие вектора а, используя
вейвлет фильтр f. Как и в случаев dwt функцией, rows (а) должно быть кратно 2й.
Уровень п должеп быть таким же как и уровень функции dwt.
Функция idwt используется для восстановления исходного векторе из его
преобразования (рис. 5.8).
* -
d«T(v,4,daublet(J)) » z4, daublrifSj)
« l.’t__________________________
Рис. 5.8. Пример прямого и обратного вейвлет-преобразования для вектора
из 384 случайных чисел, показывающий высокую точность реставрации
Полученный вектор равен исходному с точностью до погрешности округле-
ния. Следует отметить, что теоретически вейвлет-преобразование на основе ортого-
нальных вейвлетов гарантирует точное восстановление. На практике, однако воз-
никает небольшая ошибка из-за конечной точности вычислений на компьютере.
Функция
dwts (a, n, f)
• возвращает прямое вейвлет-преобразование с симметричными граничными ус-
. ловиями, а функция
idwts(а,п,f)
.возвращают обратное вейвлет-преобразование с симметричными граничными
условиями.
Преимущество граничных условий состоит в том. что они не имеют ограни-
чений по паритету данных я. Однако, симметричное вейвлет-преобразование
требует использования симметричного вейвлета. Это ограничивает выбор вейв-
летов, Которые можно применять с функциями dwts/idwts биортогональным
спланп-вейвлет Bspline (m, n). Ва1Ые-Ти=тяг1е-вейвлет Ы(п), вейвлет Хаара
daublet 12) .
277
&. Вейвлеты в системе Mathcad
При выполнении прямого и обратного симметричного вейвлет-преобразова-
ния необходимо что бы соблюдалось условие length (a) S 2". Тогда максимальный1
уровень преобразования можно иайти. используя функцию MaxDWTSLevel (а).
Теперь можно непосредственно выполнять вейвлет-преобразование для
вектора данных нечетной длины. Па рис. 5.9 приведен пример, показывающий,
что произвольный вектор нечетной длины может использоваться с симметрич-
ными граничными условиями.
I -0 (2 q, - тсЦЦ
t d'vts(qz2,Bspline(2,^)) x id'vts(r,2,Bspline(3,J)(J
au(|x q|) - 0
Рис. 5.9. Прямое и обратное преобразования с применением симметричного вейвлета
Как и в случае, описанном выше, симметричное вейвлет-преобразование
так же теоретически дает точное восстановление. Когда используется аргумент
уровня в функциях dwts/idwts, который не удовлетворяет описанным выше ог-
эанячениям, появляется сообщение об ошибке:
Функция
awti(а,п,f)
возвращает прямое интервальное вейвлет-преобразование, используя вейвлет на
интервале, вытекающем из конструкций, взятых из Cohen, Daubechies и Vial, а
_dwti (a, n, f) возвращает обратное интервальное вейвлет-преобразование, ис-
пользуя вейвлетз на интервале. Использование интервальных вейвлетов накла-
дывает некоторые ограничения на длину данных. Для одномерных данных, зня-
пение length(a)/2" должно быть целым и должно выполняться соотношение
length(a)/2”>m при использовании функций symmlet (m) или doublet (m).
5.3.4. Одиомериал вейвлет-аппроксимация
Функции waveapprox (у, J, К, filter) и wavedeconp (у, j, к, f 11 ter),
описанные в этом разделе определены в файле wavedef.mcd электронной книги
io применению вейвлетов. Они не являются частью пакета Wavelet Extension
Pack DLL. Функции аппроксимируют или разлагают на составные части сигнал,
используя наибольшие коэффициенты дискретного вейвлет-преобразования.
Аргументы этих функций следующие:
у — вектор действительных чисел, содержащий анализируемый сигнал.
J — целое число, определяющее уровень вейвлет-преобразования.
К — целое число, определяющее число используемых вейвлет-коэффициентов.
filter — семейство вейвлет, используемое для вычисления dwt.
Ортогональная аппроксимация вейвлет-рядом непрерывного во времени
сигнала расчетными соотношениями, приведенными на рис. 5.10.
В этих формулах J — число компонентов множества решений (или мас-
штаб) и к изменяется в диапазоне от 1 до N-2-j. j-ая компонента имеет N-2-j ко- .
278
5. Вейвлеты в системе Mathcad
эффициентов. Коэффициенты Sjks dJ k, ...dIk являются коэффициентами вейвлет-
преобразования, а функции fatherJik(t) и motherj,k(t) — аппроксимирующими
вейвлет-функциями.
Формулы вейвлет-аппроксимации произвольной функции f(t)
ftthir, k(t) ftUietj 5k,К j mother^ fl fathWj k<0dt • 0
5:,) 11 if -)
mother yt)tnoths^ k<O*B6jj'5k,K rAe |fl othewiee
Рис. 5.10. Формулы ортогональной вейвлет-аппроксимации
На практике эти базовые формулы напрямую не используются (как и инте-
гралы Фурье). Вместо этого применяется дискретное вейвлет-преобразование
(DWT), которое выполняет эти вычисления гораздо быстрее, чем в случае вычис-
лений по данным формулам. Однако, они дают представление о математической
сути вейвлет-аппроксимации.
Функция waveapproK (у, J, Kr filter) —возвращает аппроксимацию
эектора у, используя К наибольших коэффициентов J-уровневого вейвлет преоб-
азования с периодическими граничным условиями, используя вейвлет filter. В
процессе вейвлет-аппроксимации выполняется вейвлет-преобразование, коэф-
ициенты сортируются по величине, и зятем они добавляются в обратное вейв-
ет-преобразование в порядке уменьшения величины. Для отображения точнос-
и аппроксимации ошибка воостяновления отображается на графике как
дополнительные используемые коэффициенты.
Использован ие большего числа коэффициентов улучшает аппроксимацию
иуменьшает погрешность.
Функция wavedecomp (у, J, к, filter) —разлашет вектор у, исполь-
зуя вейвлет filter, согласно К наибольшим коэффициентам уровня J dwt с пери-
одическими граничными условиями. Функция возвращает вектор, содержащий
К вложенных векторов. Каждый из векторов представляет собой один уровень
Вейвлет-аппроксимации начальной функции у. Например, элемент О — это
©WT из наибольших коэффициентов.
279
5, Вейвлеты в системе Mathcad
Рис. 5.11. Вейвлет-аппроксимация пилообразной функции ramp
Рис. 5.12. Задание вейвлет-декомпозиции и реконструкции функции
В приведенном ниже примере (рис. 5.11) определена функция ramp, при
веден программный модуль функции и осуществлена вейвлет-аппроксимац
функции ramp.
Пилообразный сигнал подвергается вейвлет-преобразованию, находя
коэффициенты, и обратное вейвлет-преобразование выполняется с испольвов»
нием самых больших коэффициентов. Это все выполняется с использование
функции waveapprox, определенной для наглядности в документе рис. 5.11.
Для осуществления вейвлет-декомпозиции и реконструкуции сигнала п
этапам можно использовать часть документа, показанную на рис. 5.12.
Рис. 5.13 поясняет процесс вейвлет-декомпозици сигнала путем его разд
аденил на вейвлеты разного уровня.
При суммировании этих коэффициентов видно, что сумма приближаете
к начальной функции. Результат поэтапного суммирования вейвлет-составля
щих сигнала показан на рис. 5.14.
Хорошо видно, как график суммы вейвлет-функцйй постепенно прибли
адаетсн к графику синтезируемого пилообразного сигнала.
280
5. Вейвлеты в системе Mathcad
281
5. Вейвлеты в системе Mathcad
5.4. Одномерный кратномасштабный
анализ
5.4.1. Функция крятномасштабиого анализа
Как отмечалось в вводной части Главы 2, ортогональные вейвлеты да
возможность осуществлять кратномасштабный анализ (multiresolution anal
sis). На рис. 5.15 даны основные соотношения для кратнимасштабного анали
формула реконструкции произвольного сигнала и программный модуль’ф
ции шга, осуществляющей этот вид анализа.
Sj(l)- £ Sj к falharj^CI) Dj(t) • £ Jj.k mother],k(t)
w *- dwt(v,J .filter)
Aows(v)-l ♦“ 0
Klwt(put_smooih(Z.J, gBl_Bmooih(w, J)), J, filler)
l2rowe(4-i <-0
|M<J+I-<||> H«t(put_c|elail(Z,qj,дв1_ае1аг!(и,:;))),J,filter)
Рис. 5.15. Средства кратномасштабного анализа
Введенная на рис. 5.15 функция mr а (у, J, filter) выполняет кратном
штабный анализ и аппроксимацию сигнала используя уровень J функции п
мого вейвлет-преобразования dwt. Она возвращает матрицу из (J+1) строк. А
гументы этой функции уже обсуждались ранее. Нулевая строка матри
является гладкой компонентой, а 1-ая строка содержит (J+1-1) детализирующ
коэффициентов. Другими словами, строки матрицы упорядочены Sd, Dj.
При этом Sj(t) и Dj(t) известны как аппроксимирующие и детализирующие ко
фициенты (функции) соответственно.
На рис. 5.16 представлено продолжение документа рис. 5.15. Здесь з
сложный сигнал, характерный для эффекта Допплера — изменения звука
движении источника звука мимо слушателя. Этот сигнал показателен для ве
лет-анализа, поскольку он имеет участки как высокочастотные, так и низкоч
тотные с различной амплитудой.
Рис. 5.17 иллюстрирует декомпозицию исходного сигнала (верхний г
фИк). Показан ряд детализирующих вейвлет-коэффициентов уровня от 1 до 6
аппроксимирующий коэффициент уровня 6. Здесь уместно отметить, что в л
282
5. Вейвлеты в системе Mathcad
Рис, 5.17. Средства кратномасштабного анализа
ратурс и в других пакетах по вейвлетам нередко используется иной порядок ко-
эффициентов — нулевые коэффициенты соответствуют идеально точному при-
ближению исходного сигнала или функции.
283
5. Вейвлеты d системе Mathcad
Рис. 5.17 весьма показателен. Нетрудно заметить, что аппроксимирую-
щий коэффициент 36 и впрямь грубо напоминает выходной сигнал, особенно его
низкочастотную компоненту. Что касается детализирующих коэффициентов, то
и они в чем-то напоминают сигнал, но в локальном приближении, Чем меньше
помер коэффициента, тем более высокочастотные области сигнала в его левой ча-
сти приближаются соответствующим коэффициентом. Отчетливо видно смещ
пие этих коэффициентов (вейвлетов) по о<-и времени и их масштабирование по
средней частоте. Все это находится в хорошем соответствии с определениями
вейвлетов в теоретической части Главы 2.
5.4.2. Аппроксимация на основе
кратиолгасштабиого анализа
Ортш опальная аппроксимация вейвлет-рядом непрерывного сигнала!^)
задается выражением, Приведенным на рис. 5.15. Члены в этой аппроксимирую-
щей сумме включают разложение сигнала на ортогональные сигнальные компо-
ненты Sj(t) и Dj(t) в различных масштабах j. Так как составляющие в различных
масштабах представляют компоненты сигнала f(t) в различных масштабах, вы-
шеупомянутая аппроксимация называется кратнимасштабной (MRA). Ее сред-
ства, включая функцию mrapprox для осуществления законченной кратномас-
штабной аппроксимации, представлены на рис. 5.18.
Рис. 5.18. Средства кратпомаснгтабной аппроксимации
Функция -пгарргох (у, j, filter) — возвращает матрицу, состоящую из
(J+1) строк. Нулевая строка матрицы — аппроксимирующая компонента S, (в
электронной книге по вейвлетам для системы Mathcad ее называют также глад-
кой компонентой) и i-ая строка содержит сумму гладкой компоненты и подроб-
ных компонент начиная с Dj по Dw+I.|), дающих крятномасштабную аппроксима-
цию с уровнем (J—1). Она может быть представлена в виде, показанном на
рис. 5.18 — формула сверху.
Рис. 5.19 даст пример кратномясшгабной аппроксимации сигнала с помо-
щью функции тгарргох. Здесь представлен ряд аппроксимирующих коэффици-
ентов с разными номерами. Нетрудно заметить, чго по мере роста номера наблю-
дается падение точности приближения сигнала. Оно проявляется в виде
подавления высокочастотных компонент сигнала.
284
5. Вейвлеты в системе Mathcad
Рис. 5.19. Средства краткомасштабной аппроксимации
5.4.3. Кратномасгитабиьгй анализ
зашумленного сигнала
А как будет вести себя кратномасштабный вейвлет-анализ для сигналов с
шумами? Для Проверки этого подготовим тестовый сигнал на основе ранее рас
смотренного сигнала с шумом (рис. 5.20).
Теперь выполним кратномасштабный анализ этого сигнала. Его результа-
ты представлены на рис. 5.21. Здесь показан исходный сигнал, 6 детализирую-
щих коэффициентов и шестой аппроксимирующий коэффициент.
Из рис. 5.21 хорошо видно, что детализирующие коэффициенты с малыми
номерами как бы «впитывают» D себя шум и высокочастотные компоненты сиг-
нала. Это позволяет использовать вейвлет анализ для выделения из сигнала шу-
ма. При этом детализирующие вейвлет-коэффициенты ведут себя как система
фильтров высоких частот, а аппроксимирующие коэффициенты как система
фильтров низких частот. Это создает предпосылки к созданию специальных
фильтрующих устройств.
285
5. Вейвлеты в системе Mathcad
Рис. 5.21. Кратпомасштабиый анализ (декомпозиция) зашумлепиого сигнала
5.4.4. Кратиомасштабная аппроксимация
сигналов с шумом
А как будет вести себя кратномасштабная аппроксимация для сигналов с
мом? Ответ на этот вопрос (хотя бы частично) дает рис. 5.22. на котором предст
лена кратиомасштабная аппроксимация сигнала, представленного на рис. 5.20.
286
5, Вейвлеты в системе Mathcad
Рис. 6.22. Кратномасштабная аппроксимация зашумленного сигнала
Из рис. 5.22 можно сделать вывод, что вейвлет-аппроксимация аашумлсп-
иого сигнала позволяет получить разную степень очистки сигналов от шума. Это
достаточно прозаический результат, если не учитывать того обстоятельства, что
при разных видах очистки важное значение играет степень подавления шума
при заданной погрешности восстановления сигнала. К сожалению, оценки атого
в пакете Wavelet Extension нет.
5.5. Двумерное вейвлет-преобразование
5,5.1. Функции создания двумерных вейвлетов
Функции создания двумерных вейвлетов имеют в конце имени окончание
♦2d» и представлены следующим набором:
waveletPd dlwavelet2d father2d
mother2d father2d dlmother2d
287
5. Вейвлеты в системе Mathead
Они возвращают значение двумерного (2D) вейвлег-преобразования в л
бои масштабе и в любой точке. Этн функции, подробно описанные ниже, име
следующие входные параметры:
х — действительное число, определяющее положение вдоль горизонтальной ос
в котором вычисляется вейвлет,
у — действительное число, определяющее положение вдоль вертикальной оси,
котором вычисляется вейвлет,
j — целое число, определяющее масштаб волнового преобразования,
кх целое число, определяющее горизонтальное положение вейвлета,
ку — целое число, определяющее вертикальное положение вейвлета,
щ — целое число, определяющее род вейвлета вдоль горизонтальной оси,
п — целое число, определяющее род вейвлета вдоль по вертикальной оси,
f — семейство, к которому принадлежит вейвлет
s — аргумент строкового типа, обозначающий фильтр, на котором основан вейвл
ds — аргумент строкового типа, определяющий либо горизонтальный, либо в
тикальный, либо диагональный материнский 2-D вейвлет.
Необязательный параметр о — целое число для ортонормироваиного ‘
мейства или матрица целых чисел размерностью 1x2 для биортогоиального
мейства, определяющие смещение, соответствующее семейству f. Если аргуме
нс указан, то берется значение смещения по умолчанию для семейства f.
Другой необязательный параметр 1 определяет отмену (значение 1==1) ко
фициентов широкополосного фильтра, заданных по умолчанию для семейства
При г-0 отмена не производится Если параметр не указан, отмены коэффицие
тов не происходит. Двумерное вейвлет-преобразование создается путем тензора
го произведения горизонтального и вертикального одномерного вейвлета.
Теперь перейдем к Детальному описанию указанных выше функций.
wavelet (x,y,j,kx,ky,m,n,f, [о, [i]]) — возвращает преобразов
ный 2-D вейвлет или вейвлет-пакст, определение которого и пример задан
представлены на рис. 5.23.
В определении двумерного вейвлета где Wn(x) — ото n-ый одномериый(1-
вейвлет или вейвлет-пакет семейства, описанного фильтром f. Когда оба аргум
ты тип равны пулю, функция wavelet2d создает отцовское вейвлет- преобразо
ние. Когда или аргумент ш, или п равны нулю, функция wavelet2d создает ма
ринское вейвлет-преобразование. Четыре возможных комбинации тип приво
к четырем различным типам 2 D вейвлет-преобразований: одному отцовско
вейвлету и трем материнским вейвлетам.
dlwavelet2d (х, у, j , kx, ky, го, n, f, [о, [i] ]) — возвращает преобраз
ванный двойной 2-D вейвлет, определение и построение которого представле
на рис. 5.24.
Изображенный на рис. 5.24 вейвлет представляет собой двумерный 21)
цовский вейвлет при тип равных нулю. При комбинациях т и п со значени
О и 1 получается 4 типа вейвлетов. Их можно получить также используя еле
гощий набор функций.
288
б. Вейвлеты в системе Mathcad
Рис. 5.23. Определение и задание двумерного вейвлета
Рис. 5.24, Определение и задание двойного двумерного вейвлета
father2d(х, у, [ j , кх, kyj , s) — вычисляет значение в точке (х,у) отцовского
вейвлета в масштабе j и с центром в точке (kx,ky), используя семейство вейвле-
тов, заданное параметром S.
mo the г 2d (х, у, [ j , kx, ky) , s) — вычисляет значение в точке (х,у) материн-
ского вейвлета в масштабе j и с центром в точке (kx,ky), используя семейство
ЮЪг 26
289
5. Вейвлеты в системе Mathcad
Рис. 5.26. Отцовский и материнские 2-D вейвлеты
семейства Хаара
вейвлетов, заданное параметром S. Строковый аргумент s, определяющий се-
мейство вейвлетов, состоит из сокращений и чисел. Допустимы следующие со-
кращения для указания типа вейвлетов: d, daub, daublet, s, symm, symndet, c
coif, coiflet, Ы, bs, Bspline, haar. Числа, следующие за сокращениями, должны
быть допустимыми значениями для вейвлет-фильтра. Например: «d4» для-
daublet (4), «symml2» для symmlet (12),«ЬзЗЗ»дляВ5рИпе(3,3) и «haar
для daublet (2) . Аргументы j, kx, и ky — произвольные, по умолчанию рав-
ные нулю.
290
5. Вейвлеты в системе Mathcad
lfather2d(х,у,[j,кх,ку],s) и dlmother2d(х,у,[j,кх,ку],s,ds) — со-
здают двойные родительские вейвлеты. Строковый аргумент ds принимает зна-
чение «V» для вертикального, «Н» для горизонтального, и «D» для диагонально-
го материнского вейвлетов.
На следующем примере (рис.15.25) задано построение отцовского и трех
материнских вейвлетов Хаара, известных также как Daubechies2 («d2»).
Графики этих вейвлетов показаны на рис. 5.26- Они дают наглядное пред-
ставление о виде и характере составляющих 20 вейвлетов.
2-D вейвлеты используются при обработке изображений, матриц, и других
двумерных данных. Свойства, которые делают вейвлеты привлекательными для
анализа одномерных функций, сохранены и для двумерных функций. В частно-
сти, 2-D вейвлеты могут эффективно использоваться для кодирования изображе-
ний и сжатия данных, поскольку требует относительно малого числа коэффици-
ентов для представления изображения.
5.5.2. Двумерное дискретное
вейвлет-преобразование
Двумерное (2-D) дискретное вейвлет-преобразование (DWT) использует те
же функции, которые используются для вычисления одномерного всйвлст-прс-
образования. Заданная программным модулем функция MaxDWTLevel возвра-
щает уровень вейвлета в виде целого числа. Аргументы описанных ниже функ-
ций аналогичны указанным выше. Каждая из DWT функций возвращает
матрицу, содержащую преобразованную входную матрицу. Основные функции
DWT представлены ниже.
dwt(a,n,f, [о, [i] ] ) — возвращает п-уровневое дискретное Прямое вейвлет-
цреобразование матрицы а, используя вейвлет-фильтр f. Заметим, что rows(a)/2"
и cols(a)/2" должны быть целыми числами.
idwt(a,n,f, [о, [1]]) —возвращает n-уровневое обратное вейнлет-преобразо-
вание матрицы а, используя вейвлет-фильтр f. Снова, rows(a)/2'' и со!ь(а)/2"
должны быть целые числа. Уровень п должен быть таким же, как и уровень dwt.
Функция idwt может быть использована для восстановления оригинала изобра-
жения из его dwt.
Пример быстрого вейвлет-преобразования для функции Vbox (определен-
ной как программный модуль) с использованием вейвлета Добеши («d4») пред-
ставлен на рис. 5.27. Функция Vbox представляет довольно сложный рисунок,
имеющий детали в виде тонких и толстых линий.
На рис. 5,28 показано выполнение обратного вейвлет преобразования, поз-
воляющего осуществить вейвлет-реконструкцию оригинала. Восстановленное
изображение представлено на рис. 5.28. Его сравнение с изображением, пред-
ставленным на рис. 5.27, обнаруживает полную тождественность исходного и
преобразованного изображений.
Нетрудно заметить, что погрешность восстановления очень мяла. Теперь
вычислим максимальный уровень DWT для изображения Vbox. с помощью
291
5. Вейвлеты в системе Mathcad
функции MaxDWTT.evel (Vbox) можно вычислить максимальный уровень пр
образования. В нашем случае он равен 7. Оригинальное изображение имеет раз
решение 128x128 пикселей, так что наибольшее допустимый уровень D
равен log2(128) = 7, что совпадает с оценкой, представленной функцие
MaxDWTLcvel.
Рис. 5.27. Прямое двумерное вейвлет-преобразование
Рис. 5.28. Обратное двумерное вейвлет.преобраэование
и реконструкция изображения
292
5. Вейвлеты в системе Mathcad
5.5.3. Двумерная вейвлет-аппроксимация
и интерполяция
На рис. 5.29 представлено определение функции upsample2 (М), которая
обеспечивает удвоение размера изображения, хранящегося в матрице М. На
этом же рисунке показано маленькое исходное изображение и увеличенное
функцией upsample2 изображение, которое используется как тестовое для при-
веденных ниже примеров.
Рис. 5.29. Определение и применение функции
upsample2
Рис. 5.30 дает определение двух вспомогательных и основной функции
waveapprox2d для осуществления двумерной вейвлет-аппроксимацип изоб-
ражений. Эти функции определены в файле wavedef.mcd электронной книги.
Они не являются частью самого по себе пакета Wavelets Extension Pack.
Функция waveapprox2d аппроксимируют на составные части двумерные объ-
екты, используя наибольшие коэффициенты дискретного wavelet преобразо-
вания.
Аргументы основной функции 2-D вейвлет-аппрокенмацни
waveapprox2d(у,J,п,fxlLei)
следующие:
у — матрица действительных чисел, содержащий анализируемый объект,
J — целее число, определяющее уровень wavelet-преобразования,
К — целое число, определяющее число используемых wavelet-коэффнциентов
для восстановления объекта,
Alter — семейство вейвлетов, используемое для вычисления функцией dwt.
293
5, Вейвлеты в системе Mathcad
2-D вейвлет-аппрокснмацня является прямым обобщением одномерной,
аппроксимации. Возможно описание 2-D функция как суммы 2-D вейвлетов с
различными масштабами и положениями.
Mrows(W)-l,cols(W)-l Л
while q < n
W t-
L«- wevesortfW)
y, «- «h»ink(L.i>,W)
idU'tfyr.J .fiheO
Рис. 5.30. Определение функций двумерной вейвлет-аппроксимации
Рис. 5.31. Вейвлет-аппроксимации разного уровня
Приведем пример двумерной всйвлст-аппроксимации. В этом примере вы»
числяется вейвлет аппроксимация для изображения Vbox (рис. 5.81). В первом
случае с параметром J=4 изображение существенно отлично от оригинала.
Но уже прн J=3 восстановленное изображение неотличимо от оригинала. ,
Еще одна функция wavedecomp2d (у, J, К, filter), также заданная про-
граммным модулем, разлагает матрицу у используя вейвлет-фильтр filter н воз-
204
5. Вейвлеты в системе Mathcad
вращает вектор из К вложенных матриц. Каждая из этих матриц представляет со-
бой один уровень вейвлет аппроксимации функции у. Например, элемент 0 — это
IDWT наибольших wavelet коэффициентов.
Суммирование элементов в порядке следования дает все более тонную ап-
проксимацию функции у. Примеры на применение этой функции можно найти в
электронной книге по пакету расширения Wavelet.
5.5.4. Двумерный кратномасштабный анализ
Для ортогональных двумерных вейвлетов также возможен кратномасштаб-
ный анализ, в частности изображений. На рис. 5.82 представлено задание основ-
ной функции такого анализа mra2d.
dwt^vj.filter)
Do«- id’»Kput_emooth2drZ.J.get_emooth2d(w,J)) J .filter)
Рис. 5.32. Задание функции кратномасштабнпгп двумерного анализа
Функция
mra2d(у, J,filter)
возвращает вектор из (J+1) вложенных матриц. Нулевой элемент вектора пред
ставляет собой гладкую компоненту, а его i-ый элемент содержит (Д+1-1)-ый по-
дробный элемент. Другими словами, элементы вектора следуют в порядке Sj,
Dji • ••, Б,. Каждый детализирующий элемент на уровне j представляет собой
сумму вертикального, горизонтального и диагонального подробных элементов
на уровнеj.
Полный кратпомасштабный 2-D анализ с уровнем J разбивает изображе-
ние на 3J+1 двумерные функции. Эти функции можно определить как гладкое
изображение, вертикальное детальное изображение, горизонтальное детальное
изображение и Диагональное детальное изображение, соответственно. Эти изоб-
ражения вместе с оригинальным изображением представлены на рис. 5.33.
295
5. Вейвлеты в системе Mathcad
Рис. 5.33. Пример кратномасштабного вейвлет-анализа изображения
Структура данных функции mra2d представляет собой вектор из(Л 11) вло-
женных матриц. Нулевой элемент — это гладкая компонента, другие J элемен-
тов — детализирующие компоненты Dj, .... Dp Заметим, чти коэффициенты Sj,
DJA, Dj4I» D.i,u могут быть так же вычислены с помощью функций get_smooth2d
и get_detail2d.
5.5.5. Двумерная кратномасштабиая
аппроксимация
Двумерная кратномасштабиая аппроксимация задается функцией mrap- -
prox2d(у,J, filter) и уравнением реконструкции. Они представлены на,
рис. 5.34.
Что бы видеть, как аппроксимация множеством решений изменяется с
увеличением уровня, вычислим и построим ее для ранее представленного изоб-
ражения (рис. 5.35). На полученном изображении легко наблюдать все большую
подробность в последовательно восстановленных изображениях. Увеличиваю-
щаяся точность наиболее отчетлива видна в диагональных линиях. В конечном
уровне получается точное восстановление оригинального изображения.
Приведенные примеры свидетельствуют о больших возможностях приме-
нения вейвлет-преобразований в технике обработки и представления реальных
изображений.
296
5. Вейвлеты в системе Mathcad
U «- TLf42d(y.J1fiIte^
Рис. 5.34. Функция и уравнение кратномасштабной вейвлет-аппроксимации
Рис. 5.35. Полученное изображение для уровней приближения So, Stl S21 S3
5.6. Вейвлет пакетные преобразования
5s6sls Функция пакетного
вейвлет-преобразования wpt
Как отмечалось в главе 2, пакетные вейвлеты получаются, если процесс
дробления в алгоритме Малла применять не в отношении ФНЧ, а в отношении
ФВЧ. Это приводит к возникновению новых вейвлетов, которые и образуют па-
кетный вейвлет.
Функция
wpt(а, Ь, f, [о, [1] ] )
вычисляет 1-D и 2-D пакетное вейвлет-преобразование для данных с периодиче-
скими граничными условиями. Здесь:
297
5. Вейвлеты в системе Mathcad
а — массив данных для преобразовании;
Ъ — скалярная величина, дающая число уровней вейвлет-преобразования, или
матрица из 2 или 3 столбцов, представляющая вейвлет-пакстный базис, на кото-
ром вычисляется преобразование;
f — семейство, к которому принадлежит вейвлет.
Назначение параметров о и i уже отмечалось.
У1-я11[о15я1О24 (tj3]
Рнс. 5.36. Создание таблицы пакетного вейвлета
для заданной функции
Рис. 5.36 показывает применение функции wpt для создания таблицы
вейвлет-пякетов. В качестве оригинального сигнала для преобразования взята си-
нусоида с линейно-нарастающей Частотой (ее график представлен на рис. 5.36).
Внизу представлен расчет разности между пулевым уровнем разложения и самим’
сигналом. Эта разность рання О, так что можно считать, что данный уровень де-
композиции сигнала и есть сам сигнал.
5.6.2. Визуализация таблицы пакетных
вейвлетов
Визуализация таблицы пакетных вейвлетов с разными уровнями декомпо-
зиции представлена на рис. 5.37. Каждый уровень приближения имеет N коэф-
фициентов и разделен на блоки различного уровня. Уровень О, как отмечено, вос-
производит первоначальный сигнал. Уровни от 1 до 6 отображены на рис. 5.37.
Заметим, что низкочастотные коэффициенты показаны на левой стороне табли-
цы, а высокочастотные — ня правой. Вейвлет пакетный коэффициент — это к-ый
коэффициент в b-ом блоке j-ой строки. Коэффициенты масштабируется е помо-
щью множителей — элементов вектора А. Ось х показывает индекс коэффициен-
та для каждого уровня.
298
5. Вейвлеты в системе Mathcad
Рис. 5.37. Визуализация таблицы пакетных вейвлетов
5.6.3. Другие функции пакетных
вейвлетов
Функция wpts (a,b, f) вычисляет 1-D и 2-D пакетные вейвлеч-преобрази-
вания для данных с симметричными граничными условиями. Польза этих усло-
симметричное вейвлет-преобразование требует использования симметричных
Bspline (m, n), Battle-Lemane вейвлеты bi (п) и вейвлеты Хаара daublet (1).
Функция wptl (a, b, f) осуществляет 1D и 2D пакетные преобразования, ис-
пользуя вейвлеты на интервале.
Рис. 5.38 показывает примеры применения функций wpts и wptj для обра-
ботки шумового сигналя. Из них видно, что нулевой уровень вейвлет-декомпози-
ции сигнала повторяет сигнал, что дает нулевую ошибку.
. - 0 . 383 v-пмКР
I -0 333 v - md(l)
Т - «TUCv.3.Bs|Mlin(2.T)j
Т “ wptKv.3.symmlet(8))
»«(|T0-V|)-0
Рис. 5.38. Примеры применения функций wpts и wpti
299
5. Вейвлеты в системе Mathcad
5.в.4. Функции для работы
с уровнями пакетного базиса
Функция create_level (n, d) создает d-мерный вейвлет пакетный базис,'
охватывая систему всех вейвлет-пакетов уровня п. В двумерном случае, вейв-Л
лет-пакеты уровня п производят одномерные (1-D) вейвлет-пакеты в каждом на*
правлении. Результат, возвращенный уровень create_level определяет это мно-
жество двумерных (2-D) вейвлет-пакетов, где нулевой столбец показывает
уровни, столбец 1 — горизонтальные параметры колебаний, а столбец 2 — вер-
тикальные параметры колебаний.
функция wovebs (n, d) создаст d-мериый вейвлет пакетный базис с п уров-
нями, соответствующий вейвлет-преобразованию. Так как материнское wavelet
представляет собой вейвлет-пакет с индексом 1, wavelet базис включает в себя
пакет с индексом 1 на каждом уровне в дополнение к отцовскому вейвлету (па-
кет с индексом О) на последнем уровне.
Примеры применения функций create_lcvcl(п,d)и wavebs (п, d)
представлены на рис. 5.39.
Рис. 5.39. Примеры применения функций
create_level и wavebs
В двумерном случае, вейвлет-базис на каждом уровне составлен из грех
функций базиса: произведения материнского в х и материнского в у; произведе-
ния отцовского в х и материнского в у; и произведения материнского в х и отцов-
ского в у. В конечном уровне мы должны прибавить произведение отцовского в х
и отцовского в у для получения завершенного базиса.
300
5. Вейвлеты в системе Mathcad
5.6.5. Визуализация пакетного базиса матрицы
Функция pgr idplot (b,n), определенная в электронной книге по пакету, сп-
адает наглядный график вейвлет пакетного базиса матрицы b для уровней О,1,.. и.
Параметр b представляет собой матрицу базиса вейвлет-пакета с двумя столбца-
ми. Для каждой строки в матрице b нулевой столбец показывает уровни, а пер-
вый столбец отображает параметры колебания, которые могут поменяться от
Одой"-! (рис. 5.40).
Рис. 5.40. Примеры визуализации пакетного базиса матриц
е помощью функпди pgridplot
Для просмотра графика нажмите [Ctrl] Т на клавиатуре или выберите
пункт Picture из меню Insert. График, созданный функцией pgri dpi ot, позволя-
ет оценивать допустимость базиса. Что бы некоторый выбранный базис был допу-
стимым, необходимо и достаточно что бы каждый столбец на графике (показан
ниже) был использован, но и что бы дважды не использовался любой столбец.
5.6.6. Наилучший алгоритм нахождения базиса
Пакетные алгоритмы легко оптимизируются путем улучшения их струк-
туры (базиса или дерева). Функция best_basis (Т, f) создает паилучший базис
для выбранного пакетного вейвлет-преобразования из вейвлет пакетной табли-
цы Т. Базис считается наилучшим, если он минимизирует функцию стоимости f.
301
5. Вейвлеты в системе Mathcad
Типовая функция стоимости это функция энтропии entropy (х) . В это
функции используется наилучший базисный алгоритм для выбора оптимальн
го базиса из вейвлет пакетной таблицы, который автоматически осущестзля
вейвлет-преобразование с учетом особенностей сигнала. Пример представлени
базиса с помощью описанной выше фупкцпи pgridplot (Ь, п), представлен
рйс. 5.41.
Вы можете также извлечь наилучший базис с помощью функции extract
basis (w, b) . На рис. 5.41 определение функции энтропии и оценка погрешности
реставрации для различных вариантов вейвлет-преобразований с использование
ем функции extract_basis. Примененная для этого функция iwpt обратного па-'
кетного вейвлет-преобразования будет описана далее в разделе» посвященном об-'
ратным пакетным вейвлет-цреобразованиям.
На рис. 5.42 доказана еще пара примеров применения других алгорит*
мов улучшения базиса с применением иных критериев: на основе функций
thresh и abs (абсолютное значение). Задание этих функций приведено в этих
примерах.
Функция bas_s_disjjlay2d (Ь) создает матрицу для графического пред-
ставления двумерного (2D) Наилучшего базиса Ь. Определение этой функции
представлено на рис. 5.43.
302
5. Вейвлеты в системе Mathcad
Рис. 5.42. Пример улучшения базиса по критериям,
заданным функциями thresh и abs
Функция DasicSlsplayPacke<2cl
Bw.sDisplayPs k»l2d(bjevel,'ow.rnt) * Q *- b*sis_djtpl4y2d'fa; Grow» *— rows(Qj Gaols <- cols(® for i € Ocols 0 , Gaols * 2 Ocols - 1 jlsvel jfevel jlsvel f Gr I0* rott' Gr s 2 Cr row' + ' 1 Q «- ! ч
Рис. 5.43. Определение функции ba8is_display2d
303
5. Вейвлеты в системе Mathcad
Рис. 5.45. Примеры применения функции best_basic (начало)
level:- 2 tsvr “С col—О Q BaeuDiepleyPecketSdfbij^^.level.row.col) 1
w*M)-l еоЦМ)-!
X S (“J
—i—2-----I—2----—--- RMS/vbot - vbot-J 6 462 * 10
tewefM) cubfM) ‘
Рис. 5.46. Примеры применения функнии best_basic (конец)
304
5. Вейвлеты в системе Mathcad
Для иллюстрации работы этой функции рассмотрим тестовый пример,
приведенный на рис. 5.44. В нем дано представление заданной ранее (рис. 5.27)
тестовой функции Vbox. Обратите внимание на применение в этом примере
функции scale, определение которой дано на рис. 5.33.
Если вы создаете документ с упомянутыми (или иными) функциями, опре-
деленными в виде программного модуля, то Вы должны не забыть перенести их
в свой документ и расположить до их первого применения.
Примеры применения функции best_basic для создания наилучшего па-
кетного вейвлет-базиса показаны на рис. 5.45.
На рис. 5.46 представлен конец фрагмента документа, начало которого да-
но на рис. 5.45. Эти примеры дают лишь отдельные фрагменты изображения, ре-
ставрируемого с применением алгоритма получения наилучшего базиса.
В конце фрагмента документа рис. 5 46, представлена оценка погрешнос-
ти восстановления изображения, которую можно признать исчезающе малой.
5.6.7. Другие функции для работы
с базисами
Отметим еще ряд функций, используемые при работе с базисами:
extract basis (Т,Ь) извлекает коэффициенты вейвлет-накетиого базиса Т.
Она может использоваться как для двумерных, так и одномерных вейвлетов
Пример применения этой функции дан в конце рис. 5.46.
evalbs (w, b, f) — применяет скаляр или опредепенную массивом функцию f к
каждой полосе нейвлет-пакетных коэффициентов в w с базисом Ь. Возвращаемое
значение — это матрица, чьи строки описывают полосу, к которой применялась
функция f.
appl/bs (w, b, f) — прикладывает определенную массивом функцию f к каждой
полосе вейвлет-пакетных коэффициентов в w с базисом Ъ. Возвращаемое значе-
ние — это массив такой же размерности как и w, чьи полосы были заменены зна-
чением f на первоначальных полосах.
Для вычисления таблиц пакетных коэффициентов задана функцией
evaltbl (Т, f). Другая функция applytbl (Т, f) прикладывает определенную
Массивом функцию f к каждой полосе вейВлст пакетной таблицы Т. Возвращаемое
значение — ото новая вейвлет пакетная таблица такой же размерности как и Т,
чьи полосы являются результатом применения I к полосам Т.
Примеры применения эгих функций просты и потому не приводятся. Их
МОЖНО найти в электронной книге по пакету Wavelet Extension Pack.
5.6.8. Обратные вейвлет-пакетные
преобразования
По аналогии с преобразованиями Фурье wavelet-преобразования могут
быть прямыми (рассмотрены выше) и обратными. Ряд функций служит для осу
ществления обратных пакетных преобразований. Ниже представлены эти
функций.
305
5. Вейвлеты в системе Mathcad
iwp t (w, b, filter [, о [, i] ] ) — выполняет обратное пакетное вейвлет преобр
зование массива данных w, базиса Ь (в виде матрицы с 2 или 3 столбцами, зад
ющей таблицу базиса) и для фильтра filler. Пример применения данной фунв
ции дан в конце рис. 5.46.
iwpts (w,b, filter) — выполняет обратное wavelet пакетное преобразовали
данных с симметричными граничными условиями. Аргумент задания фильт
filtei должен быть симметричным фильтром, таким как Ы или Bspline и
uaublet (2).
iwp 11 (w,b,filter) выполняет обратное пакетное вейвлет-преобразование, ис
пользуя вейвлеты на интервале. Аргумент filter должен быть интервальны
фильтром от symmict (-4) до symmict (16) или от doublet (4) до doublet (6).
5.7. Дискретные косинусные
преобразования (DCT)
5.7.1. Основные определения
DCT
Дискретное косинусное преобразование (DCT) — важное и широко исполь-
зуемое средство анализа сигнала и обработки изображения. DCT особенно ценна
дпя кодирования и сжатия данных, оно составляет суть JPEG и MPEG алгорит-
мов для сжатия данных. Подобно дискретному преобразованию Фурье (DFT),
DCT определяет ортогональное преобразование, которое преобразует сигнал а
временной области в частотную. Однако, в отлитие от преобразования Фурье,
DCT является Преобразованием с действительными числами, не включающем
комплексные числа, усложняющие вычисления.
Косинусное преобразование Фурье (FCT) g(co) сигнала f(t) задается в виде,
представленном на рис. 5.47.
Дискретное косинусное преобразование — дискретная версия этого урав-
нения. Обычно используются 4 типа ортогональных дискретных косинусных
преобразования: DCT-I. DCT-II. DCT-III и DCT-IV. В пакете Wavelet используют-
ся дискретные косинусные преобразования типа II и IV. На рис. 5.48 представле-
ны определения программных модулей для функций, относящихся к этим пре-
образованиям.
Рассмотрим примеры использования этих преобразований. На рис. 5.49
представлены дискретные косинусные преобразования для косинусоидальной
зависимости и для константы со значением, равным 2.
Оба косинусных преобразования показывают наличие характерного «звона». ’
306
5. Вейвлеты в системе Mathcad
Рис. 5.47. Определения дискретного косинусного преобразования Фурье
Функции для DCT-IV и DCT-IV
idrt2(£
Рис. 5.48. Определения функций дискретного косинусного преобразования
307
5. Вейвлеты в системе Mathcad
Рис. 5.49. Примеры дискретного косинусного преобразования
для косинусоиды и константы
5.7.2. Локальные косинусные преобразования
Для повышения эффективности представления функций при вейвлет-пре-
образоваииях введены особые локальные косинусные преобразования. Их ло-
кальный характер облегчает представление и прсобраоовапий функций, состав-
ленных из отдельных «кусков» и позволяет надеяться иа представление таких
функций малым числом коэффициентов.
функция let (a, n, f) вычисляет n-уровневое локальное косинусное пре-
образование данных в а, используя так называемый тайпер данных f. Локаль-
ное косинусное преобразование по существу является версией блочного дискрет-
ного косинусного преобразования. В блочном преобразовании массив данных а
разбивается в последовательность блоков данных равного размера, которые за-
тем индивидуально преобразуются в соответствии с типом IV DCT (рис. 5.50).
Функция cpt (а,п) — это сокращенная версия функции let с тайпером типа
trig (определен чуть ниже).
На рис. 5.51 показан сложный тестовый сигнал для демонстрации блочно-
го преобразования. Этот сигнал представляет собой 4 пачки синусоидальных ко-
лебаний с разной частотой, объединенных в одно колебание.
308
5. Вейвлеты в системе Mathcad
Блоки ОСТ
блок уровня 0 I I
Блок уровня 1 ' I «41 I
Блок уровня 2 -3.0 | №11 | "11 | "И
Рис. 5.50. Блоки дискретного косинусного преобразования типп IV
Рис. 5.51. Тестовый сигнал для демонстрации блочного преобразования
Рис. 5.52. Примеры блочного преобразования
Результат блочного преобразования представлен на рис. 5.52 для двух бло-
ков уровня 0 и 1. Любопытно отметить, что наиболее информативная часть гра-
фиков, представленных на рис. 5.52 приходится па моменты перехода пачек из
одной в другую.
309
5. Вейвлеты в системе Mathcad
Результат блочных преобразований может быть улучшен с помощью рас-
смотренных выше алгоритмов и функций для поиска лучшего базиса. Для бдоч
ного преобразования пример поиска н визуализации наилучшего базиса пред-
ставлен на рис. 5.53.
Сравнение результатов такого поиска представлено нарнс. 5.54. На нем
обозначены пороги, используемые в процессе поиска.
Рис, 5.53. Поиск и визуализация наилучшего базиса при блочномо преобразовании
5.7.3. Тайлеры для локального
косинусного преобразования
Отличием let от других блочных DCT является то, что декомпозиция дан-
ных не является простым разбиением части данных. Вместо этого используются
специальные сглаживающие окна, использующие так называемые тайперц
box, poly 11 poly2, poly3, рл|у4, и trig. Их аналитические описания представлены
на рис. 5.55.
ИО
5. Вейвлеты в системе Mathcad
Как видно из рис. 5.55 тайперы отличаются прежде всего гладкостью и
шириной переходной области. Лишь у одного тайпера box ширина переходной
области бесконечно мала.
5.7,4. Обратное локальное косинусное преобразование
В пакете Wavelet Extension имеется также функции обратного локального
косинусного преобразования. Функция ilct (w, n, b, £; осуществляет обратное
косинусное пакет-преобраэованнс базиса локальных косинусных функций, со-
держащихся в косинусной packet-таблице w. описанной базисной матрицей Ь.
Напомним, что результатом прямого локального косинусного преобразования
let является косинусная пакетная таблица. Таблица несет в себе избыточное
описание сигнала, часто бывает необходимо найти не избыточное множество ко-
эффициентов из таблицы, а базис косинусных packet-коэффициентов.
Функция ilct(w,n,b) имеет аргумент п, который является числом уров-
ней в let функции. Он может быть больше чем число уровней, представленных
в базисе Ь. Она также требует задания тейпера f, который используется в let
функции. Функция iept является сокращенной версией функции ilct с задан-
ным по умолчанию тейнером tri у.
5.7.5. Использование тайперов
в локальном косинусном анализе
Вы можете увидеть специфику использования тайперов с функцией let
выполняя няилучпгую базисную аппроксимацию сигнала, представленного на
рис. 5,56.
311
5. Вейвлеты в системе Mathcad
Рис, 5.56. Тестовый сигнал для DCT с тайперами
Следующий пример показывает, как можно восстановить сигнал, исполь-
зуя только 20% коэффициентов из локального косинусного преобразования.
Пример использует сигнал с разрывами (рис. 5.56), что бы наглядно показать
точность восстановления сложных сигналов, трудно поддающихся точному опи-
санию с помощью рядов Фурье. Начпсм решение данной задачи с поиска наилуч-
шего базиса (рис. 5.57).
Рис. 5.57. Поиск наилучшего базиса и его визуализация
для локального косинусного преобразования
Рнс. 5.58 задает выделение и сортировку коэффициентов косинусных пре-
образований. завершая это вычислением обратного локального косинусного пре-
образования и оценкой ошибки реставрации сигнала выполняет. При этом ис-
пользуется тайпер tng.
Рис. 5.58 показывает результат восстановления исходной функции (она
также показана на рисунке пунктиром). Приходится вновь констатировать, что.
как и в случае преобразований Фурье, ограничение числа коэффициентов при
вейвлет-преобразований (по аналогии с ограничением числа гармоник) ведет к
заметному искажению неходкой временной зависимости сигнала. Стало быть,
преимущества вейвлет-преобразоцаннн в данном случае заключаются не в прян-
312
5. Вейвлеты в системе Mathcad
Рис. 5.58. Поиск наилучшего базиса и его визуализация для локального косинусного
преобразования с тайпером trig
ач ьо<ч
Рис. 5.59. Поиск наилучшего базиса и его визуализация для локального косинусного
преобразования с тайпером box
313
5. Вейвлеты в системе Mathcad
ципиальиом и полном устранении недостатков преобразованиях Фурье, а ли
в меньшей среднеквадратичной погрешности восстановления функций (и сигна-
лов). График погрешности для приведенного примера дан на рис. 5.58 снизу.
Как и следовало ожидать, погрешность особенно велика в местах разрыва
исходной функции. Тем не менее, вычисление среднеквадратичной погрешности
показывает, что даже в данном случае она невелика (около 0.4%).
Итак, если большинство коэффициентов удалено, то в восстановленной
функции или в сигнале присутствует эффект, напоминающий эффект Гиббса,
наблюдаемый при Фурье-синтезе сигналов. Хотя не совсем верно приписывать
обнаружение этого эффекта при вейвлет-синтезе сигналов Гиббсу, мы (хотя бы
ради уважения к открывателю этого эффекта) Оставим за ннм это название и в
с пучае вейвлет-синтеза сигналов.
Гели повторить эту же процедуру с тайиером box, то эффект Гиббса также
будет проявляться (рие. 5.59). Однако, в этом случае погрешность в точках раз-
рыва сигнала оказывается заметно меньшей. Это связано с тем, что тайперЬох
лучше приспособлен для представления разрывов, чем другие тайперы из-за сво-
ей. малой по длительности, переходной области.
ПРИМЕЧАНИЕ___________________________________________________
Итак, к сожалению, можно констатировать, что аффект Гиббса не удается пода-
вить и при использовании вейвл ет-преобразований сигналов, Что указывает на
фундаментальный характер данного эффекта, существование которого в прин-
ципе. похоже, не зависит от базиса, на основе которого осуществляется восста-
новление функций и сигналов. Тем не менее, восстановление сложных сигна-
лов с помощью вейвлет-преобразований зачастую обеспечивается с заметно
меньшей погрешностью, чем с помощью обычных Фурье-преобразований.
5.8. Дополнительные возможности
пакета Wavelet Extension
5,8.1. Удаление И1умов у сигналов
установки ЯМР
Наряду с применением вейвлег-преобразований в технике интерполяции,
аппроксимации и приближения сигналов возможно их применение В традицион-
ных для преобразований Фурье областях — фильтрации, обработке и сжатии сиг-
налов и изображений. При этом в силу локальности вейвлет-преобразований наи-
лучшие результаты можно ожидать при преобразованиях сложных сигналов.
Примером эффектной очистки реальных сигналов от шума является обра-
ботка данных с установки для исследования ядерно-магнитного резонанса
(ЯМР). Данные ее работы представлены в векторе пшт. На графике (рис. 5.60) от-
четливо видна заметная шумовая компонента данных.
С помощью функции wave bin. ink (у, filter), использующей для фильтра-
ции ограничение детализирующих коэффициентов, можно существенно умень-
314
5. Вейвлеты в системе Mathcad
шить уровень шумов, сохранив достаточно сложный характер сигнала от установ-
ки. Желающие детально разобраться с алгоритмом очистки шума этим методом
могут рассмотреть программный модуль функции waveshrinfc, представленный
ва рис. 5.61.
для исследования ядерно-магнитного резонанса
«^•„hnnKy.ffl.oO - J *—MuOWTL,v,l(yj w +- d'vl(y.1,filler) !<-! ioe>ngth(y»
a «- mtdranllw - median*iri I1 Jmar 4- if(J > 2.1 - 4.J) for js « 1 Jrw ld^ t- get_detail(w,js)
dg t— delts_shnnk^,cj
yr*- irnn<w,I,niter)
Рис. 5.61. Программный модуль функции waveshrink
5.8.2. Адаптивные методы
очистки от шума
Более сложные методы обработки сигнала могут базироваться на адаптив-
ных алгоритмах, предусматривающих выбор наилучшего базиса и отсечение ча-
сти детализирующих коэффициентов в соответствии с особенностями сигнала.
При этом возможно задание различных типов порогов для отсечения вейвлет-
коэффициентов. Они представлены на рис. 5.С2 своими передаточными характе-
ристиками.
315
5. Вейвлеты в системе Mathcad
Рис. 5.62. Задание различных типов порогов
Рис. 5.63. Задание сложного сигнала bumps н выполнение
над пнм прямого вейвлет-преобразования
Особое название получили два тина нелинейных порога: «мягкий» или в
с горизонтальной зоной нечувствительности передаточной характеристики
«жесткий» или hard — с горизонтальной зоной нечувствительности и двумяр
рывами по вертикали. Функция задания мягкого порога приведена иа рис. 5.6
а жесткого порога задана в виде программного модуля.
316
5t Вейвлеты в системе Mathcad
Для демонстрации возможности очистки сигналов от шума с этими порога-
ми сформируем сложный сигнал bumps* как это показано на рис. 16.63.
Используя фильтр Койфлета coiflet. выполним прямое вейвлет’преобразо-
вание с помощью функции dwt с выбором иаилучшего базиса. Графики функции
bumps и прямого вейвлет-преобразования представлены иа рис. 5.64.
Рис. 5.64. Задание сигнала bumps с примесью шума и выполнение
над ним прямого вейвлет-преобразованни
hard_shrlnk и waveshrink_hard
317
5. Вейвлеты в системе Mathcad
Для задания жесткого порога и очистки сигнала от шума на его основе слу-
жат функции hard shrink и waveshrink_hard. Их программные модули пред-
ставлены на рис. 5.65.
Итак, все средства удаления шумов представлены. На рис. 5.66 показаны
результаты очистки сигнала bumps с шумами с помощью вейвлет-прсобразова-
ния с «мягким» и «жестким» типами порогов. Большие возможности в реализа-
ции этой операции дает выбор различных типов вейвлетов.
Рис. 5.66. Результаты очистки зашумленного сигнала bumps вейвлет-методами очистка
с разными типами порогов и оптимизацией Базиса
К сожалению, точно оценить степень очистки в данном примере не удаетс
и он носит чисто иллюстративный характер.
5.8.3. Время-частотные диаграммы
Вейвлет-анализ сигналов может эффективно использоваться для иденти-
фикации особенностей сложных сигналов и функций. Но для этого нужны соот-
ветствующие инструментальные средства, дающие наглядную визуализацию ре-
зультатов вейвлет-анализа. К ним принадлежат время-частотные диаграммы.
Для построения таких диаграмм используется функция tfPlotFromWCT.
Она обеспечивает получение время-паототной диграммы с помощью пакетных
вейвлетов. Пример построения такой диаграммы для зашумленного сигнала в
виде синусоиды с повышающейся во времени частотой представлен на рис. 5.67.
Как видно из построенной диаграммы (рис. 5.67 снизу), она представляет,
собой набор прямоугольников, расположение и размеры которых задается струк-
турой вейвлет-коэффициентов, а их яркость задается значением коэффициентов.
318
5. Вейвлеты в системе Mathcad
Рис. 5.67. Пример построения время-частотной диаграммы зашумленной
синусоиды с нарастающей во времени частотой оптимизацией базиса
К сожалению техника время-частотной вейвлет-визуялизации пакета
avelet Extension значительно уступает таковой для пакета расширения
avelet Toolbox системы MATLAB и даже описанной в Главе 1 технике такой ви-
ализации из пакета Signal Processing системы Mathcad. В электронной книге
о пакету Wavelet Extension имеется ряд других примеров с разными типами
йвлетов.
5.8.4. Компрессия изображений
Весьма актуальной является задача сжатия реального файла с изображени
и воспроизведения сжатого изображения. На рис. 5.68 представлены загрузка
айла с изображением командой READBMP, построение изображения по его ма; •
иде L и выполнение wavplat-ггреобрязований для двух случаев: выделение 10% и
% коэффициентов wavelet-разложения изображения. Отметим, что исходный
йл lena.bmp должен быть расположен в основной директории диска С.
Как видно из рис. 5.68 при использовании 10% коэффициентов (степень
мпрессии 10) полученное изображение почти неотличимо от исходного
рис. 6.89). Но при использовании 1% коэффициентов (степень компрессии 100)
ажения уже довольно заметны. Тем не менее, даже в этом случае можно рас-
иотреть лицо юной дамы, портрет которой взят за основу преобразуемого изоб-
319
5. Вейвлеты в системе Mathcad
ражения. Это свидетельствует о высокой эффективности вейвлет-компрессик.
Изображения с высокой степенью сжатия могут найти широкое применение, на-
пример, для их передачи по Интервету, в системах видеосвязи с ограниченной
пропускной способностью и т.д.
Рис. 5.68. Пример компрессии и реставрации изображения
5.8.5. Функции вставки и извлечения полос
Мы рассмотрели большинство встроенных функций пакета Wavel
Extension Pack и ряд функций, заданных в электронной книге, сопровождаю!!!
этот пакет. Для полноты картины его описания отметим еще ряд функций; Пре
де всею — это функции (для одномерного и двумерного случаев) «вставки полосы»
put_srnootb (w, 1 , у)
put_subband2d (M,, 1, m, n, N)
put_rif=t-ail2d (M, 1, N, ds)
у u c_subband(w,1, п, у)
put_dctail(w, 1, у)
pur smooth2d(М, 1, N)
Эти функции заменяют определенные блоки wavelet packet коэффицие
тов в векторе W или матрице М содержимым вектора у или матрицы N в зави
мости от размерности функции. Такой блок коэффициентов именуется как лол
са. Аргументы этих функции следующие:
W — одномерные (1D) коэффициенты wavelet packet преобразования, М —дв
мерные (2D) коэффициенты wavelet packet преобразования, I — уровень тр»бу
мого блока (полосы) коэффициентов, гп и П — индексы требуемого блока коэфф
циентов и у — вектор новых значений для коэффициентов в блоке, N — матри
новых значений для коэффициентов в блоке и ds — строка, обозначающая то
зонтальную, вертикальную Или диаюнальную материнскую полосу.
320
5. Вейвлеты в системе Mathcad
Извлечение и вставка псдпалос • пример 1
v - READPRH(’»ev«lrtpm‘) w-dwt«(v.4,SspUne(3,T)) Оригииэл И ПВП
Рис. 5.69. Примеры выделения и вставки подполос
в одномерной случае
Рис. 5.70. Примеры выделения и вставки подполос
в одномерном случае
Есть также аналогичные функции для извлечения полосы:
get_snbband(w,1,n) get_smooth(w, 1)
get_detail(w,1) get_subband2d(M,1,m,n)
get_smooth2d(M,1) get_detai!2d(M, 1,ds)
11 3» 26
331
5. Вейвлеты в системе Mathcad
Рис. 5.69 иллюстрирует применение этих функций в двумерном варианте.
В нем из файла wavelet.prn используются данные для задания вектора v исход-
ного сигнала. Затем прямым дискретным вейвлет-преобразованием создается
вектор w. Из него с помощью функции get_subband извлекаются подполосы и
полученному вектору вновь задается имя W. После этого с помощью функции
qet_smooth создается еще один вектор wf со сглаженными данными. После об-
ратного вейвлет-преобразования создается два новых вектора: х — со вставлен-
ными подполосами без сглаживания и Xf — со сглаживанием. Рисунок снизу по-
казывает графические засисимости исходного сигнала v и новых сигналов из
векторов X и xf.
В другом случае (рис. 5.70), в качестве исходного сигнала берется нулевая
матрица М. Путем манипуляций с субполосами массива случайных чисел N со-
здается два варианта матриц (М и М2) для которых строятся 3-D графики поверх-
ностей, представляющих значения элементов матриц. Они представлены снизу
рис. 5.70.
5.8.6. Двумерная интерполяция
Помимо 2-D аппроксимации имеется возможность и двумерной интерпо-
ляции. Для этого служат следующие функции:
waveterp2d (х, у, v, j, п, in, f j.1 ter) — осуществляет периодическую wavelet
двумерную интерполяцию.
swaveterp2d (x, у, v, j, n, m, filter) — осуществляет симметричную wavelet
интерполяцию.
С достаточно простыми примерами применения этих функций можно оз-
накомиться в электронной книге по пакету Wavelet Extension Pack.
Итак, мы завершили рассмотрение пакета Wavelet Extension Pack н элек-
тронной книги по нему. .Это рассмотрение было достаточно подробным и деталь-
ным, хотя оно не претендует на исчерпывающую полноту. Пользователю, заин-
тересовавшемуся этим интересным пакетом расширения, рекомендуется
внимательно познакомиться со всеми примерами из электронной книги по дан-
ному пакету, поскольку многие из них отличны от описанных в этой главе, а не-
которые вообще не упомянуты ил-ла ограниченного объема данной книги.
322
Глава 6. Работа, е пакетом
Wavelet Explorer
6.1. Пакет Wavelet Explorer для СКМ
Mathematiea 4/4.1
6.1.1. Назначение и место
пакета Wavelet Explorer
Система компьютерной математики Mathematiea [30] является мировым
лидером среди систем символьной математики (компьютерной алгебры) и разде-
ляет это лидерство с другой системой этою же класса Maple 6/7 [31]. Последние
версии Mathematiea 4 и, особенно, Mathematiea 4.1, содержат значительно усо-
вершенствованные алгоритмы численных вычислений, что сделало их подлинно
универсальными системами, одинаково пригодными для выполнения аналити-
ческих вычислений и численных расчетов [30].
Для системы Mathematiea 4/4.1 разработано свыше двух десятков внеш-
них пакетов расширения, среди которых видное место занимает пакет Wavelet
Explorer, содержащий средства венвлет-технологии обработки сигналов и изоб-
ражений. Этот пакет выполнен как документ системы Mathematiea и хранится в
виде файла Wavelets.m в директории MathApps. После инсталляции пакета все
его функции становятся определенными и доступными, а в справочной базе дан-
ных формируется раздел, соответствующий этому пакету расширения и пред-
ставляющий собой типичную электронную книгу с «живыми» примерами. Ни-
же, впервые в нашей литературе, дано полное описание пакета Wavelet Explorer
системы Mathematiea 4/4.1.
ВНИМАНИЕ____________________________________ ___________
Благодаря заданию пакета в виде файла (документа системы Mathematiea)
возможно детальное знакомства с реализацией всех входящих в него функ-
ций. Для этого достаточно просмотреть файл Wavelets.m в любом текстовом
редакторе, поддерживающем текстовый формат. Несомненно такая возмож
ность порадует тех специалистов, которые хотели бы всерьез освоить и усо-
вершенствовать вейвлет-технологию обработки сигналов и изображений.
6.1.2. Загрузка пакета Wavelet Explorer
Загрузка пакета расширения Wavelet Explorer осуществляется из команд-
ной строки вводя системы командой:
Needs [ ’’Wavelets ' Wavelets ' ” ]
333
6. Работа с пакетом Wavelet Explorer
ВНИМАНИЕ__________________________________________________________
Команда загрузки пакета Wavelet Explorer обязательно должна выполняться
в начале работы с любыми примерами этого пакета, иначе заданные в нем но-
вые функции нельзя использовать. Однако, подготовленные с помощью его до-
кументы можно просматривать в среде системы Mathematica и без пакета рас-'
ширення Wavelet Explorer, но нельзя их модернизировать и запускать заново.
По обилию функций, а главное по возможностям графической визуализа-
ции их работы, пакет Wavelet Explorer уступает пакету Wavelet Toolbox системы
MATLAB 6.0/6.1, но, тем не менее, он содержит почти все возможности, необхо-
димые для работы с вейвлетами и осуществления вейвлет-преобразований.
После загрузки пакета в окне справки системы Mathematica по пакетам
расширения Add-ons в первом же окне четырехступенчатого тематического ка-
талога появляется раздел Wavelet Explorer и раскрывается список разделов эле-
ктронной книги по этому разделу. На рис. 6.1 показан вид окна справки и элек-
тронной книги по пакету Wavelet Explorer открытых по разделу Introduction
(Введение). К сожалению, оправка и электронная книга написаны на англий-
ском языке. Тем не менее, видно, что описание начинается с представления уже
известных нам данных о вейвлетах и их свойствах
Рис. 6.1. Окно справки и электронной книги системы Mathematica 4
по разделу Introduction
Рубрикация электронной книги и ее теоретический материал, в основном,
соответствует сведениям, представленным в главе 2 данной книги. Характер при-
меров подобен описанным в главе 5, посвященной пакету расширения Wavelet
324
.6. Работа с пакетом Wavelet Explorer
Extension Pack систем класса Mathcad. В связи с этим, далее описываются только
новые Функции, которые данный пакет добавляет к почти 2000 встроенных функ-
ций ядра и встроенных пакетов расширения системы Mathematica 4/4.1.Пользо-
вание материалами этой главы предполагает знакомство читателя с СКМ класса
Mathematica, например, по книге [30].
ВНИМАНИЕ____________________ _________________________________
Разработчики пакета Wavelet Explorer предупреждают, что прн обработке на
нем изображений компьютер должен обладать достаточным резервом памяти
н достаточно мощным микропроцессором (желательно Pentium II и выше).
Следует однако помнить, что этот пакет рассчитан на отработку математичес-
ких методов вейвлет-технолонии, а не на реальную обработку сложных сигна-
лов, тем более таких, как высококачественные изображения, получаемые с
помощью сканеров или цифровых фото- и кинокамер.
6.1.3. Работа с Mathematica 4/4.1
U работой системы Mathematica 4/4.1 можно познакомиться по книгам
[26, 30 ]. Здесь мы отметим лишь, что эта система имеет многооконный интер-
фейс (рис, б.З), причем все окна выводятся отдельно, могут перемещаться по ра-
бочему столу Windows и меняться в размерах.
Рис. 6.2. Работа с системой Mathematica 4
В позиции Palletes меню File имеются команды для вывода палитр матема-
тических спецзнаков. Две такие панели показаны на рис. 0.2 справа. С помощью
этих панелей и с помощью клавиатуры в строки вввода вводятся исходные выра-
325
6. Работа с пакетом Wavelet Explorer
женин, после чего нажатием клавиш Shift+Enter они исполняются. Результат
поступает в строку вывода. Имеется множество форматов ввода н вывода, но мы
будем отдавать предпочтение стандартному математическому формату, при ко-
тором формулы в документах выглядят естественно.
Большинство расчетов в данной главе иллюстрируется прямо в тексте, пу-
тем копирования объектов (документов Mathematiea) в буфер и переноса его
содержимого в текст рукописи книги. Рисунки показываются отдельно, хотя в
документе Mathematiea они формируются в строках вывода документов (им. ок-
но документов на рис. 6.2 слева).
6.2. Работа
с вейвлет-фильтрами
6.2.1. Основные типы вейвлет-фильтров
Как и в других программных средствах для работы с вейвлетами в пакете
Wavelet Explorer вейвлеты задаются своими фильтрами. Основные типы вейв-
лет-фильтров пакета Wavelet Explorer следующие:
HaarFilterfl —Хаара;
DaubschiesFilter [п] иDaubechiesFilter[n. prec) —Добеши;
1 eastAsymmetricFilter[n] и LeastAsymmetricFiltcrГп, prec] —фильт-
ры с минимальной ассиметрией;
CoiflctFilter[n] и Coif letFilter [n, prec] —Койфлета;
ShannonFi 11 er [ kmax] —Шеннона;
MeyerFilter [n, kmax] —Мейера;
pplinefcliter [n, kmax] —сплайновый фильтр;
BiorthogonalSplineFilter [n, nt] — биортогональпый сплайновый фильтр
порядка
В фильтрах используются следующие параметры:
п порядок фильтра;
prec — число знаков чисел после десятичной точки, с которыми идут вычисле-
ния коэффициентов фильтра;
kmax — индекс, начиная с которого стартует итерационный процесс определе-
ния фильтра.
Все приведенные выше формулы создают списки коэффициентов гас или
иного фильтра, которые можно вывести в строки вывода и использовать для про-
ведения вейвлет-прсобразований. Формат вывода следующий:
((h_m,.h_m4i,...,h_m-L-i}. -m}
где m>0, -m — стартовый индекс и L — длина фильтра. Для ассиметричных
фильтров Добеши т-О и L—2N, а для фильтров Койфлета m=N и L=3N.
326
6. Работа с пакетом Wavelet Explorer
ВНИМАНИЕ____________________________________________________
Хотя ограничений на порядок фильтров в пакете Wavelet Explorer нс задано,
следует иметь ввиду, что работа фильтров высокого порядка может быть неус-
тойчивой и, как правило, требует задания большего количества знаков для
вычислений и их результатов — параметр prec (точность).
6.2.2. Примеры вычисления
коэффициентов вейвлет-фильтров
Приведем достаточно простые примеры вычисления коэффициентов филь-
тров для вейвлета Хаара, Добеши 4 и др. (обозначения вейвлетов и их парамет-
ры вполне очевидны):
HaarFilter[]
DaubcchiesFilter[4]
((0.230378, 0.714847, 0.630881,
-0,0279838, -0.187036, 0 030S414, 0.032883, -0.01J59/4', 0)
Daubechie*Fili,cr[5,12]
({0.160102, 0.603829, 0.724309, О 148428, -0.242295,
-0.0322449, 0.0775715. -0 00624144, -0.0125808, 0.00333573), 0)
Precision[%]
16
Least AsymmetricFilterf 11]
((0.000489264, 0.000110535, -0.0063896, -0.00200347,
0.0430002, 0.0352668, -0.144602. -0.204625, 0.23769, 0.733344, 0.572023,
0.0971984, 0.0228327, 0.0699768, 0.0370374, 0.0240808, -0.00985793.
0.00b5125, 0.000500353, -0.00173437, 0,0000387947, 0 000171/221. (I I
CoifletFilter[2]
(1-0.0727326, 0.337898, 0.852572, 0.384865, -0.07273/6, 0.0156557), -2
CoifletFiltcr[2,l«J
(I-O.o/2/32Ы95125264 48, 0 33789/0024 57401770, 0.85757202021160042,
0.384864846864857747, -Q.0/2/326.9512526448, -0.0156037281357919925 I , -2)
ShannonFilter[2]
MeyerFilter[4, 4]
((0.0284837, 0.135765, -0.0318665, 0.4457ПЗ,
0.740179, 0.445203, -0.0318665, -0.135765, 0.0284837), -4)
327
6. Работа с пакетом Wavelet Explorer
SpIineFilter[5, 4]
((0.0294/42, -0.129269, -0.03/02, 0.442463,
0.747234, 0.442463, -0.03/02, -0.129269, О.0294742), -4)
Виортогональный сплайновый фильтр возвращает коэффициенты без их
преобразования в обычное десятичное число с плавающей точкой:
BiorthogonalSplineFilterfl, 3]
1 ’ 1 2-^2 ' 2V2 ' 2^2 ' 2V21 ' 11 ' 1 ' 4V2 ' 4-J2 ' W21 ' 1
Для вычисления их в форме числа с плавающей точкой можно воспользо-
ваться следующим выражением:
MapAt[N. #, {1} ]& /@ %
(((-0.353553, 1.06066, 1.06066, -0.353553), -1),
((0.176777, 0.53033, 0.53033, 0.176777) -1)
Эти примеры не требуют особых комментариев. Надо лишь отметить, что
последние нули в результатах вычислений отсекаются.
Для преобразования НЧ-фнльтра в ВЧ-фильтр можно использовать функ-
цию HiglipdbbFilLe£ [hl. Это демонстрирует следующий пример:
IIighpassFilter[CoifletFiIter[4]]
((0.000720549, 0.00182321, 0.00561143, -0.0236802, -0 0594344, 0.0764886.
0.417005, -0.812724, 0.38611, 0.0673726, -0.0414649, -0.0163873), -6)
6.3. Вычисление масштабирующих
и вейвлет-функций
6.3.1. Функции ScalingFunction и Wavelet
Если НЧ-фильтр h является фильтром FIR (с копечпой импульсной харак-
теристикой КИХ). то масштабирующая функция вычисляется на основе извест-
ного выражения:
0(0 - Ькф{2с - к)
к
Для вычисления масштабирующей и вейвлет-функций в пакете Wavelet
Explorer используется пара вычисляемых рекурсивно функций низкого уровня:
W2n(t) = -/2^ h,Wn{2t - к)
= AS g„Wn(2t - k)
328
6. Работа с пакетом Wavelet Explorer
При этом в ортогональном базисе функция w0(t) есть масштабирующая
функция, a Wj(t) — вейвлет-функция, а функции указанные выше образуют па-
кетный вейвлет.
Для вычисления масштабирующих и вейвлет-функций в пакет Wavelet
Explorer включены следующие функции:
ScalingFuricLion [h, jmaxl — вычисляет значение масштабирующей phi-
функции для k/2*jmax парных точек, используя фильтр h.
Wavelet [h, jmaxl — вычисляет значение материнского вейвлета (psi-функ-
ции)для k/2*jmax парных точек, используя фильтр h.
При вычислении масштабирующей функции можно задать ее интерполя
цию в области от twin до tmax с помощью опции InterpolationDomain
>(train, tmax }. Можно также применять опцию Interpolation -> True или
False. При отказе от обратного преобразования используется опция
InverseTransform -> False.
Следующий пример показывает задание масштабирующей функции для
вейвлета LeastAsymmetricFilter с малой ассиметриеЙ и построение графика
этой функции при аргументе, равным (2t-l) и t:
phi - ScalingFunction[LeastAsymmotricFilter [51, 7, Interpolation •> True]
PIot[{phi[tlphi[2t-U), {t,0,8),PIotRange-> AH, PlotLabel-> ’phi(2t-l) Hphi(t>"]
На рис. 6.3 показаны построения графиков масштабирующей функции
для этого примера. Хорошо видно перемещение графика функции phi(t) по оси
времени и его сжатие во времени при использовании аргумента (2t—1) вместо t.
Рис. 6.3. Две масштабирующие функции для вейвлета LeastAsymmetricFilter
Теперь рассмотрим задание функции psi(t) на примере вейвлета Добеши
порядка 4:
d4- DaubechiesFiIter[4]
{(0.23U3/8, 0.714847, 0.630881, -0.0279838,
-0.18/035, 0.0308414, 0.032883, -0.0105974), 0)
psilist = Wavelet[d4, 10]; ListPlotf psilist, AxesLabe] •> {"t”, ’‘psl(t)"},
PIotRange->AII]
339
6. Работа с пакетом Wavelet Explorer
Построенный по этому примеру график зависимости psi(t) представлен на
рис. 6.4. Здесь отчетливо видно существенное отличие «малой волны» от моду-
лированной синусоиды и резкая ее несимметрия нарастания и спада.
Рис. 6.4. Функция psi(t) для вейвлета Добегли порядка 4
Следующие команды позволяют построить две функции psi(t) для вейвле-
та Добеши с разным расположением по оси t и разным параметром масштабиро-
вания:
psi = Waveletfd4, 5, Interpolation -> True]
InLeipolaLxiiyFimcLiuii 11 (-100/, 100.}}, <>)
psi[0.5]
1 .04365
P]ot[{psi[tj, psi[2t*2j), {t. -1, 3), PlotRange •> All,
PlotLabel -> ' psi(t) and psi(2t-2)"]
Это иллюстрирует сдвиг и масштабирование для функции psi данного
вейвлета (рие. 6.5). Указанные свойства вейвлет-функции (или просто вейвлета)
детально обсуждались в главе 2 и подобные примеры приводились для пакетов
расширения других СКМ — MATLAB и Mathcad.
Рис. 6.5. Демонстрация сдвига и масштабирования
для функции psi(t) вейвлета Добеши порядка 4
Характер перемещения и масштабирования psi функции тот же, что и для
рассмотренной выше pili-функции. Он сиитветствуюет свойствам вейвлетов, опи-
санным в главе 2.
330
6. Работа с пакетом Wavelet Explorer
6.3.2. Построение графиков функций
для биортогонального сплайнового вейвлета
Для построения масштабирующей и вейвлет-функции биортогонального
сплайнового вейвлета зададим такой вейвлет с именем ЪЗЗ и вычислим кго нор-
мированные коэффициенты:
Ь33=* BiorthogonaISpIineFi]ter[3,31;
Ь33=* MapAt[N, #, {1}]& /@ЪЗЗ; блокирует вывод промежуточных цифр,
которые не очень нужны.
Теперь для построения графика одной из двух масштабирующей функции
такого вейвлета (рис. 6.6) воспользуемся следующими командами:
ListPlot[SealingFunction[b33, 7], PlotJoined -> True, PlotRange •> All,
PIotLabel •> "phi_b33(t)“]
Рие< 8<6. Первая масштабирующая функция биортогонального
сплайнового вейвлета ЪЗЗ
Для построения графика одной из двух вейвлет-функции данного вейвлега
зададим команды:
ListPlot[Wavelet[b33, 7], PlotJoined •> True, PlotRange •> АП,
PIotLabel •> “psi_33(t)‘]
Полученный при исполнении этих команд график представлен на рис. 6.7.
Рис. 6.7. Вейвлет-функция биортогонального сплайнового вейвлета ЪЗЗ
331
в, Работа с пакетом Wavelet Explorer
Как видно из рис. 6.6 и 6.7 представленные функции имеют очень слож-
ную структуру. Можно лишь поражаться, что математический объект такого вн-
да можно использовать для анализа самых различных сигналов и функций.
Для построения графика второй масштабирующей функции надо исполь-
зовать функцию реверсирования Reverse в составе функции ScalingFunction. Это
иллюстрирует следующая команда:
ListPlotlScalingFunctionlReverse[b33]. 7],
PlotJoined -> True, PlotRange -> All, PlotLabel -> 'dual phi_33(t)"]
Ня рис. 6.8 показан график этой функции, построенный с помощью приве-
денной команды. На этот раз получаем удивительно гладкую и внешне простую
функцию.
Рис. 6.8. Вторая масштабирующая функция биортогонального
сплайнового вейвлета ЬЗЗ
Для построения графика второй из двух вейвлет-функции данного вейвле-
та (рис. 6.9) зададим команду:
ListPlot[Wavelet[Reverse(b33], 7], PlotJoined -> True, PlotRange -> All,
PlotLabel -> "dual psi_33(t)"]
Рис. 6.9. Вторая вейвлет-функция биортогонального сплайнового вейвлета ЬЗЗ
Kale видно из рис. 6.8 и 6.9 вторая пара функций (масштабирующей и вейв-
л₽т-функции) отличается высокой их гладкостью.
332
6. Работа с пакетом Wavelet Explorer
6.3.3. Функция WaveletPacket
для пакетных вейвлетов
Функция WaveletPacket (л, h, jmaxl вычисляет значение пакетного
вейвлета w__n для k/2'jniax парных точек используя фильтр h. Параметр п зада-
ет номер вейвлета.
В приведенном ниже примере задается масштабирующая функция
phi(t)=-w_0(t) для вейвлета Койфлета порядка 10 и строится ее график (рис. 6.10):
cl0~CoifletFilter[10];
phi = WaveletPacket[O, clO, 7, Interpolation -> True];
Plot[phi(t], {t, -4,4), PlotRange -> All, Frame ->True, Axes -> False.
PIotLabel •> "Phi(t) для иейвлета Койфлета с n=10"]
Рис. 6.10. Масштабирующая функция для вейвлета Койфлета порядка 10
Пример применения функции WaveletPackAt для создания первого вейв-
лета с10 представлен ниже (рис. 6.11):
elO’-CoifletFilterflOJ
ListPlot[WaveletPaeket[l, clO. в], PlotRange -> {{-5.5}. All}.
PlotJoined -> True, Frame -> True, Axes -> False, PIotLabel -> "w_l(t)'-l
Рис. 6.11. Первый из вейвлетов пакетного вейвлета
на оеповс фильтра Койфлета
В данном случае построен первый вейвлет пакета, обозначенный как
w_l(t). Для построения второго вейвлета данного пакетного вейвлета е п^2
(рис. 6,6) можно использовать следующие команды:
333
6. Работа с пакетом Wavelet Explorer
ListPlot[WaveletPacket[2, clO, 6], PIotRange -> {{-5, 5), All),
PlotJoined -> True, Frame -> True, Axes -> False, PlotLabel -> ‘'w_2(t)“]
Рис. 6.12 показывает график второго вейвлета, обозначенного как w_2(t):
Рис. 6.12. Второй из вейвлетов пакетного вейвлета
на основе фильтра Койфлета
6.3.4. Пример задания двумерного
вейвлета Койфлета
Построим график поверхности, представляющей произведение phi(x) на
phi (у) для пакетного вейвлета Койфлета порядка л=10 (риг. 6.13):
cl0=CoifletFilter[10];
phi = WaveletPacketlO. clO, 7. Interpolation -> True];
Plot3DlEvaluatelphilx] phi[y]]. {x, -4, 4}, {y. -4. 4}. PlotPoints -> 70, PIotRange
•> All, Boxed -> False, Axes -> False]
Рис. 6.13. График произведения функций
phl(x) и phl(y) в виде поверхности
Представленный в виде поверхности график произведения функций
phl(x) и phi(y) дает образное представление о них. Он иллюстрирует один из спо-
собов задания двумерного вейвлета, применяемого для обработки матриц изоб-
ражений.
334
6. Работа с пакетом Wavelet Explorer
6.3,5. Функции MeyerPhi и MeyerPsi
для вейвлетов Мейера
В отличие от вейвлетов Добеши вейвлеты Мейера и Шеннона и сплайновые
вейвлеты не имеют ограниченного носителя, имеют аналитические выражения и
могут задаваться прямо без рекурсивных процедур — см. главу 2 с подробным их
описанием.
Функции MeyerPhi [n, t, k]HMeyerPsi [n, t, k]—вычислят функ
ции phi(t) и psi(t) для вейвлета Мейера порядка л с суммарными интервалами t с
длиной 2Pi/(3k).
С помощью команды
PlotlEvaluatelMeyerPhi[2, t, 30]], {t, -6, 6},
PlotRarige -> All, AxesLabel -> {"t", "Meyer phi_2(t)"}]
можно построить график функции phi(t) для вейвлета Мейера порядка 2. Он
представлен нарис. 6.14.
Рис. 6.14. Масштабирующая функция для вейвлета Мейера порядка 2
А с помощью команды
PlotlEvaluate[MeyerPsil2,1, 30]], {t, -6, 6},
PlotKange -> All, AxesLabel -=> {"I”, "Meyer psl_2(t)"}]
строится график psi(t). показанный на рис. 6.15.
Рис. 0.15. Вейвлет-функция для вейвлета Мейера порядка 2
Нетрудно заметить, что полученная функция достаточно гладкая и отли-
чается хорощей симметрией.
335
6. Работа с пакетом Wavelet Explorer
6. з. 6. Функции ShannonPhi и ShannonPsi
для вейвлетов Шеннона
Функции ShannonPhi [t ] и ShannonPsi [t] вычислят phi-и psi-функции
для вейвлета Шеннона.
С помощью команды
Plot[ShannonPhi[t], {t, -10,10}, PlotRange -> All,
AxesLabel •> {"t", "Shannon phi(t)'-}]
строится график функции phi(t) для вейвлета Шениона (рис. 6.16).
Рис. 6.16. Масштабирующая функция для вейвлета Шеннона
Команда
Plot[ShannonPsi[t], {t, -10, 10}, PlotRange -> All,
AxesLabel •> {"t", "Shannon psi(t)"}]
позволяет построить график вейвлет-функции для вейвлета Шеннона (рнс. 6.17).
Рис. 6.17. Вейвлет-функция для вейвлета Шеннона
6.3.7. Функции SplinePhi и SplinePsi
для ортогональных сплайновых вейвлетов
Ортогональные сплайновые вейвлеты также имеют масштабирующую и
вейвлет-фумкцни:
SplinePhi [n, t, kmaxl —вычисляет масштабирующую Функцию phi(t) для
ортогонального сплайна n-го порядка в виде суперпозиции 2kmax+l В-сплай-
336
8. Работа с пакетом Wavelet Explorer
bob, aSplinePhi[n, t, tol ] — обеспечивает те же вычисления с погрешнос-
тью, не более заданной tol.
SplinePsifn, t, kinax] —вычисляет масштабирующую функцию plii(t) для
ортогонального сплайна n-го порядка в виде суперпозиции 2kmax+l (при п не-
четном) илн 2kmax+2 (при п четном) В-сплайнов.
Команда, приведенная ниже, строит график масштабирующей функции
сплайнового вейвлета порядка 6 (рис. 6.18]:
WotlEvaluatelSplincPhilG, t, 0.02]], {t, -6, 6),
PIotRange > All, AxesLabel -> {"t", "spline phi_6(t)"} ]
Рис. 6.18. Масштабирующая функция для сплайнового вейвлета тесюю порядка
Рис. 6.19. Вейвлет-функция сплайнового вейвлета шестого порядка
Другая команда строит график вейвлет-фупкции сплайнового вейвлета
шестого порядтса (рис. 6.19):
Plot(Evaluate[SplinePsr[G, t, 10]], {t, -G, G),
PIotRange -•> All, AxesLabel > {"t", "spline psi_G(t)")J
6.3.8. Функция BSpline
для построения В сплайна
Еще одна функция BSpline [n, t] задает В-еплайновую функцию beta(t)
порядка п. Пример ее применения представлен ниже (рис. 6.20);
Plot(Evaluate[BSpline[5, t]], {t, -3, 3),
PIotRange -> All, PlotLahel -> "B-spline of order 5"]
337
в. Работа с пакетом Wavelet Explorer
Рис. 6.20. График В-сплайновой функции пятого порядка
Phi и psi функции сплайновых вейвлетов отличаются хорошей гладкостью,
6.4. Анализ масштабирующих
и вейвлет функций
6.4.1. Вычисление производных phi- и psi-функций
Вычисление производных (особенно высших) для вейвлетов различного
типа служат хорошим тестом па выявление их гладкости. Производные порядка
m масштабирующей функции и вейвлет-функции вычисляются по формулам:
= 2т 42 hrfm (2t —А);
<д(т’(0 = 2"‘72£^^(2/-й).
*
Следующие функции служат для вычисления этих производных:
DSea 1 ingFunction [h, jmax, m] — возвращает значения m-ой производной
масштабирующей функции (если это возможно) в k/2*jmax парных точек, ис-
пользуя фильтр h.
'Wavelet- [h, jmaz, m] возвращает значения m-ой производной вейвлет
функции (если это возможно) в k/2'jmax парных точек, используя фильтр h.
Приведенные ниже команды строят производную масштабирующей функ-
ции для вейзлета Добеши порядка 4 (рис. 6.21):
DScalingEunctionIDaubechiesFilter[4], 7. 1]:
TJsfPlofI%, PlotJoined -> True, PlotRange -> All.
AxesLabel -> { "t", PlotLabel -> "phi’(t) ']
Для построения производной вейвлет-функции (рис. 6.22) вейвлета Добе-
ши порядка 4 можно использовать следующие команды:
ListPlot[DScalingFunction[DaubechiesFilteif4], 7, Ц,
PlotJoined -> True. PlotKange -> {{О, 5},A11),
AxesLabel -> {”t ”, PlotLabel -> 'phi (t)"]
338
6. Работа с пакетом Wavelet Explorer
Рис. 6.21* График первой производной масштабирующей функции
вейвлета Добеши порядка 4
Рис. 6.22. График первой проиэводпой вейвлет-функции вейвлета Добеши порядка 4
Заменив значение п=1 в приведенной выше первой команде на значение п=2
можно построить график второй производной выбранного вейвлета (рис.6.23):
UstPlot[DWavelet[DaubechiesFilter[4J, 7S 2],
PlotJoined •> True, PlotRange •> {{-1, 3}s All},
AxesLabel •> {"t", }, PlotLahel •> "psi' (t)"]
Рис. 6.23. График второй производной вейвлет-функции вейвлета Добеши порядка 4
Из приведенных примеров ясно, что вейвлет Добеши порядка 4 Ис являет-
ся гладким. Как правило, гладкость вейвлетов улучшается по мере увеличения
их порядка. Представленный ниже набор команд строит график второй произ-
водной вейвлета LeastAsymmetric порядка 1G (рис. 6.24);
339
6. Работа с пакетом Wavelet Explorer
ListPlotIDWavelet[LeastAsymmetricFilter[16], 7, 2],
PlotJoined •> True, PIotRange -> {{-2, 3}, All},
AxesLabel -> {"t", ’“‘}, PlotLahel -> "psf'(t)"]
Рис. 6.24. График второй производной вейвЛет-функции вейвлета LeastAsymmetric
Очевидно, что данный вейвлет отличается высокой гладкостью. Вообще
говоря, просмотр графиков производных функций вейвлетов позволяет легко су*
дить об их гладкости.
6.4.2. Обзор деталей основных функций вейвлетов
Как видно из представленных выше и в главе 2 данных масштабирующие
и нейвлст-фушсции многих вейвлетов имеют весьма сложную (подчас похожую
па фрактальную) структуру. Это особенно ясно выявляется при просмотре гра-
фиков. производных этих функций. Пакет Wavelet Explorer имеет уникальные
средства для детального просмотра и анализа вейвлетов и их производных, что
может- оказаться весьма полезным при решении специальных задач идентифи*
нации 11’1 калов, функций и образов.
Для детального анализа основных функций вейвлетов служит функция.
Zoom:
Zoom Lj jiiltei, j, {train, tmax } ] - возвращает расширенный спи-
сок значений функции, представленной списком first в интервале значений пе-
ременной t {tiniii, tmax}. Это достигается вставкой 2*j-l точек между adjacent
точками в Hist.
В качестве Примера на использование этой функции для вывода графика
масштабирующей функции биортогонального сплайнового вейвлета ЬЗЗ В узком
интервале времени [2, 2.0002] воспользуемся следующими командами:
ЬЗЗ = BiorthogonalSplineFilter[3, 3];
phi = ScalingFunction[b33,4, InverseTransform -> True];
NesttZoomt#, ЬЗЗ, 5, {2, 2.0002}]&, phi, 3];
ListPlotf%, PlotJoined •> True, Frame -> True,
Axes -> False, FramcLabel -> { "t", "phi(t)’’}, PIotRange -> {0. 3}]
340
6. Работа с пакетом Wavelet Explorer
График масштабирующей функции в этом интервале представлен на
рис. 6.25. Даже в гаком узком интервале отчетливо просматривается фракталь-
ная структура функции.
Рис. 6.20. График масштабирующей функции вейвлета ЬЗЗ в интервале 12, 2.0002]
Как нетрудно заметить, описанное средство хорошо выполняет функции
своеобразной «лупы временив, позволяя просматривать мельчайшие детали слож
вых функций, применяемых в ходе вейвлет-аналиаа.
6.5. Задание и применение
временных окон
6.5.1. Функция WindowFunction й тамперы
При проведении различных преобразований сигналов и изображений ши-
роко используются средства для их ограниченного представления во времени —
временные окна (windows). Вид окна задается некоторой функций, обычно назы-
ваемой тайпером. Применение окон с тайперами, дающими плавные границы
окон, часто минимизирует проявление эффекта Гиббса при спектральном и вейв-
лет-спектральном анализе. Допустимо задавать разные тайперы для нарастания
Е для спада функции окна. Понятие тайпера было введено в главе 5.
В пакете Wavelet Explorer используется следующая функция задания
окон:
Wi ndowFunction It, LJ — задает окно в интервале [0, L) с заданным полиноми
альным тайпером {Polynomial[2], L/4}. В ней возможно применение опции
Options[WindowFunction] =[Taper -> {Polynomiali2],
Automatic)}
В общем случае тайпер задается в виде:
Taper -> { taperfunction, taperwidth )
где параметр taperfunction задает спецификацию функции окна:
Polynomial [п] — полиномиальный тайпер с полиномом порядка и;
Trig[п] — тригонометрическийтайпер порядка п.
Другой параметр taperwidth задает ширину окна.
341
в. Работа с пакетом Wavelet Explorer
6.5.2. Примеры задания временных окон
Начнем с построения функции окна, заданного по умолчанию. График
этой функции (рис. б.26) можно построить с помощью следующей команды:
PJot[Evahiate[WindowFnnction[t, ЯЦ, {t, -1,4},
AspectRatio -> Automatic, PlotLabel -> "Функция окна b(t)"]
Рис. 6.26. График функции текущего окна, заданного по умолчанию
Следующий пример задает построение функции сдвинутого на 1 по време-
ни окна с тайпером, задающим подъем и спад функции окна по синусоидально-
му закону (рис. 6.27):
Plot[Evaluate[WindowFunctioij[t-l, 3, Taper -> {Siu[Pi/2#"3(10-15#+6#"2)]&(
im
{t, 0, 5}, AspectRatio •> Automatic,
Ticks->{ Automatic, {0,1}}, PlotLabel •> "Функция окна b(t)“]
Рис. 6.27. График функции сдвинутого по времени окна с синусоидальным тайпером
В еще одном примере задаются разные тайперы (тригонометрический и по-
линомиальный) для нарастания и спада функции окна (рис. 6.28):
P!ot[Evalnate[WindowFunction[t, 4,
Taper->{{ Trig[3), Automatic}, { Polynomial^], 2}}Ц,
{t, 1, 6}, AspectRatio •> Automatic, Ticks-> {Automatic, {0,1}},
PlulLabel -> "Функция окна b(t}"]
Рис 6.28. График функции окна с разными тайперами для нарастания и спала
342
6. Работа с пакетом Wavelet Explorer
В последнем примере число-параметр в Trig [ 3] задает ширину нарастания
синусоидального подъема функции окна, а число-параметр в Polynomial [5 ] за-
дает ширину полиномиального спада окна. Меняя эти числа-параметры, можно
получить разные несимметричные окна.
6.5.3. Синусные и косинусные пакеты
Для генерации пакетов синусоидальных и косинусоидальных сигналов ис-
пользуются функции:
CosPacketft, L, к) —создает пакет в виде косинусоиды с индексом частоты к.
Пакет располагается в окне текущего типа с интервалом По времени [О, LJ.
SinPacket [t, L, к] — создает пакет в виде синусоиды с индексом частоты к.
Пакет располагается в окне текущего типа с интервалом по времени [О, LJ.
Параметры огибающей пакетов могут изменяться с помощью тайперов,
. как это было описано выше для функций задания временных окон.
В следующем примере задается пакет косинусоидальных колебаний с па-
раметрами окна, заданными по умолчанию, и без сдвига по времени (рис. 6.29}:
Plot[Evaluate[CosPacket[t, 2,15Ц, {t, -1, 3},
AxesLabel”"}, PlotLabel •> "cosine пакет"]
Рис. 6.29. Пакет косинусоидальных колебаний
Рис. 6.30. Пакет синусоидальных колебаний
В другом примере задается пакет синусоидальных колебаний с полиноми-
альным тайцсром н сдвигом во времени на 3 (рис. 6.30}:
343
К. Работа с пакетом Wavelet Explorer
Plot[EvaluatelSiuFacket[t-3, 5, 24, Taper •> {Polynomial^], 2}]], {t, 0,10},
PlotPoiuts •> 35, AxesLabel •> {"t", ””}, PIotLabel •> “sine пакет”]
Наконец, в следующем примере задается пакет синусоидальных колеба-
ний при отключенном задании тайпера, т. е. при вырезке прямоугольным окном
(рис. 6.31}:
Plot[Evaluate}SiuPacket[t, 3,14-1/2, Taper •> False]],
{t. -1,4}, AxesLabel •> {”t”,’ "}, PIotLabel •> -'Siu-lI пакет”]
Рис. 6.31. График пакета
синусоидальных колебаний при отключенном тайпе ре
Полученные с помощью описанных функций пакеты могут использовать-
ся в качестве тестовых сигналов, представляющих радиоимпульсы.
6.6. Основные виды преобразований
6.6.1. Прямое
и обратное вейвлет-преобразования
Для вычисления прямого и обратного непрерывных вейвлет-преобразова-
ним по формулам, представленным в главе 2, служат следующие функции:
л а I et Transform [data, h] — обеспечивает прямое вейвлет-преобразование
данных, представленных массивом data с использованием вейвлет-фильтря h.
'Aovclet Trtnsi orm [data, h, 1’ —обеспечивает прямое нейвлет-преобразова-
ние данных, представленных массивом data с использованием вейвлет-фильтра
11 с остановкой после 1 декомпозиций.
Inver oeWdxeletTrans form [data, h] — обеспечивает обратное вейвлет-преоб-
рязование данных, представленных массивом data с использованием вейвлет-
фильтра h.
В приведенном ниже примере задана таблица случайных чисел н с помо-
щью вейвлета Добеши порядка 1-dl выполняется прямое, а затем обратное вейв-
лет преобразования сигнала, представляющего эту таблицу:
(dl = DaubechiesFilter[l];SeedRandoin[239541];
344
в. Работа с пакетом Wavelet Explorer
data = Table[Random[], {12} ];)
wtdata =• WaveletTransform[data, dl]
((0.624594, 0 832341, 1 28924), (-0.504942, 0.26655, 0 Пбв^З).
(-0.000634042, 0.393714, -0.558592, 0.354764, 0.00736692. -0.619/94)1
WaveIetTransform[data, dl, 1J
((3.08460/, 0./98 /03, 0.777033, 0.400075, 1.0367, 0.736562),
(-0.000634042, 0.393714, -0.558592, 0.354764, 0.00736692, -0.61979'1)'
InverseWaveletTransform[%, dl];
Chop[data-%]
(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0)
MaxIAbs[data-InverseWaveletTraiisforni[ wtdata, dl]]]
3.33067'10 1C
Как нетрудно заметить, имеет место практически полное восстановление
исходного сигнала, а погрешность восстановления ничтожно мала.
В следующем примере аналогичные действии проделаны в отношении дву-
мерной таблицыданных, имеющей 12x12 элементов, при использовании вейвле-
таДобеши порядка 2:
(data2d = Table[Random[], {12}, {12}]’ wtdata = WaveletTransform[da Ui2d, dl];)
Dimensions /@ wtdata
{{3, 3), (3, 3, 3), {3, 6, 6))
UnionlFiattenlChop{data2d — InverseWaveietTransform]wtdata, dlJJJJ
d2=DaubechiesFilter[2]
{{0.482963, 0.836516, 0.224144, -0.12941), 0)
MapAt[-l&, d2, {2}]
((0.482963, 0.836516, 0.224144, -0.12941), -1)
WaveletTransforin[data, %, BoundaryCondition -> Zeru]
{{0.0830269, 0.800584, 1.19738), ( 0.46355C, 0.111292, 0.282018].
(0.370107, 0.0318365, -0.46568, 0.571609, -0.38228, -0.711247]
Chop[data-InverseWaveletTransform[%, %%, BoundaryCondition -> Zero]]
(0.00523853, -О П25739, 0 00148604,
0, 0, 0, 0, 0, 0, 0.0812665, 0.140758, 0.286327)
В последующем, в этой главе мы еще не раз вернемся к описанию возмож-
ностей этих преобразований и рассмотрим дополнительные примеры на их н,ш-
менение. А пока отметим, что хотя представленные примеры кажутся не столь
красочными, как восстановление конкретных сигналов и функций с представле-
нием их графиков, но зато они дают поистине фундаментальные резулыагы —
ведь ие надо забывать, что прямому и обратному преобразованиям подвергаются
случайные массивы чисел — случайные сигналы.
345
6. Работа с пакетом Wavelet Explorer
6.6.2. Кратиомасштабиый анализ
Для проведения кратномасштабного анализа, детально описанного в главе 2,
используется функция:
MKDecomposition [wLclata, filter] — возвращает результат декомпозиции
данных wtdata при использовании кратномасштабного анализа и вейвлет-фнль-
гра filter.
d2=DaubechieeFilter[2J; data = Sin[N[25PiKRange[0, 63]/64)л2];
(wtdata = WaveietTraneformfdata, d2]j mrdata » MRDecomposition[wtdata, d2k)
Length /@ mrdata
(64. 64, 64, 64, 54, 64)
Union[Chop[data — (Pius @@ mrdata)]]
{0}
wtdata — MapAt[#.#&, wtdata, {3}];
details = InverseWaveletTransforml%, d2j; '
Union[Chop[mrdata[[3]] — details]] ’
<0}
Этот пример демонстрирует отсутствие ошибки в ходе прямого и обратно-
го диадного вейвлет-преобразований на базе кратномасштабного анализа.
6.6.3. Графическое представление
вейвлет-коэффициентов
Пакет W avelet Explorer дает довольно скромные возможности в представле-
нии временных зависимостей вейвлет-коэффициентов, получаемых при декомпо-
зиции данных (сигнала) в ходе прямого вейвлет-преобразования. Возможно, разра-
ботчики этого пакета решили, что толку от детального представления множества
сложных временных зависимостей этих коэффициентов не так уж и много.
Для получения графиков вейвлет-коэффициентов используется функция;
Plot-Coefficients [coetsj — строит ряд графиков для вейвлет-коэффициентов.
Вид графика задается опцией построения линий PlotLines, которая может'
иметь значения True или False. При значении True график строится линиями, а
при False — точками. Еще одна опция PlotJoined служит для задания соедине-
ния точек, представляющих дискретные значения вейвлет-коэффициентов. Бе-
ли эта опция имеет значение True, то точки соединяются отрезками прямых, &
при значении False они не соединяются. В последнем случае график временных
зависимостей вейвлет-коэффициентов будет строиться как график дискретных
отсчетов — вертикальными линиями. Для заключения графиков в рамку можно
использовать опцию Frame -> True.
Следующая команда строит графики временных зависимостей вейвлет-ко-
эффициентов после кратномасштабного анализа сплошными линиями
PlutCoefficients[ mrdata, PlotLines -> False, PlotJoined •> True]
346
в. Работа с пакетом Wavelet Explorer
Полученные графики представлены на рис. 6.32.
... -ч/\ДЛлЛл-^Д/
Рис. 6.32. Построение временных зависимостей вейвлет-коэффициентов
сплошными линиями
В другом варианте подобная команда строит подобные графики по точкам
(рис. б.ЗЗ):
PlotCoefficients[mrdata, PlotLines -> False, PlotJoined -> False}
Рис. 6.33. Построение временных зависимостей вейвлет-коэффициентов точками
Наконец следующая команда строит те же графики снрезками -1ер1иколь
еых линий
PlotCoefficients[mrdata, PlotLines -> True, PlotJoined -> False}
Довольно скромный характер графиков временных зависимостей вейвлет-
коэффициентов позволяет заключить, что соответствующие средства визуализа-
ции находятся в пакете Wavelet Explorer в зачаточном состоянии.
6,6,4, Прямое и обратное пакетное
венвлет-преобразоваиие
Для пакетных вейвлетов также возможно прямое и обратное вейвлет-пре-
образоваиия. Соответствующие функции представлены ниже:
WaveleLPacLTiаиьГоггп[data, li] — возвращает результат прямого пакет-
ного вейвлет-преобразования по наилучшему базису, вычисляемому по крите-
рию энтропии, для заданных данных data и фильтра 11.
347
в. Работа с пакетом Wavelet Explorer
Waveletb,acketTransform[dcitd, li, 1] —выполняет ту же функцию, но дл
ограниченного числом 1 количества декомпозиций.
В этих функциях может использоваться опция BestLevel. Она служит для
лания наилучшего уровня декомпозиции для функций WavelelPacketTransform,
3 -iPackeLTxansform, and CosPackctTronsform и может принимать значен
т’г де или False. Значение True означает, что используется наилучшие уровень!
дерево декомпозиции и реконструкции.
Возможно применение также опции CostFunction для указанных паке-
тов. По умолчанию задано ее значение F о г гору, означающее выбор критерия по-
иска лучшего дерева по энтропии.
Для вычисления пакетных вейвлет-коэффициентов служит функция:
WaveleLPacketCoef ficients [data, hl — возвращает пакетные вейвлет-ко-
эффициенты для таблицы данных data, используя фильтр вейвлета h.
WavdetlackcLCocf f rcients [data, h, 1] — делает то же при выполнении!
декампозиций.
Имеется также функция обратного пакетного вейвлет-преобразования: .
PackutTransform[data, hl — дает обратно^ пакетное вейв*
ле-i -преобразование для исходных данных data с применением фильтра h.
В следующем примере показано прямое пакетное вейвлет-преобразованив
дня r-лучлйных данных data при максимальном числе декомпозиций 1=2;
(S<x-(lR.andom[348547J; data=Table[Random[],{8}];)
rl I =DaubecliiesFilter[lJ;
WaveletPacketUoefficientsfdata, dl, 2]
{ । {(j. H>1U63, U.jc7262, 0.429807, 0.622,41, 0.279G35, 0.628021,
9.60’419, 0.75202b)), {[0.366511, 0.744264, 0.64181, 0.960423),
7.-44 Ji. -0 .36425, -) 246346, -0.104211)). {{0 785437, 1.13295),
;- 0..' 672_r_i, -0 225294), (0.0054333/, -0.247895), 10.198367, -0.10049)))
При отсутствии ограничений на число декомпозиций получим:
coef = WaveIetPacketCoefficienLs>[data, dl]
; 10 36.063, 0.137262, 0.429807, 0.622’41, 0.279635, 0.628021,
601419, 0.752825)). {[0 366511, 0.744264, 0.64181, 0.960423 ,
'J.J44109, -0.136425, -0.246346, -0.104221)), {{0. /85437, 1.13295),
(-0.2Г /-11, -0.225294), {0.0543337, -0.24789G), (0.198367, -0.100491),
'( .‘-567 ), (-0.245729), 1 -0.348183 ), (-0.0295696),
1-0.17144/), (0 179131), (0 0692094), (0.211324))
LengtlrfcoefJ-1
3
Как нетрудно заметить, -теперь число декомпозиций увеличилось до трех.
Далее рассмотрим пример на проведение прямого, а затем обратного пакетного
вейвлет-преобразования с опцией BestLevel — > True, обеспечивающей деком-
позицию данных с наилучшим базисом (уровнем):
348
6. Работа о пакетом Wavelet Explorer
VavelelPacketTrarisformfdata, dl, BestLevel •> True]
({1.3565), {-0.245729), (-0.348183), (-0.0295696),
(-0.171447), )0.179131), {0.0692094), {0.211324 )
WaveletPackelTransform[data, dl,
CostFunction -> (IflAbs[#]>0.2,1, 0]&)]
.{(0.785437, 1.13295), 1-0.348183), (-0.0295696),
(-0.171447), (0.179131), {0.198367, -0.10049}) '
Chop[InverseWaveletPacketTransfonn[%, dl] — data]
(3, 0, o, o, 0, 0, 0, 0)
Обратите внимание на го, что в данном случае вычисляется существенно
меньше вейвлет-коэффициентов, чем ранее, и что обеспечена полила рсставра-
,дия данных после выполнения обратного пакетного вейвлет-преобразования.
6.6.5. Графическая иллюстрация базиса
Специальная графическая функция SrtcwBas is Position | coots । служит
ддя наигядной демонстрации ортогонального базиса при одномерном вейвлет-
преобразовании. Получаемый в результате график иллюстрирует равбиен нс про-
станства данных на подпространства в ходе выполнения вейвлет-преобразований
В следующем примере задана структура таблицы базиса для всйвлст-прс-
образования и ее построение (рис. 6.34):
(сошр = {{3,1}, {4, 3}, {4, 4}, {2, 2} }} Apply[coef[[##]]&, comp, {1}])
{0.785137, -.13295), [-0.348183], (-0.0295696),
1-0.144109, -0.136425, -0.246346, -0.1042311)
8howBasisPositiou[% ]
Рис. 6.34. Структура таблицы базиса для вейвлет-преобразования
В другом примере задается построение таблицы базиса для пакетного вейв-
лет*преобразования с использованием критерия энтропии:
Applyfcoe/[[##]]&,{ {4, 1], {4,2}, {3,2}. {2, 2}}, {1}]
Ц1.3565), (-0.245729), (-0.267111, -0.225294),
(0.144.09, -0.136425, -0.246346, -0.104231)}
WaveletPacketTransfonu[data, dl]
((1.3565), (-0.245729), )-0.348183), (-0.0295696),
(0.0054333 /, -0.Z4/896), (0.0692J94), {0.211324)}
349
6. Работа с пакетом Wavelet Explorer
ShowBasisPosition[% ]
Бы можете сами просмотреть эти построения.
6.6.6. Опции вейвлет-преобразований
Б описанных выше вейвлет-преобразовяниях имеется Возможность задания
ряда опций. Некоторые из них уже были рассмотрены. Ниже представлен син-
таксис ряда опций, которые могут применяться в различных преобразованиях:
Options[WaveletTransforml=Options[InverseWaveletTransform)=
Options[MRDecompositionl=Cptions[WaveletРасketCoefficrents>
Options[inverseWaveletPacketTransforml = [BoundaryCondition->
Periodic}
Options(WaveletPacketTransforml =
{BestLevel -> False, Boundarycondition -> Periodic,
CostFunction -> Entropy}
Опция BoundaryCondition может использоваться для различных вейвлет-
и тригонометрических преобразований. Ее возможные значения слудующие*.
Zero (нуль). Reflective (отражение). Fixed (фиксированное) и Periodic (периоди-
ческое).
6.7. Специальные виды преобразований
6.7,1. Локальные синусные
и косинусные преобразования
В пакет Wavelet Explorer помимо вейвлет-преобразоваиий включены сред-
ства некоторых специальных преобразований, которые применяются наряду!
вейвлет-преобразоваииями или даже вместо них. Прежде всего, ото локальные
синусные и косинусные преобразования. В данном пакете они классифицируют-
ся пи виду своих расчетных соотношений, представленных на рис. 6.35,
Следующие функции служат для осуществления преобразований IV-тива:
CosT ran storm (data, nl — возвращает результат прямого косинусного преоб-
разования типа Cos-IV, используя текущее определенное окно для partitioning
data в сегменте с длиной п.
CosTransformf data, {nx, ny} 1 — возвращает результат прямого косинусного
двумерного преобразования.
SinTransform [data, nl — возвращает результат прямого синусного преобра-
зования типа Sin-IV, используя текущее заданное окно для partitioning данных
в сегменте с длиной л.
S inTransf orm [data, {пхлпу}1 —возвращает результат прямого двумерного
синусного преобразования.
inverseCosTransform [data] — обеспечивает обратное косинусное преобразо-
ваниетипа Cos-IV с использованием текущего окна.
350
G. Работа с пакетом Wavelet Explorer
InverseSinTransform[data] — обеспечивает обратное синусное преобразова-
ние типа Sin-IV с использованием текущего окна.
Рис. 6.35. Классификация локальных синусных и косинусных преобразовании
Для этих функций возможно применение опций Basisiype и или
IV. BoundaryCondition -> Periodicn Taper -> [Polynomial_2], 4}.Для
осуществления преобразований П-типа просто достаточно задать текущим пря-
моугольное окно или задать опцию Ba&isType -> II.
Приведенный ниже пример иллюстрирует технику проведения прямого и
обратного локального синусного и косинусного преобразований над данными,
представленными случайными числами:
Needs["Wavelels‘Wavelels‘"]
[SeedRauduui[34958];
data=Table[Random[]. {15}];)
81nTransfonn[data, 5. Taper -> False]
((0.685277, 0.756949, -0.0295241, 0.152116, 0.693752}.
{0.937757, 0.475156, 0.281927, 0.0225539, -0.208153},
(1.41753, -0.241322, -0.0845688, 0.183968, 0.202119}}
Chop[InverseSinTransform[%, Taper •> False]-data]
(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}
CosTransform[data, 5, BasisType •> II]
((0.972879, 0479009, -0.249936, 0.271023, 0.485814),
(1.02594, 0.0328184, -0.151136, -0.293941, -0.249988},
(1.24764, -0.722666, 0.0632075, 0.244208, 0.0954325}}
351
в. Работа с пакетом Wavelet Explorer
CosTransform[data, 5, Taper -> {Trig|lJ, 2}]
{(1.32/93, (J.192835, 0.00163487, 0.Ы3364, 0.26S562),
(U.92284b, -0.312044, -0.149901, -0.366220, -0.118283),
(0.891032, -0.702475, 0.499429, 0.131378, 0.053563))
(idata = InverseCosTransform[%, Taper -> {Trig[l]. 2}];
Cliop[idata-data])
(,, c, o, o, o, o, o, o, o, n, o, o, o, o, 0)
(data‘2 — Table[Random[], {8}, {8}];
ctdata — CosTransform[data2, {4, 4}, Taper •> False];
Dimensions /@ etdata)
( < 4, 41. (2. 4, 4)1
Union|F(atten[Chop[
InverseCnsTransformlctdata, Taper -> False ]-data2]]]
Обратите внимание, что эти виды преобразований обеспечивают практиче-
ски точную реконструкцию произвольного сигнала.
6.7.2. Преобразования Малвара
К преобразованиям П-рода, альтернативным по отношению к Sin-Пи Соа-
11, относится преобразование Малвара (Malvar transform). Прямое и обратное
преобразования Малвара реализуется следующими функциями:
Г4а vnrlr ansform[data, nl — обеспечивает прямое преобразование Малвара,
для одномерного массива данных data в сегменте длиной п, используя при этой
текущее окно.
[п'.ч 1 леМа! vогTransform[data] — обеспечивает обратное преобразоване Мал-
вара с использованием текущего окна.
Возмоятые опции для этих преобразований следующие: BoundaryConditi.cn
E’criodic и Taper -> [Polynomial [2] , 4).
Техника применения преобразований Малвара иллюстрируется следую-
щим примером*
(data = TabIe[Random[], {10}];
Ma]varTransform[data. 5, Taper -> {Polynomial[2], 2}])
{1 >14f-F, -0.250542, -0.122065, -U.lbi735, -0.255526),
11.3414'=, -0.1./309, -0.116444, -0.120624, -0.220199)
Union}Chop[data — InverseMalvarTransform[%,
Taper -> {Polynomial^], 2}]]]
9)
В этом примере для массива из 10 случайных чисел выполняется вначале
прямое, а затем обратное преобразование Малвара с применением полиномиаль-
ного тяйпсра. В конце примера показано, что происходит точная реконструкция
данных с нулевой погрешностью.
352
6. Работа с пакетом Wavelet Explorer
6.7.3. Синусные и косннусные
пакетные преобразования
Для выполнения синусных и косинусных пакетных преобразований
Wavelet Explorer имеет ряд функций, перечисленных ниже:
Cos Packet Trans form [ data, n] — осуществляет косинусное пакетное преобра-
зошшис для данных data с сегментов размера 11. ИСПОЛЬЗУЯ ТйКУШёё ОКНО И НйИ-
лучший базис, задаваемый по критерию энтропии.
CosPacketTransf orm [data, n, 11 — делает то же при ограничении уровня ба-
зиса значением 1.
SinPacketTrans form [data, nJ — осуществляет синусное пакетное преобразо-
вание для данных data с сегментов размера п, используя текущее окно и наилуч-
ший базис, задаваемый по критерию энтропии.
SinPacketTransform [data, n, 1] —делаетто же при ограничении уровня ба-
зиса значением 1.
InverseCosPacketTransf orm [data] — осуществляет обратное косинусное па-
кетное преобразование.
inverseSitiPackeиТхапьГогги[data] — осуществляет обратное синусное па-
кетное преобразование.
В приведенных выше функциях возможно применение следующих опций:
Taper -> [Polynomial [21, Automatic], 3asisType -> II или IV,
BestLevel -> False, CostFunction -> Entropy, BoundaryCondrtrcn -
> Periodic, Taper -> {Polynomial[21, 41.
6.7.4. Вычисление коэффициентов синусных
н косинусных пакетных преобразований
Для получения коэффициентов синусных и косинусных пакетных преоб-
разований используются функции:
CosPacketCoefficients[data, п] — возвращает тябтицу коэффициентов ко-
синусного пакетного преобразования для данных data в сегменте длиной п при
использовании текущего окна.
CosPacketCoeff icients [data, n, 1] —делает то же при ограничении уров-
ня декомпозиции значением!.
SinPacketCoefficients [data, n] — возвращает таблицу коэффициентов ко-
синусного пакетного преобразования для данных data в сегменте длиной п при
использовании текущего окна.
SinPackstCoef ficients [data, n, 1] — делает то же при ограничении уров-
ня декомпозиции зна'сением 1.
353
6. Работа с пакетом Wavelet Explorer
6,7,5, Пример применения
косинусного пакетного преобразования
Поскольку техника применения косинусных и синусных пакетных преоб-
разований идентична, ограничимся примером применения косинусного пакет-
ного преобразования;
(Seedftandom[5647];
data = TabJe[Randum[], {16} ];)
CosPacketCoeffieients[data, 8, 2, Taper •> False]
(((1.62039, -0.131018. 0.494195, -0.383093,
0.66UU1, -0.375'’77, 0.312607, 0.2000821,
{0.928607. -0.23345Я, 0.0113255. -0.215818,
0.334886, 0.162569, 0.0599698, 0.345979]),
((1.371z, -0.163902, 0.3504C3, -0.215C33I.
(0.86914, -0.540372, 0.818573, u.00895602],
{0.679514, -0.358051, 0.440731, 0.0598891),
{0.501 346, -0.220467, 0.201843, 0.30"’364J),
{{1.14135, -0.17047), <0.817321, -0.175051),
{0.567082, 0.219383), {1.Q7979, -0.426487),
{0.454306, 0.0585935), {0.737708, -0.183658),
{0.339151, 0.0752309), {0.541465, 0.'54136)))
(mean = (Plus @@ data)/16;
CosPacketTransformfdata-mean, 8, 2, Taper -> False])
{{0.51589, 0.08B668), {0.101658, 0.3841071),
{0.00132061, -0.235635, 0.6.4954, 0.181576),
(-0.171357, 0.31/751), {0.112045, 0.0705004),
{-0.366473, 0.0842709, 0.00422402, 0.479984))
ShowBasisPosition[% ]
Chop[data-(InverseCosPacketTransform[% %,
Taper -> False ]mean)]
{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, C, o, 0]
Команда ShnwBasisPosition [%] выводит структуру базиса данного пре-
образования, представленную на рис. 6.36,
Рис. 6.36. Структура базиса косинусного пакетного преобразования
354
6, Работа с пакетом Wavelet Explorer
Как обычно, этот пример (см. его конец) демонстрирует возможность точ-
ной реконструкции исходного случайного набора данных.
6.8. Техника улучшенной
визуализации вейвлет-преобразований
6.8.1. Функция PhaseSpaeePlot
Основной функцией, обеспечивающей улучшенную визуализацию вейв-
лет-преобразованией в пакете Wavelet Explorer является функция:
PhaseSpaeePlot [ coef s ] — дает построение фазовой спектральной диаграммы
для одномерных вейвлет, синусных или косинусных коэффициентов в плоско-
сти «частота-время» с использованием функциональной окраски палитрой серо-
го цвета элементов спектрограммы. В этой функции могут использоваться оп-
ции! вывода координатных осей ExchangeAxes -> True или False и задания
логарифмического масштаба LogarithmicScale-> True или False. Примеры
действия этих опций даются в следующем разделе.
ВНИМАНИЕ________________________________________________
К сожалению, даже «улучшенная» визуализация в пакете Wavelet Explorer
заметно уступает таковой в других рассмотренных выше пакетах — Wavelet
Toolbox для систем класса MATLAB и Wavelet Expansion Pack для систем
класса Mathcad. В частности, это обусловлено отсутствием средств цветной
функциональной окраски.
6.8.2. Примеры построения спектрограмм
Зададим таблицу из 40 случайных значений элементов, вейвлет типа Добе-
ши порядка 2 и выполним прямое вейвлет-преобразование данных:
Need [“Wavelets' Wavelets'")
(8eedRandom[1234567];data = Table[Random[], {40}];
d2 = DaubechiesFllter[2];wtdata » WavelelTransformfdata, d2]-.5; Length /@
wtdata)
{5, 5, 10, 20)
Теперь построим спектрограмму вейвлет-коэффициентов (рис. 6.37):
PhaseSpacePlot[wtdata, Frame -> True, FrameTicks -> None,
FrameLabel -> {'“time (время)", "frequency (частота)”}]
С помощью опции LogarithmicScale > True] можно перестроить спетро-
грамму (рис. 6.38), задав логарифмический масштаб:
PhaseSpaeePlot}wtdata, LogarithmicScale -> True]
355
6. Работа с пакетом Wavelet Explorer
Рис. 6.37. Вейвлет-спектрограмма для таблицы, содержащей 50 случайных чисел
Рис. 6.38. Вейвлет-спектрограмма для таблицы, содержащей 30 случайных чисел
е логариымическим масштабом
6.8.3. Функция GrayCodeOrder
Функция GrayCodeOrder [coefs] служит для задания кодон, задающих
уточненное представление значений коэффициентов с помощью оттенков серого
цвета и штриховки различного типа.
Ниже представлен пример визуализации коэффициентов прямого пакет-
ного вейвлет-преобразования для ранее созданной таблицы случайных данных
data:
PhascSpacePlot[GrayCodeOrder[% ], Frame -> True, FrameTicks -> None,
FrameLabel -> {"time (время)", "frequency (частота)' }]
Полученная спектрограмма представлена на рис. 6.39.
356
6. Работа с пакетом Wavelet Explorer
6.8.4. Спектрограммы для синусного
пакетного преобразования
Спектрограммы можно использовать для визуализации разложения сиг
валов на основе синусного пакетного преобразования. Один из примеров этого
представлен ниже:
sinp = StnPacketTransform[data-(Plus @@ data)/40,8, Taper -> False];
PhaseSpacePIot[%, Frame -> True, FrameTlcks -> None,
FramcLabel -ь» {"frequency", "time"}, AspectRatio -> 1]
Полученная спектрограмма показана на рис. 6.40.
Рис. 6.40. Пример построения спектрограммы синусного пакетного преобразования
Обратите внимание на ряд опций. Позволяющих менять вид спектрограм-
мы. Так, е помощью опции ExchangeAxes -> True можно построить спектро-
грамму с переменной ориентацией относительно координатных осей (рис. 6.41):
357
6t Работа с пакетом Wavelet Explorer
6.8,5. Задание рамки
для графика функции ShowBasisPosition
Ранее мы рассматривали графическую функцию ShowBasisPosition, удоб»
ную для табличного представления базиса вейвлет-преобраэований. С помощью
опции FrameoTrue можно на графике этой функции вывести координатные оси
с делениями и оцифровкой. Для этого можно исполнить команду!:
ShowBasisPosition [sinp,Frame->True]
Теперь эту таблицу удобно использовать не только для качественной, но и
для количественной оценки.
6,8.6. Построение изображений
Для визуализации декомпозиции изображений можно использовать ряд
стандартных функций системы Mathematiea. Следующий пример показывает за-
дание тестовой фигуры построения ее изображения (рис. 6.42):
(f[x_, У_1-= 1 /; (2 <= Abs[x] < 3 && Abs[y] < 3)||( 2 <- Abs[y] < 3 && Abs[x] < 3);
f[x_, У J:- 0; data = Table[f[x, y], {x, -4,4-1/8,1/8}, {y, -4, 4-1/8,1/8}];)
ListDensityPlot[data, Mesh -> False]
Рис. 6.42. Изображение тестовой фигуры
Обратите внимание на оцифровку осей изображения тестовой фигуры.
6.8.7. Визуализации коэффициентов
двумерного вейвлет-преобразования
Для визуализации коэффициентов двумерного преобразования служит
функция:
FlotCoef ficients2D [coefs] — дает изображение матрицы коэффициентов
двумерного вейвлет-, синусного или косинусного преобразований с использова-
нием функциональной штриховки и закраски оттенками серого цвета.
358
6. Работа с пакетом Wavelet Explorer
Для демонстрации работы этой функции подвергнем данные data постро-
енной ранее фигуры двумерному вейвлет-преобразованию с помощью вейвлета
Добеши порядка 2 и выведем двумерную диаграмму вейвлет-коэффициентов
разложения данной фигуры (рис. 6.43):
(d2 = DaubechiesFilter[2];pc=WaveletTransform[data, d2, 3];)
PlotCoefficients2D[PC]
Рис. 6.43. Диаграмма двумерного вейвлет-преобразования «жирного» квадрата
6.8.8. Визуализация структуры
базиса двумерного вейвлет-преобразования
Для визуализации структуры ортогонального базиса двумерною вейвлет-
преобразования служит функция ShowBasisPosxtion2D [coe£s ]. Пример се
применения представлен ниже (рис. 6.44):
SbowBasisPosition2D[pc, AspectRatio •> l.FrameoTrue]
Рис. 6.44. Структура базиса двумерного вейвлет преобразования для вейвлет-преобра-
зования, показанного на рис. 6.43
359
6, Работа с пакетом Wavelet Explorer
Приведем еще один пример:
wpt=WaveletPacketTransform[data, d2, 3, BoundaryCondition -> Zero];
ShowRa4isPosition2D|wpt, AspectRatio -> l,Frame-^True]
На этот раз использовано пакетное прямое вейвлет-преобразование изобра-
жения, представленного на рис. 6.42. Структура базиса для этого случая приве-
пикетного вейвлет-преобразовапия изображения рис. 6.42
Нетрудно заметить, что полученная структура сильно отличается от ранее
приведенной (рис. 6.44) для обычного вейвлет-преобразования.
6.8.9. Визуализация коэффициентов
двумерного пакетного вейвлет-преобразования
Теперь, исполнив команду PlotCoefficients2D[Wpt]
молено построить диаграмму вейвлет-коэффициентов двумерного пакетного
вейвлет-преобразования рассматриваемой фигуры (см. рис. 6.46).
вейвлет-преобразования изображения рис. 6.42
360
6. Работа с пакетом Wavelet Explorer
На диаграммах рис. 6.44 и рис. 6.46 хорошо видны основные особенности
декомпозиции изображений, в частности разбивка их на отдельные квадраты,
отвечающая идее кратномасштабного анализа. Чем выше уровень декомпозиции
используется, том больше разбиений на квадраты реализует алгоритм кратно-
масштабного анализа.
6.9. Обработка одномерных
сигналов и функций
6.9.1. Оценка кумулятивной энергии
В основе методов компресснн сигнала лежит оценка энергии, накопленной
В вейвлет-коэффициентах, представляемых в виде временных функций. По-
скольку энергия пропорциональна квадрату значения модуля коэффициентов,
то под кумулятивной энергией подразумевается величина:
Для вычисления кумулятивной энергии служит функция:
CumulativeEnergy[coefs] — возвращает список {Е(1), Е(2), ...}, определяю-
щий кумулятивную энергию вейвлет-коэффициентов списка.
Cumulat iveFnprgy [coefs, n] — возвращает кумулятивную энергию Е(п), на-
копленную ц-ым коэффициентом.
Пример вычисления кумулятивной энергии для данных в виде тлбпицы с
16 случайными числами представлен ниже:
(SeedRandom[45847]; data = Table[Raudom[], {16}];
wtdata — WaveletTransformfdata, d2])
((1 65851, 1.77685), (0.0545497, -0.028354),
(0,0198865, 0.172853, -0.0441019, -0.379254), (-0.21321, -0.C49959,
-0.0826129, 0.45874, -0.16488, 0.171664, 0 0767714. 0.0546394)1
Short[CumulativeEnergy[wtdata]/(Flatten[data].FlattenLdata])J
(0.4Ы688, <<14>>, 1.)
6.9.2. Компрессия сигналов
К распространенному виду обработки сигналов относится их компрессия
(сжатие). В простейшем случае она сводится к отбрасыванию старших ио номеру
коэффициентов, имеющих малую энергию и потому слабо влияющих на форму
реставрированного после прямого и обратного вейвлет-преобразования сигнала.
Для такой простой компрессии сигналов служит функция:
Compress [data, М] — обеспечивает компрессию сигнала, представленного
списком data путем обнуления всех коэффициентов с номерами, превосходящи-
ми М.
361
6. Работа с пакетом Wavelet Explorer
Более тонкий метод компрессии основан на введении понятия порога
Threshold:
Compress [data, tau, Threshold -> True]— обеспечивает сжатие сигнала,
обнуляя все коэффициенты, абсолютное значение которых меньше заданной ве-
личины tau.
Компрессия с адаптивным изменением порога реализуется функцией:
Compress [data, tau, Shrinking -л True]—устанавливает нулевое значе-
ние всех коэффициентов со значением, меньшим заданного значения tau и со-
кращает остаточное значение порога tau.
С этими функциями могут использоваться опции'.ЗЬг! nking -> Тгиевли
Fal ос и Threshold -> True или False. По умолчанию задано Shrinking ->
False и Threshold -> talse.
Примеры применения этих функций представлены ниже:
Compress[wldata, 10]
((1.С5851, 1.77685), {0,0}, (0,0.172853, 0, -0.379254),
)-П 71321, -0.649959, -0.0826129, 0.45874, -0.16488, 0.171664, U, 0) (
Compress!.wtdata, 0.3, Threshold -> True]
1)1.65851, 1.77685), )0, 0), (0, 0, 0, -0.379254 ,
(0, -0.649959, 0. 0.45874, 0, 0, 0, 0)
Compress[wtdata, 0.3, Shrinking -> True]
1(1.35851, 1.4/685), (0, 0), (0, 0, 0, -0.0792543),
(0, -0.349959, 0, 0.15S74, 0, 0, 0, 0)
Чем эффективнее компрессия сигнала, тем больше нулей будет находить-
ся в массивах, представляющих сжатый сигнал. Однако надо учитывать, что чем
выше степень компрессии, тем большие искажения будут претерпевать исход-
ные данные (сигналы) в ходе их вейвлет-декомпозиции и реконструкции.
6.9.3. Очистка сигналов от шума
Очистка сигналов от шума (Denoising) — одна из наиболее распространен-
ных операций по обработке сигналов. Технически она реализуется подобно опе-
рации компрессии, т. е. применением того или иного алгоритма удаления части
вейвлет-коэффициентов. Эта операция основана на общеизвестном факте, что
шумы имеют высокочастотные компоненты спектра, которые и удаляются при
очистке сигналов от шума. Ниже иллюстрируется решение данной задачи в не-
скольких вариантах.
Прежде всего, подготовим сигнал с шумом, подвергающийся в дальней-
шем очистке. В состав пакета Wavelet Explorer входит файл 9hocknoi.dat с запи-
сью дискретных отсчетов зашумленного сигнала. Приведенные ниже команды
считывают этот файл, создают массив data зашумленного сигнала и строят его
график в виде графика функции и(х):
data = Get[ToFileName[{"Wavelets". "Data"}, "shocknoi.dat"]];
T,istPlot[data, PlotJoined •> True, AxesLabel •> {' x‘, "u(x) '}l
362
6, Работа с пакетом Wavelet Explorer
График обрабатываемого сигнала представлен на рис. 6.47.
Рис. 6.47. График зашумленного сигнала
Для очистки сигнала зададим сплайновый фильтр s4 порядка 14,8]. выпол-
ним прямое вейвлет-преобразование массива data с компрессией на основе адап-
тируемого порога с начальным значением 1.5 и затем обратное преобразование.
Все это реализуется приведенными ниже командами:
(s4 — SplineFilter[4, 8]; wtdata — WaveletTransform[data, s4];)
Compress[Rest[wtdata], 1.5, Shrinking •> True];
lnverseWaveletTransform[Joln[{wtdata[[l]]}, %], s4];
ListPlot[%, PlotJoined •> True, AxesLabel > {"x", 'u(x)”} J
Очищенный от шумя сигнал представлен на рис. 6.48. Нетрудно заметить,
что шумовая компонента сигнала практически исчезла, а детальность сигнала
осталась достаточно хорошей.
Рис. 6.48. График сигнала, очищенного от шума методом с адаптивным порогом
и tau=1.5 при использовании сплайнового фильтра [4,8]
В следующем примере адаптивный порог заменен на фиксированный:
Compress[Rest[wtdatal, 1.5. Threshold > True];
ListPIot[InverseWaveletTransform[,Toin[{wtdata[[l]]}, %], s4],
PlotJoined > True, AxesLabel > {‘x”, "u(x)"}]
В этом случае результат очистки от шума представляется мсисс впечатля-
ющим (рис. 6.49).
363
6, Работа с пакетом Wavelet Explorer
Вис. 649. График сигнала, очищенного от шума с фиксированным порогом
В еще одном примере используется метод с адаптацией порога и его на-
чальным значением 3:
Uompress[Rest[wtdata], 3, Shrinking > True];
ListP]ot[lnvcrscWaveletTransform[
Join[{wtdata[[l]]}, %], s4], PlotJoined > True, AxesLabe] > {"x", -"u(x)-}]
Поскольку в этом случае обрезается большее число вейвлет-коэффициен-
тов, то степень очистки сигнала от шума возрастает, но и сильнее проявляется
сглаживание сигнала. Это хорошо видно из рис. 6.50, на котором показан очи-
щенный сигнал.
Рис. 6.50. График сигнала, очищенного от шума методом с адаптивным порогом
и tau=3
Последний пример этого раздела показывает очистку сигналаот шумов на
основе вейвлета Добеши порядка 2 с адаптивным порогом и tau—1.5:
(d2 = DaubechiesFilter[2]; wtdata = WaveletTransform[data, d2];
Compress[Rest[wtdata], 1.5, Shrinking •> True]:)
ListPlot[Inver«iAWaveletTransforni[Join[{wtdata[[lJJ}, %], d2],
PlotJoined •> Trne. AxesLabel •> { "x~, 'u(x)'}]
Этот тип вейвлета имеет меньшую гладкость, чем сплайновый вейвлет, что
отражается на графике сигнала после вейвлет-преобразований (рис. 6.51). Не-
трудно заметить, что он дает более детальную картину быстрых изменений сиг-
нала и, в тоже время, в значительной мере избавлен от шума.
Итак, для одномерных сигналов Wavelet Explorer представляет достаточ-
но средств для эффективной обработки заданных своими отсчетами (временны-
364
6. Работа с пакетом Wavelet Explorer
ми рядами) сигналов. К сожалению, на практике часто необходима обработка
сигналов в реальном масштабе времени. Она возможна, если описанные методы
реализуются в виде устройств на интегральных микросхемах, реализующих
вейвлет-преобразования.
Рис. 6.51. График сигналя, очищенного от шума методом с адаптивным порогом
к tau=1.5 при использовании вейвлета Добеши 2
6.10. Вейвлет- и Фурье-анализ и синтез
сложных сигналов
6.10.1. Вейвлет-приближсиие решения
уравнения Бурга
Насколько вейвлет-анализ и синтез сложных сигналов лучше аналогично-
го Фурье-анализа? И по каким критериям выполнять это сравнение? Интерес-
ный пример на сравнительный анализ и синтез сложного сигнала дай в пакете
Wavelet Explorer. Это приближенное представление решении нелинейного диф-
ференциального уравнения Вургя. Данное уравнение описывает реакцию резко
нелинейной системы на синусоидальное воздействие, в результате чего получа
ется линейно-нарастающая функция с разрывом в момепт перехода синусоиды
через нуль. Эта функция записана в файле shoksin.dat.
Анализируемая функция и(х) имеет два наиболее характерных признака
временных рядов: участки линейного нарастания (тренды) и скачок. Таким об-
разом, она содержит участки, резко различающиеся по скорости изменения и до-
статочно широкий спектр гармоник.
Следующие команды иллюстрируют загрузку файла shocksin и построение
графиков входного воздействия И выходного сигнала системы (рис. 6.52), описы-
ваемой данным уравнением:
data = Get[ToFileName[{" Wavelets", "Data"}, "shocksin.dat--]]:
Sliow[Block[{$DisplayFunction-= Identity}, {ListHot[data, Ахея1лЬе1 -> {"x".
"'},
PlotLabel •> "u(x,t) at t-0 and t=400"], Hot[Sin[2Pi/1024 x], {x. 0.1024}.
PlotStyle -> GrayLevcl[0.2U}l]
365
6. Работа с пакетом Wavelet Explorer
Рис. 6.52. Графики входного воздействия и реакции системы,
оиисываемой уравнением Бурга
Весь последующий материал не имеет прямого отношения собственно к урав-
нению Бурга и просто иллюстрирует приближение лииейно-нарастающего сигнала
с разрывом с помощью вейвлет-преобразованеий и Фурье-преобразований.
Зададим вейвлет-фильтр типа Добеши 2, выполним прямое вейвлст-прсоб-
разование и построим график коэффициентов последнего (рис. 6.53):
filter = DaubechlesFilter[2]:
wtdata = WaveletTransform[data, filter]; Length /@ wtdata
(2, 2, 4, 8, 16, 32, 64, 128, 256, 512)
PhaseSpacePlot[wtdata, PIotRange -> All.
Frame->True, FraiueTicks •> None, LogarithmicScale •> True]
Рис. 6.53. Сиек1рограмма вейвлет-коэффициентов
Рис. 6.54. Зависимость затухания вейвлет-коэффициентов от их номера
366
6. Работа с пакетом Wavelet Explorer
Построим график затухания вейвлет-коэффициентов (рис. 6.54) и оценим
уровень 40-го коэффициента:
Reverse[Sort[Ahs[Flatten[wtdata]]]]; ListPlot[Take[%. 50]]
% % [[40]]
0.00401847
Выполним реконструкцию анализируемого сигнала, используя 20 вейв-
лет-коэффициентов (рис. 6.55):
е = CumulativeEnergy[wtdata]/ (Flatten! wtdata].Flat.t.en[wtdata]);
Len£th[Select[Take[c, 20]. # <— 0.999&]]
14
«[[15]]
0,0999307
Compress[wtdata. 20]; newdata = InverseWaveletTransform[%, filter]:
ListPlot[newdata. AxesLabel -> {"x", ""}, PIotLabel -> "Реконструкция u(x) no
20 коэффициентам"]
Рис. 6.55. Реконструированная с помощью вейвлет-преобразований функция ц(х)
Оценим среднеквадратичную погрешность представления искомой функ
ции:
Sqrt[( data-newdata). (data-newdata)]/Sqrt[data. data]
0.00650219
Нетрудно заметить, что она достаточно мала (заметно меньше 1%). Таким
образом, как вид приближения функции и(х), так и оцененная погрешность
вейвлет-приближсиия говорят об успешном применении вейвлет-ана иизя и син-
теза для данного случая.
6.10.2. Сравнение с Фурье-приближением
Теперь зададим гармонический синтез данной функции с помощью прямо-
го преобразования Фурье и построим графики изменения кумулятивной энергии
вейвлет коэффициентов и гармоник ряда Фурье (рис. 6.56):
(fdata — Fourierfdata]; of = CumulativeEnergy[fdata]/(data.data);)
Show[Block[{ $DisplayFunction = Identity),
367
G. Работа с пакетом Wavelet Explorer
{ListPlot[Take[e, 50], PlotJoined •> True,
PlotLabel •> ' cumulative energy"], ListPlot[Take[ef, 50]]}]]
Можно заметить, что кумулятивная энергия вейвлет-коэффициентов спа-
дает по мере роста их номера гораздо быстрее, чем энергия гармоник ряда Фурье.
Это создает предпосылки достаточно точного приближения данной разрывной
функции с помощью вейвлет-преобразования. Это, в частности, объясняет успех
представления и(х) вейвлет-киэффициентами всего 20-тИ уровней.
Осуществим теперь реконструкцию функции с помощью ряда Фурье с ис-
пользованием 20 гармоник (рис. 6.57):
newdata = Chop[InverseFourier[Compress[fdata. 20]]];
ListPlot|newdata, AxesLabel •> { ’ x". ’"},
PlotLabel -> "Фурье-реконструкция u(x)"]
Рис. 6.57. Фурье-реконструкция функции рис. 6.56
Оценим погрешности (абсолютную и относительную) для приближения ря-
дом Фурье:
{ Max[Abs[data-newdata]].
Sqrt[(data-newdata).(data-newdata)/(data.data)]}
(0.594046, 0.195685}
Нетрудно заметить, что погрешность в данном случае весьма значительна
(среднеквадратичная погрешность около 20%) и намного превышает таковую
368
6» Работа с пакетом Wavelet Explorer
для приближения с помощью вейвлет-преобразований. Таким образом, прибли-
жение данной разрывной функций с помощьювейвлет-преобразований является
более предпочтительным, чем рядом Фурье. Основным источником погрешности
в случае Фурье-аналиоа и синтеза рассмотренной функции и(х) является эффект
Гиббса.
6.10.3. Другой случай вейвлет-анализа
и синтеза сложной функции
Продолжим наше исследование приближения сложных функций вейвле-
тами и рядами Фурье. Другой случай такого приближения вейвлетами мы рас-
смотрим на примере функции, заданной в файле shockrun.dat. За1рузка этого
файла и вывод графика функции (рнс. 6.58) представлены ниже:
data = Get[ToFileName[{"Wavelets", "Data"), 'shockran.dat"Ц
ListPIot[data, AxesLabel •> {“x", ””}]
Рис. в.58. График функции u(x) для второго случая
Построим всйдлет-спектрограмму разложения функции для этого случая
(рис. 6.59):
(filter = SpltneFilter[3, 10]; wtdata — WaveJetTransform[data, filter];)
PhaseSpace₽lot[Take[wtdata, 4], Frame •> True, FrameTicks •> None,
PlotRange •> АЩ
Рис. 6.59. Спектрограмма вейвлет-ралложения u(x) для второго случая
Нетрудно заметить, что вейвлет-спектрограмма функции и(х) для данного
случая сильно отличается от аналогичной спектрограммы для первого случая
(рис. 6.53).
369
6. Работа с пакетом Wavelet Explorer
Построим график кумуйятавйой энергии как функции от номера вейвлет-
коэффициентов (рис. 6.60);
е = CumulativeEnergy[wtdata]/(Flatten[wtdata].Flatten[ wtdata]);
ListPlot[Take[e, 40], PIotRange •> All,
PlotJoined •> True, PlotLahel •> 'кумулятивная энергия"]
Из приведенного графика можно сделать вывод, что для вейвлет-синтеза
достаточно ограничиться учетом 30-ти коэффициентов, что позволяет выпол-
нить вейвлет-синтез функции с простым ограничением вейвлет-коэффициентов
(рис. 6.61):
newdata = InverseWaveletTransform[Coiiipress[wtdata, 30], filter];
Show[Block[{ SDisplayFunction - Identity),
{ListPlot[newdata, PlotJoined-> True, AxesLabel •> {"x”, ""}],
ListPlot[data, PlotJoined •> Tt-lie, PlotStyle -> DashingKO.OZ}]]}]]
Рис. 6.61. Вейвлет-синтез u(x) с использованием 30 вейвлег-коэффициеитов
Как видно из рис. 6.61, для второго варианта и(х) вейвлет-анализ и синтез
оказался менее привлекателен, чем для первого варианта.
6.10.4. Сравнение второго
варианта с Фурье анализом и синтезом
Теперь выполним Фурье-анализ и синтез для функции и(х) при использо-
вании 30 гармоник (рис. 6.62):
fdata = Fourier[data]; Chop[InverseFouricr[Conipress[fdata, 30]]];
370
6» Работа с пакетом Wavelet Explorer
Show[Block[{ SlDiaplayFunctlon = Identity}, {LietPjot[%, PlotJoined •> True,
AxesLabel •> {’’x", ""}], ListPlot[data, PlotJoined -> True,
PlotStyle •> Dashing[{0.02}]]}]]
Рис. 6.62. Фурье-приближение u(x) no 30 гармоникам
6.10.5. Оценка погрешности при приближении
вейвлетами и рядами Фурье с компрессией
Оценим относительную погрешность Фурье-приближения при компрессии
сигнала (рнс. 6.63):
|p=ListPlot[Transpose({Table[1024/i, {i, 1, 1024}],
Sqrt]Chop[l-e]l}], PlotJoined •> True, PlotRange -> {{0, 150}, {0, 0.5}},
PlotLabel -> "Относит- погрешность в функции от степени компрессии"]
Рис. 6.63. Относительней погрешность приближения и(х) рядами Фурье
как функция от степени компрессии
Нетрудно заметить, что при большой степени компрессии погрешность
сильно возрастает.
Теперь построим объединенный график погрешности при вейвлет- и Фу-
рье-приближениях в функции от степени компрессии (рис. 6.64):
ef — CumulativeEnergy[fdata]/(data.data);
Show[lp,ListPlot[Transpose[{Table(1024/i,{i, 1, 150}],
371
6. Работа с пакетом Wavelet Explorer
Sqrt[Chop[l-Tnk<>[of,150]]]}], PlotPangc-> {{О, ISO), {0,О.й)},
DisplayFunction -> Identity]]
Рис. 6.64. Относительная плтум'птплрм. приЛл'ижсимп u0i) йейялетами
и рядами Фурье как функция от степени вомпрсссип
Нетрудно заметить, что при достаточно большой степени компрессии вейв»
лет-преобразования дают меньшую погрешность (сплошная линия па рис. 6.63),
чем преобралопппил Фурье, хотя разница на этот раз не кажется ошеломляющей.
6.10.6. Приближение функции
вейвлетами и рядами Фурье с компрессией
Осуществим вейвлет-компрессию заданной функции (рис. 6.65):
lnverseWaveletTran3form[Comprcss[wtdata. 20]. filter]?
Show[Block[{$DisplayFunctlon = Identity), {ListPlot[%, PlotJoined > True,
PIotLabel-=” "u(x) при степени компрессии 1024/20'],
ListPlot[data. PlotJoined -> True, PlvlStyle->Dashiag[{0 02}]]}]]
Рис. 6.65. Вейвлет-прнблнжевие u(*) co стецепыи ком1«£м’гсии 1624/26
Далее выполним вейвлет-компрессию с применением рядов Фурье (рис. 6.66):
Chop[InverseFonrier[Comprcss[fd.'itin, 20]]]:
Sh<>w[nioek[{$D!4playFiinctinn = Identity). {ListPlotl%. PlotJoined -> True,
Plofljtbel •> ”n(x) при степени Фурье-компрессии 1024/20"],
J.istPlot[data, PlotJoined-> True. PlotStyle->DaKhing[{0.02)]])J]
372
6, Работа с пакетом Wavelet Explorer
Сравнивая РИС» 6.66 и 0.06 можно сделать одноопачный вывод о том, что w
в данном случае вейвлет-приближение с компрессией заметии лучше, чем Фу
рье-приближеиие с компрессией, хотя и ис столь разительно, как для первого
случая приближения решения уравнения Бурги,
Рис. 6.66, Фурье» приближение ц(х) со степенью компрессии 1024/20
6.11. Обработка звуковых
сигналов с компрессией с помощью
пакетного косинусного преобразования
6.11.1. Получение звукового
сигнала и его контроль
Теоретический анализ процессов восприятия речи слуховым аппаратом
человека показывает, что в нем используется принцип вейвлет-аналипя звук»»
вых сигналов. Это вселяет падежду в то, чти вейвлет-компрессия звуковых сиг-
налов будет «вязана г меньшими потерями их качества, чем при использовании
других методов компрессии, используемых тш практике. Это же относится и к
использованию методов очистки звуковых сигналов от шума (до сих нор здесь
лидировали методы Долби для очистки звуковых сигналов на основе использова-
ния методов Фурье).
Для работы со звуковыми сигналами нужна загрузка встроенного в
MatuCIuvtXS П2К5ТЙ М15Сг11с'!1,?|’,,1я‘Audio. Ниже представлены команды,
обеспечивающие такую загрузку и вывод осциллограммы окукового сигнала
(рис, 6,67), хранящегося в файле cricket.dut, содержащего 4096 обсчетов;
Nccda[''Mi8eeHaneouB'Audio *"]
edafu = GetLToFileName[{ "Wavelets", "Data’'}, "crlcket.dat'’]];
Length! edata]
-10 96
.-data — cdata-(Plus @@ cdata)/4O96.;
ListPlayfedata, SampleHate »> 22050, Playllange «> All]
373
6, Работа с пакетом wavelet Explorer
Риг. 6.Я7. Qi-циллогрпмма реального звукового сигнала
Нетрудно заметить, чю реальный звуковой сигнал намного сложнее рас-
смотренных нами ранее тестовых сигналов,
6.11.2. Прямое пзкетное
косинусное преооразование звукового сигнала
Выполним прямое пакетное косинусное преобразование звукового сигнала
используя поиииоМия пьный тяйпер:
ср — C.O8Pa<-ketTransforni[cdata, 1024,
Taper -•> {Polynomial[3], 10}]'
ShortfLength /@ epl
Построим таблицу базисов этого преобразования (рис. 6.68)'.
ShowBasisPositioli[cp, PIotRange -> All]
Рис. в.68. Таблица базисов пакетного косипуопого преобразования звукового сигнала
Рис. 6.69. Вейвлет-спектрограмма звукового сигнала
374
в. Работа с пакетом Wavelet Explorer
Построим вейилек-епчктрограмму звукового сигнала (рис. 0.0©);
PhaseSpacePlot[cp, ExchangeAxes -> True,
AspectRatlo •> 1, Frame -> True, FrameTicks -> None,
FrameLabel •> [ 'time", "frequency’’}]
6.11,3. Сравнение методов
компрессии звукового сигнала
Зададим и сравним три методи вейвлет-Компрессии авукспото сигнала
(рис. 6.70):
ctrane = CoeTrausformtcdnU, 25fi, Taper •> {FolynomiairS], 16}]:
wf = CosTranaform[cdata, 250, Taper -> False];
(norm = cdata.edata; e CumulativeEnergyf#, 800j/norm& /@ {ep, clrans, wf};)
Sliow[MapThread[Li8tPlct[#, PlotStyle •> #2,
PlotJoined •> True. DieplayFunction •> Identity
]&, {«. {{}. Dashingl{0.02}],Dashing[{0.1}]}}].
DisplayFunction > $DisplayFunotIon]
Рис. 6.70. Сравнение трея методов номироосми звукового сигнала
й,12,4. Пример
реконструкции звукового сигнала
Зададим реконструкцию звукового сигнале (рис. 6-71) с помощью обратно-
го пакетного косинусного преобразования С компрессией:
Length[Seleet[TakeLe[[l]J. 300], # <= 0.995&Ц
250
InverseCosPacketTranaform[Compresa[cp. 261], Taper -> {Polynomials]. 16 }Ь
ListPlay[%, SampleKate -> 22030, PlayRange •> All]
Сравнение реконструированного сигнала (рис. 6.71) с оригинальным
(рис. 6.67) на глаз не обнаруживает существенного различия. Белее объектив-
ным можно считать оценку среднеквадратичной погрешности реставрации зву-
кового сигнала после его компрессии:
37Б
6. Работа с пакетом Wavelet Explorer
Sqrt[l е[[1]][[251]]]
0.0705'78
♦Н»—
Рис. 6.71. Реконструкция ;»>ук1>ноги сигнала
Опп составляет около 7% . Трудно сказать, много это или мили. Компрессия
звуковых сигналов — дело весьма топкое, и топкие экспертные оценки на слух
позволяют решить, какой из методов компрессии лучше, а какой хуже. Однако. •
объективные методы оценки, представленные вышн, енидстслистпугот о боль-
ших потенциальных возмолшостях вейвлет-компрессии звуковым сигпллоп.
6.12. Обработка изображений
в пакете Wavelet Explorer
6.1S.1. Предварительные замечании
Обработка изображений — перспективное направление применения вейв*
лет-прсоброзовапий. Однако, было бы наивно прцщмышнть, -ли сшлшы ком-
пьютерной математики, даже такие мощные как Mwllioinatica 4/4.1, будут хоро- ,
шими средствами для реальной обработки изображений. Эти громоздкие и
прожорливые на память системы ориентированы на выполнение сложных мате-
матических рассчотон и питому имеют достаточно скромные ресурсы для обра
ботки изображений.
В описании пакета Wavelet Explorer неоднократно подчеркивается, что ра
бота с изображениями возможна только на современных НК о большим ы-мпм
ОЗУ. Но и в этом случае лучшие результаты можно получить. используя специ-
ализированные графические пакеты и редакторы- Например. Corel DRAW, в со-
став которого введены средства вейвлет-обработки изображений.
Зачем же надо предусматривать пакеты расширения систем компьютер-
ной математики по нейвлет-преобразованням? Ответ» пожалуй, один! для на-
глядного представления существующих методов обработки изображении и отра-
ботки новых методов, основанных 'на математических преобразованиях. После
этого, скорее всего, потребуется реализация таких методов иа стандартных язы-
ках программирования (вплоть до C++ или Ассемблера) с компиляцией получен-
376
6. Работа с пакетом Wavelet Matploger
ныл программных кодов. Только в этом случае можно рассчитывать на высокую
эффективность математических методов обработки информации.
Как известно, цветное изображение чаще всего состоит из матриц полуто-
новых изображений, несущих информацию о яркости трех составляющих каж-
дой точки (пиксела) изображения — красной Red, зеленей Green и голубой ВПю
Теним образом реализуется хоти и не единственная, но наиболее распрострлпгчг-
ная цветовая система RGB.
Исходя ия сказанного, мы ограничимся рассмотрением щнчЮрааивнмяй
только для полутоновых изображений серого цвета. Это делается как для упро-
щения реализации методов обработки изображений, так и по чисто конъкистур-
иым причинам: в массовой китч, подобной дайной, не принято приводить цвет-
ные изображения.
в.12.2. Подготовка массива
изображений и его просмотр
В качестве примера возьмем изображение из файла 3wphoto.eps пакета
Wavelet Explorer. Следующий пример резервирует место под массив иаобрнже-
ння data, считывает указанный файл, преобразует его в матрицу 8-битовых чн
сел и даст контроль размера массива:
Needs[" Wavelets’Wavalftta"']
data — Reverse[PartltlonlToExpr<wiion /@
(StringJoinLJoin[{''i6""”}, #]]& /@
PartltlonlCharacters[StriugJoin @@ Drop[Drop[
RendList[ToFiloNaine[{"Wavelets", "Data"), "«wphot.o.rps'’],
String],22], -3]]. 21), 25011; Dimensions[data]
2501
100 ibb 2S0
Pmv. 0.72. Исходное изображение ни мисенк» data
377
6. Работа с пакетом Wavelet Explorer
Таким образом, мы создали обычный массив полутонового изображения.
Для обработки изображений удобно иметь массив, число элементов которого по
строкам и столбцам должно быть степенью 2. Следующие команды создают та-
кой массив и вычисляют его размеры:
(data - Transpose[Joln[Tahle[#[[l]], [3}], #,
ТаЫе[#П-1Ц, [3)U&[Tranape8e[Erop[data, 21Щ];
Dimensions[data])
(256, 256}
Теперь можно построить исходное изображение (рис. 6.72)!
ListDcnsityPlotrdata, Mesh -> False]
6.12.3. Вейвлет-декомпозиция изображения
Для вейвлет-декомпоаицни изображения пока возьмем вейвлет-фильтр с
малой ассиметрией порядка 4 и начальным индексом, измененным с О до -3:
(s4 » LcastAsymmetrieFllter[4]; s4 =MapAt[-3&, s4, {2}])
{{-0.0757657, -0.0296355, 0.497619, 0.803739,
0.297858, -0.0992195, 0.012604, 0.0322231}, 3}
Теперь выполним прямое вейвлет-преобразование массив и оценим его
структуру:
wtdata = WaveletTransform[data, s4, 3, Boundarycondition •> Fixed];
Dimensions /@ wtdata
[{32, 32}, [3, 32, 32}, [3, 64, 64), P, 128, 128))
Построим двумерную диаграмму (рис. 0.73) коэффициентов декомпозиции
изображения:
PlotCoefficients2DFwtdatal
Рис. 6.73. Двумерная диаграмма дакпмппаицни изображения
На этой диаграмме отчетлипо пидпа суть кратномасштабного вейвлет-ана-
лиза применительно к изображению. Изображение делится на квадраты равлич-
378
в. Работа с пакетом Wavelet Explorer
наго размера и в них представляются вейвлст-кооффициенты разного уровня
композиции. Точного соответствия картинки в квадратах с исходным изображе-
нием, разумеется, не и мшит, но, тем не менее, тс или иные особенности исходим
го изображения явно просматриваются.
Можно попытаться усреднить часть изображения (рис. 6.7-1):
ListDe;usityFJot[wtdata[[l]], Mesh -> False]
Рис. 6.74. Усредненное изображение
Усредненное [изображение гораздо ближе к исходному, чем представлен
ное на рис 6 73. И, тем не мопсе, отождествлять его с исходным нельзя.
А теперь в два захода просмотрим другие квадраты декомпозиции и.«>6ра
женим, которые хранят представления о детализирующих коэффициентах раз-
ного уровня. Вначале посмотрим, что задают функции psi первого, uwpurv и тре-
тьего уровней {}, {} и {} (рис. 6.75):
Show[GraphlceArray[ListDensltyPlotL
#, Mesh •> False, DisplayFunction > Identity]# /@wtdal.a[[2]]]]
Далее просмотрим следующие три УРОВНЯ (рис. 0.76):
Show[GraphlcsArrayfListDensityPlot[
#, Mesh •> False, DisplayFunction -> Identity]# /@wtdata[[3]]J]
379
6. Работа с пакетом Wavelet Explorer
Рие. <1.76. Содержи мое еще трок квадратов
со следующими тремя уровнями декомпооициа изображения
Рис. 6.77, Грубая частк изображения
Рис. 6.78. Детализирующая часть изображения
Теперь можно рассмотреть процесс грубой реконструкции изображения в
соответствии с соотношением
где J - уровень реконструкции и I — аппроксимирующим функция (pnij. 3"л
итерационная процедура (см. главу 2) обеспечивается обратным вейвлет-прооб-
380
6. Работа с пакетом Wavelet Explorer
разооапйбМ. С учетом сдвига начального отсчет»: -1 мы можем построить реконст-
руированное изображение для уровней от «тонкого» уровня J-8 до «грубого»
уровня J=5 (рис. 6,77);
tempi - lnverseWavelet'l'ransfonnlwtdaLa-MflpAt[#-#&, wtdata, (!}], s4,
BoundaryCondition Fixed]; ListDensityPlotftempl, Mobil -> False)
Аналогично мы можем оргспиеовать построение детализирующего изобра-
жения с теми же уровнями (рис. 6.78):
InverseWaveletTranef6rm[wtdata-MapAt[#-#&l wtdata, {2)J, ч4,
BoundaryCondition -> Fixed];LisdDensityPiot[%, Мевй -> False)
в.12.4. Рсстяврят^ия изображения
' Просуммировав матрицы грубой и детализирующей частой изобраип'иил,
мы обеспечиваем реставрацию изображения (рис. и-79) с ПОМоЩЫР •.г.!1.''.! ?. О С1
ратного вейвлет-преобразований,"
ListDonsityPlot[templ+% %, Meek •> False]
2’ис. S.79, Результат pei-iaepayHH изображения
В данном случае реставрация изображения оказывается точной, циенолчку
мы исполыювали все достаточные для нес уровни декомпозиции в реставрации.
6.12.5. Обработка изображений
с помощью пакетных вейвлетов
Теперь рассмотрим декомпозицию и реставрацию изображения па основе
применения пакстшЛХ вейвлетов. Зададим прямое пакетное ннйклет-преобраио-
вапие;
wpdata WaveletPaclretTransfomirdata, s4, 3, BoundaryCondition -> Fixed):
Построим диаграмму коэффициентов дли итого случая (рис. 6.R0):
PlotCocfficieBts2D[wpdatu]
381
6. Работа с пакетом Wavelet Explorer
аг амма скомпоаи НИ изоб ажайия л и пакетном вейнлет-
преобразовании
Построим для сравнения графики зависимости относительной погрешнос-
ти реставрации изображения от номера коэффициентов для вейвлет-преобразо-
папия и пакетного вейвлет-преобразования (рис. 6.81). Для этого используется
следующий набор команд (в начале блока команд рассчитывается кумулятивная
энергия коэффициентов, а затем уже погрешность);
(wtE-CumulatbeEnergytwtdata, 3500]/(FtnUHn(wt<lata].Flatten!wtdata]);
wpE=CinnulativeEnergy(wpdata. 3500]/(Flatten[wpdata].Flatten[wpilaia]));
Shr>w[{ListPlot[Traiisposel{Table[25e Ш/1, {1,1000, 3500}],
Sqiqi-Tak<{wlE,{1000, 3600)])}], PlotJoined -•> True,
DispjayFunction -> Identity, PlotStyle -> Dashing[{0.02)],
PlotLabel -i» "Оти. погрешность как функция от коэффициента компрессии”].
ListPlot[Transpose[{ТаЫе[256 256/t, {1,1000, 3500}],
Sqrt[l-TaMwpE, {10ОО, 3500}]]}], PlotJoined •> True,
DisplayFiinctlon -> Identity]}, DisplayFunction > $DrsplayFunction]
Рис. 6.81. Сравнение вейвлет- и пакетною вейвлет преобразований
382
6, Работа с пакетом Wavelet Explorer
Можно сделать вывод, что в данном случае результаты реставрации изоб-
ражения для обоих видов вейвлет-преоброзпшнгий рпопятся пеапачи гельно, Ес
ли считать относительную погрешность в 5% допустимой, то надо использовать
не мен₽е 35 коэффициентов. При этом можно опустить 1985 коэффициентов г
большими номерами, что означает стрггрнькжнтия изображения около 33.
Выполним реконструкцию изображения для нашего второго случая;
InverseWaveletPacketTransforjnrCompress[wpdata. 1985J, s4.
BoundaryCondilionFixed); Lfoi.DeuaifyPlnt-1%, Mesh -> False]
Полученное изображение представлено на рис. 6.82. Его трудно ОТЛИЧИТЬ
от оригинала (рис. 6.72) и от результата вейвлет-реконструкцип (рис. 6.79).
Рис. 6.82. Реконструкция изображения рис. 6.72 после пакетных вейвлет преобразова-
ний со степенью сжатия в 33 разп
Остается оцепить погрешность реконструкции;
SqrtT#.#&[Flatten[<iata-% % ]]/(Flattenfdata].Flatten[data])]
0.0506618
Sqrt[l-wpE([1986]l)
0.0487979
ина составляет величину около uvo. Сравнений йсхОДлОГи ййооралпптй С
реконструированным с трудом выявляет разность между ними; визуально ииди
мое различие скорее еввинио п обработкой фотографий перед ПСЧаТЫО Ч6М С иска
жениями в коде вейплст-овравотнн снимков.
6.12.6. Компрессия отпечатков пальцев
на. основе локального косинусного преобразования
Хрестоматийным примером успешного применения вейвлет иреобраэоло
ний стала компрессия изображений отпечатков многих миллионов пальцев жи
телеЙ США. Мы рассмотрим как опа осуществляется в пакете Wavelet Explorer.
Следующие команды загружают пакет Wavelet Explorer и создают массив
data отпечатка пальца (рис. 6.83), содержащегося в файле finget .dat;
383
6. Работа с пакетом Wavelet Explorer
Needs["Wavelets'Wavelets'"J
(data = Get(ToFileName[{ "Wavelets", "Data"), " finger .dat"||;Dunensionsldata|)
(2d0, 192)
LietDensityPlotfdata, Mesh -> False]
Рис. 6.83. Тестовый отпечаток пальца
Зададим косинусное преобразование матрицы данных data типа Сйб IV бйп
гайнера и с полиномиальным тяйпером:
ul— CosTransform[date, {48, GO}, Taper -> False];
ut2 = CosTransformfdata, {48, GO},
Taper->{ {Pulynomial[2J, 24}, {Polynotn1a][2], 30}}];
Построим диаграмму коэффициентов ио результатам ci2 косинусного пре.
обраэоваЕШЛ с полиномиальным тайпором (рис. 6.84):
PlotCoefficients2D[ct2]
Рис. fiJM. Даумарная диаграмма коэффицинншн кш-инугнию
преобразования изображения рис. 6.83
384
6. Работа, с пакетом Wavelet Explorer
Найдем кумулятивную анергию коэффициентов косинусного преобразо-
вания
(norm = Flatten[datu].Flutten[datu];
ctE CumulativeEnergyfct, 5000]/norm;
cl2E = CmuulativeEnergy[ct2, 5000]/norm;)
Теперь вычислим (ргмогич'рлкнкж нпгрентне.ги ижятия для днух ияднлных
выше вариантов преобразований:
Show[MapThread[Li6tPlot]Transpo6e| {Table!240 l»2/i, {i, 1000,5000}],
Scjrifl-Taket*, { 1000, 5000}]]}]- PloiStyle -> #2,
PlotJoined -> True, DisplayFunction Identity,
PIotLabel -> "Отн. отибка в функции от коэффициента компрессии "J&,
{{ctE. ct2E}. {Dashingf{0.02}], {}}}], DisplayFunction •> SlMsplayFunctionJ
На рис. 6.85 представлены соответствующие зависимости.
Вычислим среднеквадратичную погрешность реставрации отпечатка паль-
ца рис. 6.88 нри иинольиовании только 10% от всех коэффициентов:
Sqrt[l>ct2E[[4608]J]
0,0899546
Нетрудно заметить, что погрешность в этом случае близка к 9% .
Осуществив обратное косниуснос прсобраоопанис выполним реставрацию
отпечатка пальца (рис, 6.86);
InverseCosTransform[Compre«<5[''t2, 46HRJ,
Taper -> {{Poiynomiai[2J, 24}. {Polynomial{2J, 80}}J;
ListDensityPlot[%, Mesh *> False]
13 3uu 26
885
6. Работа с пакетом Wavelet Explorer
Put, 6 8в Ррлультат pecianpDUHU изображения рис. 6.88
Несмотря на «шачмтрлъную погрешность реставрации пня весьма неплохо
соответствует оригиналу м.чабражеиия (рис. 0.83).
386
Глава 7, Состояние и перспективы
развития вейвлет технологии
7.1. Источники информации
по вейвлетам
7.1.1. Литература по вейвлетам
Итак, мы убедились в том, что вейвлеты представляют собой левый
класс математических объектов, позволяющих на основе нового базиса при
ближать функции, сложные сигналы или изображение, причем идеально точ-
ио или с некоторой погрепгноо.тью. Вейвлеты имеют явные преимуцества пе-
ред рядами Фурье в представлении локальных особенностей Функций, Б
области обработки изображений они дают новые эффективные способы их об-
работки, например удаления из видсо-сигпалов шумп и езкотия файлов, хра-
пящих изображения.
Благодаря прекрасному представлении» лпкильных <>ri>l>t'nm>vrnt'U гигнз-
лов, принципиально отсутствующему у рядов Фурье, вейвлеты нашли практиче-
ское применение для апапиаа топких особенностей сложных сигналов и изобра-
жений, для их сжатия и очистки от шума, Это полезно в геофизике, биологии,
медицине, радиотехнике и в других отраслях науки н техники, Вейвлет преоб
разовяния ужр пшгпжриы в основу новейшей техники rurnnuin кгнЗтинфпр’ии
ции. Они считаются нерснекгинными для передачи сжатых изображений ни ка-
налам Интернета о ограниченном iiponyoiciioii способностью.
К настояшему времени за рубежом в области вейвлет преобразований
опубликованы сотни книг, я чисто стятей исчисляется многими тктпяиями П по-
следние годы резко активизировался интерес к вейвлетам и у пае в России Тан.
в £001 году в издательском центре «Регулярная и хаотическая динамика»
(Москва, ФТИ РАН) вышла в переводе большая фундаментальная книга И. До-
беши по вейвлетам [111. А издательство «Мир» подготовило перевод учебною
курса пи вейвлетам Ч. Чуи риасе иидишюго пн шилийском, аиснском и китий-
ском языках [12]. Нередко выходят обзоры по вейвлетам [15-20]
Из весьма мнлгочис пенных зарубежных игч’пчникон по ней влетим н списке
литературы этой книги приведено лишь несколько наиболее важных [1-12]. В
России немногочисленные работы по вейвлет-аналнзу и применениям вейвлетов
были начаты примерно с 10-летней задержкой и представлены, вместе с нервы
ми двумя новыми переводными книгами [11, 12], рядом обзорных работ, напи-
санных, в основном, по материалам зарубежных публикаций [15 20]. Ограниче
лия в числе ссылок обусловлены, главным образом тем, что достаточно полные
387
7. Состояние и Перспектины развития вейвлет технологии
списки публикаций по вейвлетом сейчас можно найти в Интернете, в том числе
на сайтах, описанных ниже. Подробные списки русскоязычных работ, в основ-
ном теоретического характера, имеются в [11,12]. В тоже время, объективный
обзор нишей литературы показывает, что работ по вейвлетам практического ха
рактеро нет вообще.
7.1.2. Отряжение работ по вейвлетам в Интернете
Полезно также знакомство с Интернет-сайтами, посвященными нейвлетам
или содержащими материалы по иим:
http://www.Hiath6Oft.coni/ — электронная библиотека по теории и приложени-
ям вейвлетов.
http://www.wavelet.org/ — электронный вейвлет-даЙДЖесг (Wavelet Digest),
выходит с 1992 года.
бесплатная библиотеки ирйнлртных
http;//plavfair.Hlaufu>cl.edu/ wavelab
программ на языке системы MATLAB.
htto:/ /www mntji.aphti.ru/-dmp/ — сайт Санкт-Петербургского юродского се-
мипара ПО вейвлетам, содержаний обширную информацию но отепнетвениым и
зарубежным публикациям по теории и применению вейвлетов.
http://shon.rcd.ru — Интернет-магазин издательского центра «Регулярная и ха-
отическая Динамика».
Внимание________ _______________
Выше перечислены лишь несколько адресов основных сайтов, специализиро-
ванных по вейвлетах. На них вы можете найти ссылки на ряд других сайтов
подобного рода. Ниже описаны также сайты корпораций, разработчиков С1СМ
с пакетами расширений по вейвлетам. Наконец, вы можете пронести поиск
материалов по вейвлетам на страницах крупных поисковых систем, таких кя
www.apport.ru,www.r-Hiiiblcr.ru и др. bцелом,п Интернете молшо найти мно-
гие сотни сайтов, содержащих материалы по вейнлётам и йл
Нв конец октября 2001 годя ня Интерает-сайтях русскоязычных поиско-
вых систем можно было найти следующее количество документов!
Поисковая система вейвлет wavelet
www.altervt8ta.ru 548 —
www.aport.ru 428/835 860/2000
www.tfoogle.com 800 110000
www.iambler.ru 247/616 647/2326
Результаты поиска представлены но словам •вейияьт» и «wavelet» (при по-
иске по слову «wavelet» обнаруживаются, в основном, зарубежные материалы).
В некоторых системах результаты поиска даны по документом и по сайтам (по-
следних больше); d атом случае они указаны через дробную черту- Рекордно
большое число материалов по вейвлетам обнаружила новая поисковая система
Google — одна из самых мощных во времена поиска.
388
7, Состояние и перспективы развития вейвлет-технологин
7,1,3, Интернет-сайт вейвлет-дайджест
Из зарубежных Интернет-сайтов по вейвлетам стоит прежде всею отме-
тить снйт https//www.wavelet.ofB, который ипецинльни иисннщен вейвлетам и
их применению. Начальна» страница этого сайта представлена на рис. 7.1. Обра-
тите внимание на то, что d адресной строке броузера Internet Explorer 5.0. па ко-
тором просматривались сайты, можно увидеть точный адрес этой страницы (да и
других страниц).
Рис. 7.1. Интернет-страница cairraWa veiet.oi g
Сайт имеет очень скромное оформление и вполне очевидною структуру. С
помощью рнда гиперссылок, хорошо видных на рис, 7,1 снизу, можно получить
доступ к одному ио многочисленных разделов сайта. Основную ценность пред-
ставляет файловый FTP-сервер сайта, в котором собрано огромной количество
работ, начиная от первых работ по вейвлетам конца 80-х годов прошлого века до
самых новых публикаций,
7.1.4. Интернет-сайт веЯялгет-центра
The IDR Wavelet Center
Другой специализированный по вейвлет-тематике крупный сайт - The
IDR Wavelet Center. Иго начальная страница показана на рис. 7.2. Утосайт меж
дународпого цептра по вейвлетам.
На рнс. 7.3 представлен раздел сайта The TDR Wavelet Canter, посвящен-
ный публикациям. Как нетрудно отметить, на ней отражены работы ш> при мене-
889
'7, Состояние и перспективы развития вейвлет-технологии
Рис-. 7.2. Интернет-стринмнэ сайта The 1DK Wavelet Center
Рис. 7.3. Интернет-страница сайта The 1DR Wavelet Center,
посвящеипаи публикациям
390
7. Состояние и перспективы развития вейвлет-техиологии
Рис 7.4. Ишсриог-етриници фирмы MuiliWurkv
с описанием пакета расширении Wavelet Toolbox
Wavilst Toolbox 2.1
Dunns aid Tutorials
Main Pane
Рис. 7.3. Иитернет«страиица фирмы MathWorks,
плен и тенили дампш'трицилииспи примерим
381
7. Состояние и перспективы развития вейвлст-техмологии
яию вейвлетов для очистки сигналов от сггума, предсказанию будущих событий,
вейвлетам в графике, обработке изображений, отражению вейвлетов в Интерне-
те, программному обеспечению вейвлетов и, естественно, фундаментальным во
просам теории вейвлетов и вейвлет-преобраоований.
На этом сай ie можно найти самую разнообразную информопию ПО ТбОРИИ
и применению вейвлетов и вейвлет-преобразований. Ингернет-гяйт корпорации
MutiiWorks
Сайт фирмы MathWorka, создателя мощных СТШ MATLAB, содержит ряд
страниц, посвященных вейвлетам. Прежде всего ото раздел сайта, посвященный
пакету расширения Wavelet Toolbox (рис. 7.4).
Ila этой < |рапице можно найти информаций) о характеристиках пакета,
описание его функций, примеры применения, документацию, литературу пп
вейвлетам и т. д. Имеется возможность обновления пакетов предшествующих
версий. На рис. 7.5 показан раздел этой страницы, посвященный демонстраци-
онным примерам. На ней Показан классический пример применения вейвле-
тов — компрессия отпечатков пальцев.
Еще одна страница этого сайта (рис. 7.6) , посвященная литературе по па-
кету Wuvclfit Toolbox и другим пакетам рвеширикия системы MATLAB 6/6.1.
Расширив поисп по атой странице, можпо найти много материалов, посвящен-
ных применению вейвлетов.
Рис. 7.6. Ингсрпот-страиидя фирмы Math Works, посвященная литературе по пикету
Wavelet Tookbox и друшм пакетам расширения опстемы MATLAB
392
7. Состояние и перспективы развития рсйрлот-технологии
7.1.5. Интернет-сайт корпорации
MaihSoft
Корпорация MathBoft Inc., разработчик популярных СКМ *для псих»
класса Mathcad, имеет одну из самых богатых конлекци и материалов по приме-
нению вейвле!ив (рис, 7,7), Эти материалы периодически пополняются,
Introductions to Wavelets
Рис, 7.7. Интернет-страница фирмы MalhSoft,
посвященная вейвлет-ре<.'уренм
Весьма впечатляет список литературы по вейвлетам, размещенный п этом
разделе свита фирмы MathSoft. Начале этого гиис-кя представлено на рис. Y.b.
Список насчитывает mhoi-mS сотни литературных источников, раабитых ii<> раз
щлм областям применения вейвлетов.
Естественно, что на этом сайте имеется и детальнан информация по пакету
расширения Wavelet Extension Pack и электронной книге по нему. Ничалыши
страница ко атому пакету представлена на рис. 7.9. На пей можии inu’mi описи*
нис пакета и примеры его применении. Впрочем, нядо отметить, что этот пакет
достаточно полни описан в Главе 5 данной книги.
Весьма аффективно организована на сайте этой фирмы совместная рябо-
го ученых и специалистов из разных стран над еопмсстпыми проектами, В ТОМ
числе и по вейвлетам. Это способствует междунардному сотрудничеству в дли
ной области.
393
7, Состояние и перспективы раздития вейвлет-техпологян
Олега! ITtMiry
- Р G w.,« ,nd М V Wickwhau.a, 'Ъл-I and 'ЛОТ Bniir of CtiOtiujiay! !4цу«г ий I"'
Рис. 7.8, Интернет-страница фирмы MathSol't. цисвящсиная литература пи яг-йпл₽там
Рис. 7.9. Интернет-страница фирмы MfalhSoft, посвященная пакету расширения
Wavelet Extension Pack
394
7. Состояние и перспективы развития вейвлет-техиологии
7.1.6. Сайт корпорации Wolfram Research
Корпорация Wolfram Research, Inc. — разработчик СКМ Malheiuuucu
1/4.1 также имеет свой Интернат-сайт. Е последнее время он существенно допгнг
псп уникальными справочными и энциклопедическими миюриалимм ио в«м
вопросам применения математики. На ряс. 7.10 нокиоапа страница этого обшир-
ною сайта, посвященная пакету расширения Wavelet Explorer для этой СКМ.
Рис. 7.10. Ин1ерне1*страница фирмы Wolfram Research, посвящения я
iiHKfiy рисигирпния W avelet Explorer
В целом представление вейвлег-тематики пя этом сяйта представлено более
скромно, чем на сайтах других фирм, рассмотренных выше. Но, и ни нем тоже
можно найти множество интересной информации и поучительных примерив.
7.1.7. Русскоязычные Интернет~еамты
ттп кетгштетапл
В России также имеется ряд Интернет-сайтов, посвященных вейвлетам.
Прежде всего это сайт Санкт-Петербургского городского ссминнрв по вейвлетам,
организованного учеными Синкт-Петербургского государственного упипрр^итр-
та. Среди них немало епециялиетов, давно работающих в области математичес
кой теории вейвлетов. ТТяпяльняя страница данною сайта показана на рис. 7.11.
Наиболее Ценными на этом сайте, помимо постоянно обновляемых материа-
лов данного семинара, являются материалы посвящеппыерусскоязычной литерату-
ре по нейнлетам Начало страницы, посвященной этому, предетаплено на риг,. 7.12.
395
7. Состояние и перспективы развития вейвлет-техиологии
Ue Йл
“\Са^-Петербургски^гор^кой сеиинар
Всплески (wavelets) и их приложения
айта Сапкт-Пете б гского
городского семинара по вейвлетам
Рис. 7.12. Интернет-страница,
посвященная русскиааычиой литературе ни иийвлетам
396
7, Состожкие и перспективы развития рсйвлет-технологии
Рис. 7.1 Я. Интернет-страница сайта «Русский Вейвлет Дайджест»,
посвящсшиш учетам и спецнялиетаМг работа№щим в областив вейвлетов
иисвященная вейвлет-ресурсам
Я97
7. Состояние и перспективы развития вейвлет-техиапогии
вейвлет-преобразований, носим «ценная днссертаипяга ни нейплстам
398
7. Состояние и перспективы развития всйплиттехнологии
Стоит отметить, что размещенный на этом сайте список литературы имеет
ся в иррннодпой книге Добеши [11]. подготовленной под редакцией И. Новикова,
соавтора н» одной ио первых в России статей ни теории чейилетов [15].
Другой сайт с. большим количеством материалов по вейьлетам .>то «Рус-
ский Вейвлет Дайджест» www,wavelet.natOd,уч, Особенно иитеречоп п чрм
раздел «Люди», н котором перечислены утеНЫЙ II специалисты, работающие в
области теории и применения вейвлетов. Страницы угого раздела представлена
на рис. 7.13.
Много материалов на этом сайте и по вей плст-ресурсам (риг. 7.14г В число
ресурсов тут входят не только ссылки на Интернет-рссурсщ НО II на многие дру-
гие виды рису {.«л >к. Например, имеется перечень исилидовательских групп, рлЬп-
шипцпх 2 йоЛ«С"”> КНИГ. С'1'IV!'"?,, и т- гт-
Интересен и Интернет-сайт одного из авторов книги по теории и практике
ьейплст-преобразований [13] Е. Грибупимя, начальная страница которого при ви-
дена на рис, 7,15, Ни сайте размечал практически тот ясс митеринл. чюииа дру-
гих, отмеченных выше, русскоязычных сайтах.
CwuribwBieto Technical Program (new)
Омм”"” Coilrses/ I ninrials (ebstwts in Ttmni-n) fa^efilla)
£E CONTESTS On Kuala»):
Рис. 7.17. Интернет'стрянппа сайта Института прикладной нитемптикч
«мели М. в. Келдыша
Несколько оживляет сайг ибн i»ipi»».»M раодсл по диссертациям, u whmbii-mw дя»
рубежным. Начало страницы этого разде/ia представ иепо на рис. 7.16. Но этом сай-
те имеется разнообразная и иная информация, например по материалам третьей
Международной конференции ШГА-2000, но кпигпм и статьям по вейвлетам (для
многих предусмотрена возможность их записи па лиги компьютера, но npuiyuMM’
ным средствам (а том числе бесплатным для Tolubox сингмы MATLAB) п др.
399
7. Состояние и перспективы развития вейвлет-тежиолОГИй
Полезную информацию по вейвлетам можно найти на сайте Института
прикладной математики имвЕГИ М, В, Келдыша Российской пауте. В ча-
стности, на нем размещены материалы по 8-ой и 0-ой междунярпдных конферен-
циям по графике 1"рафиКон 98 и 99 (рис. 7,17), В этих материалах можно ннйгм
лекции по вейвлетам Л. Маслюка и Л. Переберииа.
Здесь стоит отмстить, что выше перечислено пит малая часть источников
информации по теории и практике вейвлетов, размещенной в Интернете. Мни
гие поисковые системы, например www.aoort.ru.www.vambler.nl и др. выдают
сотни ссыпок пл Ипторпйт-сайты, посвященные вейвлетам и их применению.
Внимание
давайте слово «взйилетгл» (или «вэйалеты») именно на русском языке. Если
задать его как английское «wavelets», то большинство обнаруженных матери-
алов будет на нпГЛИЙском языке,
7.2. Программное обеспечение
по вейвлетам
7.2.1. Открытость программного обеспечения по
вейвлетам
Как уже отмечалось, ня Интернят-сайтах по вейвлетам имеются многочис-
ленные ссылки нн программные инструментальные средства по псйплстам. Несо-
мненно наиболее важные из них это профессионально выполненные коммерчес-
кие нерсии пакетов расширения по вейвлетом для современных СКМ MATLAB,
Mathcad и Mathematiea [25-30], Как правило, это тщнтрлыго отлаженные и про-
веренные программные средства, обеспечивающие надежную и гарантирован-
ную работу с ними.
Среди части специалистов по обработке сигналов и изображений существу-
ет в корне неверное мнений з каки5-тй.тйй«с*н?й’яГ.сти программного
пия по вейвлетам и щ-йвлет-преобразованиям. Между тем, никакой таинствен-
цости в нем нет. В ряде из описанных выше СКМ программное обеспечение для
пакетов расширения готовится па языке программироВйЕГИЯ этих систем в пол-
ностью открытом для применения пользователями виде.
В качестве примера можно взять наиболее мощный из описанных в дан-
ной книге пикетов расширения — Wavelet Toolbox для системы MATLAB 6.1
(разработка лета 2001 года). Программные модули всех функций этого пакета
(их всего 270) выполнены в виде m-файлов, которые находятся в папке TOOL-
BOX\WAVEI,ET\WAVELET и полностью открыты для просмотра любым текс-
товым редактором. В качестве примера ниже представлены листинги двух важ-
ных функций: одномерного прямого и обратного вейвлет-преобрааовапип. Из
листинга удалены начальные комментарии с описанием атих функций ни щи*
400
7. Состояние и перспективы развития вейалет-техиологим
лийском языке, поскольку такое описание было дано в главе 3 на русском язы-
ке ипс относится к исполняемой части программ.
Функция одномерного прямого вейвлег-преобразопаиия пакета Wavelet
Tui Л-ox
function [a,ci] - dwt (x,varf.rgin)
%UWT siiiyle-levei discrete l-D wavelet transform
if error-in (ref ile name, nargin, [2.7 ] , natgout, [0:2]), prror ( '4') ,
end
if isbtr(varatgin{1})
[Lo_D, Hi__D] - wf J I *rrs (varai'-u n l i), 'd') г пилг. •= 21
else
Lo__p = varargi.nl 1) ; - vnmrgihf 2 } 7 next » Ji
end.
1 Default; Shift and Extension.
dwtATTR = dwtwede(1 yet') ;
Shift - dwt ATTR. shi ft ID,-
dwtEXTM " dwtATTR.extMc.de,-
% Check arguments for Extension and Shift.
for k = next:2:nargin-1
switch var^rginfk)
case ‘mode’ , dwtEXTM - varargin{k+l];
case ’iihift1 , shift - mod (varaigi..{ k+1}, 2);
end
end
% Compute size4.
It - length(Ln_D);
lx lenyth{x)?
% Extend. Decompose & Extract tueffieienLo
flagPer - isecual(dwiEXTM,1 pci’) ,
j t -fiagPer
IcnEXT - It—1; lenKEPT - lxilt-1?
else
lenEXT - i±/2; 1СПКЕРТ - 2*ceil (lx/2) ,-
401
7. Состояние и перспективы развития вейвлет-технологми
у - Хйх! ’ 2 J ' , (JwlEXlK, X, I С.'ПЕХ'1 1
•I - oonvi-iaw (у, LC'-C, I <_ iiKkL’T, sl'i i Г1_;
Ci _ i nnvciow’i (у, IftriKRPl, shil I )
r 11,1 I iunci I t'N (5)
си'и i, ii у - convclOMn (x, i i.'dKEPT, s.iif I)
7 u< ' t', J ( 1 b 1 , л f C ) ,
^(уД-ч.Иг'ГТ;.'
ЦО JC, < >'л Г) (у, Ui 1
<Pyi кция одномерного обратного пейнпет преобразования анкета Wavelet
Toolbox:
I ।;я•l о । x - i rkt (a,J,V51aryx I)
" j uu । , ' i <7 1 f-evi-l Hioer.se di'ic-r^Lie l-i' wiv^lui transform.
f - x cii qi. (ml । 1 onamc, nar<rjin,[3:9|,naiQ(ju(T[0!'l), er x or ( ' * 1
у at 4. Д 35ГГР1 x'(11) , x - {] ; r^TH’i'i; «.nd
Di । :> '-'I'qi.b, Sint ,uid Extension.
d'ylA'.'T;, -l« Lniocle ( 1 get' > t
(•ps^ ‘tnodo1 , i-iwfATTR.ei-.LMi'tM - x'.’i i ar cu.l ( P. + 2} i
402
7. Состояние и перспективы развитии вейвлет-техиологии
к+2/
1.ч - vara rcj i n I к} ; к = к + 1;
so Recons1.1 lifted Approximation
X - npsaconv ( ' 111' , a, Lo_R, lx, nwl А1ТГО + ... £ Approxvin ion.
opsaconv ( ' ID', d, Hi R, lx, UwtAiHO J 1 Pettn'
Приведенные листинги ииднюгея типичными МАТ1АБ'пропецурами И
зноющми язык программирования этой системы пользователи могут без труди
разобраться в мельчайших деталях их реализаций. Язык программирования си-
стемы MATLAB 6/6.1 достаточно подробно описан в книгах [27.29]
Ещо дальше в этом направлении пошли разработчики пакет Wavelet
Explorer для системы Mathamoticu. Кик уже- отменились в Главе 6, птоз' пакет
выполнен я ииде одной программы (поутбукя) ни яяыке си<: is.viw Mathc/uutica.
На рис. 7.18 представлен фрагмент программы в окне токсч'овоГО реди.сторл
WordPad на котором вйДНО качало программного модула, выполняющего пря-
мое войвлет-црепбразовапие,
Рис. 7.18. Фрагмент программы - пакета расшнрелмя Wavelet Explorer
системы Malheuiutlca
403
7. Состояние и перспективы развития вейвлет-технологии
Таким образом, в ряде случаев программное обсщи'чецис по тюПвлетам и
вейвлет-преобразеийнням полностью открыто пользователям и они мр/ут по об-
разцу и подобию имеющихся программных модулей создавать пион программ-
ные модули, реализующие те или иные вейвлет преобразования и технологии.
Следует однако помнить, что модификация погтявцясмых разработчиками про-
граммных модулей допустима только с их согииеин и а рамках существующих
лицензионных соглиик-ний.
7.2.2. Свободно распространяемые пакеты
расширения системы MATLAB
Заметную долю в программном обнг.цечеяии вейвлг i’-технологии образуют
пакеты расширения матричной системы MATLAR, идеально приспособленной
для со 1дапия пакетов расширения. Многие wik»<* пакеты рождаются я учи иерси-
гегской среди- или создаются независимыми полълотг!тлями и малыми фирмами
как г-ипбодпо распространяемые программы.
Одной из олмых мощных программ такого рода япляетгя программа
WAVELAB 8.1)2. созданная в концу 1999 года в Стэнфордском университете
(риг,, 7.19). Но тем временам эта программа превосходила стандартный пакет
Wavelet Toolbox системы MATLAB. Эта программа сделана кяк пакет расшире-
ния, включаемый в инструментальный набор Toolbox системы MATLAB 5>*.
К сожалению, с новой реализаций MATLAB 6/6.1 данный пакет пс работает из
ла мпигчцислепнзгх неточностей в □описи фл йаов.
What ivWavdab?
Ilow tri !>Г1ЧЯ1|ИЦГ'
Рис. 7.19. Иптернст-етраггици, гГпг ниГценяаа программе WAVELAB Si02
404
7. Состояние и Перспевтимы развития дсйплет-тезмгологиы
Внимание
Владельцам новейших ПК е микропроцессором Pentium 4 следуьтучитмнять,
что па них работоспособна только последняя версия MATLAB 6.1, Цредшеи
вующие версии системы MATLAB ие работают, Возможно это попод Hfi спе-
шить t! переходом па новейшую вычисл ительную технику, ____
Небольшой пакет Time-Frequency Toolbox Райсовского университета да-
ет прекрасные средства частотно-времеННОго преобразования, которое, к сожи-
лепию, известно у нас в еще меньшей степени, чем вейвлет-снектряпьиый ана-
лиз. Обзор ЭТИХ методов в системе Mathcad дан в конце главы 1 данной ипига,
А указанный пакет, кстати имеющий неплохой пользовательский интерфейс,
способен дать дополнительный стимул к изучению этого мощного средства яна
лиза сложных сигналив, подчас превосходящего нозмижипсти Фурье- п вейв-
лет-анализа,
MATLAB PYUTOOLS еще одни пакет расширения смсТёмы f!',;
является библиотекой частотного анализа сигналов, а основном двумерных. Хо-
тя этот пакет по имеет прямого отношения к вейвлетам, он нанимает почетную
«золотую середину» между методами Фурье и вейплет-аиализа сигналов.
Мы ограничимся упоминанием УТИХ пакетов, хотя ими эта область про-
граммного обеспечения вейплет-технологии, разумеется, не ограничивается В
отмеченных выше Иптернет-ресурсах можно найти программы по вейвчет-трх
пологиям, созданные на языках программирования, начиная от старого доброго
Бейсика до C++, Но, пожалуй, самым примечательным становится внедрение
вейвлеттехнологий и расширений в современные прикладные программные си-
стемы, Лидерство в утом СКМ мы уже отметили, но оно уже не являитсм единст-
венным, Вейвлет-тсхпология начинает проникать о программные комплексы
массового применения, например в графические редакторы.
7.2.3. Вейвлет-технология
в графической системе Corel DRAW
Новые версии графических систем Corel DRAW 9/10 уже широко исполь
эуют вейвлет-технологию обработки изображений с их цивильно глубокой ком-
прессией, Переход к хранению изображений фотографической качества в такой
популярной и мощной графической системе, как Corel DRAW 9/10 иначе кок
примечательным пе назовешь. Это свидетельствует о выходе вейвлет-техноло-
гий обработки Ийображипий на уровень самого серьезного и массового практиче-
ского примеиения.
Любое изображение, загруженное в основной компонент этой системы
Corel DRAW (для определенности ниже примеры даны для компонента Corel
DRAW 10) может быть импортировано в формате WI (формат с вейвдет-компрес-
сией и обработкой изображения). Это иллюстрирует рис. 7.20, иа котором при-
ставлено загруженное изображение (оно может быть в ином формате) и показано
окно команды Экспорт, которая имеется U позиции меню Файл. Нетрудно заме
тить, что в списке форматов файлов для их записи н* диск имеется формат WT
Wavelet Compressed Bitmap.
405
7. Состояние и перспективы развития вейэлеттехнилигим
Рис. 7.21. Загрузка файла о формате W1 Winclvl Compressed Bitmap
в приложении Corel PHOTO-PAINT IB
df)R
7. Состояние и перспективы развития вейнлет-технологии
Для просмотра файлов в формате WL Wavelot Compress! Bitmap и в дру
тих доступных Corel DK.AW 10 форматах графических файлов спужпт специаль-
ное приложение Corel PHOTO-PAINT 10. На одним из CL-КОМ Corel DRAW 10 в
каталоге PHO’IOS имеется богатейшая коллекция выбококатч-тненцых фото
jрафий, файлы которых представлены в формате WL, Это позволяет ни дшчоии
ству оцепить качество изображения при профессиональной обработке вейппгг-
обрабитке и компрессии изображений Рис. 7.21 показывает загрузку файлов
раширеяием WI в этом приложении.
Файлы В вейнлеч-формате WI выгодно отличаютси ш.шипим качеством и
небольшими размерами (в ернннеиии другими форматами, например BMI’ или
РСК) Это следствие описанных в предтестнующих глазах достоинств н< йвлег
методов обработки и компрессии изображений. Рис. 7,22 "оказывает одно из
изображений морской звезды иЭ одного из демпн<"1 рационных файдов. К сожа ii<’-
нию черно-белое изображение п книге совершенно неспособно передтть то высо-
чайшее качество цветного изображения, которое обеспечивается при просмотре
таких изображений на экране цветного дисплея е высоким разрешением.
Рис. 7.22. Просмотр изображении из файла в формате WI Wavelet Compressed Bi1 «и>р
в приложении Corel PHOTO-PAINT 10
Обратите внимание ни окно Document Info с параметрами изображения,
представленное справа в окне просмотра изображения. Из приведенных г. нем
данных следует, что полноцветное изображение формата 768x612 пикселей,
имеющее в оригинале (.в памяти) размер около 2,2 Мбайта сжато вейвлег-ком-
прессией до размера примено 0,22 Мбайта, таким образом обесииеопо егкэ ш» с
Коэффициентом компрессия 10.
407
7. Состояние и перспективы развития всйвлот-техиологии
7.3. Состояние и перспективы развития
вейвлеттехнологии
7.3.1. Типовая обработка сигналов
Всйвлст-тохнологил уже добилась заменили успехов. Опубликованы (в
том числе на русском языке) основополагающие книги по пей. Инструменталь-
ные еродстля се лклтгптопы и наиболее мощные и совершенные системы компью-
терной математики MATLAB, Mathematica и Mathcad. Это открыло реальные
возможности работы в этой новой области для многих специалистов в области
связи и информационных технологий, а также в постановке учебных курсов по
Ц1-ЙИЛ1,‘1 ЧСХПОЛОГИИ .
На ьойвлет- обработке и компрсесил/дскомпрсссии сигналов иэобрая:силя
построен массовый и перспективный стандарт сжатия изображений фотографи-
ческого качества JPEG 2000. Как уже отмечалось, вейвлег технология сжатия
таких изображений уже применена в наиболее известных пакетах по обработке
изображений Core] DRAW D.10.
Большую известность получили работы по компрессии изображений,
например отпечатков пальцев и фотографий лиц с не слишком безупречной
репутацией- Только в Федеральном Бюро Расследований США хранится свы-
ше 30 миллионов отпечатков пальцев, и для их хранения нужно 200 Терабайт
дисковой памяти. Применение вейвлет-технологии сжатия отпечатков паль-
цев позволяет уменьшить объем этой памяти в 2(J—30 раз. ФБР ежедпеопо об-
рабатывает 30 тысяч огиечитков пальцев. Практическая реализация этой тех-
нологии с помощью СКМ уже неоднократно описывалась выше,
Рис. 7.23. Зашумленный импульсный сигнал и результаты его очистки
00 °* 10 Э0оч^г^
40S
4t. Состояние и перспективы развития вейвлет-техыодогии
ОчисгКй сигналов И изображений от шумй еще одна перспективная об-
жить применения нейвлет-тохнологий. Mi.- уже описали средства пакета Wavelet
Toolbox дли этого. Приведем данные о различных методах очистки импульсного
сигнал? пт шуми (рис. 7.23). В этом примере нидаы бесспорные преимущества в
очистке сигнала от шуми, достигаемые при испольоопсшпп вейвлетов.
Рис. 7.24. Фото Ингрид Дой-nrw и демонстрация очистки изображения от 1ГТумя
Методы очистки сшпалов от шума применимы и к изображениям. Пример
этого дает рис. 7.24. Здесь дана фотография Ингрид Добеши. чью роль и станов-
лении вейвлет-чехнологип мы уже не раз отмечали. Поцннянп часть ее липа (да
простит нас госпожа Добеши за столь своеобразный, хигя и использованный от-
нюдь не впервые, способ демонстрации позможностей вейвлетов) R ори гипале, г
шумом и после очистки <я шума.
К сожалению, качество печати рисунков в книге ие позволяет в но а пойме
ре ощутить возможное ги очистки изображений.
7.3,2. Велгвлст-техиологии в Интернете
Мы уже отмечали роль нейвлет-технилогий в картографии, разведке по-
лезных ископаемых, и биологии, н медицине, словом, везде, где нужны сродства
анализа ечояспых дзубця -кений. Особо следует выделить подготовку с пимшцм
иейвлет-црепбравовещий изображений, размещаемых в Интернете. Здесь 1<ажно
отмстить ряд моментов;
• изображения в Интернете нередко имеют небольшие размеры;
• для них желательна предельная степень сжатия;
• даже небольшое улучшение качества при высокий степени сжатая аиа»и1ршт.
(•я письма полезным;
409
"7. Состояние и перспективы развития ронвлет технологии
интересны методы сжатия, дающие вначале грубую картинку, а затем ос де-
тализирующие (такие методы позволяют ускорить знакомство с картинкой до
ее полной загрузки).
Как нетрудно заметить, вейвлет-технология обработки изображений и их
.uiMiipmiHH облндяет нсеми этими качествами и потому является одной из пер-
•псктивных Уже сейчас передки в Интернете можно найти картинки прекрас-
ного качестци е очень милым размером. Обычно это результат применения
вейп ь-тпк. Оривннмие результатов представления фит(лрнфий при различной
метчги сжатия я формятнх JPRG и «нймивт показано ня рис. 7.25 на примере фо-
1'ссцимка волка.
Рис. 7.25. Примеры фотографий
о разной степенью елсатнл, подготовленных п различных форматах
.Новый епимок ня рис 7.25 — оригинал изображения. Файл с ним имеет
размер 461 Кбайт. Снимок в центре то-же иображепие с формате JPEG, подпи-рг
гуч'Оо г ильной компрессии (размер файла 3,5I Кбайт) Нетрудно заметить, что
качество изображения явно неудовлетворительное. На изображении отчетливо
видны характерные квадратики, на которые разбивается изображение в ходе ло-
кального косинусного преобразования, лежащего в основе стандарта JPEG (ло
JPEG 2000). Заметны ц артефакты искажения, обусловленные дискрстизаци-
г1к>'гография справа пол учена в результате вейвлет компрессии (размер фай-
ла 3,52 Кбайта). Итак, при одном и том же размере сжатого файла вейвлет ком-
прессия дяет гораздо душим- кяимтио изображения, прм .TPRG-кпмпрессия При
сопоставимом качестве изображения размер файла при всйвлст-компрсссии удаст
ся уменьшить в 1,5—2 рана.
7.3.3. Вейвлеты в видео- аппаратуре
Интересным направлением является разработка аппаратных средств (на
пример охранных видеосистем, видеокамер, модемов и т. д.) со встроенной вейп-
410
7, Состояние и перспективы развития вейидат-технологии
ния по довольна узкипилоспым каналам связи, характерным для банковских уч-
реждений, офисов и госуд,1[и"1-ч<>ипт.гх служб Таки* системы могут органично
нходить в системы Интернета и Интранета (локальных сетей, исцодьау» пци-х
протоколы рибиты, соодапные для Интернеты.).
Для развития этого перспективного направления применения вейппет-тох-
нологии необходима разработка специалнзирпкинных интегральных микро
схем — вейвлет-кодеков (слово «кодек» происходит пт гзц>ц «кидироиатс»
«декодирование» сиглилои). Для видорсигралов такие видсоколски уясе гпа.ы
ны. Например, фирма Analog Devices выпуг wr серию однокристальных и недо
рогнх микросхем видеокодеков ADV6XX.
Микросхема ADV601 предназначена для применения в профессиональной
аппаратуре. Она обеспечивает компрессию изображения без потери качества
изображения в среднем в4 рязя. Изображение разбивается па 42 блока и подвер
гае'юя кодированию с плавающим пироюм пи энтропии. П результате степень
компрессии может меняться в зииипямости о* хирактнрм сигнала в upcatusv о"
двух до пяти.
При компрессии с небольшой потерей качества изображения >'"п>триь сжа-
тия достигает до 350 раз. При этом иснольвуетеи специальный адаптивный > я г»
ритм вейвлет-преобразоич"ий. учитывающий особенности чезпн.-чп кого аре
ния. R чидеокодбКах ADV611 и ADV612 для бытовых применений степень
компрессии может досгига| ь 7500. но ватой случае ухудшение качества изобра-
жения довольно заметно, что ие мешает применять яти нидеокодеки для целей
наблюдения и идентификяпии объектов в охраняемых помещениях и для пере
дачи изображений Но узкополосным каналам Интернета,
При высокой степени сжатия искажения видеостнилп крчяплШдТсд в ян
де высокочастотного цтумя и некоторого размытия мелких летмлвй. Такие иска-
жения слабо воспринимаются глазами человека и заметны намного меньше, чад
блочные искажения, характерные для JPEG и MPEG стандартах СЖАТИЯ ИЗОбрн
жоний, огиппяияых ня блочком косинусном преобразовании. Заметим, что р;ч-
над изображения на блики — квадратики и размером 8x8 или 1вкП5 пиксолац
при MPEG кодироиц>> ни и декодировании прекрасно знаком ьгипому полыкдщ-
телю компьютерными видеодисками. У вейвлст-видсокодеков таких грубых ис
кажевий нет.
Более подробные сведения о видеокодеках фирмы Analog Devices можно ннй-
та в книге [18]. Хотя она издана мацлм тиражом, е книгой можно |ц>.1ни1<омпты-'г
через Интернет-страницу одного из ее авторов — П. Грибунина (см рис. 7.15)
Пример применения вейвлет-технологии передачи изображении дчп на
Интернет-страпинс http:Z,'www.bizcr>ni.ru/equn>meut./2000 10/ОЗ.Ьгш,.. 11а пен
описана реальная система относительно уикрполсх-иой передачи телевизионного
изображения, которая можот быть использована в локальных сетях Гшню» и б
системах охран ной < и гнализацин различных важных объоктон.
Но практике вейвлет-|>1м>образование релш.ш.гх цветных телевизионных
изображений нгтречает немалые трудности. Прежде псе то надо отмотит!,. чг.<
приходится кодировать и декодировать составляющие цветных гигналон, иа-
411
7. Состояние и перспективы развития ввйвлвт-твхнологии
пример RGB (сигналы крж наго, зеленого и синего цветов). Для вейвлет-ко даро-
вания с сжатием максимальной эффективности камнем преткновения етннонит-
ся постоянная частота смены полукадров телевизионного воображения. Реально
используется фильтрация изображений и энтропийное кодирование.
Опуская многимигленныо детали практичекой реализации вейвлет телеви-
зоваться в подобных модемах.
Рис. 7.26. Внешний ннд модрия г нлйплрт-кпдировяниам (а)
и вид и» его печатную плату )
1£як нетрудно заметить, конструкция модема с вейвлет-кодированием до-
статочно проста и можно рассчитывать, что при серийном производстве такой
модем будет недорогим. При частоте кадров 12,5 Ги можно обеспечить высокока-
еестпе иную телевизионную передачу по Интранету с примспсннием выделенной
ггинии ( припускной способностью 2 Мбит/с. Такими ливнями сейчас располага-
ют МИШ'ИРбанки н крупные компании, что открывает реальные возможности ис-
пользования в них вейвлет-техыологии обработки и передачи телевизионных
сигналов. Имеется возможность создания таких многоканальных телевизион-
ных систем. Возможно, что со временем такие системы могут быть реализованы
и в глобальной сети Интернета.
7.3.4. Вейвлеты в математике и в физике
а т ......
пологий в решении и других математических я физических задач;
• передач;! сигнален от сейсмических датчиков о высокой точностью и высокий
степенью компрессии,
* анализ радиационных и тюйтронпг.тх спектров,
восстановлении г иГ’наля из свертки;
численные методы решения уравнений в полных и частных производных;
решение гиперболических уравнений в задачах геофизики^
413
7, Состояние и перспективы развития вейвлет •технологии
• моделирование прохождения оптических импульсов в нелинейных средах;
• исследование явлений турбулентности и др
Достаточно обстоятельный обзол применений вейвлет технологии даос
работа [20]. Здесь можно найти интересные дяииме о применении неЙвлстов в
физике элементарных частиц и в теории твердых тел и молекул. Причуд
пипооть взаимодействия между частицами твердых тел вынуждает исследова-
телей применять весьма тонхйо и одновременно громоздкие методы их иссле-
дования. Например, для описания эффективного потенциала ядер урана <•
применением Фурьс-апализа пришлось бы ВЫЧИСЛЯТЬ 21М Фуры’-киыффипиен-
тов. Эта задача была утопию решена с помощью всйвлет-ТРХЙОЛОГИИ. Пс-
1-килысу зта фуцдамем1альная задача интересует узкий круг читателей, огра-
ничимся ссылкой на работу [20] и цитируемые н ней оригинальные работы по
данной проблематике. Там же можно пяЙти данные пи применению дейьлпт-
ТСХНОЛОГИМ при решении задач множественного рождения частиц, решения
проблемы кварк’глюониой плазмы и изучения структуры фазовых обменов от-
дельных событий.
7.3.5. Вейвлет-анализ фотографий
турбулентности
Турбулентность в газовых или водяных гтруях - благоприятная область
применения вейвлетов. На рис. 7.27 ппказапа теневая фотография турбулентной
струн (слива) и два варианта ее обработки с ПОМОЩЬЮ ВОЙВЛСТ-прсобразмвииия
(справа), показывающих наглядное представление общих и дета ih.mmx (кюбин па-
стей строения струи.
Pile. 7.27. Теневая фитогрнфиа 1урбулентной струн (слепо) и дпа парнапта. «а обработки
г Помощью вейвлет-преобраооваппя (справа), показывающих магЛндчы- <чыд<тавлснке
общих и детальных особенностей строения струи
Нетрудно заметить, что имянно веивлет-Пр&ДОтавл₽чиа струи является па-
нболиг информативной. Оно выделяет ьюпьияйптив детали фотогрофии струи.
413
7. Состояние и перспективы развития вейвлет-технологии
7.3.6. Вейвлет-анализ
данных микроскопического исследования
Вбиологии, ботанике v медицине важное значение имеет анализ данных ми
кроскопичсского исследования тех или иных объектом, например бактерий. Фак-
тически, он сводится к обработке полученных с помощью микроскопа воображе-
ний. Уже есть данные об успешном применении для этой цепи нейнлит-яинлиин.
Па рис. 7.28 слева представлена типичная микрофотография невыского
качества мазка крови человека с эритроцитами [20]. Визунцыш их ибинружичь
практически невозможно. Фотография справа — результат вейвлет-обрибт-ки
исходной фотографии Трпоцк уже кие тки крови итч1Тливп пиугп.1. можно опре-
делить fix форму и размеры.
Рис. 7.28. Микро фотографии мазка крови до (слепя)
и после (справа) вейвлет-обработки
Рис. 7.29. Микрофотография биологической среды
с клетками эритроцитоп
Вейвлет анализ изображений может использоваться и для решения зада ч рас-
познавания образов и определения их характеристических иарамутрмв. Примерим
414
Состояние и перспективы развития вейвлет технологии
таких образов н биологии и d медицине могут быи, эритроциты крови 1рис. 7.29).
Как видно из этой фотогрнфии, они характеризуются различии™ формы, плотности
изображения, четкости контуров и наличием тех или иных вкраплений. Они могуч
быть вызваны как теми или иными заболеваниями, так в “огрр.цностыо самого ми-
кроскопического исследования, например грязью и цылью
Были создана методика идентификации эритроцитов криви, основанная па
wfiнлет*корреляции совмещаемой е обработкой изображений но дсчиилм микро
скопичеокого исследования. Ее экспертные оценки медиками оказались ни ьм.,
обнадеживающими, а сама методика могла быть реализована в автоматическом
режиме без вмешательства человека.
7,3,7. Исследование сердечной деятельности
Сердечные заболевания относятся г< наиболее распространенным и часто
служат причиной смерти людей. В связи с этим Огримпый пттерсе чы.и,iамот и с
следования сердечной деятельности, которые могли бы лиг» как г.? слосоГют'н,-
ва гь диагностике сердечных заболеваний.
Интересные результаты были получены при всинлог-ана'имс юсиедиыл
интервалов между ударами сердца встедствии епкришеиия сердечной! мыпЩЫ -
см. [40J и указанные в .этом обзоре оригинальные работы. Ингерсс к этому подХи
ду связл > с том, что он не требует применения электрокардиографа и гнюиоляет
по пучить нужные данные достаточно оперигивцо.
Пос.лйдоватедьцогти интервалов представлялись как функции от номера
интервала. Каждый пациент характеризовался некоторым числом — дисперси-
ей Интервала для заданного j зейолет-коэффициептн. Оказалось (рис 7.30j, что
при J от 3 до 5 наблюдаются явные ряемскденяя между числам,к (дисперсиями)
больных и здоровых людей.
Рис. 7.30. Зависимость дисперсии временных интервалов ударами сердца
здорового (светлый кружки) и бального (темные круЖБИ) чс.’ЦШгья
И номерами j вейвлет-коэффициентов
415
7, Состояние и перспективы развития всйвлет-технологин
Пока эти исследования были выполнены для 27 пациентов, при этом обра-
батывалось около 70 000 интервалов. Разработчики методики утверждают, что
ими создана приемлемая для клиник методика. Действительно видно, что при
j-4 здоровью н больные пациенты надежно ряплиияются. Однако представляет-
ся, что объем «выборки* по пациентам пока еще недостаточен. Э-писворит лишь
об одном — подобные исследования перспективны и нуждаются в продолжении.
7.3.8. Моделирование процесса смешения фракций
Еще один характерный пример, где полезно применение вейвлетов в таких
фундаментальных ннукнх как физика и химия, — моделирование процесса сме
пения фракций. При смешении различных фракций в химических растворах
или газах важное значение имеет моделирование процесса их смешения, вы-
знанного хаотическим броуновским движением молекул. Граница раздела меж-
ду фракциями при этом порою приобретает весьма причудливый впд и может
быть представлена сложной поверхностью в трехмерном пространстве,
В пакете Wavelet Extension Pack и в электронной книге по нему дан инте-
ресный пример такого моделирования с применением вейвлет-фильтра syhitn-
let(8). К сожалению этот пример настолько большой, что приводить его в дайной
книге не имело смысла. Читатель, заинтересованный в его изучении, может По-
знакомиться с ипм самостоятельно с помощью указанной э.’1РК1ронной книги.
Мы ограничимся привсдслением результата моделирования, который в
этом примере представлен двумя основными типами графиков: в виде поверхно
сти и в виде графика лилий рпиного уровня. На рис. 7.31 показан результат мо-
делирования в виде поверхности, представляющей собой распределение концен
трпции одной фракции в другой фракции. В оригинальном варианте этого
примера использована функциональная окраска поверхности, по па рнс, 7.31
опа замолена окраской оттенками серого цвета.
Рис. 7.31. Поверхность раздела двух фракций,
полученный при моделировании броуновского движения молекул
416
7. Состояние и перспективы рязи-шня рсйвлот-т&хнй.ядгии
Результат моделирования в виде контурного графике (линий равного уров-
ня) представлен на рис. 7.32, При оцифровке лиЯИЙ такой график можно ие-
нольаоватьдлн численных оценок результатов моделирования.
Следует отметить, что при неоднократных пусках этою примера будут по-
лучаться разные поверхности, поскольку при моделировании менял ьзуетсл гене-
ратор случайных чисел, задающий случайное» движением молекул.
7.3.9. Вейвлеты в анализе специальных
функций и сигналов
Большой интерес вызывает ирдмсдопис врйплрток ди н оценки локальных
свойств различных функций, например, элементарных и специальных матема-
тических. С помощью нейвмл-етлчриграмм можно выяснить наличие у фу|.к
циЛ разрывов и точек перегиба, нарушения непрерывности прииоводиых и дру-
гие детали их формы, В том числе и но итносящиегн к локальным (например.
примеру, для оптимального выбора методов аппроксимации таких функций.
Особенно поражает способность аейьлстов выделять скачки я рнзр .мы у
функций. Частично эти воэможности уже обсуждались я гпянах й и 3. Приведем
дополнительные данные по этим возможностям, в том числе количественные.
Издадим синусоидальную функцию (примерно 2 периода) и наложим ио
нее прямоугольной формы колебания, соодаоасмыс выраженном 0.1vsign(ain((t-
7).*2./3)). Это означает, что синусоида будет содержать небольшие скачки поло-
жительной и отрица re п иной полярности. положение которых нс фиксировано, а
определяется кяядратическим законом нярпстпция частоты прямоугольных им-
пульсов. Это сделано для того, чтобы скачки появлялись нс самых рааИых мес-
14 Зпк 20
417
*1* Состояние и перспективы развития вейвлет-технологии
тах синусоиды. Таким образом мы создали типичный нестационарный сигнал.
Соответствующая nppi рам ма для построения графика такого сигнала и его вейн-
лет-спектра для пакета Wavelet Toolbox дана ниже:
I - 1 1 iispace :-6, 6Г 20443 ) ;
sin it)+0.1.’sign (sln((r-7).A2./J)),
M.bplot(211), ploL(L/&i; title ('function - (r)1)
_> L-bplot (212 ) , c ~ cwt(q,)!?!'>bf,' yiii4 ' , ’ abslvl 1 , [IGO 400]);
Lit.J e ( ' h.ive_et speotr 3(t) ’)
Риг. 7.33 показывает полученный сигнал и его спектр. Несмотря на то. что
двойная амплитуда ска'исов составляет всего О Л от двойной амплитуды синусои-
ды спектр сигнала потрясает своим разнообразием. Все скачки отчетливо фикси-
руются И их образ напоминает корни зубов на рентгеновском снимке. Темные пи-
ке между ними явно идут по квадратичному .закону, так же как и неравномерное
(квадратическое) распределение «зубов» во примени. Па уровне больших кооффи-
цисшов отчетливо видна тт периодичность синусоиды.
Г'1 »Л-;'...........' ' ЛЬ/ , ../ 2/,
Рис. 7,33. Временная зависимость и ciieKipoipaMMa синусоиды в сумме с небольшой
прямоугольной компонентой, имеющей квадратичное изменением частоты
Дтеинрьпроделаемкииилосьбы «смертельныйтрюк» — умрги.п'имампли-
туду прямоугольной нестационарной комиинскты сигнала до одной тысячной от
двойной амплитуды синусоиды (I):
t 1 1 ипзр.к. С ( - б , 6, 9 О'! fi ) ;
я = s lo (?) +0 . .10) . ’к । ф (я in ( (t-7 ) . '/!. / j) ) i
418
7. Состояние и перспективы развития вейвлет технологии
subplot(211), plot(t,s); title('function n(n)')
subplot- (212) f c = cwt-sf 1 :1 : 3 6 r ' Sytn4 ' , 1 ,ih-i I v I 1 . I I ')()
tiLie('Wavelet spectr s(t) ')
Временная зависимость и спектрограмма сигнала для этого случая показа
пы на рис. 7.34. На синусоиде теперь нет даже намека на вторую составляющую
сигнала и она (в пределах разрешения графики компьютера) выглядит как аосо-
лклно чистая кривая. Одпакл спектр (дан вывод 36 коэффициентов) выделят ма-
люсенькие скачки, и тех местах, где они и впрямь есть в сигнале!
Рис. 7.34. Временная зависимость и слектрогрнммн cHHyi.-uHjiM >< рум мк г rnoirrmiui
малой прямоугольной компонентой, имеющей квадратическое изменение частоты
Подобное поведение вейвлетов только на первый взгляд кажется псозкидпи
Иыы и прости ошедомдяюшим. На самим депо, пио — следствие быстрого паряс*
танин уровни детализирующих исйиiieT-iHn|ii|u|iuii,iviiгсси. Яш ч ...............г
шейный ингерег к иейнлетям со стороны фиников. Ведь известно, что например
адемеитрриые частицы, бомбардируя гас, порождптот сплбглс имгу1П»аы от датчи-
ков таких частиц. Вейвлеты могут легко обнаруживать их на фоне сильных по*
мех (в нашем примере такой помехой была синусоида большой амплитуды).
Очевидно, что вейвлеты очень полезны и при анализе различных спег.и
альных математических функций. Здесь не обязательно речь идет об обычных
специальных математических функциях типа Бесселя или гамма функции.
Речь идет просто и любой сложной функции. Тем не менее, в качестве наглядно
го примера построим спектрограмму весьма распространенной гамма-фущщии,
нспольоуя следующую программу:
419
7, Состояние и перспективы развития вейрлст-техиологии
L = 1 хпграсс (-1С , 2,1 (И U )
aubploL (11) , pl or (t , s i : t i r 1 p (' funcLxuti s (t 1' 1 ,
<i s ([-10.2, 10,1311;
ляЬр! о t (^12), c cwt (s, 1:1 30, ’ ^,y ti<] ’, ' abslvl1, Г100 40UJ
t xi to ('Wavelet speclx ' t )
График iiiMMa-фуякции и cc спектрограммы представлен Ha PEC 7 35 Мы
снова видим, что спектрограмма отчетливо выделяет разрывы этой функции г
устремлением в бесконечности (в положительную и отрицательную). В обллстП
отрицательных значении аргумента спектрограмма отчетливо выделяет три сиц-
гу пирные точим этой функции, хотя на сомом графике и следа от них ист!
Аналогичным образом, хотя и не всегда столь эффективно можно выявить
И Другие особенности функций, ципример их периодичность, законы модуляции
по уровню и по часглтс, приличие разрывов производных, наличие асимптот
и т, д. Ряд примеров этого как ори использовании непрерывного, так и дискрет*
лого вейвлет'цреобраэозииия мы уже приводили.
7.3.10. Вейвлеты в анализе временных рядив
Особенно не акцентируя вниманий на этом, мы фактически уже много-
кратно ж пользовали вейвлеты для анализа временных рядлп Ибо фактически
временным рядом является любая функция (или сигнал), представленная в оп-
420
7. Состояние и перспективы развития вейвлет-технологии
ределенные моменты времени. Ради наглядности с нашими всйвлст-экспсримсн-
тими обычно приводились графики функций и сигналов,
Одиако. и 9то принципиально важно, сам вейвлет анализ и синтез сигна
лов и функций всегда выполнился ао конечному числу отсчетов функции или
сигнала. А последовательность этих отсчетов и есть временной ряд. При отсутст-
вии графика исходного сигнала или функггии судить о них по их вромонному ря-
ду трудно, ибо этот ряд представляет собой просто набор чисел; отсчетов сигнала
или функции.
Разумеется, соединив точки отсчета просто отрезками прямых (что и все-
гда делалось), мояспо получить простейший график сигпала или функции А да-
том, используя вейвлет-анализ, можно получить множество доцолнительных
данных и функциях и сигналах.
R нишей литературе перспективы применения вейвлетов для анализа вре-
менных рядов всерьез были поставлены в работе Астафьевой Н. М. (14|. В ней
нредцриията и одна из первых попыток идентифицировать особенности времен-
ною ряда (функции, сигнала) пи особенностям вейвлет-спектрограмм. получен*
пых яри использовании непрерывного прямого вейвлет-преобразования.
Рис. 7.33. График зависимости числа событий Эль-Ньпьо от времени за 500 лет /а),
спектрограмма вейвлет-цозффяциевтоа (Ъ) и распределение плотности энергии (с)
Однако, больший интерес а{"едстнв чнс) щ1ися»ир кий к »н >* тк н<>>»>> и и на-
работки типичного временного ряда, представляющего динамику изменения
событий, характеризующих процесс Эль-Ньньи — глобпльниго потепления
океанических вод вблизи тихоокеанского поборожьп Центральной Америки. С
помощью ряда как прямых измерений (примерно за последние 100 лет), так и
косвенных событий процесс Оль-Пьиъо удалось представить аа весьма внуши
421
7. Состояние и перспективы развития вейвлет-технологии
тельный срок в 500 лет (ото половина '•ыгичниетия), Для этого потребовалось
собрать данные многих исследователей - • от давно прошедших времен до на
[них. Полученный: при этом временной ряд и результаты его вейвлм-апалиао в
пуд? спектрограмм представлены па рис. ’(.36 (данные ла последи?? столетие
подчеркнуты).
Представленные на рис. 7.36 данные дают хорошую пищу для оценки про-
цесса Эль-Ньньо ц связанных с пин других процессоп. иаиример, процесса Юж-
гое Колебание. И i представленных данных можно сделать выводы о различных
долговременных а кратковременных фазах процесса Эль-Пьиьо, например О пе-
|иидпх глубокого потепления, о 40-лстиих периодических циклах и о многих
Лйых деталях этого сложней! trro процесса.
Заинтересованному читателю стоит изучить работу [14] более подробно. В
ip й, а чагцгости, можно найти результаты интерпретации как приведенных на
рис. 7,36 долгосрочных данных (только по частоте событий), и куда более по-
дробных данных за боле? близкие к нам периоды времени. К сожалению, описание
п [11] ограничено лишь идпомс-рдымк непрерывными нейинотами и ие пятрагива^т
гекую важную область, как предсказание (или прогноз) событий будущего.
7.3.11. Вейвлеты в предсказании событий
Нс исключено, хотя попо и не очень хорошо илу'кчю, эффективное приме
неппе вейвлет-аиалиоа нестационарных временных рядом и предсказание ио
ним непредвиденных событий типа «чепн|мт> нторнмна» (как нашего, так и слу
пившегося г, США), землетрясений н прочих природных катаклизмов, террори-
стических ПИТОВ И др.
То. что вейвлет-екектрограммь: способны выявлять тонкие особенности
дищеретно заданных математических функций, мы уже отмечали. Ннкцтирые из
этих (><-о1н'ццостс!Й (кстати совсем не обязательно локальные) могут шши/шуи*
ваткся дня имя и; няня lure называемых «предвестников» или «предокааателей»
t.-ijiryiTTHv <.<>Г>К1 ги ti Нл ппггь таких «ноедвесгников* грлдуЩИХ событий читки об-
ратила вггиманпо автора «<> им вы-я по работе доцент И. В. Абраменкова. Обзор
литературы по вейвлетам покязил, что оспованный на этом подход с црвмепонн-
?м nr-й и ik-тон уже существует, хотя и лишь в начальной стадии.
Начнем с решения технической проблемы — мредгн.ыяния разноса авиаци
ошюго дпггателя. При испытаниях и гри чкеплуатации авиационных двигателей
нередко казн икает серьезная проблема двигатель неожиданно теряет управле-
нье , длв'П’пие в камере сжигания топлива повышается, число оборотив турбины
н щипает неуклонно нозрастать и ото иожи: привести к крупной аварии. Попыт-
ки продскааат!, разнос пнипдвигателя по показаниям измерителей скороыи его
сращен ин окн.шлись неплодотворными; резкое повышение скорости обнаружива-
лось не ранее, чем за 10 ме ди наступающей кдгастрофы, а оа такое время что ли-
бо п] 1?дприпягь дим ее предотвращения практически невозможно.
Стило быть пулсиы достнточпо наложные методики предсказания такой пе-
ч «льлой емлуиции по ыгяможнопти задолго до ее наступления. Опуская физичес-
кие и тех пи пц-кие причины кн.шикновеппя этой ситуации, достаточно подробно
422
7, Состояние и перспективы развития венвлет-технолоогии
описанные в [20], откуда и взят этот пример, прости припадем дннные нейнлвт-
обработки быитриги изменения давления в камере сгорания турбианогоавиадви-
гателя (рис. 7.37).
Рис. 7.37. Осциллограмма давления в камере двигателя (снизу).
кривая дисперсии вейвлет-коэффицитчгтн мяспегаГиа j=.i (средняя точечная линии)
И icpiiпая дисперсии при перемешивании данных (верхняя штрнх-пуиктцрпая линия)
Из рие. 7.37 видно, что сама но себе осциллограмма давления ярдлрг дан-
ных к предсказанииг егн ннр.чя'1н|ич1 кя глетрофическою повышения, Краткомас-
штабный ввйплет-анализ осциллограммы давления сводился к измерению дис
Персии для отсчетов давления как функции от номера вейвлет-коэффициентов.
Сорлбптипл лист, резулктяты оцифровки изменения давления от 8 датчиков в ин-
тервале времен 5—б с перед наступлением разноса (помпажа двцшюля) с иппр
валом дискретизации в 1 Мс.
до наступления разноса был обнаружен пик и затем резкии ПЙДРПИП дисперсии
при масштабе j=5, которое и служило предвестником вскоре наступающего раз-
носа. Подои не дисперсии при этом составило весьма виуппнтельиую и легко обна-
руживаемую величину — до 40% от среднего уровня дисперсии, последняя вы
числялась по формуле:
аС:-т Jrziy
где М — число вейв лет-козффицирнтри ни уровне j и заданном вромоццим ип*
дорвали.
С помощью генератора случайных чисел данные о давлении были переме-
шаны и была построена кривая дисперсии для этого случая. Опа уже по обнару-
живала события — предвестника, что также указывног на динамичиский (н ли"
ка ирный) характер возникатощей перед разносом двигателя ситуации.
423
7, Состояние и перспективы развития вейвдет-технодогии
В этом эисперименгк исследовались кривые дисперсии также до и после
появления лргднеетнима иибьция. Оказалось, что он в этих кривых отсутство-
вал, что тоже укачивает на динамическое и нестационарное развитие ситуации.
Выло обнгручн-но и различное поиодепие высших моментов вейвлет-коэффици-
ентов различною ранга доп после появления предвестника. Это иозиннянг in>пу
чигь доро 1|]итапьньто длчппло о наступающем (или наступишпем) событий
Рис. 7.39. Вейвлет-спектрограмма курса закрытия акций компанией Лукойл,
соответствующая диаграмме рис. 7Л8
Любопытно, что эта методика, в основе кптпрпй лежит вейвлет-анализ дис
версии данных, в сущности подобна ужу описанной для диагшил иривания забо-
леваний сердца Все это укиш,пчпот па то, что она может быть распространена и
на многие другие процессы, могущие приводить к непредвиденным ситуациям.
424
7. Состояние и перспективы развития вейвлет-технологин
Приведем еще один интересный пример (ойнаружвппый в Интернете) па
выявление финансового кризиса путем построения вейвлет спектрограммы кур
еа закрытия акций компании Лукойл (рис, 7.38).
Построенная по этой диаграмме вейвлет спектрограмма (ptic. xopojuo
выявляет некое особое событие, произошедшее явно 28.10.1997 голо, Это собы-
тие — начало крупного финансового кризиса. Детальный антитиз веивлет-коэф-
иоследствий подобных явлений.
К сожалению, детали разработки таких методов анализа в настоящее вре-
мя находятся под завесой секретности. Пя ото укалывает рялигргинание таких
работ в крупнейших научных центрах оборонного значении мних их стра.т.
425
Заключение
Прсдс'Л1и^1с'|ци.1й в данной монографии материал наглядно свидетельству
₽т о гом, что вейвлеты из математической экзотики уже превратились в мощное
и довольно универсальное средство представление сигнягглп, функций и сиотем.
Особенно важно — нестационарных сигналов и сигтем. Области применения
вейвлетов (и, соответственно, вейвлет технологии) уже охватывают тайне фун-
даментальные науки как математика, физика, химия, биология и др. Внуши-
тельные результаты о примепепии вейвлетов достигнуты и в прикладных па-
уках, таких как снизь, средства телекоммуникаций, информационные и
компьютерные технологии, финансы и др.
Переходу вейвлет-технологии от теории, безусловно фундаментально важ-
ной, к широкой практике ио многом содействует разработка программных инст-
рументальных средств, прежде всего дополняющих самые интеллектуальные
программные продукты нашею времени — системы компьютерной математики
(СКМ). Эта книга вносит серьезный вклад в описание данных инструментальных
средств.
В ближайшее время можно ожидать резкого расширения исследований в
экономических. К примеру, н Лос-Аламосской лаборатории США уже давно ве-
дутся исследования ци црсдскааанши иоелндствий бомбардировок и террориста
чсеких актов. Судя по последним событиям 11 сентября 2001, приведшим к ги-
бели многих тысяч людей, вследствии беспрецедентных по своим масштабам
террористических актов и последующих военных действий, оти исследования
пока нс смогли предупредит!, случившихся трагедий.
результаты, которые уже получены в медицине и в технике, новвиляютнадеять"
са ин ю, ч w подобные исследования будут впредь интенсивно развиваться н ра-
но или поздно приведут к весьма осязаемым результатам возможно, что наряду
с вейвлетами успех будет достигнут и на других направлениях, например, на ос-
нове применения средств нсчс.кой логики и нейронных сетей 136].
С гонт предостеречь читателя от слишком явного предпочтения вейвлет-ме-
тодов обрабо-кн сигналов и изображений перед другими подобными мрчюдими.
Вейвлеты, ирспмнонпо, имеют множество не только описанных, но и еше не пол
настаю раскрытых вотможносгей. Но это вовсе не означает полную замену ими
традиционных средств обработки сигна >юн и и.-юбрнжени й, нередко хорошо отра-
ботанных. проверенных временем и неоднократно улучшенных и модернизиро-
ванных, К примеру, вполне современных средств, представленных в пакетах рас-
426
Заключение
ширения Signal Processing и Image Processing ряда СКМ или и пикетах апапиля,
идентификации и моделирования систем, описанных к инигях [25, 37, 38|.
В атий связи, войллртм надо рассмотрпвать скорее не лак модное направле-
ние, а как новый и вапацлЛ пнегрументарий в обработке сипипп», функций it
изображений, дополняющий уже имеющийся нрегнял инструментов для такой
Обработки. Отсюда и вытекает важность практических работ по вейвлет-техпо-
логиям и разработки и описания инструментальных средств для работы С КИМИ.
Вейвлет-технология ннвшк дней направлена прежде всего на выявление
новых закономерностей В процессах окружающего нас мира, как созданного
Природой или Богом, так и рукотворного, созданного гением Человека. Уже од-
но это должно привлечь к вейвлетам внимание не только паучпой общественно-
сти миря, но инженеров и практиков из многих втрнн и, конечно, из России, из
вестной мудростью И изобретательностью своих народов. И оолц ;>та книга хоть
чуть-чуть посодействует этому, то автор с удовлетворением посчитает главные
задачи книги вполне выполненными.
Список литературы
1. S Malltit. A theory for nuiltiresolution signal decomposition; the wavelet rep-
r-esontation. IEEE Pattern Anal, and Machine Intell. 1989. vnl. 11, no. 7. pp,
«74—693.
2. Y. Mryet. OodeJottes et operatetirs Тоще I. Hermann Ed.1990 (English trans-
lation: Wavelets and operators. Cambridge Univ. Press. 1993.).
3. I. Daubediies. T₽n lectures on wavelets, CBM8-NSF conference aeries in
applied mathematics. SIAM Ed. 1992 (см. ниже перевод ни русский язык).
4. L, З'питакег, С. Wew, рниГ//. лейыГп Auv3>h£S IP. АТЛ'.у?,’.?.. Me**,'
York.: Academic Press. 1993.
5. Gilbert Strang Truong Nguyen, Wavelets and Filter Banks Wellesley-
Cunihridgr* Press, 1906.
6 Anthony Tealiit Uomputatmual Signal Processing with Wavelets. Birkhauser,
1998.
7. Jatclevo C. Gosutami <& Andrew K. Chan. Fundamental of Wovclctr,; Theory,
Algorithms, and Applications. John Wiley & Suns. Inc.. 1999.
8, C. Sidney Bu-rtis, R/imenh A. Gopinalh, & Hartao Guo Introduction to Wavelets
and Wavelet Transforms: A Primer, Prentice Hall, 1998.
9. Raghuveer M. Hao & A/il 8. Sopardihar. Wavelet Transforms. Introduction to
Themy and Applications. Addison-W<'nlpy, 1998.
10. R. Roliltar The wavelet tutorial. Ames, Jowa. 1996
11. И. Добеши. Десаи, лекций ло пейвлотям Пер с англ. Е В. Мип;енко, Под
ред. Л.П. Петухова, М,: РХ.Д. 2001.
1 2. К. Чуи. Виедение в вейвлеты, Пер. с англ, под рвд. Я.М. Жилейкини. М.:
Мир. 2001.
13. НМ Ворибт-п. В./’. Грибриип. Теория и практики ьейвлет-преобрниовипий.
С. 116.: ВУС. 1999.
11. f/.U Астафьева. Вейвлет-анллиз: основы теории и примеры применения.
Успехи Физических Наук. Т. 106. .V? 11, 1996 г.
1а. ИЛ. Новиков, С.К Стечкин, Основные конструкции всплесков, Фундамен-
тальная прикладная математика, т. 2, вып. 4. 1997
16. Л. Маслног, А. Пгреберин. Введение в вейвлет анализ. Учебный курс. ИПМ
РАН. Москва. 9-я Международная Конференция по Компьютерной Графи-
ке и MummuiuMv Зрению «ГрафиКоп"99». Москва, 2fi ншуита—1 сентября
1999 I-.
17. АД. Пгреберин О систематизации веивЛёТ-преобрязоннний. Вычислитель"
пые методы и программирование. Том 2, 2001.
428
Список .литературы
18 С A Терехин. Вейвлеты и нейронный сети. Лек туя для школы-семинара «Со-
временные проблемы дейрониформатики». МИФИ. Москва, 21 — 26 января
2001 г.
19. Р. Поликар. Введение в вейнлит-преобразовапис Ifep, Грмбуниия В. Г. С
116.: АВТЭКС, 2001.
20. Ц.М. Цромин, О.В. Иоанне, ВЛ, Псчипмпло. Вийыапты и их игнолтпювапие,
Успехи физических паук. Том 1 71, № б. 2001.
21. В.И. Смирнов. Куре высшей ммеативи. Том li. М. Фи„маглнт. 1001
22. ГЛ. Толстов. Ряды Фурье. М. Наука. Фняматлш. 1930
23. АЛ. Жуков. Метод Фурье и вычислительной мшематике. М. Паука. Фио
матлит. 1992.
?Л. НЛ.\‘.'.р'}.,о,ишАИли. Пирамидальное кодирование, М.: Мысль 1997.
25. ВЛ. Дьяконов. HR Абримечкжи. MATLAR. Обработка ситялов и изобра-
жений. Специальныйсдривичник. СПб.:Питер. 2002.
26. ВЛ .Дьяконов. Mathcad 2001. Специальный справочник. СПб 1Г итер. 2002.
27. ВЛ. Дьяконов. К<»миыитрриая математика. Теория и пряк-ика. М.. 11с,-
лидж. 2001.
28, ВЛ. Дьяконов. Mathcad 2001, Учебный нург. СПб.; Питер. 2U01.
29. ВЛ. Дьяконов. МАТ1АВ 6, Учебный курс. СПб.: Питер. 2001.
30. ВЛ. Дьяконов. Mathematiea 4. Учебный курс, С. 116.. ГШюр. 2001.
,31. ВЛ.Дьяконов. Maple 7. Учебный курс, С Пб.: Питер. 2002
32, ВЛ. Дьякинпк. Inten.ct. Настольная кпиы плльчонагнля. Инцание 3 с. М.г
СсинлтР.2001.
33. Справочник доепециальным функциям/Под. ред. М. Абрамовичи иИ. Сти-
рай. М-: Наука, Физматлит.1979, 832с,
34. ВЛТ.Дьлконов, Справочник но математ икедля паучник риботпнкьн и ииха.т
Нерон. М.: Паука, ФнзмотлИТ. 1973.
Й5. Г.Кирп, Т. гСйрп. (?1'аТ»1СГ»Г-’'ТГЧ'.ИЙ КеТОДЫ ЦретрООННИ ЖГП1Р11 ческив фирму I
Учебное пособие для пу.-юв. М.: Высшая школа, 1988.
36. Математические пакеты расширения MATLAB С,|И’Циальнь1П справочник.
СПб.; Питер. 2001.
37. ВЛ. Дъяконон, В.В. Круглов. MATLAB. Анализ, идентификация И модели-
рование систем. Специальный справочник СПб.; Пи icp. 2002.
38. ВЛ. Дьяконов. SlmiiliHk 4. Специальный справочник. СПб • ТТпткр. 2002
429
Содержание
Введение .....................* ... * .... ................3
О содержании и стиле книги ..................................Я
Благодарности ..............................................10
Предупреждения , , ,..................................... ,11
Адреса .............*.......................................11
Принятые в книге обозначения ...............................12
Глава 1. Функции, ряды и преобразования Фурье . .14
1.1. Понятие о функции ..........•...... .14
1.1.1. IIwBCWIbKO U4‘iU <> функции .... г г г . г г г . г г .14
1.1.2. Области определения функций ..................14
1.1.3. Компактный носитель функции ............. , , .. .14
1.1.4 Пр'МТраНГ! ня {функции ........................15
115 Периодичность функции ...........................15
1 2. Приближение функций и сигналов ....................1(1
1.2.1 О приближении функций и сигналов ..............16
1.2.2. Приближение функций рядом Тейлора ,19
1.2.3. Интерполяция и экстраполяция функций по Лагранжу ... .21
1.2.4, Полиномиальная аппроксимация .................22
1.2.5 Слдапновая интерполяция ...................... 24
1.2.6 Двумерная линейная и сплайн инторилнмцнл ......20
1.3. Регрессия и сглаживание данных ,27
4 3 1 ТГг>с'1’;>ноп1-я пядччи репрессии .............27
1.3.2 Выполнение линейной регрессии .................28
1,3.3. Реализация линейной регрессии общего виде.....29
1,3.4. киалиииция 1>дцом<’1пюй
и многомерной пилииомиалытой регрессии ..............30
1.3.5. Проведение многомерной регрессии .............32
1.3.6. Проведение нелинейной регрессии общего вида ..33
1.3.7 Новыефуцкции
для проведения регрессии в Mathcad 2000/2001 ...34
1.8.8. Пример синусоидальной регрессии п Mathcad 2000/2001 , , , ,34
1.3.9, Фунчции сглаживания данных ...................34
1 3 10 Предсказйиие зависимостей ....................36
1.4. Введение в ряды Фурье ............................ 37
1.4.1. Синусоидальная функция .......................ЗТ
1.4,2. Модуляция синусоидальных колебаний .......... 40
1.4.3 Понятие о гармоническом синтезе......... • ,43
430
Содержание
1.4.4, Фурье-аиализ и синтез периодических срушспий ......44
1.4.5. Прямой Фуръс-ппадиа и иииге» иериоднчеснил сигналив , , , >47
1,5, Специальные тины преобразований Фурье . , Si
1,5,1. Дискретный Фурье-апализ
и спектр периодипясивх функций...........................51
1,5,2. Гармонический синтез дискретно заданного сигнала .,,,.. .ЙЗ
1.5.3. Непрерывное преобразование Фурье................ ..54
1.5.4. Цыстрое преобразование Фурье (БПФ) ................ . .55
1.5.5. Примеры выполнения БПФ........................... 57
1.5.6. Альтернативные преобразования Фурье ..............60
1.5.7. Эффект Гиббса и борьба спим . . . ..................6 I
1.5,8, Улучшенное моделирование
сигналов НЯ псионе спектрального подхода ................
1.6, Оконное преобразование Фурье ......................... 65
1.6.1. Ограничения и недостатки преобразования Фурьо .....65
1.6.2. Крптковремекное (оконное) преобразование Фурье .....вт
1,6.3, Функции оконного спектрального
анализа в пакете Sitfna'. Processing СКМ Matlicacl .. . 6Я
1.6.4. Спектральный анализ с помотцюо функций Fl'1!'wpspcctrnm . .69
1.7. Современные методы аолучеяия и визуа лизации спектров . .70
1.7.1. Спектры на псипнг пкпнтп о преобразование. Фурье ..70
1.7.2. Время-частотное
билинейное предоlHkdhhup ent птра сигналов ..........73
1 7..4 I [редставление Вагнеря ......................... 71
1.7.4. Представление Маргииау Хилла ,76
1.7.5. Представление Чой-ВйЛЬЯМса .... ..............76
1.7.6. Представление Борна*Жордана и коиичеькое представление . .77
1.7.7. Трехмерное представление спектров................ 78
1.7.0. Трехмерные в₽йнл<>т спектрограммы .................01
Глава 2- Вейвлеты и веиилет-преобразовапия . . . , . ,83
2.1. Некоторые математические понятия теории вейвлетов .......8У
2.1.1. Пространство сигналов и его базисы , ..............УЗ
2,1,2. Скалярное произведение функций ...................84
2.1.3. Норма функции ................................... 84
2.1.4. Ортогональность и оргонормироваппост-, ,84
2.1.5. БаопсРисса . .................................... 85
2.2. Основы теории вейвлет-преобразований .......86
2.2.1. Идея вейвлет-преобразования ................... .85
2.2.2. Аппроксимирующая и детализирующая
компоненты вейвлет апалиоа и опнтсоа сигналов ,00
2.2,3, Непрерывное прямое вейвлет-преобря.чояяние .......98
2.2.4. Примеры выполнения прямого всйолот-црооЬразопапия ... .91
2,2,5, Вейвлеты в частотной области .....................98
2.2.6 Обратное непрерывное вейвлет преобразование .......99
431
Содержание
2.2.7. Сравнение различных представлений сигналов .....-101
2.2.8. О скорости вычислений при вейвлет-преобразованиях.102
2.3. Кратпомасштабиыи анализ .................... ,103
2.3.1. Первое понятие об ортогональных вейвлетах.......... , 1(1,3
2.3.2. Диадное вейвлет-прсобрпвопапие непрерывных сигналов , ,104
2.3 3. Практические ттримортп
всйалсг-прсобразований в среде Mathcad ................ 107
2,3.4, Кратномасштабный анализ ........................ 113
2.3.5. Кротиомасштабный
ш’йнлнг-аналид в пакете Wavelet Toolbox ...,............116
2.3.6. Точноии грубое разрешение .......................116
2.4. Частотный подход и быстрое вейвлр|-преобразование......117
2 4 1. Частотный подход к hi’mhj ет-нренбризоваииям.....117
2.4 2 Основы «(-йнлет-филь.рации .......................118
2.4.3. Квадратурные фильтры .............. . -.....119
2.4.4. Быстрое вейвлет преобразование н алгоритм Малла...121
2.5. Специальные* вопросы вейвлет-лреобразований ............ . .124
2.5.1. Пакетные вейвлеты ......................124
2.5.2. Дискретный нейвлеч-анализи временные ряды ........125
2..>.Я . Двумерные вейвлеты ......................... .126
2-5.4. Вейвлет-компрессия сигналов
и изображений и их очистки от шумов ............. 127
2.6- Конструирование вейвлетов ............................128
2.6.1. Общий подход ....................................128
2.6.2. КоиструироВ!П))«* ннйвлета Хаара ................139
2.6.3. Конструирование вейвлета Добеши 4 ...............132
2.6.4. Сравнений различных типов Простых вейвлетов ......134
2.7. Вейвлеты в пакете Wavelet Toolbox СКМ MATLAB............ .135
2.7.1. Типы вейвлетов в пакете Wavelet Toolbox.........1-15
2.7.2. Вейвлет менеджер — wavemngr .....................127
2.8. Семейство вейвлет-фильтров пакета Wavelet Toolbox ....140
2.8.1. Множество фильтров
биортохинилыюги вейвтртя — biorfilt ....................140
2.8.2. Множество фильтров
opivi опального вейвлета orthl'ilt .....................ИЗ
2.8.3. Фильтры ортогональных
или биортогоналыпдх вейвлетов — wfilLora ..........145
2.8,4. Биортогональный сплайновый вейвлет-фильтр — blorwavf - .146
2.8.5. Комплексный Гауссовский вейвлет — cganwavf.......147
2.8.6. Комплексный вейвлет Морле — cinorwav ............148
2.8 I. нейвлет-фильтр Койцип'та— iiujfwuv'f ..... ’4.°.
2.8.8. ВсЙБлет’фильгр Добеши — dbaux и dbwavf ..........149
2.8.9. Частотный В-сплайновый вейвлет - fbspwuvf .......150
Я.8.10. Гаусс.олый вейвлет gauawuvf ................... 151
432
Содержание
2 8 11. Вейвлет «мексиканская шляпа» — mexihal ........151
2-8.12. Вейвлет-функция Мейера — теурги tneyciaux......152
2.8.13. Вейвлет Морле — morlet ........................15S
2.8.14. Обратный биортпгоппльный яейвлет-фильтр — rbiowavf 154
2 8.15. Врйнлет-фильтр Шеннона .. . ................155
2.8.10. Масштабирующие фильтры
вейвлета Симлета — symaux и syniwuvf ...................155
2.9. Сравнение вейвлетом разного типа .................. 155
2.9.1. Грубые (Crude) вейвлеты .........................156
2.9.2. Бесконечные регулярные веннлеты..................156
2.9.3. Ортогональные вейвлеты •• компактным носителем .156
2.9.4. БиортоТ'опальные иарные
вейвлеты с компактным носителем.........................167
2.9.5. Комплексные вейплеттв ...........................157
Глава 3. Работа
с Wavelet Toolbox в командном режиме ...... .159
3.1. Краткая характеристика
пакета расширения Wavelet Toolbox .....................159
3.1 1. Назначение пакета Wavelet Toolbox ..............159
3 1 2. Техническая документация i о пакету WavMei, Toolbox . . . .159
3 2. Оснопные фупкцип вейвлет-аиализа ......................160
3.2 1. Центральная вейвлет частота — centfrq .... ......160
3 2 2. Уменьшение размера матрицы вдвое -- dyaddowix...161
3.2.3. Унс-ли’1йНие размера матрицы вдвое — dyodilp ...162
3.2 4. Интегрировании вейвлет-функции'—iiitwavfi...... 153
3.2.5. Масштабирование- ц частоте — scal2frij ....... 164
3.2.6. Вейвлет и масштабирующие функции wnvetnnavefun . . .16о
3.2.7. Максимальный уровень вейв w-раэложения wiiwxlrv . .167
3.3. Утилиты управления построением деревьев ............. . .167
3.3.1. Обзор утилит управления »оет-роениом теревьев . . ...... .167
3.3.2. Построение дерева
разложения пакетного вейвлета — drawtree................168
3.3.3. Построение дерева — plot .......................17м
3.3.4. Построение цветной вейвлст-спсктрограммьт — wpviewef . .170
3.4. Основные утилиты ................................. .171
3.4.1. Кодированная версия матрицы wcodelnat ........ . -171
3.4.2. Утилита расширения — we.xtelid .................172
3.4.3. Извлечение — wkeep ................................ 17<j
3.4.4. Разворот вектора -- wrev ...................... 174
3.5. Прочие функции ......................................174
3.5.1. Обратное нестандартное Б11Ф — iHstcIttt.........174
3.5.2. Нестандартное прямое Б11Ф — nstrim .............174
3.5.3. Точки оценки — wvarchg..........................17о
433
Содержание
3.6. Непрерывное одномерное вейндег-нреобразование .........175
3.6 1. Функция одномерного
непрерывного вейвлет-преобразования — cwt ...............175
3.6 2. Вейзлет-спектрограмма синусоиды..................176
3.6.2. Вейвлет-спектрограмма
спргкя искаженной фуи кции гипуся .......................177
3.6.4. Всйвлст-прсдставлсиис сигнала с разрывами и шумом.178
3.6.5. Вейвлет-анализ реальных звуковых сигналов .......179
3.7. Дискретное одномерное вейвлет-преобразование ...........181
3.7 1. Лахпкдение вейвтрт-коэффициепток
tViHtiiviejiHoi'o прюбразовниия — нррсИеГ ...............1 81
3.7,2. Функция нахождения одномерных
детализирующих коэффициентов — dctcocf ..................183
3.7.3. Одноуровневое
дискретное одномерное веивлет-прео разевание, ..........
3.7.4. Метод расширения всйвлст-прсобразовапия dwtmode ........186
3.7.5. Одноуровневое обратное
вейвлет-преобразование — idwt ..................................187
3.7.6. Прямое воестановлспие из одномерных
Н1ч”чи1<'т-К(>эффици(4|тпп— |ци>()сГ............................180
3.7 7. Одноуровневое Н|>в1|<'Ининл*>н1Н1
одномерного вейвлет разложения upwlew .................191
З.Г 8. Многоуровневое одномерное
вейилег-разложение — waveclec .................................191
3.7.9. Многоуровневое одномерное
вейвлет ногстннокление — waverec ............................. 192
3.7.10. Восстановление одиночной ветви
из одномерных иейвлег-коэффициеитов —wrcoel.............192
3.8. Дискретной двумерное
вейвлет-преобразование ............................... 194
3.8.1. Нахождение вейвлет-коэффициентов
двумерного преобразования — appcoef2................195
детализирующих коэффициентов — dcl<.'ocl’2 .....195
d.8.d. Одноуровневое дискретное
двумерное вейвлет-преобразование — dwl2 ...................196
8.8.4, Одноуровневое дискретное
двумерное обратное лсйвлст-прсобрововаиис — idwt2 ........197
3,8,5. Прямое восстановление
из двумерных вейвлет-коэффициентов — ирсое±'2 ............197
3.8.6. Многоуровневое двумерное
вейвлет-разложеипе—wavcdcc2................................198 .
(3.8.7. Одноуровневое восстановление
двумерного вейвлет-раэложения — upwiew2 ...................198
434
Содержание
3.8.8. Многоуроигювое двумерное
вейвлот-восстановленис — waverec2......................135
3.8.9. Восстановление одиночной иегни
ил двумерных всйв^ст-ко»фф;1циеитих> — wi-ooof2 . .. *:Н
3.9. Пакетные вейвл&т-алгоритмы .............................. .ЙОб
3.0.1. Или лучшее дерево уровни -- bcstlcvt .............. ЛИ)
3.9.2, НииЛучшее дерево па критерию оптропив — besltree . . .202
3.9.3, Вычисление энтропии — wenuopy ...............,......203
3.9.4. Обнонлеиир пнтроиии - entrupd ..............,...... 204
8.9.6. Излечение вейвл</х-дер₽нп
из плигтпого дерева— wp2wtr₽e........................ , , ., .д>1
3.9.6. Пнметньп вейвлет коэффициенты — wp«ov£ . ."94
3.9.7. Сечение вейвлет-пакстгтого дерева wpcutroc .........200
8.9.8, Пакетное одномерное всйштот-рацложенис - - wpd(>. . . . .20'.'
3.9.9. Пакетное двумерное веивлеТ-раздоткспир — .vp(lec2 . , . .2t’f
3.9.10. Пакетная вейвлет-функция - wpiun ................. 207
3.9.1 I. Перекомпонованный пикетный вейнлет wpjoin ..... ,208
3.9.1 2. Восстановление
коэффициентов пакетного вейвлета — ири <>«•!' ... , .
3.9.13. IIuKCTirnr пой глет восстахи.>илеип₽— wprec ц wprec'1,1
3,10, Дискретное стационарное вейвлет'преобралованис . .
3.10.1. Диокрстпоостационарное
одномерное вейвлет-нреобрааовацие чкС
3.10.2. Обратное одномерное стлпионарное
дискретное WHvelet преобразование — iswt . , , , , .
3.10,3. Дискретное стаципнлрнив
длумерпоевеивлег преобриоопппио - ачЧ2 . . .
3.] 0.4. Обратное стационарное двумерное
диокретное вейвлет-преобразование —• , . . .
3.11. Удаление шумов
и сжатие сигналов и изображений..........................
3.11.1. Принципы очистки ситнягов и шумов ............
3.11.2. Установка параметрон по умолчанию ddcncvvp . ..
3.11.3. Выбор пирога дггя удаления шумов —
uibuitfCi ......................
3.11,4. ПТтрафнои порог для удаления шуми - wbmpoii ....
3.11,5, Порог одномерного вейвлета wdcbxn ............
3-11.6. Порог двумерного вейвлета — wdcbm2 ...........
8,11,7, Создание архива (iTucsduTKon пальцев .... . , .
3.11.8. Автоматическое одномерное удаление — wdeo ....
3.11.9. Удаление шума н сжатие — wdoiicmp ........
3.11.|Л. Генерация тестовых сигналов — wtujisk .......
8.11 .И - Оценка шуми
ОДПОМСрНЫХ ВеЙВЛСТ-НиЛрфИЦИРНТОК WlfOlljCOt . । .
43Б
Содержание
3.] 1.12. Штрафной ворог
для удаления шумов пакетного вейвлета — wpbinpcn . . .227
З.и 13 Удаление шумов и сжатие
с испильаивинием пакетного вейвлета -- wpdenemp . . .. .228
3.11.14. Пример очистки изображения от шума .............220
3.11.13. Пирог коэффициентов пакетного вейвлет — wpthcoef . . .2'М
9.11.16. О,.|иоморпый порог всйш/ет-иоскЬфнцпситов wthcoef . .2G0
3.11.17. Двумерный порог вейвлет коэффициентов wthcoef/} .... 230
3,11.18. Ус"ъп<;нкя гибкого или жесткого порогов — V’tlitesh . . . .230
3.11.19. Управление параметрами порога — wtbmngr ........231
Глава 4. Работа с GUI пакета Wavelet Toolbox . . . .332
4.1 Графический интерфейс пользователя — GUI ............... .232
4 1.1 Вызов окняСЩ пакета Wavelet Toolbox — wnvcHJciiu ....232
I. f .2. Просмотр вейвлетов — окно Wavohn Dh.pliiy ..........238
1.» .3. Дисгуи к демонстрационным примерам w.jvvdcJrJo ..... .237
I 1 4. 1\|б<цц с демонстрационный/! примерами................238
4.1.1т. Приели।р пример» tflitn l 11) sct.'imrio ........... 241
4 1.6. Демонстрационные прпмпры GUI ...................... 243
i 2. Выявление особенностей функций и сигналов ................ .243
I 2.1 . Вейвлет-прсдсг,шлоние скидка уровня .................243
] 2 2 Обпаружеиис екячков во времени ........................245
1.2 .\'гл..иы функции и сигналов по фя.зовому сдвигу .... .246
1 2-4 Лнлмиишип по частоте синусоиды .......................247
1,2.5. Вейг.лйт-я1тали.1<|>1мигт|>.|Ц.иой конвои . . . .248
4 3.б. Анализ функций
ц сигналоь с помощью пакетных вейвлетов ................249
4 3 Применение дискретных вейнлетон .................... ..250
4.3.1. Обработка сигналя с птумом.......................250
4 3 2 Статистическая обработка сигналов ............. 251
1.З.Й. Компрессия сигналов .............................252
4.3.1. Очистка сигнала от шума.........................254
с помощью стационарных вейвлетов.....................255
4.3 6. Оценка плотности сигналов ......... ................255
4.3 7. Регрессия по результатам оценки ило-ногти сигналов .... 255
4.3 3 Расширение и акс»ря|«»ляция ги гнилли ...............257
4.3 9. Двумерное
вейвлет-разложение п реконструкция изображений ....../л9
4.3 К). Двумерно? пакетное
вейвлст-разлижокие и реконструкция изображений .... .260
4.3.1 (. Компрессия изображения и очистка ei t> <>ч шумя ...262
4.3.12. Расширение изображений ....................264
I | >. и»**... *[.. ..... .. п ...... н ЛГТ.[..л I Тлл1К... О 1 а
4.4.1. Uotn.tt> велмпжности пакет Wavelet Toolbox 2.1 ..........264
436
Содержание
4.4.2. Документация по Wavelet‘1'oolbox 2.1........
4.4.3. Новая функция diap ........... ..................2(i5
4.4.4. Новая функции witvi‘friu2 ................... .263
Глава 5. Вейвлеты в системе Mathcad............................267
5.1. Функции
вейвлет-преобразований пакета Numeric Kecipes ........ .‘267
5.2. Пакет Wavelet Extension для системы Mathcad ..........268
5.3. Род вейвлет-преобразований и фильтры ............... .269
5.8.1. Функции одномерного псивлет-прсобратовапия . . . .271
5.3.2. Вииуилйаяция вейвлетов ......................... 272
5.3.8. Функции
одномерного дискретного пейвлет-нрообралованпя .........276
5.3.4. Одномерная всйплсг-аппроксимация .............. 278
5.4. Одномерный кратномасштабный анализ ...................282
5.4.1. Функция крятномасштабпого анализа .............. 282
5.4.2. Аппроксимация на основе кратпомасштабного анализа . . . .284
5.4.3. Кратномасштабиый анализ зашумлецного сигнала ....285
5.U. КрятномасштабНЯЯ аппроксимация сигналов с шумом . . . .286
5.5. Двумерное кейвлетшреобраоование ..................... 287
5.5.1. Функции сочднния двумерных вейвлетов ......... 287
5.5.2. Двумерное дискретное вейвлет преобразование ... . .201
5.5.3. Двумерная вейвлет-пппрокецмяиия и интерполяция ...2УЗ
5.5.4. Двумерный кратиомг.ештябнтсй анализ..............205
5.5.5. Двумерная крйтномасштабння лппрокгииапия ........296
5.6. Вейвлет пакетные преобразования .................... ,297
5.6.1. Функции пакетнея-о веивяст-лреобряалияпнн wpi . . .297
5.6.2. Вияуялизнция таблицы пакетных вейвлетов . .......2V8
5.6.3. Другие функции пикетных вейвлетов ................299
5.6 4 Функции для работы е уровнями пакетного баьисн - - -200
fi.6.5. Визуализации пакетного базиса матрицы ...........391
5.6.6. Паилучший алгоритм нахожденияОязиеи. . . .• ......301
Ь.П.7. Другие функции дли ри&и пл с базисами ......... АО.’
5.6.8 Обратные вейв ни-пакетные преобразовалия ........305
5.7. Дискретные косинусные преобразования (DCT)............306
5.7.1. Основные определения DCT........................ ЗОЛ
5.7.2. Локальные косинусные преобразования .............808
5.7.3. Тайнеры для локального косинусного преобразования.310
5.7.4. Обратное локальное косинусное цриобрязойание ....311
6,7.5. Испольвованио тайпсров в локальном косинусном дня ли <е 311
5.8. Дополнительный возможности цакета Wavelet Extension . .314
6.8.1. Удаление шумов у сигпя тлв установки ЯМР.........314
5.8.2. Адпптипные методы очистки от шумя ...............315
5.8-3. Времн-частотные диаграммы .......................318
437
Содержание
5.8.4. Компрессия ипобряжений ........................319
5.8.5. Функции вставки и извлечения полос.............820
5.8.6 Двумерная интерполяция ........................322
Глава в. Работа о пакетом Wavelet Explorer ..... .323
6,1. Пакет Wavelet Explorer для СКМ Mathematica 1/4.1 .....323
6.1.1. Назначение и место пакета Wavelet Explorer ......323
6.1.2. Загрузка пакета Wavelet Explorer................82.4
6.1.3. Работа с Mathematica 4/4.1 ......................325
6.2. Работа с вейвлет-фильтрами............................326
6.2.1, Основные типы аейвлет-филътров ..................326
6.2.2. Примеры вычисления коэффициентов вейвлет-фильтров . ,327
6.3. Вычисление масштабирующих и вейвлет«функний...........328
6.3.1. Функции ScalingTunction и Wavelet ..............32В
6 3 2. Построение графиков функций
для биортогонального сплайнового вейвлета ..............331
G.3.3. Функция WaveletPacket для пакетных вейвлетов ....333
6.3.1. Пример задания двумерного вейвлета Койфлета .....334
6.3.5, Функции MeyerPhi и MeyerPsi для вейвлетов Мейера , . . . .335
6.3.6. Функции ShannonPhi
и ShannonPsi для вейвлетов Шеннона......................336
6.3.7. Функции SplinePhi и SplinePai
для ортогональных сплайновых вейвлетов .................336
6.3.8. Функция BSplnic для построения В-сплайпа ........337
6.4. Анализ масштабирующих и вейвлет-функций ..............338
6.4.1. Вычисление производных ph-- и psi-фупкццй ....... .338
6.4.2. OGjop деталей основных функций вейвлетов.........340
6 5. Задание и применение нременных. окон ..................341
6.5.1. Функция WindowFnnctlon и тайперы ................341
6.5.2. Примеры задания временных окоп ..................342
6.5.3. Синусные и косинусные пакеты ....................343
6.6. Основные виды преобразований .........................344
6.6.1. Прямое и обратное вейвлет-преобразования ........344
6.0.2. Кратномасштабныи анализ .................... .346
6 6.3. Графическое представление вейвлет-коэффициентов . . . -346
6.6.4. Прямое и обратное пакетное вейвлет-преобразование ..... .347
6.6.5. Графическая иллюстрация базиса .................. 849
6.6.6. Опции иейцлст-прпобрййопйтгий......................300
6.7. Специальные виды преобразований ........................350
6.7.1. Локальные синусные и косинусные преобразования ....350
6,7.2. Преобразования Малвара.............................362
6.7.3. Синусные и косинусные пакетные преобразования .....353
6.7.4. Вычисление коэффициентов синусных
и косипуспых пакетных преобразований . .353
438
Содержание
6,7.5. Пример Применения
косинусного пакетного преобразовании .....................354
6.8. Техника улучшенной
визуализации вейвдет-цреобразований ............................Зой
6.8.1. Функция I’haseSpacePlol ..........................355
6.8.И. Примеры построения спектрограмм..................Зо.>
6.8.3, Функция GrayCodeOrcler ..........................,356
6.8.4, Спектрограммы для синусного пакетного преобразования . .337
6,8,5. Задание рамки
для графика функции SliuwBabl&Pubitiuii ............358
6.8.6. Построение изображений............................358
6.8.7. Визуализации коэффициентов
двумерного вейвлет-преобразования ........................358
6,8.8. Вниуализапия структуры
базиса двумерного вейвлет-преобразования ..................359
6,8,9, Виауалиэация коэффициентов
двумерного пакетного вейвлет-преобразования ...............860
6,9, Обработка одномерных сигналов и функций................ ,361
6.9.1. Оценка кумулятивной энергии ......................363
6,9,2. Компрессия сигналов...............................361
6.9.3. Очистка сигналов пт шума..........................362
6.10, Вейвлет- и Фурье-анализ и синтез сложных сигналов . .. .36Г»
6.10.1. Вейвлет-приближение решении уравнения Бурга......365
6.10.2. Сримнение с Фурье-приЗлнжспием . . . , ...... . . ..Зб7
6,10,3, Другой случай
вейвлет-анаяипя ц синтр.щ елиясцой функции . . .. Я69
6.Ю.4. Сравнение второго варианта с. Фурье анализом и сшпо^ии 870
6.10.5. Оценка погрешности при приближении
вейвлетами и рядами Фурье с компрессией...... 371
6.10.6. Приближенно функции
вейвлетами и рядами Фурье с компрессной ....
6.11. Обработка знукчаных сигналов с компрессией
с 111)мощыо пакетного косинусного преобразования ......373
6.11.1. Получшшо звукового сигнала и его контроль ......873
6.11.2. Прямое цакотпок
цоеитгусцое преобрцзчнинин .«иукового сигнала..........5'74
6,11.3. Сравнение методов комщтно-ин звуково-осигнала....375
6.11.4 Пример реконструкции инукивиги сигнала .........375
6.12, Обрабо тка и.шбражений в пакете Wavelet Explorer ......376
6.12.1. Предварительные замечания ......................376
6.12 2 Подготовка массива изображений и его просмотр...87 i
6.12.3. Вейвлст-декомцозиция изображения ...,,,,........5/8
G.12.4. Реставрация изображения ..................... .381
6.12 5. Обработка изображений с помощью пакетных вейвлетов . .381
438
Содержание
fl .1 2.6. Компрессия отпечатков пальцев
ни основе локального косинусного преобрязовпния .......383
Глава 7, Состояние
и перспективы развития вейвлсттсхиологии . .387
7.1. Источники информации по вейвлетам ..............................387
7.1.1. Литература по вейвлетам....................................387
7.1.2. Отражение работ по вейвлетам в Интернете ..................388
7.1.3. Иптсрпст-сайт вейвлет-дайджесг.............................888
7 1.4. Интернет-сайт вейвлет-центря TIip TOR Wavelet Сепьег . . . .889
7.1.5. Интернет-сайт корпорации MathSolt .. . -- -392
7.1.6. Гайт корпорации Wolfram Research ..........................394
7.1.7. Русскоязычные Интернет сайты но вейвлетам .................395
7.2. Программное обеспечение по вейвлетам ...........................400
'< .2.1. Открытость uyUL'pu.b’.M.HOl’.’ обеспечения по пейппртпм .400
7 2.2. (Ъободно распространяемые
пакеты расширения системы MATLAB.................404
7.2.3. Вейн лет- технология в графический системе Ссг el DRAW . .405
7.3. Состояние н перспективы развития вейвцет технологии . , .407
7.3.1. Типовая обработка сигналов .............................. 408
7.3.2. Всйвлст-технологии в Интернете..................409
7.3.3. Вейвлеты в видео-aiггнротурп ...................410
7.3.4. Вейвлеты в математике и в физике ..........................112
7.3.5. Вейвлет-анализ фотографий турбулентности . .413
7 З.б. Всйшн’т-инвли:» данных микцовкпническогиисследования .413
7.3.7. Исследованиессрдсчпой деятельности ........................415
7.3.8. Моделирование процесса смешения фракций ...................416
7.3.9. Вейвлеты в анализе специальных фупкцик и сигналов . . . .417
7 3.10 Вейвлеты в анализе временных рядов ..... 420
7.8.11. Вейвлеты в предсказании собы гнй .........................122
Заключение ..............................................................426
Список литературы .......................................................428
Содержание ..............................................................430
440