Вейвлеты. От теории к практике [2изд.]
 5-98003-171-5

Citation preview

Серия «Полное руководство пользователя»

В. П. Дьяконов

Вейвлеты. От теории к практике

Москва СОЛОН-Пресс 2010

УДК 621.396.218 ББК 32.884.1 Д93

В. П. Дьяконов Д93 Вейвлеты. От теории к практике. Изд. 2-е, перераб. и доп.— М.: СОЛОН-Пресс,  2010.  —  400  с.:  ил.  —  (Серия  «Полное  руководство пользователя»).

ISBN 5-98003-171-5 Описано новейшее направление в теории и практике обработки функций и сигналов — вейвлеты (wavelets). Они способны эффективно представлять локальные особенности функций и сигналов, обеспечивать высокую степень компрессии сигналов и изображений и вести их эффективную обработку. Впервые, наряду с теоретическими сведениями о вейвлетах, детально описаны наиболее известные пакеты по вейвлетам — Wavelet Toolbox, Wavelet Extension Pack, Wavelet Explorer, используемые с массовыми системами компьютерной математики MATLAB 6.*, Mathcad 2001/11 и Mathematica 4/5. Описаны и другие инструментальные программные средства. Книга уникальна по числу практических примеров и иллюстраций работы с вейвлетами. Для студентов и преподавателей университетов и вузов, научных работников, инженеров и аспирантов.

КНИГА — ПОЧТОЙ Книги издательства «СОЛОН-Пресс» можно заказать наложенным платежом по фиксированной цене. Оформить заказ можно одним из двух способов: 1. послать открытку или письмо по адресу: 123001, Москва, а/я 82; 2. передать заказ по электронной почте на адрес: [email protected]. Бесплатно высылается каталог издательства по почте. При оформлении заказа следует правильно и полностью указать адрес, по которому должны быть высланы книги, а также фамилию, имя и отчество получателя. Желательно указать дополнительно свой телефон и адрес электронной почты. Через Интернет вы можете в любое время получить свежий каталог издательства «СОЛОН-Пресс». Для этого надо послать пустое письмо на робот-автоответчик по адресу: [email protected]. Получать информацию о новых книгах нашего издательства вы сможете, подписавшись на рассылку новостей по электронной почте. Для этого пошлите письмо по адресу: [email protected]. В теле письма должно быть написано слово SUBSCRIBE.

По вопросам приобретения обращаться: ООО «Альянс-книга» Тел: (095) 258-91-94, 258-91-95, www.abook.ru

ISBN 5-98003-171-5 

© Макет и обложка «СОЛОН-Пресс», 2010 © В. П. Дьяконов, 2010

Предисловие ко второму изданию Первое издание книги по вейвлетам быстро разошлось, что свидетельствует о большом интересе нашей научной и образовательной общественности к вейвлетам — новому базису представления произвольных зависимостей и сигналов. К сожалению, данная книга так и осталась единственной книгой российского автора, изданной в центральном издательстве достаточно большим тиражом. Хотя в некоторых университетах и были изданы небольшие учебные пособия по вейвлетам, они практически недоступны для наших читателей, ввиду крайне малого тиража и потому малой известности. За время, прошедшее с момента выхода в свет первого издания данной книги, в России были опубликованы еще две новые переводные книги по применению вейвлетов в графике [19, 20]. Инструментальные программные средства по обработке сигналов и изображений часто относятся к системам компьютерной математики [25]. В ряде книг описаны пакеты расширения по вейвлетам систем Mathcad [25, 26] и MATLAB [28—30]. Но для такой большой страны, как Россия, книг по технике вейвлетов и вейвлет-преобразований, особенно доступных и понятных для массового читателя, все еще остро не хватает. Это и сделало целесообразным новое издание данной книги. В ней впервые собраны воедино многочисленные материалы по вейвлетам и описаны наиболее важные пакеты расширения по ним популярных систем компьютерной математики Mathcad, MATLAB и Mathematica. Это предоставляет читателям уникальную возможность не только охватить всю широту данной тематики, но и сравнить возможности тех или иных программных средств в реализации вейвлет-преобразований. Книги по новейшим направлениям развития науки и техники неизбежно содержат неточности, описки и, порою, даже ошибки. В настоящем издании, по возможности, устранены замеченные в первом издании книги погрешности. Заметно расширены главы 1, 2 и 7. Добавлено много новых примеров применения и осуществления фурье- и вейвлет-преобразований. Все это сделано с целью сделать сложный материал книги еще более доступным и понятным. Описаны последние на момент подготовки рукописи второго издания книги пакеты расширения по вейвлетам систем компьютерной математики Mathcad 11, Mathematica 5 и MATLAB 6.5/6.5 + Service Pack 1.0.

3

Введение Как раз в то время, когда наша страна вползала в столь непривычную для нас рыночную экономику и переживала распад некогда могучей и по своим временам вполне эффективной советской науки, в математике и в теории обработки функций, сигналов и изображений произошли события, которые можно охарактеризовать как новое важное открытие. Появились вейвлеты (wavelets)! Иногда вейвлеты называют изобретением. Но вейвлеты — математические объекты, а таковые изобретениями не признаются. Открытие — куда более точное определение для этого нового средства представления функций и обработки сигналов и изображений. Многие века математиков занимала проблема единообразного (в смысле применяемого аппарата) и достаточно простого (в смысле реализации) представления сложных функций. В ушедшем столетии этой проблемой занялись и представители прикладных наук, в частности, таких как связь, радиотехника и средства телекоммуникаций. Можно отметить такие крупные вехи на пути решения этой проблемы, как разложение произвольных (с определенными ограничениями) функций в ряд Тейлора, полиномиальную и рациональную аппроксимации и, наконец, представление функций и сигналов рядами Фурье. В последние годы стало очевидно, что традиционный аппарат представления произвольных функций и сигналов в виде рядов Фурье (или фурье-представлений) оказывается малоэффективным для функций с локальными особенностями, в частности для импульсных и цифровых сигналов и изображений, получивших весьма широкое распространение. Это связано с тем, что базисная функция рядов Фурье — синусоида определена в пространстве от –∞ до +∞ и по своей природе является гладкой и строго периодической функцией. Как об этом давно говорили ниспровергатели рядов Фурье, такая функция на практике (в условиях ограничения числа членов ряда или спектра разложения) принципиально не способна описывать произвольные сигналы и функции. Таким образом, известные методы представления сигналов и функций постоянно наталкивались на принципиальные теоретические ограничения, не позволяющие всерьез говорить о принципиальном решении проблемы единообразного представления функций и сигналов (особенно нестационарных), созданного на основе Фурье-преобразований. Так продолжалось до открытия вейвлетов, которые, похоже, наконец, решили эту сложнейшую и актуальную научную проблему. Основой этого решения стала разработка принципиально нового базиса и класса функций, которые используются для декомпозиции и реконструкции функций и сигналов — в том числе нестационарных. Соответственно, был создан и новый аппарат представления функций и сигналов, а уже совсем недавно и необходимые инструментальные и программные средства для его реализации. Вейвлеты были предложены математиками и потому основные работы по вейвлетам написаны на довольно сложном и непонятном для большинства читателей (даже для многих математиков) языке [1—20]. При этом авторы таких работ довольно часто допускают «математическую эквилибристику» в лучшем, хотя и не всегда, смысле этого понятия. В результате для непосвященных в дебри теории функций и их пространств, кратномасштабного анализа и иных вейвлет-трюков читателей вейвлеты часто выглядят как эффектный фокус, повторить который невозможно. Недаром даже в книге одного из открывателей вейвлетов г-жи Инг-

4

Введение рид Добеши [3, 11] можно встретить такие характеристики математического описания вейвлетов, как «математическая шелуха», «вейвлет-трюки» и «парадоксы». Вейвлеты по существу являются новыми математическими понятиями и объектами, применение которых может теоретически строго и впрямь приблизить любую функцию или любой сигнал. Поэтому они весьма перспективны в решении многих математических задач приближения (интерполяции, аппроксимации, регрессии и т. д.) функций, сигналов и изображений. Вейвлет-обработка сигналов обеспечивает возможность весьма эффективного сжатия сигналов и их восстановления с малыми потерями информации, а также решение задач фильтрации сигналов. Таким образом, вейвлеты существенно пополняют (а вовсе не опустошают) привычный гардероб традиционных средств обработки сигналов и изображений. Но особенно важна принципиальная возможность вейвлетов представлять нестационарные сигналы, например состоящие из разных компонент, действующих в разные промежутки времени, модулированные сигналы и т. д. Такие сигналы в наше время находят куда более широкое применение, чем стационарные или квазистационарные (искусственно сводящиеся к стационарным) сигналы, а также процессы и системы, их порождающие. Как известно, ряды и преобразования Фурье в классическом виде принципиально непригодны для представления нестационарных сигналов, процессов и систем. Поэтому возможность их представления вейвлетами трудно переоценить. Вейвлет-спектрограммы намного более информативны, чем обычные фурье-спектрограммы, и (в отличие от последних) позволяют легко выявлять тончайшие локальные особенности функций, сигналов и изображений с привязкой их ко времени или координатам пространства. Это полезно при решении задач идентификации сигналов и образов в картографии, в разведке полезных ископаемых, в медицине и даже в судебном делопроизводстве (одно из первых полезных применений вейвлетов связано с сильной компрессией изображений отпечатков пальцев без заметной потери информации). Поистине неисчерпаемы возможности вейвлетов в обработке сигналов и изображений, например для Интернета [33] с его ограниченной пропускной способностью каналов передачи информации, или минимизации объема звуковых и видеофайлов. Популярный новый стандарт JPEG 2000 и известные графические программные средства Corel Draw 9/10 уже широко используют вейвлет-технологию обработки изображений. Она включена и в расширения новейших систем компьютерной математики (СКМ), таких как MATLAB, Mathcad и Mathematica. Появились даже микросхемы для вейвлет-преобразований. Словом, джин вырвался из бутылки! И теперь многие специалисты в области прикладной математики, обработки сигналов и изображений, связи и средств телекоммуникаций лихорадочно пытаются понять, что же такое вейвлеты и как их можно использовать в своей практике. Как и всякое важное научное открытие, вейвлеты можно успешно применять с разной степенью знания о них. Подавляющее большинство людей прекрасно пользуются телевизором, автомобилем или самолетом не зная тонкостей их работы и тем более специфики проектирования этих сложных устройств. Так же можно использовать и вейвлеты. Например, художники и Web-дизайнеры могут с помощью уже существующей вейвлет-обработки изображений добиться высокого качества компьютерных рисунков и фотографий при значительной степени их компрессии. Однако специалистам в области обработки сигналов и изображений, безусловно, надо иметь достаточно четкое представление о том, что такое вейвлеты, и знать,

5

Введение «с чем их едят», — т. е. с какими инструментальными средствами можно практически работать с вейвлетами. Многие ли наши специалисты в математике, радиоэлектронике и в ряде других областей науки и техники знают вообще, что такое вейвлеты, хотя с момента и[ реального зарождения прошло уже полтора десятка лет? Увы, приходится констатировать, что лишь очень и очень немногие. Хотя по вейвлетам написаны десятки научных работ российских авторов, все они опубликованы в изданиях, рассчитанных скорее на математиков, чем на специалистов в области прикладных наук. Списки таких работ, включая диссертации, можно найти в переводных книгах [11, 12]. В связи с этим в списке литературы данной книги приводится лишь несколько наиболее крупных обзорных работ наших авторов по вейвлетам, реально доступных читателям. Новизна вейвлетов привела к тому, что даже название этих математических объектов в литературе не установилось окончательно. В некоторых литературных источниках вейвлеты называют всплесками и волночками [15], во французо-язычной литературе используется термин ondelettes [2]. Мы остановимся на термине вейвлеты как наиболее употребительном в последнее время и не имеющем достойного аналога на русском языке, хотя в переводной книге по вейвлетам К. Чуи [12] вейвлеты названы «вэйвлетами». Вейвлеты (wavelets) — это обобщенное название особых функций, имеющих вид коротких волновых пакетов с нулевым интегральным значением и с той или иной, подчас очень сложной, формой, локализованных по оси независимой переменной (t или x) и способных к сдвигу по ней и масштабированию (сжатию/растяжению). Вейвлеты создаются с помощью специальных базовых функций — прототипов, задающих их вид и свойства и удовлетворяющих целому ряду специфических условий. Набор вейвлетов, в их временном или в частотном представлении, может приближать сложный сигнал или изображение, причем идеально точно или с некоторой погрешностью. Таким образом, вейвлеты — это новый математический и практический аппарат представления и обработки произвольных функций, сигналов и изображений, о чем и говорилось выше. По своей значимости роль вейвлетов можно сравнить разве что с выдающейся ролью рядов Фурье и преобразований Фурье [21—24]. Как известно, именно ряды и преобразования Фурье при всех их известных и обнаруженных уже в наше время и ранее недостатках легли в основу многих новых и ведущих областей науки и техники — начиная от решения дифференциальных уравнений различных классов, создания теоретических основ современной электротехники, радиотехники и всевозможных средств связи и телекоммуникаций и кончая многочисленными физическими и измерительными приборами на их основе (анализаторы спектра, синтезаторы сложных сигналов по гармоникам и др.). Но вейвлеты имеют явные преимущества перед рядами Фурье, как в общем и точном представлении функций, так и их разнообразных локальных особенностей. Они представлены намного более разнообразным набором типов, чем единственная синусоидальная функция в рядах Фурье. Это разнообразие вейвлетов, с одной стороны, резко расширяет круг решаемых с их помощью прикладных задач, а с другой стороны, делает такое решение творческим, а вовсе не рутинным процессом. В области обработки изображений вейвлеты дают новейшие и весьма эффективные способы их обработки, например, декомпозиции, реставрации и иденти-

6

Введение фикации сигналов и изображений, удаления из них шума, сжатия файлов, хранящих данные и изображения, и т. д. и т. п. Обширный набор базовых функций вейвлетов и множество их типов позволяют легко адаптировать их к решению тех или иных конкретных и общих задач практики. Вейвлеты и основанные на них интегральные вейвлет-преобразования были предложены в начале 90-х годов прошлого века (хотя первый простейший тип вейвлета, по существу, был описан Хааром (Haar) еще в 1909 году) и в последующее время интенсивно развивались. Наибольший вклад в разработку теоретических основ вейвлетов внесли Мейер (Meyer), Добеши (Daubechies), Малл (Mallat) и другие ученые, опубликовавшие первые теоретические работы в этом направлении и сумевшие донести их до широкой научной общественности [1—12]. К настоящему времени за рубежом в области вейвлет-преобразований опубликованы сотни книг, а число статей исчисляется многими тысячами. В последние годы резко активизировался интерес к вейвлетам и у нас в России. Так, в 2001 году в издательском центре «Регулярная и хаотическая динамика» (Москва, ФТИ РАН) вышла в переводе большая фундаментальная книга И. Добеши по вейвлетам [3, 11]. А издательство «Мир» подготовило перевод учебного курса по вейвлетам Ч. Чуи [12], ранее изданного на английском, японском и китайском языках. При вполне приличном тираже этих книг явно математического характера они не залеживаются на полках наших магазинов, хотя с момента издания этих книг в оригинале прошло уже более 10 лет. А потому в них и не могло быть описания современных инструментальных средств по вейвлетам. Следует также отметить изданную весьма ограниченным тиражом книгу [13] и ряд обзорных статей по вейвлетам, опубликованных в нашей периодической печати [14—20]. Весьма полезны и книги по рядам и преобразованиям Фурье. Из большого числа таких книг отметим лишь [21—24]. К сожалению, общим недостатком литературы по вейвлетам и вейвлет-преобразованиям (не только российской, но и мировой) является весьма слабое или вообще отсутствующее, описание практических примеров применения вейвлетов, доступных иллюстраций их теоретических положений и, главное, современного программного инструментария для работы с ними. В этом нет ничего удивительного — нужные средства вышли из лабораторий (нередко не очень афишируемых) лишь в самые последние годы. А потому лишь совсем недавно в России появились книги [26—28, 30], в которых описаны пакеты расширений по вейвлетам для отдельных конкретных систем компьютерной математики (СКМ) Mathcad 2001/11, MATLAB 6/6.1/6.5 и Mathematica 4/5. Между тем именно они представляют собой тот мощный практический и универсальный инструмент для работы с вейвлетами, который одинаково необходим как специалистам-практикам, разрабатывающим практические приложения вейвлетов, так и теоретикам, желающим иметь практическую апробацию своих теоретических выводов. Итак, до сих пор не было обобщающей научной монографии справочного характера, содержащей достаточно уравновешенное описание как теоретических основ вейвлетов и вейвлет-преобразований, так и прикладных аспектов их применения и нужного для этого программного инструментария. Этот серьезный пробел и призвана устранить данная книга. В данной книге предпринята попытка найти ту золотую середину в теоретическом и практическом описании вейвлетов, которая сделала бы такое описание понятным многим специалистам—прикладникам и вполне полезным для читателей

7

Введение с самыми различными интересами. Поскольку основополагающие теоретические работы по вейвлетам уже появились, в том числе в нашей литературе, теоретические сведения в данной книге носят обзорный характер и не претендуют по полноту математического описания. В частности, всякая «математическая эквилибристика» из этой книги сознательно удалена. В то же время данная книга впервые, при вполне допустимом и разумном объеме теоретических сведений, дает достаточно полное описание новейшего программного инструментария для работы с вейвлетами и многочисленных практических примеров работы с ними. Описанные в книге возможности ряда крупных пакетов расширения СКМ по вейвлетам и многочисленные примеры их применения взаимно дополняют друг друга и в целом дают уникальную возможность познать многогранность самой современной вейвлет-технологии. Именно это и заложено в смысл названия книги «Вейвлеты. От теории к практике». Это название никоим образом не принижает фундаментальной роли математической теории вейвлетов, которая уже не раз была отмечена выше. Оно говорит лишь об одном — пора перейти от созерцания теории вейвлетов к широкому практическому их применению и к активному экспериментированию с вейвлетами. Автор надеется, что такой характер книги сделает ее ценным теоретическим и практическим пособием для всех категорий читателей, желающих освоить или уже осваивающих на практике новое открытие конца 20-го века — вейвлеты.

О содержании и стиле книги Книга является первой справочной научной монографией, посвященной крупной, новой и актуальной проблеме — вейвлетам и вейвлет-преобразованиям, возможности которых представлены описанием ряда современных инструментальных программных средств по вейвлетам. Теоретический материал представлен в обзорной форме, доступной для понимания специалистами в области прикладной математики и обработки функций, сигналов и изображений. Основное внимание в книге уделено вопросам практического применения вейвлетов и вейвлет-преобразований на основе такого мощного программного инструментария, коим являются профессионально ориентированные пакеты расширения по вейвлетам, созданные для систем компьютерной математики MATLAB, Mathcad и Mathematica (как новейших, так и предшествующих им версий). По этим пакетам расширения (Wavelet Toolbox, Wavelet Extеnsion Pack и Wavelet Explorer) книга может выполнять функции достаточно полного справочника и руководства пользователя. Вводная глава 1 содержит основные определения функций и сигналов и средств их обработки, предшествующих появлению вейвлетов. Таким образом, она как бы перекидывает мост между традиционным аппаратом приближения функций и стационарных сигналов, в том числе на основе рядов Фурье и быстрого (оконного) преобразования Фурье, и новейшим аппаратом вейвлет-преобразований, в том числе нестационарных сигналов. Все теоретические сведения в этой главе подкрепляются многочисленными примерами вычислений в наиболее массовой у нас системе Mathcad, документы которой имеют привычный для математиков и научно-технических специалистов вид пользовательского интерфейса. Глава 2 содержит основной обзорный материал по теории вейвлетов. Чтобы сделать этот, далеко не простой, материал доступным, в эту главу включено мно-

8

О содержании и стиле книги жество практических примеров, реализованных в «чистой» (без пакетов расширения) системе Mathcad 2001/11 и наглядно иллюстрирующих основные положения теории вейвлетов. Данная глава содержит минимальный набор теоретических положений, тем не менее вполне достаточный для понимания большинства нюансов практического применения вейвлетов. Здесь описываются возможности вейвлетов — как непрерывных одномерных, так и дискретных, пакетных и двумерных. Значительное внимание уделено кратномасштабному анализу и описанию особенностей ортогональных вейвлетов, допускающих точную реставрацию сигналов после их декомпозиции. Описан временной и частотный подход при прямом и обратном вейвлет-преобразованиях — как непрерывных, так и дискретных. Дается понятие о вейвлет-фильтрах и о вейвлет-декомпозиции и реконструкции сигналов. Завершается глава описанием методики создания вейвлетов и обширного набора вейвлетов, входящего в наиболее мощный пакет расширения по вейвлетам — Wavelet Toolbox для систем MATLAB. Глава 3 описывает работу с пакетом расширения Wavelet Toolbox системы MATLAB в командном режиме. Этот пакет у нас доступен на CD-ROM, имеющихся в широкой продаже, хотя и имеющих сомнительное происхожение. В главе 3 описаны все функции этого пакета, за исключением функций задания вейвлетов, описание которых было вынесено в главу 2. Для каждой функции приведены синтаксические формы записи и примеры практического применения. Примеры охватывают всю проблематику применения вейвлетов — от применения утилит построения деревьев вейвлет-преобразований и расчета отдельных характеристик вейвлетов до обработки сигналов и изображений, включая их компрессию и очистку от шумов. Глава 4 описывает мощную вейвлет-лабораторию на основе интерфейса пользователя (GUI) системы MATLAB. Показаны возможности вывода детальной (в том числе графической) информации по всем типам вейвлетов, вошедших в пакет Wavelet Toolbox, и наглядная реализация множества примеров вейвлет-обработки сигналов и изображений с высокой степенью визуализации результатов и удобными средствами интерактивной работы с пользователем. Глава 5 посвящена работе с пакетами расширения системы Mathcad, поддерживающими вейвлет-преобразования. Она начинается с описания восьми новых функций по работе с вейвлетами пакета расширения по численным методам Numeric Recipes. Но основное внимание впервые в нашей литературе уделено специализированному на работу с вейвлетами обширному пакету расширения Wavelet Extension Pack и электронной книге по нему. Дано описание всех функций этого пакета и многочисленных примеров их применения. Обширная глава 6 посвящена еще одному мощному пакету расширения по вейвлетам — Wavelet Explorer для одной из самых известных СКМ Mathematica 4/4.1/5, которая является лидером среди систем компьютерной математики. Этот материал также публикуется впервые. Wavelet Explorer принадлежит к числу наиболее крупных и вполне завершенных программных продуктов по применению вейвлетов. И он охватывает практически все области применения вейвлетов — от визуализации вейвлетов и контроля за их параметрами до обработки сигналов и изображений. Вообще надо отметить, что материалы по вейвлетам в разных пакетах расширения оказываются далеко не идентичными. Каждый пакет расширения имеет свое ярко выраженное лицо, свои достоинства и недостатки. И лишь знакомство одновременно с несколькими пакетами расширения, впервые ставшее возможным в

9

Введение этой книге, позволяет получить достаточно полную информацию по практическим аспектам применения вейвлетов и вейвлет-преобразований. Заключительная глава 7 содержит обзор ряда важных областей применения вейвлетов в таких областях, как идентификация и анализ функций и сигналов, очистка от шумов и компрессия сигналов и изображений. Дается описание Интернет-страниц, поддерживающих представление информации по вейвлетам. Ряд материалов этой главы выходит за рамки описания возможностей пакетов расширения СКМ по вейвлетам. Например, приводятся данные об использовании вейвлет-обработки изображений в популярных графических пакетах Corel Draw 9/10/11 и данные о некоторых других программных средствах для работы с вейвлетами. Здесь же описываются пути дальнейшего развития вейвлетов и вейвлет-преобразований в математике, физике, биологии, медицине и в других областях науки и техники.

Благодарности Эта книга написана благодаря помощи и солидарности многих лиц и организаций. Особой благодарности заслуживают представители ряда крупных западных корпораций США, создателей всемирно известных систем компьютерной математики, за предоставление автору их новейших программных продуктов, пакетов расширений по ним, документации и информационного обеспечения. С. Вольфрама (S. Wolfram), главу фирмы Wolfram Research, Inc. (США), и сотрудника этой фирмы Олега Маричева автор благодарит за предоставленную возможность полуторамесячной стажировки в США и прекрасные условия для работы. Это позволило собрать множество новых материалов как по системе Mathematica и пакету Wavelet Explorer (разработки этой фирмы), так и по другим системам компьютерной математики, включая Mathcad и MATLAB, и оценить новые направления их применения в вейвлет-обработке сигналов и функций. Представители фирмы MathSoft Inc. в Европе Rob Doley и Diane Ashfield заслуживают глубокой благодарности за оперативное предоставление автору расширения системы Mathcad — Wavelet Extension Pack c электронной книгой по нему. Особую благодарность автор выражает представителям крупной корпорации MathWorks Naomi Fernandes и Courtney Esposito за поддержку издания книг автора по системам класса MATLAB и за своевременное и весьма оперативное предоставление одной из самых мощных систем компьютерной математики MATLAB 6.0/6.1/6.5. Входящий в них пакет расширения по вейвлетам — Wavelet Toolbox является уникальной программной лабораторией для удобного изучения и применения вейвлетов. Поэтому данному пакету в книге уделено особенно много места. Автор благодарит своих молодых сотрудников доцентов Ирину Абраменкову и Елену Петрову за помощь в подготовке отдельных примеров в книге и споры по их содержанию. Директору ЗАО «Смоленский телепорт» Григорию Рухамину автор признателен за многолетнее подключение к Интернету по спутниковому каналу, что позволило получить самые свежие сведения по проблематике книги и выйти на прямое сотрудничество с указанными выше корпорациями. Особую благодарность автор выражает Международной Соросовской программе в области точных наук (ISSEP), чей грант и признание в 1999 и в 2001 гг. ощу-

10

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

Предупреждения Автор и издательство сделали все возможное, чтобы материал книги был доступен, своевременен, актуален, объективен и точен. Однако описанные в книге новые понятия — вейвлеты и относящиеся к ним новейшие программные средства находятся в начале своего бурного развития. Поэтому нет гарантии в том, что в крайне сжатые сроки подготовки даже второго издания книги что-то в их описании не было упущено и даже неточно истолковано. Автор и издательство предупреждают читателей, что они не несут ответственности за неправильное истолкование читателями каких-либо терминов и положений, относящихся к вейвлетам, и за трудности в их применении при решении тех или иных конкретных задач. Кроме того, авторы и издательство не несут ответственности за возможные негативные результаты использования случайных копий систем компьютерной математики Mathcad, MATLAB и Mathematica и пакетов их расширений, имеющихся на многочисленных компакт-дисках, а также за любой моральный и материальный вред, который вытекает из работы (увы, далеко не всегда правильной) пользователей с этими системами. Эти предупреждения вовсе не означают наличия каких-либо особых недостатков в системах компьютерной математики и в пакетах их расширения, описанных в данной книге. Предупреждения читателям просто являются долгом автора и издательства перед ними, вытекающим из современного юридического подхода к использованию быстро развивающихся программных средств и их описаний. Подобные предупреждения вы найдете в любом описании современных программных продуктов. Эти предупреждения сделаны еще и потому, что предшествующие книги автора уже много раз незаконно копировались на «пиратские» компакт-диски без уведомления автора и даже с удалением его фамилии. При этом скопированные тексты и рисунки нередко относились совсем не к тем версиям математических систем, которые находились на подобных дисках. Хотелось бы предупредить читателей, что имеющиеся на таких дисках материалы не только незаконны, но и, подчас, совсем не соответствуют тому, что написано на их конвертах и наклейках.

Адреса Отзывы и пожелания о книге можно отправлять по адресу издательства, выпустившего книгу. Вы можете также посетить домашнюю страницу автора этой книги на сайте АО «Смоленский телепорт» www.keytown.com/users/dyak.

Принятые в книге обозначения Для облегчения чтения книги в ней используются следующие обозначения.

11

Введение • Имена элементов интерфейса выделены специальным шрифтом, например: «Позиция Open меню File».

• Термины, встречающиеся в тексте в первый раз, как правило, выделены курсивом, например: «Строка меню — это строка, открывающая доступ к пунктам меню с различными командами». • Моноширинным шрифтом обозначены векторы, матрицы, функции, операторы, программные блоки и вообще все, что можно увидеть в окне редактора системы Mathcad. Например: Name := Nbegin..Nend. В тексте вам также будут встречаться специальные врезки, в которых содержатся примечания и предупреждения. ПРИМЕЧАНИЕ В примечаниях даются сведения, позволяющие лучше понять тему раздела.

ВНИМАНИЕ Под этим заголовком идут сведения, требующие особого внимания. Чаще всего это сведения, подводящие итог рассмотрения тех или иных аспектов применения вейвлетов, или указания на специфику использования инструментальных средств по ним. В книге использован ряд общепринятых сокращений: АМ — амплитудная модуляция; АЧХ — амплитудно-частотная характеристика; БПФ — быстрое преобразование Фурье; БВП — быстрое вейвлет-преобразование; ВП — вейвлет-преобразование; ДКП — дискретное косинусное преобразование; ДПФ — дискретное преобразование Фурье; КЗС — квадратурные зеркальные фильтры; КИХ — конечная импульсная характеристика; КМА — кратномасштабный анализ; КФ — квадратурные фильтры; ОВП — обратное вейвлет-преобразование; ОДВП — обратное дискретное вейвлет-преобразование; ОНВП — обратное непрерывное вейвлет-преобразование; ОПФ — обратное преобразование Фурье; ПВП — прямое вейвлет-преобразование; ПДВП — прямое дискретное вейвлет-преобразование; ПНВП — прямое непрерывное вейвлет-преобразование; ППФ — прямое преобразование Фурье; ФВЧ — фильтр нижних частот; ФНЧ — фильтр нижних частот; ФЧХ — фазочастотная характеристика; ЧМ — частотная модуляция; phi — функция аппроксимации ϕ(t ) вейвлетов; psi — детализирующая вейвлет-функция ψ( t ). Специальные математические обозначения вводятся по мере необходимости в них в начале глав 1 и 2.

12

Глава 1. Функции, ряды и преобразования Фурье 1.1. Понятие о функции 1.1.1. Несколько слов о функции Более двух сотен лет тому назад в обиход математиков пришло понятие функции, как некоторой зависимости одной величины, например, f или y, от другой величины — независимой переменной x или t. Функции стали обозначать как f(x), f(t), y(x) и т. д. Могут быть и функции ряда переменных, например, вида f(x, y, z, ...). Временные функции вида s(t), e(t), f(t) и т. д., широко используемые в технике связи, принято именовать сигналами. А функции или сигналы, заданные в определенные моменты времени, называют временными рядами. Довольно скоро стало ясно, что это понятие требует серьезных уточнений. Например, следует оговорить, в каком интервале [a, b] может задаваться независимая переменная x или t, может ли она принимать в нем все виды численных значений (например, в виде целых, рациональных, вещественных, иррациональных или комплексных чисел), как задать характер зависимости зависимой переменной f или y от независимой переменной (например, в явном или неявном или даже в итерационном виде) и т. д.

1.1.2. Области определения функций Часто функция определена на некотором отрезке от x = a до x = b. В этом случае область определения функции принято записывать как x∈[a,b]. Иногда используют и иные обозначения. Например, если интервал определения функции задан как a < x ≤ b, то это записывают как x∈(a,b]. Особого внимания требует определение функций в бесконечном интервале значений независимой переменной от –∞ до +∞. Мы будем обозначать его как R, т. е. R = (–∞, +∞). Пусть, скажем, x принадлежит R, это записывается как x∈R. Примером функции, определенной в R, является синусоидальная функция sin(x).

1.1.3. Компактный носитель функции В литературе по вейвлетам широко используется понятие носителя функции. Носителем функции фактически является область ее определения. Например, если f(x) определена при x∈[a,b] и f(x) = 0 при a < x и x > b, а b — a невелико, то говорят, что функция f(x) явно имеет компактный носитель. Если a = –∞ или b = +∞ или имеет место и то и другое, то функция компактного носителя не имеет. Введение понятия компактного носителя ценно в связи с возможностью замены бесконечных пределов интегрирования в преобразованиях Фурье и в вейвлет-преобразованиях на конечные пределы. Это нередко упрощает вычисления и делает математические преобразования корректными исходя из практических соображений.

13

Глава 1. Функции, ряды и преобразования Фурье 1.1.4. Пространства функции В процессе изучения функций мы встретимся с понятиями о множествах или пространствах функций. Пространство LP[R] означает, что функция f(x) удовлетворяет условию ∞



p

f (x ) dx < ∞.

−∞

К примеру, часто используемое гильбертовое пространство L2[R] означает, что f(x) удовлетворяет условию ∞



2

f (x ) dx < ∞.

−∞

Могут встречаться и иные пространства, например, L2(0,2π) означает, что f(x) удовлетворяет условию 2π



2

f (x ) dx < ∞.

0

1.1.5. Периодичность функции Практически можно считать, что в нашем случае f(x) — любая кусочно-непрерывная функция. Она может быть периодической. Например, на периоде 2π периодической будет функция, удовлетворяющая равенству f(x) = f(x±2π). Множество функций из L2(0, 2π) называют пространством 2π-периодических функций, интегрируемых с квадратом. Примером такой функции является и комплексная синусоида f(x) = eix = cos(x) + i ⋅ sin(x), где i = −1 — мнимая единица. Синусоида является функцией периодически продолжаемой на всю вещественную ось x. Однако пространству L2(R) синусоида не принадлежит, поскольку из условия определения этого пространства следует, что принадлежащие ему функции должны затухать при x∈R. Синусоида таким свойством не обладает. Анализ функций — обширный раздел математики. Он позволяет выявить такие особенности функций, как их периодичность, наличие особых точек (например, разрывов самой функции и ее производных, точек перегибов и т. д.), существование и тип экстремумов, наличие асимптот и др. Обширный материал по анализу функций с помощью СКМ собран в книге [27]. ВНИМАНИЕ В представленных ниже материалах отобраны только те сведения и примеры, которые непосредственно подводят нас к пониманию причин появления вейвлет-технологии и принципиально важны для сопоставления ее возможностей с возможностями классического, в том числе спектрального, анализа функций и сигналов.

1.2. Приближение функций и сигналов 1.2.1. О приближении функций и сигналов Некоторые формулы, описывающие важные физические явления и математические понятия, например траектории планет Солнечной системы, настолько

14

1.2. Приближение функций и сигналов сложны, что занимают десятки и сотни страниц. В связи с этим появилась задача представления сложных функций более простой функцией или набором простых функций — задача аппроксимации. При этом весьма желательно, чтобы аппроксимация была как можно более точной и вычислялась за малое время. Развитие науки и техники привело к созданию великого множества простых по виду специальных математических функций, представляющих решения дифференциальных уравнений определенного вида или интегралов. Большинство из них вычисляется только в численном виде, и такие вычисления требуют много времени. Были созданы таблицы подобных функций и написаны книги, содержащие множество таких таблиц, например получившая мировую известность книга [33]. Есть описание специальных функций и в обычных справочниках по математике, например [34]. Таблицы обычно дают значения функций для вполне определенных (дискретных) значений xi независимой переменной x. Точки, в которых они определены, называют узловыми. Из работы с таблицами возникает задача интерполяции функций, т. е. вычисления значений f(xi) в промежутках между узлами xi. Нередко эта задача тесно связана с аппроксимацией, поскольку подходящую аппроксимирующую функцию можно использовать для вычисления значений f(x) в промежутках между узлами. Вычисление функции за пределами узловых точек получило название экстраполяции. Экстраполяция возможна как вперед, так и назад. Экстраполяцию вперед часто именуют предсказанием значений функций. Мечтой многих, увы, далеко не всегда исполнимой, является создание математического предсказания событий — часто непредсказуемых, например, таких как землетрясения, обвалы в финансовой сфере и ставшие печально известными террористические акты. Как известно, на практике данные могут иметь погрешности, порою весьма значительные. Например, применяемые в технике связи сигналы нередко засорены шумами, уровень которых может многократно превосходить уровень полезной компоненты сигналов. В связи с этим возникает целый спектр задач обработки таких сигналов и функций, например сглаживание данных, очистка их от шума (или, что почти одно и то же — выделение полезных сигналов из шума). Проведение аппроксимации с одновременной статистической обработкой данных относится к регрессии или задачам регрессионного анализа. При этом широко используется оценка среднеквадратической погрешности для всех точек обрабатываемых данных, а сам метод подобного приближения и анализа функций получил название метода наименьших квадратов (МНК). Итак, с появлением функций, а затем сигналов возникла достаточно общая задача их однообразного представления простыми функциями или рядами таких функций — задача приближения функций. Под простотой функции мы будем прежде всего понимать возможность ее простого и быстрого вычисления. Разумеется, в наш век уже не ручного вычисления, а с помощью компьютера. Будем называть эту задачу задачей приближения функций и сигналов. В многовековой истории развития математики принимались неоднократные попытки решения задачи приближения произвольных функций и сигналов. Некоторые из них привели к созданию классических методов интерполяции, аппроксимации и регрессии, значение которых велико и в наши дни. Но, пожалуй, одним из самых выдающихся открытий в математике стали ряды Фурье. Впервые появилась возможность однообразного представления произвольных (с некоторыми оговорками) функций и сигналов с помощью набора синусо-

15

Глава 1. Функции, ряды и преобразования Фурье ид. Для периодических сигналов эти синусоиды — гармоники имеют кратные частоты. Ряды Фурье долгое время воспринимались как математическая абстракция. Однако с появлением радиосвязи и с созданием высокоизбирательных радиоприемных устройств выяснилось, что гармоники сложных сигналов являются объективно существующими объектами и характеризуются их спектром (набором). Ныне владелец обычного транзисторного радиоприемника может в этом убедиться, принимая паразитное излучение от строчной развертки своего телевизора. Оно воспринимается как множество сигналов с частотой, кратной частоте строчной развертки (около 17 кГц). Правда, сигналы эти не модулированные и их можно обнаружить по показаниям индикатора настройки или по пропаданию шумов радиоприемника. Триумфом фурье-анализа и синтеза стало создание специальных и довольно сложных физических приборов — анализаторов спектра и синтезаторов сложных сигналов. Однако по мере практического использования рядов Фурье стало нарастать недовольство ими. Было очевидно, что базовая функция — синусоида явно неудачна для представления функций и сигналов с локальными особенностями, например разрывами. Бесконечное число членов в ряде Фурье недопустимо и нереально на практике. А их ограничение приводит к возникновению больших погрешностей (эффект Гиббса [23]). Появление сигналов с явно выраженными локальными особенностями, например импульсных, цифровых, сигналов изображений и т. д., все чаще и чаще стало демонстрировать невысокую эффективность и принципиальные недостатки фурье-анализа и синтеза. В связи с этим предпринимались неоднократные попытки применения рядов с иными базовыми функциями (например, Уолша, Хаара и др.). И лишь к концу 80-х годов прошлого столетия эти попытки привели к новому открытию — вейвлетов, которым и посвящена данная книга. Вейвлеты (wavelets) представляют собой довольно обширный класс функций, график которых имеет вид коротких волн, ограниченных во времени или в пространстве и способных к перемещению и масштабированию. Замечательно, что многие вейвлеты могут представлять абсолютно точно или приближенно произвольные функции, сигналы и изображения. Именно это и открывает перед ними перспективы широкого применения для анализа функций, обработки сигналов и изображений. Однако вейвлеты оказались «крепким орешком». Математическая теория вейвлетов, базирующаяся на сложных понятиях пространств функций и сигналов, ортогональности базисных функций и их нормах намного сложнее и тоньше, чем ставшая уже привычной теория фурье-приближения функций и сигналов. Теория вейвлетов находится в развитии, многие понятия в ней непривычны и сложны для непосвященных. Особенно в условиях отсутствия инструментальных средств для практической работы с ними. Мир специалистов, заинтересованных в применении вейвлетов, разбился на два отдаленных друг от друга лагеря. В первом находятся опытные математики, развивающие математическую теорию вейвлетов, но слабо владеющие современными инструментальными средствами по работе с ними или старающиеся не афишировать применение таких средств. Во втором, куда более обширном лагере находится основная масса специалистов в области прикладной математики и обработки сигналов и изображений. Большинство из них даже не слышали о вейвлетах и об инструментальных средствах, облегчающих работу с ними. Эта книга, как отмечалось во введении, перекидывает мост между этими двумя лагерями. Она одинаково полезна как опытным математикам, получающим сведения

16

1.2. Приближение функций и сигналов о самых современных и новейших программно-инструментальных средствах для проверки своих идей и их внедрения в практику, так и, особенно, прикладникам и практикам, применяющим их для создания новых высокоэффективных технических изделий, приборов и программных средств по обработке сигналов и изображений. В книге описаны следующие пакеты расширения систем компьютерной математики (СКМ), позволяющие работать с вейвлетами:

• Wavelet

Toolbox (WT) — пакет для мощных матричных СКМ MATLAB 6.0/6.1/6.5; • Wavelet Extension Pack (WEP) — пакет для популярных СКМ для всех Mathcad 8/2000/2001/2001i/11; • Wavelet Explorer (WE) — пакет для лидера в области компьютерной математики — СКМ Mathrmatica 4/4.1/4.2/5. Для категории читателей, на которых рассчитана эта книга, крайне важно детально осмыслить, что же нового дает вейвлет-технология перед привычной технологией приближения функций и обработки сигналов и изображений. Именно поэтому книга открывается этой главой, в которой дается обзор теоретических понятий по приближению функций и обработке сигналов, сопровождающийся практическими примерами реализации положений теории. В принципе, этот раздел имеет вполне самостоятельное значение и может рассматриваться как введение в технику приближения функций и сигналов. Предполагается, что читатель имеет доступ к современным СКМ класса Mathcad, MATLAB и Mathematica. Мощная и популярная СКМ Maple 8/9 пока не имеет пакета расширения по вейвлетам и потому в данной книге не рассматривается. В этой книге нет описания упомянутых СКМ самих по себе — новички в их применении могут воспользоваться многочисленными книгами по этим системам, например [25—31]. В то же время по упомянутым выше пакетам расширения в книге содержится исчерпывающий справочный материал и множество примеров (как приведенных в документации по этим пакетам, так и новых). Это позволяет использовать книгу не только как теоретическое, но и, прежде всего, практическое руководство по применению современного программного инструментария по вейвлетам.

1.2.2. Приближение функций рядом Тейлора Одним из первых методов единообразного представления функций было разложение их в ряд Тейлора [34]. Если f(x) дифференцируемая функция, то ее разложение в ряд Тейлора в окрестности точки x0 задается выражением: f (x ) ≅ f (x 0 ) +

f ′ (x 0 ) f ′′(x 0 ) f ( n ) (x 0 ) (x − x 0 )n . (x − x 0 ) + (x − x 0 )2 +K+ n! 1! 2!

Если разложение выполняется относительно точки x0 = 0, его принято называть рядом Маклорена: f (x ) ≅ f (x 0 ) +

f ′ (x 0 ) f ′′(x 0 ) 2 f ( n ) (x 0 ) n x+ x +K+ x . 1! 2! n!

Ряд Тейлора можно представить в следующем виде: f (x ) ≅ f (x 0 ) +



∑f i =1

(i )

(x − x 0 ) . i!

(1.1)

17

Глава 1. Функции, ряды и преобразования Фурье ПРИМЕЧАНИЕ Формула (1.1) по существу реализует две важные идеи вейвлет-преобразования: разбиение приближения функции на две компоненты — аппроксимирующую (грубую) и детализирующую, а также реализацию детализации по итерационной формуле. В самом деле, в правой части (1.1) член f(x0) есть грубое приближение к значению функции в любой точке, близкой к x0, и, что замечательно, к абсолютно точному приближению в самой этой точке. Член с суммой является детализирующим. Детализацию можно проводить вплоть до i→∞ или, ограничиваясь конечной точностью, до i = n.

К сожалению, представление произвольной функции рядом (1.1) имеет множество недостатков. Даже для непрерывных функций этот ряд чаще всего сходится очень медленно. Как известно, есть и непрерывные, но не дифференцируемые функции (например, фракталы [19]). И вообще операция дифференцирования является далеко не простой и точной. Для разрывных и периодически повторяющихся функций разложение (1.1) практически неприемлемо. Тем не менее операции разложения в ряд Тейлора и Маклорена настолько распространены, что включены в набор встроенных функций практически всех математических систем. Например, в системах Mathcad для этого используется опция series в составе оператора символьного вывода →. Пример разложения функции sin(x) в ряд Маклорена представлен на рис. 1.1. В местах ввода после оператора → указывается имя независимой переменной и порядок ряда. Следует отметить, что ряды многих функций могут не содержать члены с нечетной или четной степенью, поэтому порядок реального ряда может быть ниже заданного. Рисунок 1.1 дает представление о совершенстве пользовательского интерфейса системы Mathcad 11. Это вполне привычный пользователям приложениями под Windows-интерфейс. Пожалуй, единственным его отличием от интерфейса таких приложений являются выводимые в окно редактирования документа палитры математических знаков. Общая палитра таких знаков Math и две палитры распространенных операций (вычислений Calculus и символьных операций Symbolic) показаны на рис. 1.1, справа. С помощью палитр шаблоны практически любых математических операций могут вводиться даже неопытными пользователями. В связи с этим в дальнейшем элементы интерфейса этой системы будут опускаться. Этот рисунок прекрасно иллюстрирует и основные проблемы разложения функции sin(x) в ряд Маклорена:

• погрешность разложения мала только в малой окрестности точки x0; • при заметном удалении от точки x0 отклонение кривой ряда от кривой исходной точки x0 резко нарастает и становится практически непредсказуемым; • никаких признаков периодичности функции sin(x) в ее разложении в ряд не обнаруживается. Суммируя сказанное, можно со всей определенностью сказать, что ряды Тейлора и Маклорена приближают даже гладкую и легко дифференцируемую синусоидальную функцию в целом плохо. Впрочем, как и подавляющее большинство других функций. Исключением являются лишь функции, которые могут быть представлены полиномами, но заданы в завуалированном виде. Но в этом случае, скорее всего, само разложение в ряд Тейлора или Маклорена является излишним

18

1.2. Приближение функций и сигналов

Рис. 1.1. Разложение функции sin(x) в ряд Маклорена

и требуется просто грамотное преобразование функции в ее полиномиальное представление.

1.2.3. Интерполяция и экстраполяция функций по Лагранжу Можно попытаться приблизить таблично заданную функцию другим способом, не привязываясь к одной конкретной точке. Пусть некоторая функция f(x) определена рядом своих узловых точек (xi, yi) на некотором отрезке [a, b]. Под интерполяцией мы будем подразумевать вычисление значений f(x) в любом промежутке [xi, xi+1] в пределах отрезка [a, b]. Соответственно, любое вычисление f(x) вне отрезка [a, b] является экстраполяцией. Если при интерполяции задача сводится к вычислению значений функции между узлами, то при экстраполяции задача состоит в вычислении значений функции вне того интервала, на котором она задана в виде таблицы, графически или иным способом. При аппроксимации таблично заданная функция (что, кстати, не является обязательным признаком аппроксимации) заменяется другой функцией, как правило, более простой и потому более быстро вычисляемой, которая приближенно описывает поведение исходной функции на некотором отрезке. При этом на различных отрезках аппроксимирующие функции могут быть и чаще всего бывают разными. Широко применяемые в практике обработки таблиц линейная и квадратичная интерполяции, представленные выражениями f(x)лин = a1x + a0 и f(x)кв = a2x2 + a1x + a0,

19

Глава 1. Функции, ряды и преобразования Фурье являются частным видом полиномиальной интерполяции (и аппроксимации), при которой значения f(x) вычисляются с помощью аппроксимирующего полинома: n

fa(x) = anxn + an–1xn–1 + ... aixi + ... + a2x2 + a1x + a0 =

∑ax . i

i

(1.2)

i =0

Реализация полиномиальной аппроксимации сводится к вычислению коэффициентов полинома an, an–1, ..., a1, a0, так чтобы точки fa(xi) точно совпадали с узловыми точками f(xi). Нетрудно показать, что эта задача решается довольно легко. В самом деле, можно составить систему линейных относительно an, an–1, ..., a1, a0 уравнений вида (1.2) так, что в каждом уравнении x = xi и f(xi) = fa(xi). Из решения такой системы можно получить требуемые коэффициенты an, an–1, ..., a1, a0 многочлена. При этом значения полинома в узловых точках точно совпадают со значениями ординат в этих точках. Есть и более эффективные способы полиномиальной аппроксимации и ряд удобных форм полинома — в частности, форма, известная как формула интерполяции по Лагранжу [33]. Ее удобство в том, что в ней фигурируют лишь координаты узловых точек. Обобщенная формула Лагранжа в практической ее реализации в системе Mathcad представлена на рис. 1.2. Эта формула использует только данные об узловых точках функции.

Рис. 1.2. Пример интерполяции табличных данных с помощью обобщенной формулы Лагранжа

Недостатками обобщенной формулы Лагранжа является ее сложность и отсутствие явного выражения для аппроксимирующего полинома.

1.2.4. Полиномиальная аппроксимация Несложно выполнить и полиномиальную аппроксимацию таблично заданной функции в общем случае (для произвольно заданной степени полинома), то есть по-

20

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

Рис. 1.3. Пример полиномиальной аппроксимации

Особенностью рассмотренной только что глобальной полиномиальной аппроксимации является однозначное соответствие между числом узловых точек N аппроксимируемой функции и степенью полинома n = N – 1. На практике можно нередко задать функцию множеством точек, но тогда степень полинома станет очень большой, его вычисления займут много времени, а главное, при этом точность вычислений может резко ухудшиться из-за осцилляций полиномов высоких степеней. Практически максимальная степень полинома не превышает 8—10 и лишь в СКМ с точными вычислениями может быть повышена. ВНИМАНИЕ Интересующихся специальной техникой аппроксимации (Паде, Чебышева, минимаксной и др.) стоит обратить внимание на ее реализацию в такой мощной математической системе, как Maple. В книгах [27, 31] приводятся примеры того, как выбор высокоточной аппроксимации позволяет получить верные значения до 6—8 цифр результата и при этом сократить время вычислений функций порой в сотни раз. При этом особенно важно учитывать особенности аппроксимируемой функции, для чего (как мы увидим из дальнейшего) чрезвычайно полезными оказываются вейвлеты.

1.2.5. Сплайновая интерполяция В настоящее время важным направлением существенного повышения точности интерполяции является переход от интерполяции одним полиномом к интерполяции рядом полиномов невысокой степени. В общем случае речь идет о том, что

21

Глава 1. Функции, ряды и преобразования Фурье используются отрезки полиномов невысокой степени, интерполирующие данные для нескольких смежных узловых точек. Если нужная точка выходит за их пределы, меняется набор узловых точек и строится новый полином. Такого рода интерполяция является локальной, поскольку при построении очередного отрезка полинома используются локальные данные лишь о части точек. Простейшим видом сплайновой интерполяции является кусочно-линейная интерполяция, при которой вычисления дополнительных точек выполняются по линейной зависимости. Графически это означает просто соединение узловых точек отрезками прямых. В массовой СКМ Mathcad для этого используется функция: linterp(VX, VY, x) Для заданных векторов узловых точек VX и VY и заданного аргумента x функция linterp(VX, VY, x) возвращает значение функции при ее линейной интерполяции. При экстраполяции используются отрезки прямых, проведенных через две крайние точки слева (линейная экстраполяция назад) или справа (линейная экстраполяция вперед). В ряде случаев весьма полезной оказывается сплайновая интерполяции, при которой используются отрезки полиномов обычно не выше третьей степени — кубические сплайны. Требуется, чтобы кубические сплайны проходили через смежные три ближайшие узловые точки и, кроме того, в граничных точках должны совпадать не только значения сплайнов и функции, но и значения их первых и вторых производных. Это означает высокую плавность линий интерполяции (аппроксимации). Такую плавность обеспечивает гибкая линейка, как бы закрепленная в узловых точках. Итак, сплайн-интерполяция характеризуется следующими особенностями:

• график кусочно-полиномиальной аппроксимирующей функции проходит точно через узловые точки;

• в узловых точках нет разрывов функции и разрывов производной; • благодаря низкой степени полиномов погрешность между узловыми точками обычно достаточно мала; • поскольку используется множество полиномов, то появляется возможность аппроксимации быстроменяющихся функций. Разумеется, сплайны могут быть не только кубическими. Обычная линейная интерполяция является, в сущности, сплайновой интерполяцией первого порядка. Достаточно практична интерполяция сплайнами второго порядка, но основной все же является кубическая сплайновая интерполяция. Сплайны порядка выше трех настолько громоздки, что не нашли применение на практике. Сплайновая интерполяция может быть как локальной, так и глобальной (с применением для вычислений сплайнов всей совокупности узловых точек). Сплайны могут также отличаться характером экстраполяции (представлением функции за пределами отрезка [a, b]), которая может быть линейной, параболической или кубической. Поскольку экстраполяция делается по последним трем точкам, ее точность невысока. Такая интерполяция часто именуется продолжением. Сплайновая кусочная аппроксимация также возможна. Но на практике она неудобна, поскольку не дает единого выражения для описания функции. Вместо этого приходится использовать набор разных полиномов и переходить от одного из них к другому при смене значения независимой переменной.

22

1.2. Приближение функций и сигналов Для осуществления сплайновой интерполяции система Mathcad предлагает четыре встроенные функции. Три из них служат для получения векторов вторых производных сплайн-функций при различном виде интерполяции:

• cspline(VX, VY) — возвращает вектор VS вторых производных при кубическом продолжении;

• pspline(VX, VY) — возвращает вектор VS вторых производных при параболическом продолжении;

• lspline(VX, VY) — возвращает вектор VS вторых производных при линейном продолжении. Четвертая функция — interp(VS, VX, VY, x) — возвращает значение y(x) для заданных векторов VS, VX, VY и заданного значения x. Таким образом, сплайн-интерполяция проводится в два этапа. На первом с помощью функций cspline, pspline или lspline отыскивается вектор вторых производных функции y(x), заданной векторами VX и VY ее значений (абсцисс и ординат). Затем на втором этапе для каждой искомой точки вычисляется значение y(x) с помощью функции interp. На рис. 1.4 показано применение описанных функций для линейной и сплайновой интерполяции. Нетрудно заметить, что при линейной интерполяции график оказывается слишком грубым — отчетливо видны точки перегибов. В то же время сплайн-интерполяция, несмотря на малое число точек в этом примере (их всего 6), дает внешне прекрасные результаты: график функции оказывается плавным и точки его перегиба вообще незаметны. Однако внимательное изучение кривой интерполяции показывает, что нередко она (как и гибкая линейка) может слишком сильно выгибаться вверх или вниз. Аппарат сплайновой интерполяции есть и в других СКМ — MATLAB, Maple и Mathematica. Однако надо отдать должное разработчикам систем класса Mathcad — их инструментарий для работы со сплайнами более удобен, чем в других СКМ. Среди разнообразных типов вейвлетов сплайновые вейвлеты занимают достойное место.

Рис. 1.4. Линейная и сплайновая интерполяция функции

23

Глава 1. Функции, ряды и преобразования Фурье 1.2.6. Двумерная линейная и сплайн-интерполяция Для повышения качества построения трехмерных графиков имеется возможность выполнения двумерной сплайн-интерполяции. Это позволяет существенно повысить представительность сложных графиков функций, в том числе контурных (рис. 1.5).

Рис. 1.5. Пример применения двухмерной сплайн-интерполяции для построения контурного графика сложной поверхности

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

1.2.7. Другие методы приближения и интерполяции Разумеется, разложениями в ряд Тейлора, интерполяцией по Лагранжу и сплайнами или даже рядами Фурье классические задачи приближения сигналов и функций не ограничиваются. Базисом приближения могут быть специальные полиномы, например, Эрмита и Чебышева. Так, в кораблестроении получила применение Чебышевская аппроксимация, которая основана на оптимальном выборе расположения узлов интерполяции. Это позволяет уменьшить резкое возрастание ошибок приближения на краях интервала интерполяции. Минимизация ошибок и выравнивание их максимальных значений в интервале интерполяции положены в основу так называемых минимаксных методов. Они реализованы в ряде систем компьютерной математики, например, Mathematica 4/5 и Maple 8/9. Наглядные примеры приближения одной и той же зависимости рядом методов описаны в [32]. Здесь пора остановиться, поскольку иначе можно превратить суп в кашу и перейти границу рассмотрения различий между классическими приближениями и техникой вейвлет-приближений. Однако важным остается рассмотрение методов приближения сигналов и зависимостей, в основе которых лежит статистическая обработка исходных данных.

24

1.3. Регрессия и сглаживание данных

1.3. Регрессия и сглаживание данных 1.3.1. Постановка задачи регрессии Как отмечалось, на практике вполне возможно задание достаточно большого числа узловых точек аппроксимируемой функции. Например, в физических экспериментах для этого достаточно порой повторить цикл измерений несколько раз (а порою и сотни раз). Если подвергнуть такие данные хотя бы простейшей статистической обработке (например, усреднению), то можно заметно уменьшить случайную погрешность измерений. Таким образом, мы логично подходим к желательности объединения аппроксимации с элементарной статистической обработкой данных. Это и реализуется в задачах регрессии, при которых график аппроксимирующей функции должен проходить в «облаке» узловых точек исходной функции так, чтобы суммарная среднеквадратичная погрешность для всех точек была минимальной. Математически постановка задачи регрессии сводится к следующему. Пусть есть набор точно определенных значений xi и соответствующих им не точных значений yi. Допустим, мы предполагаем, что существует некоторая зависимость f(x, a0, a1, ..., ak), которая может рассматриваться как приближение к зависимости y(x), чьи точки представлены как yi(xi). Таким образом, мы вправе записать: yi = f (xi , a0, a1, K , ak ) + ξ i . Здесь ξ i — независимые случайные величины с нормальным законом распределения, определяющие погрешность задания yi. Обычно их считают следствием ошибок эксперимента. Задача регрессии заключается в том, чтобы найти параметры a0, a1, ..., ak такими, при которых представление y(x) нашей функцией f(x) имело наименьшую среднеквадратичную погрешность. Для этого нужно минимизировать функцию Ф (a0, a1, K , ak ) =

∑ ( f (x , a0, a1, K ak ) − y ) . 2

i

i

К примеру, для весьма часто применяемой линейной регрессии, когда f(x) = a0 + a1*x (часто обозначают a0 = a и a1 = b), надо минимизировать следующее выражение

∑ (a0 + a1x

Ф (a0, a1) =

i

− yi )2.

Если приравнять ∂Ф ∂a0 и ∂Ф ∂a1 к нулю, то для линейной регрессии можно найти ее параметры a0 и a1 в явной форме: n

a1 =

a0 =

n ∑ xi yi − i =1

n

n

i =1

i =1

∑ xi ∑ yi

 n  n ∑ x i2 −  ∑ x i   i =1  i =1 n

2

,

n 1 n   ∑ yi − a1 ⋅ ∑ xi  .  n  i =1 i =1

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

25

Глава 1. Функции, ряды и преобразования Фурье нелинейной регрессии удается свести к рассмотренной выше линейной, используя соответствующие преобразования [35]. ВНИМАНИЕ Мерой оптимальности подбора функции регрессии часто служит коэффициент взаимного соответствия данных, именуемый коэффициентом корреляции. Его близость к 1 означает, что данные хорошо коррелированы.

На практике все современные математические системы имеют универсальный аппарат проведения регрессии различного вида, до предела упрощающий реализацию достаточно сложных алгоритмов регрессии. Так что пользователю нет смысла отвлекаться на вывод порой весьма сложных, но теперь уже тривиальных уравнений для выполнения того или иного вида регрессии. Достаточно лишь четко задать функцию регрессии, которая должна наилучшим образом соответствовать исходной зависимости. ПРИМЕЧАНИЕ Ряды Фурье для дискретно заданных сигналов с коэффициентами, определяемыми единственным точно обоснованным для этого случая методом прямоугольников, представляют собой также пример регрессии, поскольку приближают сигнал в смысле минимума среднеквадратической погрешности приближения. Аналогична и ситуация с вейвлетами — ограниченный набор вейвлетов приближает сигналы или функции по критерию минимума среднеквадратической погрешности.

1.3.2. Выполнение линейной регрессии К линейной регрессии можно свести многие виды нелинейной регрессии при зависимостях вида y(x). Для проведения линейной регрессии в систему Mathcad встроен ряд приведенных ниже функций:

• corr(VX, VY) — возвращает скаляр — коэффициент корреляции Пирсона; • intercrpt(VX, VY) — возвращает значение параметра а (смещение линии регрессии по вертикали);

• slope(VX, VY) — возвращает значение параметра b (угловой коэффициент линии регрессии). На рис. 1.6 показан пример проведения линейной регрессии для данных, представленных значениями элементов в векторах VX и VY. Обратите внимание на то, что узлы при линейной регрессии расположены неравномерно. Как видно на рис. 1.6, линия регрессии проходит в «облаке» исходных точек с максимальным среднеквадратичным приближением к ним. Чем ближе коэффициент корреляции к 1, тем точнее представленная исходными точками зависимость приближается к линейной зависимости.

1.3.3. Реализация линейной регрессии общего вида В Mathcad реализована возможность выполнения линейной регрессии общего вида. При ней заданная совокупность точек приближается к функции вида: F(x,K1,K2,...,Kn)= K1⋅F1(x)+K2⋅F2(x)+...+Kn⋅Fn(x). Таким образом, функция регрессии является линейной комбинацией функций F1(x), F2(x), ..., Fn(x), причем сами эти функции могут быть нелинейными, что резко расширяет возможности такой аппроксимации и распространяет ее на многие нелинейные функции.

26

1.3. Регрессия и сглаживание данных

Рис. 1.6. Линейная регрессия

Для реализации линейной регрессии общего вида используется функция linfit(VX,VY,F), возвращающая вектор K коэффициентов линейной регрессии общего вида, при котором среднеквадратичная погрешность приближения «облака» исходных точек, координаты которых хранятся в векторах VX и VY, оказывается минимальной. Вектор F должен содержать функции F1(x), F2(x), ..., Fn(x), записанные в символьном виде. Рисунок 1.7 поясняет проведение линейной регрессии общего вида с применением функции linfit. Процедура проведения вычислений настолько проста, что не нуждается в особых комментариях. Расположение координат точек исходного массива может быть любым, но вектор VX должен содержать координаты, упорядоченные в порядке их возрастания. Вектор VY должен содержать координаты, соответствующие абсциссам в векторе VX.

Рис. 1.7. Пример проведения линейной регрессии общего вида

27

Глава 1. Функции, ряды и преобразования Фурье 1.3.4. Реализация одномерной и многомерной полиномиальной регрессии В Mathcad введена и функция для обеспечения полиномиальной регрессии при произвольной степени полинома регрессии regress(VX,VY,n), которая возвращает вектор VS, запрашиваемый функцией interp(VS,VX,VY,x) и содержащий коэффициенты многочлена n-й степени, который наилучшим образом приближает «облако» точек с координатами, хранящимися в векторах VX и VY. На рис. 1.7 показан пример выполнения полиномиальной регрессии. Для вычисления коэффициентов полинома регрессии используется функция submatrix.

Рис. 1.8. Полиномиальная регрессия

На практике не рекомендуется делать степень аппроксимирующего полинома выше 4—6, поскольку погрешности реализации регрессии сильно возрастают. Обычно рекомендуется проводить регрессию для ряда полиномов с нарастающими степенями, оценивая погрешность с помощью МНК. Этот процесс останавливают на этапе, дающем наименьшую погрешность. Степень аппроксимирующего полинома можно существенно увеличить (до десятков) переходя к точным вычислениям, возможным в ряде СКМ. К сожалению, поэтапное проведение полиномиальной регрессии требует полного пересчета коэффициентов полинома на каждом этапе. Специальная техника регрессии на основе ортогональных полиномов лишена этого недостатка. При этом рассчитанные на предшествующем шаге коэффициенты полинома остаются с прежними значениями, так что каждый этап регрессии позволяет найти очередной коэффициент аппроксимирующего полинома. Однако главного недостатка — быстрого нарастания погрешности при увеличении степени полинома эта техника, увы, не ликвидирует. Функция regress создает единственный приближающий полином, коэффициенты которого вычисляются по всей совокупности заданных точек. Иногда полезна другая функция полиномиальной регрессии, дающая локальные приближения отрезками полиномов второй степени loess(VX, VY, span), которая воз-

28

1.3. Регрессия и сглаживание данных вращает вектор VS, используемый функцией interp(VS,VX,VY,x) для наилучшего приближения данных векторов VX и VY отрезками полиномов второй степени. Аргумент span>0 указывает размер локальной области приближаемых данных (рекомендуемое начальное значение — 0,75). Чем больше span, тем сильнее сказывается сглаживание данных. При больших значениях span эта функция приближается к функции regress(VX,VY,2). На рис. 1.9 показан пример приближения сложной функции со случайным разбросом ее значений с помощью совокупности отрезков полиномов второй степени (функция loess) для двух значений параметра span. Пример дан для Mathcad 2001.

Рис. 1.9. Пример регрессии отрезками полиномов второй степени

На рис. 1.9 нетрудно заметить, что при малом значении span=0.05 отслеживаются характерные случайные колебания значений функции, тогда как уже при span=0.5 кривая регрессии становится практически гладкой. К сожалению, из-за отсутствия простого описания аппроксимирующей функции в виде отрезков полиномов этот вид регрессии широкого применения не нашел.

1.3.5. Проведение многомерной регрессии Mathcad 2000/2001/11 позволяет выполнять также многомерную регрессию. Самый типичный случай ее использования — приближение поверхностей в трехмерном пространстве. Их можно описать, задав массив значений высот z, соответствующих двумерному массиву Mxy координат точек (x,y) на горизонтальной плоскости. Новых функций для этого не задано. Используются уже описанные ранее функции, но в несколько иной форме:

• regress(Mxy, Vz, n) — возвращает вектор, запрашиваемый функцией interp(VS,Mxy,Vz,V) для вычисления многочлена n-й степени, который наилучшим образом приближает точки множества Mxy и Vz (Mxy — матри-

29

Глава 1. Функции, ряды и преобразования Фурье ца размера m×2, содержащая координаты x и y, Vz — m-мерный вектор, содержащий z-координаты, соответствующие m точкам, указанным в Mxy); • loess (Mxy, Vz, span) — аналогична loess (VX, VY, span), но в многомерном случае; • interp(VS, Mxy, Vz, V) — возвращает значение z по заданным векторам VS (создается функциями regress или loess) и Mxy, Vz и V (вектор координат x и y заданной точки, для которой находится z). Пример многомерной интерполяции был приведен выше. В целом многомерная регрессия применяется сравнительно редко из-за сложности сбора исходных данных.

1.3.6. Проведение нелинейной регрессии общего вида Под нелинейной регрессией общего вида подразумевается нахождение вектора K параметров произвольной функции F(x,K1,K2,...,Kn), при котором обеспечивается минимальная среднеквадратичная погрешность приближения «облака» исходных точек. Для проведения нелинейной регрессии общего вида используется функция genfit(VX, VY, VS, F), которая возвращает вектор K параметров функции F, дающий минимальную среднеквадратичную погрешность приближения функцией F(x,K1,K2,...,Kn) исходных данных. Вектор F должен быть вектором с символьными элементами, причем они должны содержать аналитические выражения для исходной функции и ее производных по всем параметрам. Вектор VS должен содержать начальные значения элементов вектора K, необходимые для решения системы нелинейных уравнений регрессии итерационным методом. На рис. 1.10 показан пример выполнения нелинейной регрессии общего вида с помощью нелинейной функции F(x,a,b)= a⋅exp(-b⋅x)+ a⋅b.

Рис. 1.10. Пример выполнения нелинейной регрессии общего вида

30

1.3. Регрессия и сглаживание данных При решении этой задачи возникают две проблемы. Во-первых, надо вычислить значения производных по переменным a и b. В документе на рис. 1.10 это сделано средствами символьных операций (первая строка документа после заголовка), что наглядно показывает пользу от таких операций. Вторая проблема связана с необходимостью применения функции genfit в ее стандартном виде. Поэтому пришлось заменить параметр a на k1, а параметр b на k2. Остальные операции в примере на рис. 1.10 достаточно очевидны.

1.3.7. Новые функции для проведения регрессии в Mathcad В последних версиях систем Mathcad 2000/2001 PRO/2001i/11 введен ряд новых функций регрессии:

• expfit(vx, vy, vg) — возвращает вектор, содержащий коэффициенты

• • • • •

(a, b и c) аппроксимирующего выражения вида a*e^(b*x)+c, график которого лучшим образом приближается к точкам, координаты которых хранятся в векторах vx и vy (вектор vg содержит первое приближение к решению); lgsfit(vx, vy, vg) — то же, но для выражения a/(1+b*e^(-c*x)); logfit(vx, vy) — то же, но для выражения a*ln(x+b)+c (начального приближения не требуется); medfit(vx, vy) — то же, но для выражения a+bx (начального приближения не требуется); pwrfit(vx, vy, vg) — то же, но для выражения a*x^b+c (вектор vg содержит первое приближение к решению); sinfit(vx, vy, vg) — то же, но для выражения a*sin(x+b)+c.

ВНИМАНИЕ С помощью алгоритма реализации нелинейной регрессии общего вида (см. рис. 1.10) можно легко осуществить регрессию любого частного вида, в том числе и всех тех видов, которые реализуются приведенными выше функциями. Нетрудно это сделать и с помощью функции Minerror. Тем не менее, если пользователь нуждается в данных видах регрессии, то к его услугам теперь есть ряд функций, которые можно применить без «долгих раздумий» (эти слова взяты в кавычки, ибо любые вычисления без обдумывания лучше не выполнять).

1.3.8. Пример синусоидальной регрессии в Mathcad Еще один вид регрессии — синусоидальной — представляет документ, показанный на рис. 1.11. Здесь исходные векторы данных формируются путем добавления к значениям синусоидальной функции случайных чисел. Регрессия реализуется функцией sinfit. Рекомендуется разобраться в небольших отличиях выполнения регрессии в приведенных выше примерах.

1.3.9. Функции сглаживания данных Данные большинства экспериментов и многих сигналов имеют случайные составляющие, поэтому часто возникает необходимость статистического сглаживания данных. Ряд функций Mathcad предназначен для выполнения операций сгла-

31

Глава 1. Функции, ряды и преобразования Фурье живания данных различными методами. В их названии имеется слово smooth (гладкий):

• medsmooth(VY,n) — для вектора с m действительными числами возвращает m-мерный вектор сглаженных данных по методу скользящей медианы, параметр n задает ширину окна сглаживания (n должно быть нечетным числом, меньшим m);

• ksmooth(VX, VY, b) — возвращает n-мерный вектор сглаженных данных VY, вычисленных на основе распределения Гаусса. VX и VY — n-мерные векторы действительных чисел. Параметр b (полоса пропускания) задает ширину окна сглаживания (b должно в несколько раз превышать интервал между точками по оси x);

• supsmooth(VX, VY) — возвращает n-мерный вектор сглаженных данных VY, вычисленных на основе использования процедуры линейного сглаживания методом наименьших квадратов по правилу k-ближайших соседей с адаптивным выбором k. VX и VY — n-мерные векторы действительных чисел. Элементы вектора VX должны идти в порядке возрастания. На рис. 1.12 показан пример применения функции subsmooth(X,Y), которая выполняет сглаживание функции Y(X), представленной векторами X и Y координат ее точек. В примере на рис. 1.12 для получения исходного массива точек используется синусоидальная функция с шумом, смоделированным с помощью генератора случайных чисел. В средней части графика сглаживание неплохо выделяет зашумленную зависимость. Однако по краям заметно существенное отклонение сглаженной кривой от синусоидальной. Это наглядно свидетельствует о не вполне точной работе алгоритма сглаживания. При сглаживании бывает полезно применение функции sort(Y), сортирующей данные векторов, что иногда уменьшает погрешности численного алгоритма сглаживания.

Рис. 1.11. Пример синусоидальной регрессии (Mathcad 2001/2001i)

32

1.3. Регрессия и сглаживание данных

Рис. 1.12. Сглаживание данных

1.3.10. Предсказание зависимостей Весьма интересной является включенная в систему Mathcad (начиная с шестой версии) функция предсказания (экстраполяции) predict(data,k,N), где data — вектор данных, k — число последних точек, по которым делается прогноз, и N — число точек прогноза. Она по ряду заданных равномерно расположенных точек позволяет рассчитать некоторое число N последующих точек, то есть, по существу, осуществляет экстраполяцию произвольной (но достаточно гладкой и предсказуемой) зависимости. Функция использует авторегрессионный метод Бурга. На рис. 1.13 показано применение функции предсказания — экстраполяции. В этом показательном примере задана некоторая достаточно сложная зависимость — экспоненциально затухающая синусоида, на которую наложен шум, созданный генератором случайных чисел. Предсказание ведется по 6 последним точкам этой зависимости при общем числе ее точек, равном 100. Функция predict вычисляет следующие 100 точек, построенные в правой половине графика жирной линией. Для сравнения тонкой линией построена исходная зависимость без шума. Функция предсказания обеспечивает высокую точность при монотонных исходных функциях или функциях, представляемых полиномом невысокой степени, и при достаточно большом числе исходных точек. Рис. 1.13 иллюстрирует, что она неплохо предсказывает функцию, содержащую колебательную затухающую (или нарастающую) составляющую на интервале, примерно равном начальному интервалу. Однако при больших значениях N ошибка предсказания может быть значительной. Улучшенные функции предсказания имеются в пакетах расширения Numeric Recipes и Signal Processing системы Mathcad [26—28]. У почитателей экономических расчетов может появиться соблазн применить эту функцию для предсказания таких событий, как наш российский «черный вторник» или августовский (1998 года) обвал рубля. Придется огорчить экономи-

33

Глава 1. Функции, ряды и преобразования Фурье

Рис. 1.13. Применение функции предсказания (экстраполяции)

стов — функция predict применима к предсказуемым событиям, поведение которых описывается реальной математической зависимостью. Указанные же события относятся к разряду непредсказуемых, так что здесь применение данной функции предсказания просто бесполезно. Однако в странах со стабильной экономикой эта функция вполне подходит для описания сезонных и стабильных колебаний курса валют, прибылей фирм и предприятий и других закономерных явлений. Она дает неплохое представление о динамике развития сложных процессов, что уже само по себе важно и полезно.

1.4. Введение в ряды Фурье 1.4.1. Синусоидальная функция Описанный выше и, в целом, хорошо известный аппарат приближения функций страдает рядом ограничений. Он плохо приспособлен для приближения периодических функций и функций с локальными особенностями. Аппарат страдает отсутствием единообразия и общности в представлении функций и, особенно, сигналов и изображений. В значительной мере от этих недостатков свободны ряды Фурье и основанные на их применении методы приближения функций. Ряды и преобразования Фурье стали трамплином для появления вейвлетов и вейвлет-преобразований. Ряды Фурье представляют собой тригонометрические многочлены, построенные на основе периодической базисной функции — синусоиды (и косинусоиды, представляющей собой синусоиду с фазовым сдвигом в π/2). Благодаря этому ряды Фурье способны приближать периодические функции без ограничения периодов их изменения. В рядах Фурье используются синусоиды и косинусоиды с кратными частотами, получившие название гармоник. На особое значение и своеобразную гармонию синусоиды обращали внимание многие ученые (отец и сын Бернулли, Эйлер и др.) при изучении колебаний сложных механических систем — от звучащей струны рояля до мостов и иных со-

34

1.4. Введение в ряды Фурье оружений. Оказалось, что главные колебания таких систем (это такие колебания, при которых все точки системы одновременно проходят через состояние равновесия) происходят по почти синусоидальному закону. Вскоре выяснилось, что колебания могут иметь куда более сложный характер из-за разных частот колебаний отдельных частей систем. Если вы крутите прикрепленный к веревке камень с постоянной скоростью (числом оборотов в единицу времени), то проекция камня на ось ординат и есть синусоида — рис. 1.14, сплошная линия. Рисунок 1.14 получен прямо в СКМ Mathcad 11. Синусоидальные колебания характерны для многих физических объектов, их генерируют, к примеру, электронные генераторы синусоидальных сигналов. Ввиду неизменности их параметров во времени, симметрии и гладкости синусоидальные колебания получили название гармонических колебаний.

Рис. 1.14. Синусоидальная функция без сдвига фазы (сплошная линия) и со сдвигом фазы, соответственно, на –0,1π, –0,2π и +π/2 (другие линии)

Одним из важных свойств синусоиды является ее периодичность. Значения функции sin(x) повторяются с периодом a, так что эта функция удовлетворяет условию периодичности функций f(x) = f(x + a). Другое не менее важное свойство синусоидальной функции — ее стационарность. Все это означает, что в какой бы интервал времени в прошлом или в будущем мы не рассматривали синусоиду, она будет всегда представлять кривую одного и того же вида с неизменными во времени параметрами, которые мы рассмотрим чуть ниже. Значения этой функции будут периодически (с периодом в 2π) повторяться в интервале значений от [–1, 1]. А интегральное значение синусоиды для любого периода или ряда целых периодов равно 0, поскольку площади положительных и отрицательных полупериодов синусоиды одинаковы. Рисунок 1.14 показывает синусоиду в интервале от –2π до +2π. Если попробовать построить график синусоиды в более широком интервале (заинтересованный читатель может проделать это самостоятельно), то станет ясно, что отмеченные закономерности синусоиды полностью сохраняются. Более того, оказывается, что синусоида определена в интервале [–∞, +∞] (или R), т. е. на всей временной оси. Это значит, что синусоида в неизменном виде представлена не только на некотором определенном промежутке времени, но и в произвольно далеком прошлом и даже в будущем. Часто синусоидальная функция в виде сигнала записывается как функция от времени: s(t) = A ⋅ sin(2πft + ϕ),

(1.3,a)

где A — амплитуда синусоиды, f — ее частота, выраженная в Гц (Гц — одно полное колебание в одну секунду), и ϕ — фазовый сдвиг (или просто фаза). Нередко

35

Глава 1. Функции, ряды и преобразования Фурье используется и понятие круговой частоты синусоиды ω = 2πf, тогда синусоида записывается в виде s(t) = A ⋅ sin(ωt + ϕ).

(1.3,b)

Как нетрудно заметить, отрицательный фазовый сдвиг ϕ сдвигает синусоиду вправо на величину ϕ, выраженную в радианах или в долях безразмерного периода 2π. Если ϕ = π/2, то синусоида вырождается в функцию cos(ω) или cos(x) — см. на рис. 1.14 кривую из точек. С параметрами синусоиды не все так просто, как кажется на первый взгляд. Достаточно очевиден параметр — амплитуда A. Это максимальное отклонение синусоидальной функции в обе стороны (положительных и отрицательных значений s) относительно нулевого уровня, взятое по модулю. О фазе только что говорилось. А что такое частота? Оказывается, что тут есть уже ряд определений. Иногда говорят, что частота — это число периодов синусоиды в единицу времени (чаще всего в секунду). Но тогда частота либо будет всегда целым числом, либо нам придется ввести понятие о части периода T. Можно также определить частоту как f = 1/T, т. е. величину обратную периоду. Но, пожалуй, математически наиболее точным будет понятие частоты, вытекающее из прямого преобразования Фурье. Оно будет описано в этой главе далее. При этом любая частотная компонента сигнала с неизменными параметрами характеризуется вертикальной линией на частотном спектре сигнала. Она становится частотной компонентой спектра. ВНИМАНИЕ Частоту принято измерять в герцах — 1 Гц это одно колебание в 1 секунду. Тысяча Гц это 1 кГц, 1000 кГц есть 1 МГц, 1000 МГц есть 1 ГГц и т. д. Период синусоидальных колебаний измеряется в секундах, в миллисекундах (1 мс = 0,001 с), в микросекундах (миллионная доля секунды — мкс), в наносекундах (миллиардная доля секунды — нс) и т. д.

Важно отметить, что синусоида является плавно изменяющейся по величине функцией, т. е. гладкой функций. Она не содержит ни разрывов самой функции, ни разрывов ее производной. Синусоида легко дифференцируемая функция. Интегрирование синусоиды в конечных пределах также не вызывает трудностей, однако интегралы с бесконечными пределами (или хотя бы с одним бесконечным пределом) не вычисляются (расходятся). Это поясняют примеры, приведенные на рис. 1.15 (напомним, что для примененной системы Mathcad оператор → задает символьный вывод результатов вычислений, т. е. дает результат в виде формулы, в частности числа). Обратите внимание на то, что вывод вместо результата слова undefined означает, что соответствующий Рис. 1.15. Примеры дифференцирования интеграл не определен и не берется. и интегрирования синусоиды (документ Mathcad)

36

1.4. Введение в ряды Фурье 1.4.2. Модуляция синусоидальных колебаний Поскольку синусоида характеризуется тремя параметрами (амплитудой, частотой и фазой), то у практиков—радистов тут же появился соблазн использовать электрические синусоидальные сигналы для передачи информации — поначалу звуковой. Заметим, что в стационарном случае параметры синусоиды неизменны и потому она никакой информации (кстати, как и постоянный ток) не несет. Стимулом к применению синусоидальных колебаний в технике связи стала не только возможность их передачи по проводам, но и через «свободное пространство» (эфир) в виде электромагнитных волн с малой длиной волны и, соответственно, с высокой частотой. Очевидно, что если менять какой-либо один параметр синусоиды во времени, то есть модулировать синусоидальный сигнал, то можно реализовать три основных вида модуляции: амплитудную, частотную и фазовую. Разумеется, можно предположить возможность (и она реально есть) и комбинированных видов модуляции. Однако изменение любого параметра синусоиды во времени означает, что условие ее стационарности (A = const, f = const и ϕ = const) нарушается. Полученное в результате модуляции колебание с математической точки зрения уже не является синусоидальным. Оно приобретает сразу букет новых свойств, часть из которых полезна, а часть в определенных условиях вредна. Например, в силу нарушения математических свойств гармонического колебания. В качестве примера возьмем наиболее известную амплитудную модуляцию синусоидального сигнала. Она представляет собой типичный мультипликативный процесс, то есть неизменная амплитуда синусоиды умножается на некоторую, зависящую от времени, функцию (или множитель). Начнем с умножения амплитуды на экспоненциальный множитель с отрицательным показателем экспоненты. Для интервала времени [0, ∞] это означает, что мы получаем «затухающую синусоиду». Возьмем пока эти слова в кавычки, ибо результирующее колебание (рис. 1.16) или сигнал с позиций строгой математики уже нельзя именовать «синусоидой». Почему, строго говоря, мы не может использовать понятие о синусоиде в данном случае? Да потому, что многие свойства «затухающей синусоиды» кардинально отличаются от свойств обычной синусоиды. И дело не только в количественных отличиях (пики уже не достигают значений +1 и –1 для каждого периода), а в куда более глубоких качественных отличиях. Результирующая функция — «затухающая синусоида» явно несимметричная. Даже на глаз отчетливо видно, что площадь каждого последующего полупериода меньше, чем площадь предыдущего полупериода. Если интегральное значение синусоиды за период или за время, равное кратному числу периодов, строго равно 0, то в нашем случае оно должно выражаться положительным числом. К примеру, интегрируя функцию f1(x) в пределах от 0 до 10π, Рис. 1.16. Затухающее синусоидальное колебание и примеры мы получим значение интеграла 0.947. его интегрирования

37

Глава 1. Функции, ряды и преобразования Фурье Но еще разительнее ведет себя наша «затухающая синусоида» при интегрировании в пределах от 0 до ∞. Оказывается (см. рис. 1.3), что в отличие от обычной синусоиды (рис. 1.2) интеграл в этом случае благополучно вычисляется (или, как говорят математики — сходится) и полученное значение равно 100/101. Это легко понять — даже на глаз видно, что суммарная площадь положительных и отрицательных полупеРис. 1.17. Нарастающее риодов конечна. синусоидальное колебание и примеры А что будет, если создать «нарастаюего интегрирования щую синусоиду». Этот случай показан на рис. 1.17. Тут мы явно видим, что площадь каждого отрицательного полупериода всегда больше площади предшествующего ему положительного полупериода. Следовательно, можно ожидать, что интеграл в пределах, кратных периоду синусоиды, будет конечен и выражаться отрицательным числом. Однако попытка интегрирования в пределах от 0 до ∞ завершается полным фиаско — такой интеграл не берется (расходится). Итак, синусоида не так проста, как кажется, и ее модуляция по существу означает появление новой функции. Чтобы описать модуляцию, сохранив представление о синусоиде, используется понятие медленности модуляции, благодаря чему используемые колебания в некотором интервале времени приближенно можно считать синусоидальными. К примеру, анализ амплитудной модуляции в радиотехнике осуществляется хорошо известным методом медленно меняющихся амплитуд. Но техника развивается чрезвычайно быстрыми темпами. И понятие о медленности модулирующих колебаний в наши дни подвергается все большему и большему сомнению. Наступила пора четко осознать, что модулированные колебания и иные сложные сигналы (особенно цифровые, звуковые и видеосигналы) в общем случае не являются стационарными. Они явно нестационарны и требуют новых математических методов для анализа. К ним относится технология вейвлетов, но пока о ней говорить подробно рано. Мы должны обсудить свойства рядов Фурье и преобразований Фурье, которые многие десятилетия господствовали в теории и практике электротехники, радиотехники и связи. И, кстати, вовсе не потеряли свое значение в наши дни. В этом разделе мы впервые ввели важные для последующего описания вейвлетов понятия об умножении синусоидальных функций на меняющийся во времени t (или в пространстве переменной x) множитель. Такая операция, в отличие от обычно линейной операции сложения (аддитивной операции), является типично нелинейной (мультипликативной) операцией. Мы выяснили, что в определенных условиях (пример с «затухающей синусоидой») это позволяет интегрировать такую комбинированную функцию с бесконечным пределом интегрирования. В дальнейшем мы расширим этот подход введением понятия временных, частотных и пространственных окон, а также убедимся в том, насколько важно интегрировать в бесконечных пределах функции, содержащие произведение синусоидальной (косинусоидальной) функции на подобные множители.

38

1.4. Введение в ряды Фурье 1.4.3. Понятие о гармоническом синтезе Синтез сложных колебаний на основе суммирования синусоидальных сигналов с кратной частотой был известен задолго до того, как Фурье сделал свое замечательное открытие, показав, что его тригонометрические ряды способны (при определенных условиях) представлять любую математическую функцию. С помощью СКМ Mathcad мы можем легко поставить эксперименты по такому синтезу. Один из примеров этого представлен на рис. 1.18. Здесь задана амплитуда каждой из гармоник, равная 2/kπ, где k — номер заданной синусоиды, которую мы называем k-й гармоникой в память о гармоническом характере синусоиды. Рис. 1.18 показывает графики функции sin(x) и два графика сумм для 5 и 15 гармоник. Результат синтеза может удивить неопытного в спектральном синтезе читателя. Оказывается, наш ряд гармоник неплохо описывает пилообразное колебание с протяженным участком линейного спада и быстрым ростом. Нетрудно заметить, что чем больше гармоник мы используем, тем ближе временная зависимость синтезируемого колебания к временной зависимости линейно-спадающего пилообразного импульса. А теперь рассмотрим еще один рисунок — рис. 1.19. Здесь показано суммирование только нечетных гармоник — первой, третьей и пятой и от первой до двадцать первой. Амплитуды гармоник вычисляются как 1/kπ (где k есть, соответственно, k1 и k2). На этот раз хорошо видно, что представленные ряды гармоник синтезируют прямоугольные колебания, в идеале называемые меандром. Может возникнуть вопрос, почему именно такими соотношениями заданы амплитуды гармоник? Точный ответ дает следующий раздел книги. А пока отметим, что мы эмпирически пришли к идее гармонического синтеза рассмотренных выше функций (сигналов). И сразу же столкнулись с любопытным явлением — явно заметными волнообразными колебаниями у синтезированной функции. Это явление получило название эффекта Гиббса. Мы еще не раз вернемся к его описанию, обоснованию и попыткам исключения. ПРИМЕЧАНИЕ Эффект Гиббса более широкое понятие, чем в случае фурье-анализа и синтеза. Он в той или иной форме встречается в различных методах синтеза сложных колебаний, в том числе и при выполнении вейвлет-анализа и синтеза.

Рис. 1.18. Гармонический синтез пилообразных колебаний

Рис. 1.19. Гармонический синтез меандра

39

Глава 1. Функции, ряды и преобразования Фурье 1.4.4. Фурье-анализ и синтез периодических функций Итак, задача замены произвольной сложной или неудобной для вычислений функции давно занимала умы математиков. Как было показано выше, частично она была решена с помощью интерполяции и аппроксимации функций и регрессии. Однако все эти математические приемы страдали одним серьезным пороком — они плохо подходили для периодических колебаний. А между тем развитие теории колебаний, а в дальнейшем электротехники и радиотехники настойчиво требовало нового аппарата приближения периодических функций. Над решением этой задачи бились многие ученые прошлых веков. Но подлинное открытие в этой области удалось сделать в 1807 году знаменитому математику Фурье, который нашел и обосновал метод вычисления коэффициентов тригонометрического ряда, при котором такой ряд был способен приближать любую периодическую функцию. Правда, при выполнении условий, известных как условия Дирихле для функции y(x) на промежутке (−π, π):

• функция непрерывна или имеет конечное число разрывов первого рода; • промежуток (−π, π) можно разбить на конечное число таких промежутков, на которых функция меняется монотонно. Здесь важно отметить, что условия Дирихле выполняются для всех практически существующих сигналов, поэтому в дальнейшем мы будем опускать ссылки на них. Рядом Фурье для функции, удовлетворяющей условиям Дирихле, является ряд: y (t ) =

a0 + 2

N

∑a

k

sin(2 πkf1t ) +bk cos(2 πkf1t ),

(1.4)

k =1

коэффициенты которого находятся по формулам Эйлера—Фурье: ak =

1 π

π

∫ y(x )cos(kx )dx

(1.5)

−π

и bk =

1 π

π

∫ y(x )sin(kx )dx .

(1.6)

−π

Строгое доказательство того, что ряд (1.4) может приближать произвольную функцию, базируется на элементарных тригонометрических преобразованиях и понятии ортогональности набора функций, образующих этот ряд: 1, cos(x), sin(x), cos(2x), sin(2x), ..., cos(nx), sin(nx), ... Ортогональность означает, что интеграл от произведения двух любых различных функций этого (возможно и иного) набора функций в промежутке от 0 до 2π равен нулю. Само доказательство, довольно громоздкое, можно найти в учебниках по высшей математике, например в [21]. Важными сферами применения рядов Фурье являются расчеты радиотехнических устройств. В них обычно периодические сигналы представляют как функции времени y(t) на отрезке [0, T] с периодом T = 1/f1, где f1 — частота первой гармоники периодического сигнала. В этом случае ряд Фурье, после несложных преобразований, записывается в виде:

40

1.4. Введение в ряды Фурье y (t ) =

где

и

a0 + 2



∑ (a

k

cos(2 πkf1t ) + bk sin(2 πkf1t )),

(1.7)

k =1

ak = bk =

2 T

T

2 T

T

∫ y(t )cos(2 πkf t )dt

(1.8)

1

0

∫ y(t )sin(2 πkf t )dt .

(1.9)

1

0

В этом случае коэффициенты ak и bk описывают косинусную и синусную составляющие k-й гармоники сигнала с периодом T и частотой f1 = 1/T. Часто используется иная форма ряда Фурье, упрощающая его синтез [23]: y (t ) =

a0 + 2

N

∑M

k

cos(2πkf1t + ϕ k ),

(1.10)

k =1

где амплитуды гармоник Mk и их фазы ϕk определяются выражениями: Mk = и

ak2 + bk2

ϕk = –arctan(bk/ak).

(1.11,a) (1.11,b)

В дальнейшем будут приведены формулы, позволяющие вычислять коэффициенты Фурье (либо амплитуды и фазы гармоник) для любой функции y(t). Это является задачей спектрального анализа. Однако вначале мы рассмотрим обратную задачу — задачу синтеза зависимости y(t) путем вычисления ряда Фурье с ограниченным числом членов. Разложение функции на гармонические составляющие, то есть вычисление коэффициентов Фурье, принято назвать спектральным анализом. А воссоздание функции, представленной рядом Фурье, называют спектральным синтезом. Гармонику с k = 1 называют основной или первой гармоникой сигнала. Она задает его частоту повторения f1. Остальные гармоники называют высшими, их частоты равны fk = k f1, где k = 2, 3, 4, ... Таким образом, спектр периодических сигналов, представимых рядом Фурье, дискретный — он содержит набор фиксированных частот fk, где k = 1, 2, 3, ...

1.4.5. Прямой фурье-анализ и синтез периодических сигналов Современные СКМ открывают обширные возможности в отработке практических методов фурье-анализа и синтеза. Можно отметить, что нередко вычисление коэффициентов Фурье (1.5) и (1.6) или (1.8) и (1.9) можно выполнить по встроенным функциям интегрирования. Назовем такой спектральный анализ и синтез прямым. Интересное воплощение прямого спектрального анализа в системе Mathcad представлено на рис. 1.20. Это начало обсуждаемого здесь документа (программы). Здесь для вычисления коэффициентов Фурье используется программный модуль системы Mathcad, имеющий легко понятный вид. Для удобства представления периодических функций пределы интегрирования от –π до π заменены нормированными пределами от –L до L, где L = 1 — нормированный полупериод колебаний. Отчетливо видно, что коэффициенты Фурье задаются прямо интегралами. Они при этом вычисляются настолько точно, насколько это возможно при

41

Глава 1. Функции, ряды и преобразования Фурье использовании встроенных операторов интегрирования. Вычисленные коэффициенты становятся столбцами матрицы R.

Рис. 1.20. Документ системы Mathcad, реализующий фурье-анализ периодической функции с периодом на интервале от –1 до 1

Далее мы рассмотрим серию примеров, которые являются второй частью документа рис. 1.21 и реализуют фурье-анализ для заданного числа гармоник N (N = 10 в начале документа) и затем синтез заданной функции f(x). На рис. 1.21 эта функция задает линейно падающий в интервале от –1 до 0 пилообразный импульс. После этого задается ряд Фурье, суммирующий полученные гармоники. Рисунок внизу показывает исходную функцию и результат ее фурье-синтеза. Векторы A и B выводят значения косинусных и синусных коэффициентов Фурье. Нетрудно заметить, что форма синтезированной функции при N = 10 неплохо согласуется с исходной функцией. Впечатление портит только проявление эффекта Гиббса.

Рис. 1.21. Пример прямого спектрального анализа и синтеза для линейно-спадающего пилообразного импульса

42

1.4. Введение в ряды Фурье Рисунок 1.22 показывает спектральный анализ и синтез прямоугольного симметричного колебания — меандра. И здесь получено в целом неплохое соответствие между исходной функцией и результатом синтеза гармоник. Эффект Гиббса, увы, виден налицо. В спектре меандра отсутствуют четные гармоники, причем все косинусные коэффициенты нулевые.

Рис. 1.22. Пример прямого спектрального анализа и синтеза для меандра

На рис. 1.23 представлен пример спектрального анализа и синтеза для короткого прямоугольного импульса положительной полярности, длительность которого составляет 1/4 от периода колебаний. В особых комментариях приближение исходной функции в данном случае не нуждается. Разве что полезно обратить внимание на то, что спектр создается как косинусными, так и синусными коэффициентами, причем часть из них имеет нулевое значение. Рисунок 1.24 демонстрирует спектральный анализ и синтез для функции типа «выпрямленная синусоида» (такая функция описывает напряжение на выходе

Рис. 1.23. Пример прямого спектрального анализа и синтеза для короткого прямоугольного импульса

43

Глава 1. Функции, ряды и преобразования Фурье

Рис. 1.24. Пример прямого спектрального анализа и синтеза для «выпрямленной синусоиды»

идеализированного двухполупериодного диодного выпрямителя переменного тока). В данном случае функция более гладкая, поэтому пример дан для меньшего числа гармоник при синтезе — N = 5. Здесь эффект Гиббса проявляется слабо, но он все же виден. Наконец, на рис. 1.25 представлен пример прямого спектрального анализа и синтеза для радиоимпульса, содержащего три периода синусоидальных колебаний. При N = 10 он неплохо приближается синтезированной функцией, хотя эффект Гиббса и здесь заметен.

Рис. 1.25. Пример прямого спектрального анализа и синтеза для радиоимпульса

Итак, мы рассмотрели достаточно представительный набор функций (сигналов) и выполнили для них практический спектральный анализ и синтез при конечном числе гармоник. Можно заметить следующие общие закономерности подобного спектрального анализа и синтеза:

• ни в одном из приведенных случаев точная реставрация исходной функции (колебания) путем их гармонического синтеза не достигается, а различия таковы, что отчетливо видны невооруженным глазом;

44

1.5. Специальные типы преобразований Фурье • чем больше используется число гармоник, тем ближе форма синтезирован• • • • • •

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

Итак, мы рассмотрели примеры спектрального анализа и синтеза сравнительно простых функций и сигналов, для представления которых вполне достаточно до сотни отсчетов (значений ранжированной переменной x). Однако реальные сигналы гораздо сложнее и число отсчетов сигналов нередко достигает многих сотен и тысяч. В этом случае рассмотренный выше метод становится малоэффективным вследствие следующих причин:

• интегралы, входящие в формулы для коэффициентов Фурье, трудны для вычислений, поскольку содержат быстро осциллирующие множители, что требует интегрирования по очень большому числу интервалов интегрирования; • периодичность значений осциллирующих множителей не учитывается; • вычисления по встроенным функциям интегрирования идут медленно из-за применения в них сложных адаптивных методов интегрирования с контролем погрешностей в ходе интегрирования.

1.5. Специальные типы преобразований Фурье 1.5.1. Дискретный фурье-анализ и спектр периодических функций Предположим, что некоторая функция (или сигнал) задана рядом равноотстоящих дискретных отсчетов с числом N, т. е. y1, y2, ..., yN. В этом случае у нас нет никаких оснований считать, что в промежутках между узлами значения функции не постоянны. Если же они постоянны, то интегралы при расчете коэффициентов Фурье (1.8) и (1.9) могут вычисляться простейшим методом прямоугольников: ak =

2 N

N

∑ i =1

2  2 πni  yi cos  и bk =  N  N

N

 2 πni  . N 

∑ y sin  i

i =1

(1.13)

Детальный анализ, выходящий за рамки данной книги, показывает, что приведенные формулы для коэффициентов Фурье являются единственными теоретически обоснованными формулами приближенного вычисления коэффициентов Фурье [22, 23]. Для произвольных функций они обеспечивают минимум средне-

45

Глава 1. Функции, ряды и преобразования Фурье квадратической погрешности. Другими словами приближение функции тригонометрическим рядом Фурье с ограниченным числом членов является регрессией. При дискретном задании функции (сигнала) неизбежно встает вопрос о том, какое число гармоник M (k от 1 до M) может представлять сигнал? Или, напротив, при заданном числе гармоник, какое число отсчетов N допустимо? Ответ на этот вопрос дает теорема об отсчетах Шеннона, у нас именуемая теоремой Котельникова. Ответ довольно прост — число отсчетов должно минимум вдвое превышать число гармоник. Это легко понять умозрительно — на высшую гармонику спектра в идеале достаточно иметь два отсчета. В разделе 1.5.11 мы детально рассмотрим применение базиса Котельникова для восстановления непрерывного сигнала из его дискретного вида. Многие СКМ имеют реализации дискретного преобразования Фурье по формулам (1.13). Наглядное представление о таком виде спектрального анализа и синтеза дает документ СКМ Mathcad, начало которого представлено на рис. 1.26. В этой части документа приведена реализация спектрального анализа для заданного в виде вектора Yi сигнала. В документе по формулам (1.13) вычисляются коэффициенты Фурье, а по формулам (1.11) и (1.12) — амплитуды и фазы гармоник. Небольшое расхождение в обозначениях не принципиально.

Рис. 1.26. Стандартный дискретный спектральный анализ и синтез (начало документа)

Зависимости амплитуд и фаз гармоник от частоты получили название амплитудного и фазового спектра сигнала. Для периодических колебаний такой спектр является дискретным, т. е. состоящим из отдельных частот — гармоник. Его удобно представлять вертикальными отрезками прямых, длина которых определяет значение амплитуды или фазы той или иной гармоники. Амплитудный и фазовый спектры заданного сигнала показаны внизу рис. 1.26. При этом на амплитудном спектре (его часто называют просто спектром) представлена огибающая спектра (пунктирная кривая). Спектр имеет важное значение для оценки свойств и параметров сигнала, подвергаемого разложению в ряд Фурье.

46

1.5. Специальные типы преобразований Фурье 1.5.2. Гармонический синтез дискретно заданного сигнала Теперь рассмотрим реализацию фурье-синтеза дискретно заданного сигнала. Он представлен на рис. 1.27 и соответствует формуле (1.10). Она более удобна, чем (1.7), поскольку требует вдвое меньшего числа вычислений тригонометрической функции косинуса.

Рис. 1.27. Стандартный дискретный спектральный анализ и синтез (начало документа)

Внизу рис. 1.27 представлены графики исходного сигнала и результата его синтеза по 20 гармоникам. В данном случае задан довольно сложный сигнал. Увы, его синтез подобен «старой песенке» — отчетливо видно сильное проявление эффекта Гиббса, связанное с ограниченным числом гармоник M ≤ N. В результате стандартного синтеза дискретного сигнала мы получаем уже не дискретное, а непрерывное представление сигнала рядом Фурье с числом гармоник M. К сожалению, из-за уже не раз отмеченного эффекта Гиббса тригонометрическая аппроксимация и интерполяция сигнала имеет довольно низкую точность. Повышение точности возможно за счет резкого увеличения числа отсчетов N (и гармоник M при синтезе) — нередко до многих сотен и тысяч. Но в этом случае мы столкнемся с полной непригодностью описанного метода анализа и синтеза, связанной с недопустимо большими временными затратами на вычисления.

1.5.3. Непрерывное преобразование Фурье До сих пор мы рассматривали периодические функции и сигналы. А как быть, если они не периодические? Тут правомерны два подхода. Если функция или сигнал определены на некотором конечном промежутке пространства или времени (по терминологии вейвлетов, на носителе конечной длины), то мы можем считать сигналы как бы периодическими и применять к ним описанный выше спектральный анализ и синтез. Например, если сигнал определен на некотором промежутке времени t0, то его можно посчитать периодическим с периодом t0 или частотой f1 = 1/t0.

47

Глава 1. Функции, ряды и преобразования Фурье Другой путь заключается в переходе к непрерывному преобразованию Фурье в общем виде — для произвольного сигнала. Прямое преобразование Фурье в таком виде позволяет получить в аналитическом виде функцию частоты F(w) от временной функции f(t). Оно реализуется формулой ∞

F (ω ) =

∫ f (t )e

−iωt

dt .

(1.14)

−∞

Здесь f(t) — скалярная функция независимой переменной t. Поскольку мы исходим из предположения, что f(t) в общем непериодическая функция, то уже нельзя вести речь об отдельных гармониках и о дискретном спектре сигнала. Спектр F(ω) становится непрерывным и можно говорить лишь о плотности энергии сигнала в некоторой малой (стремящейся к нулю) полосе частот. Так что в данном случае F(ω) есть зависимость плотности энергии сигнала от частоты. Соответственно, обратное преобразование Фурье задается следующим образом: f (t ) =

1 2π



∫ F (ω )e

iωt

dω.

(1.15)

−∞

Эта формула позволяет по функции F(ω) найти в аналитическом виде функцию f(t). Из формулы (1.14) вытекает главный недостаток прямого преобразования Фурье — интегральная оценка всех частотных составляющих спектра вне зависимости от времени их существования. Это связано непосредственно с бесконечными пределами интегрирования в (1.14). В результате вполне возможны случаи, когда совсем разные сигналы имеют одинаковый частотный спектр. Другими словами, фурье-анализ прекрасно подходит для стационарных сигналов, но не годится для нестационарных, у которых определенные частотные компоненты существуют только в определенные промежутки времени или когда параметры сигнала меняются во времени. Многие СКМ имеют средства для аналитического вычисления прямого и обратного преобразований Фурье. Например, система Mathcad реализует это с помощью функций символьного процессора fourier и ifourier. Рисунок 1.28 демонстрирует это на целом ряде примеров: линейно нарастающей функции, синусе, затухающей и нарастающей экспоненте и затухающем синусоидальном сигнале. Обратите внимание, что во всех примерах, кроме функции синуса, после прямого и обратного преобразований Фурье получено исходное выражение.

Рис. 1.28. Примеры прямого и обратного преобразований Фурье в аналитической форме

48

1.5. Специальные типы преобразований Фурье В случае функции синуса Mathcad тоже справился с задачей, но привел хорошо известное выражение для синуса, представленное через экспоненциальные функции. Его удалось преобразовать в обычное с помощью функции упрощения символьных результатов simplify. Для ряда функций прямое преобразование Фурье дает представление, содержащее функцию Дирака Dirac(ω). Эта функция не является внутренней функцией системы Mathcad, но входит в ядро символьных вычислений куда более мощной системы Maple. Это ядро используется системой Mathcad, благодаря чему функция ifourier понимает выражения, в состав которых входит функция Dirac(ω). Соотношения (1.14) и (1.15) носят скорее фундаментальный теоретический, чем практический характер. Это видно в наших примерах хотя бы из того, что мы не можем построить график функции F(ω) и вычислять ее значения. Нередко формы записи этой функции понятны лишь символьному процессору, а решатели выражений в численном виде ее не понимают. В связи с этим на практике удобнее применять уже упомянутый подход — периодизацию ограниченных во времени сигналов. Тем более в связи с тем что интегрирование в пределах от –∞ до +∞ встречает большие и подчас непреодолимые трудности (и даже вызывает принципиальные сомнения в такой возможности). В частности, оно по существу означает, что мы должны знать поведение сигнала не только в прошлом (даже весьма далеком), но и в будущем. Разумеется, для сигналов с носителем конечной длины можно использовать конечные пределы интегрирования, если за пределами носителя значение сигнала равно нулю.

1.5.4. Быстрое преобразование Фурье (БПФ) С позиций практики главным недостатком всех описанных выше методов фурье-анализа и синтеза функций и сигналов является большое время вычислений. Это связано с тем, что в формулах для коэффициентов Фурье присутствуют быстро осциллирующие множители, что требует разбивки интервалов интегрирования на очень малые части. В итоге объем вычислительных операций резко возрастает. Для преодоления вычислительных трудностей, связанных с интегрированием в ходе ППФ и ОПФ быстроизменяющихся функций, были предложены методы быстрого преобразования Фурье (БПФ или, в англоязычной транскрипции, FFT). Они используют специальную технику комбинации отсчетов функций, помноженных на осциллирующие множители, и учитывают периодичность значений тригонометрических функций. Алгоритмы БПФ не уменьшают погрешности вычислений при заданном числе гармоник, но позволяют резко уменьшить время спектрального анализа и синтеза — особенно если число временных отсчетов yi(t) кратно 2N, где N — целое число. ВНИМАНИЕ Поскольку в этой книге фурье-анализ и синтез является лишь прелюдией к рассмотрению вейвлет-технологий обработки функций, сигналов и изображений, мы не будем рассматривать алгоритмы БПФ подробно. Зато соответствующие алгоритмы быстрого вейвлет-преобразования будут рассмотрены в главе 2 достаточно подробно.

Далеко не все СКМ имеют функции, реализующие БПФ. Отчасти это связано с тем, что высокая эффективность БПФ обеспечивается только при числе отсчетов функции, кратном 2 в целой степени. Если отсчетов меньше, то чаще всего их просто дополняют до числа, кратного 2 в целой степени, путем добавления нулевых отсчетов. Достаточно эффективные средства БПФ имеют СКМ Mathcad и

49

Глава 1. Функции, ряды и преобразования Фурье MATLAB, тогда как мощные системы символьной математики Mathematica 4/4.1 и Maple 6/7 таких функций не имеют. Функция fft(v) системы Mathcad выполняет БПФ для данных, представленных действительными числами — значениями исходного вектора v. Он должен иметь точно 2m составляющих, где m — целое число. В противном случае выводится сообщение об ошибке — неверном размере вектора. Если число элементов вектора v все же отличается от целой степени двух, то его можно дополнить нулями до этой величины. Элементы вектора, возвращаемого функцией fft(v), соответствуют формуле Cj =

1 n

n −1

∑ν e

2 πi ( j n ) k

k

.

k=0

Здесь n — число элементов вектора v, i — мнимая единица, k — индекс суммирования (от 0 до n – 1) и j — номер гармоники (от 0 до n/2). Эти элементы вектора соответствуют следующим частотам: fj =

j ⋅ fs . n

Здесь fs — частота квантования сигнала, который подвергается БПФ. Элементы вектора, возвращаемого функцией fff(v), в общем случае комплексные числа, даже если сигнал представлен вещественными отсчетами. Прямое преобразование Фурье по существу означает перевод временной зависимости в ее частотный спектр. А обратное преобразование Фурье переводит частотный спектр вновь во временную зависимость. Функция ifft(v) реализует обратное (инверсное) преобразование Фурье для вектора v с комплексными элементами. Вектор v здесь должен иметь 1+2m+1 элементов. В противном случае выдается сообщение об ошибке. Функция ifft(v) вначале создает вектор w, комплексно-сопряженный с v, и затем присоединяет его к вектору v. После этого вычисляется вектор d с элементами, рассчитанными по формуле dj =

1 n

n −1

∑w e k

−2 πi ( j n ) k

.

k=0

Функции fft(v) и ifft(v) дают точные (в пределах погрешности численных расчетов) обращения. При этом ifft(fft(v))=v, что можно использовать для проверки преобразований. Функция cfft(A) аналогична предыдущей, но реализует прямое преобразование Фурье для вектора A с комплексными элементами. Если A — матрица, реализуется двумерное преобразование. Введение функции fft(V) обусловлено тем, что преобразование для векторов с действительными элементами реализуется по более быстрому алгоритму (БПФ) и занимает меньше времени. В этом случае более прост и ввод исходных данных. Функция icfft(B) выполняет обратное преобразование Фурье по полному алгоритму, при котором как исходный, так и результирующий векторы или матрицы содержат элементы с комплексными значениями. ПРИМЕЧАНИЕ В основе БПФ лежит прореживание по частоте и пирамидальный алгоритм, исключающий повторные вычисления периодически повторяющих-

50

1.5. Специальные типы преобразований Фурье ся членов тригонометрического ряда Фурье. БПФ-алгоритм выполняется за ∼ N log N операций, где N — число отсчетов сигнала.

1.5.5. Примеры выполнения БПФ Для проверки функций БПФ можно задать некоторый вектор из 2m действительных или комплексных элементов. Проведя прямое преобразование, получим новый вектор. Затем над ним проведем обратное преобразование. Можно заметить, что полученный таким двукратным преобразованием вектор полностью совпадает с исходным. Читатель может легко проверить эту методику тестирования функций самостоятельно. Мы же перейдем к более сложным примерам.

Рис. 1.29. Применение БПФ для спектрального разложения и синтеза прямоугольного импульса

Техника проведения БПФ на примере разложения прямоугольного импульса и последующего его синтеза с помощью ряда Фурье с ограниченным (k = 10) числом гармоник демонстрируется на рис. 1.29. Здесь исходный вектор задан элементами действительного типа, поэтому используются функции fft и ifft. БПФ широко применяется при решении задач фильтрации сигналов или аппроксимации функций. При ограниченном числе гармоник приближение функции тригонометрическим рядом Фурье обеспечивает наименьшую среднеквадратичную погрешность, если при этом используется БПФ. На рис. 1.30 представлено построение АЧХ и ФЧХ спектра прямоугольного импульса (см. документ рис. 1.29) для случая, когда прямое БПФ реализовано функцией fft. Обратите внимание на то, что для вычисления амплитуд гармоник используется оператор вычисления модуля, а для вычисления фаз гармоник — функция arg. При вычислении АЧХ и ФЧХ использован график типа error, причем за вторую линию взят 0. При использовании функции fft спектр ограничен числом гармоник, вдвое меньшем, чем число отсчетов сигнала — в нашем случае прямоугольного импульса. Это ограничение хорошо видно на рис. 1.30. АЧХ и ФЧХ спектра имеют обычный вид.

51

Глава 1. Функции, ряды и преобразования Фурье А на рис. 1.31 показаны АЧХ и ФЧХ того же импульса, но полученные с помощью функции cfft. На этот раз можно заметить два принципиально важных отличия:

Рис. 1.30. АЧХ (сверху) и ФЧХ (снизу) спектра прямоугольного импульса (рис. 1.29) при использовании функции fft для прямого БПФ

Рис. 1.31. АЧХ (сверху) и ФЧХ (снизу) спектра прямоугольного импульса (рис. 7.15) при использовании функции сfft для прямого БПФ

52

1.5. Специальные типы преобразований Фурье • выходной вектор имеет то же число отсчетов, что и входной, т. е. вдвое больше, чем при использовании функции fft;

• АЧХ и ФЧХ спектра имеют двойную длину и представлены как обычным

Рис. 1.32. Пример БПФ для сложной функции с построением ее спектрограммы

своим видом в левой части графика, так и их зеркальным отражением в правой части графика. На рис. 1.32 показан еще один пример применения прямого и обратного преобразований Фурье. Здесь для преобразования использована сложная трехкомпонентная функция, содержащая два синусоидальных компонента и компонент в виде случайных чисел. Здесь на графике слева производится сравнение исходной функции с результатом ее прямого и обратного преобразований Фурье, а на графике справа дается построение спектрограммы функции (на этот раз линией, представляющей собой огибающую спектра). Обратите внимание, что несмотря на наличие заметной шумовой составляющей на спектрограмме четко выделяются пики, соответствующие частотам синусоидальных компонент входного сигнала. Читателю рекомендуется после прямого БПФ задать искажения гармоник, характерные для работы какого-либо фильтра — при этом можно наблюдать степень искажения сигнала, прошедшего через фильтр.

1.5.6. Альтернативные преобразования Фурье Рассмотренные выше функции основаны на обычных формулах преобразований Фурье. Однако существуют и альтернативные формы такого преобразования, две из которых показаны ниже: F (v ) = f (τ ) =

1 n

n

∑ f (τ )e

−2 πiτ( v n )

,

τ =1

n

∑ F (v )e

−2 πiv( τ n )

.

υ =1

Вместо множителя перед обоими выражениями перед первым выражением стоит множитель 1/n, а перед вторым — 1. Знак «минус» перед показателем степени имеется только в первой формуле (его нет во второй).

53

Глава 1. Функции, ряды и преобразования Фурье ВНИМАНИЕ Альтернативные формулы преобразований Фурье используются в функциях FFT(v), IFFT(v), CFFT(v) и ICFFT(v). В остальном использование этих функций не отличается от аналогичных функций fft(v), ifft(v), cfft(v) и icfft(v). Надо лишь помнить о том, что нормировка функций БПФ в литературе может быть различной и это нередко создает путаницу при проведении операций спектрального анализа и синтеза и приводит к разным результатам при их проведении.

В заключение отметим, что если в функциях преобразования Фурье в качестве входного параметра задана матрица, то реализуется двумерное обратное преобразование Фурье. В ранних версиях Mathcad эта возможность отсутствовала, но могла быть реализована (хотя и более сложным путем) с помощью одномерного БПФ.

1.5.7. Эффект Гиббса Мы уже столько раз упоминали эффект Гиббса, что пора разобраться с причинами его возникновения и обсудить способы борьбы с ним. В том, что с этим эффектом надо всерьез бороться, говорит тот факт, что относительная амплитуда пульсаций синтезированных сигналов (самих по себе не имеющих пульсаций) достигает 18% (или 9% от двойной амплитуды) и практически не меняется при увеличении числа гармоник — просто выбросы при пульсациях становятся короче. Между тем известно множество задач, где точность приближения должна составлять значения, намного меньшие 1%, а порою не превышать и тысячных долей процента. Поскольку пульсации эффекта Гиббса наиболее явно проявляются в моменты скачков анализируемой функции, ограничимся рассмотрением случая представления скачка 0, x < 0 f (x ) =  1, x ≥ 0 ограниченным спектром. Ограничение спектра можно учесть, введя в (1.15) умножение на прямоугольное частотное окно 1, ω ≤ γ . W (ω ) =  0, ω > γ Это окно задает резкое ограничение спектра. Опуская детали вывода, которые можно найти в [23], найдем, что в этом случае f (x ) =

1 1 + Si (γx ), 2 π

где функция Si(z) известна как интегральный синус z

Si (z ) =

sin(t ) dt . t 0



Задание функции Si(z) и построение зависимости f(x) для данного случая представлено на рис. 1.33. Итак, как следует из рассмотренного, эффект Гиббса существует, увы, как теоретически обоснованная реальность. И связан он, прежде всего, с неудачно подо-

54

1.5. Специальные типы преобразований Фурье бранной (или просто поневоле существующей) формой частотного окна, резко ограничивающего число используемых при спектральном синтезе гармоник (частот) — прямоугольного. Закончим мы этот раздел на слегка грустной нотке — оказывается, эффект Гиббса «всеяден» — он встречается в разложениях сигнала не только по синусоидальному базису, но и по другим базисам — в том числе и характерным для вейвлет-преобразований сигналов. Так что с его проявлением мы столкнемся еще не раз.

1.5.8. Способы подавления эффекта Гиббса

Рис. 1.33. Иллюстрация к возникновению эффекта Гиббса

Наша русская поговорка «Клин клином вышибают» наводит на мысль, что, применяя более совершенные частотные окна, чем простейшее прямоугольное, можно ослабить эффект Гиббса или даже избавиться от него. К сожалению, введение частотных окон неизбежно ухудшает реставрацию сигналов на участках их быстрых изменений. Ниже приведены реализации этих методов борьбы с эффектом Гиббса. Одним из давно известных методов подавления эффекта Гиббса является применение сигма-множителей, уменьшающих амплитуды гармоник по мере роста их номера n при приближенном вычислении коэффициентов Фурье методом прямоугольников — рис. 1.34. На представленном документе даны ссылки на работы, в которых предложены методы борьбы с эффектом Гиббса.

Рис.1.34. Синтез меандра по 10 гармоникам

55

Глава 1. Функции, ряды и преобразования Фурье

Рис. 1.35. Синтез меандра по 10 гармоникам с сигма-множителями

Рис. 1.36. Синтез меандра по 10 гармоникам с множителями Фейера

Реализация метода сигма-множителей представлена рис. 1.35. Нетрудно заметить, что эффект Гиббса резко ослабляется, но небольшие его проявления все же остаются. Другой метод борьбы с эффектом Гиббса при использовании синтеза рядом Фурье заключается в применении множителей Фейера. Их определение и применение представлено на рис. 1.36. Этот метод обеспечивает практически полное подавление эффекта Гиббса. Но его недостатком является несколько скошенная вершина импульсов.

1.5.9. Улучшенное моделирование сигналов на основе спектрального подхода К сожалению, встроенные в Mathcad функции прямого и обратного быстрого преобразования Фурье не устраняют эффект Гиббса. Более того, они критичны к выбору числа гармоник и числа отсчетов сигналов. Желательно, чтобы число отсчетов было равно 2m, где m — натуральное число. Это не всегда удобно, особенно если функция задана малым числом отсчетов.

56

1.5. Специальные типы преобразований Фурье Кардинальное улучшение моделирования сигналов при спектральном методе достигается заменой дискретных отсчетов функции на плавную функцию y(t), получаемую при той или иной методике интерполяции. При этом появляется возможность задавать произвольное число отсчетов по интерполируемой функции y(t) и получить сколь угодно большое число гармоник для ее синтеза.

Рис. 1.37. Улучшенный спектральный анализ с прямой линейной интерполяцией функции между узлами (начало документа)

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

Рис. 1.38. Спектральный синтез на основании расчета спектра, показанного на рис. 1.37 (конец документа)

57

Глава 1. Функции, ряды и преобразования Фурье кция почти повторяет исходную, а эффект Гиббса исчезает практически полностью. В документе рис. 1.37 показана реализация этого улучшенного метода в СКМ Mathcad. В документе приняты меры по уменьшению времени вычислений за счет отказа от умножений на ноль. Как видно из конца этого документа, показанного на рис. 1.38, степень совпадения исходной и синтезируемой функций очень высока. Это свидетельствует о высокой степени достоверности моделирования сложного сигнала на основе описанного подхода. В приведенном примере использован достаточно сложный сигнал со скачками, полками и участками линейного изменения. В реальной ситуации функция y(t) чаще всего является довольно плавной и эффект Гиббса проявляется в гораздо меньшей мере, чем в примененном тестовом примере. Это говорит о том, что все описанные методы имеют право на жизнь. В представленную на рис. 1.38 формулу спектрального синтеза сигнала нетрудно ввести члены, учитывающие изменение спектра сигнала при прохождении его через те или иные устройства, например усилители или фильтры. В результате будет получена временная зависимость сигнала с учетом искажений его этими устройствами. Читатель может попробовать свои силы в решении подобных задач.

1.5.10. Улучшенное приближение данных рядом Фурье Когда коэффициенты Фурье вычисляются методом прямоугольников, то ряд Фурье фактически приближает исходную зависимость (облако ее узловых точек) с наименьшей среднеквадратической погрешностью. Другими словами, он является вариантом регрессии. На практике такая регрессия используется не часто из-за сложности вычислений. Но применение систем компьютерной математики, таких как Mathcad, эти сложности успешно устраняет. Кроме того, трудности вызывают расходимость ряда Фурье в точках разрыва и эффект Гиббса, описанные выше. На рис. 1.39 представлено начало документа, в котором реализовано приближение зашумленных данных рядом Фурье. Показано задание исходной зависимости f(x), вектора ее значений Y0 и вектора зашумленных данных Y. Представленная зависимость явно неудобна для приближения рядом Фурье, поскольку ее зна-

Рис. 1.39. Начало документа с примером приближения данных рядом Фурье

58

1.5. Специальные типы преобразований Фурье

Рис. 1.40. Приближение данных рядом Фурье

чения на краях не равны нулю и довольно велики — это означает наличие на краях разрывов. Далее на рис. 1.40 представлено вычисление коэффициентов Фурье методом прямоугольников (программные модули) и построение ограниченного числом гармоник nmax = 10 ряда Фурье. Нетрудно заметить, что за исключением концевых точек ряд Фурье неплохо приближает облако точек исходной зависимости. Поскольку мы имеем функцию приближения в явном виде, можно говорить о полноценной аппроксимации, равно как и о довольно эффективном сглаживании данных. Из рис. 1.40 ясно, что спектр Фурье быстро затухает, что позволяет отбросить высшие гармоники и тем самым обеспечить эффективное сглаживание данных. Большой «ложкой дегтя» в таком приближении оказывается злополучный эффект Гиббса. Он проявляется как плохое схождение ряда Фурье на концах отрезка приближения (в нашем случае в точках с x = 0 и x = 2). При этом наблюдаются совершенно недопустимые выбросы кривой аппроксимации и волнообразный ее ход даже в центре графика. Одним из главных способов улучшения сходимости рядов Фурье является устранение разрывов исходных функций в начале и в конце интервала приближения. Если данные представлены отдельными точками (узлами), то для этого достаточно использовать итерационную формулу, представленную в начале рис. 1.41. В результате пересчета точек исходной зависимости получается новая зависимость с нулями в конце интервала приближения. Такую зависимость можно представить рядом Фурье с только синусными членами, что дает сразу несколько важных достоинств:

• заметно сужается спектр Фурье, что позволяет использовать меньшее число гармоник; • ряд Фурье быстро сходится;

59

Глава 1. Функции, ряды и преобразования Фурье

Рис. 1.41. Часть документа с примером приближения данных рядом Фурье с устранением разрывов в начале и конце отрезка приближения

Рис. 1.42. Окончание документа с примером приближения данных рядом Фурье (сверху показано приближение преобразованной, а снизу восстановленной исходной зависимости)

60

1.5. Специальные типы преобразований Фурье • проявление эффекта Гиббса резко уменьшается; • появляется возможность экстраполяции (продолжения по синусам). Так, в нашем случае оказалось достаточным ограничить число гармоник ряда Фурье значением 5 (на основании приведенной спектрограммы). Теперь после преобразования данных можно получить весьма эффективное приближение их рядом Фурье с малым числом гармоник — рис. 1.42 (верхний график). Используя далее обратную формулу преобразования, можно вернуть данным исходные значения и получить кривую регрессии, показанную на рис. 1.42, снизу. Нетрудно заметить, что полученная аппроксимирующая функция вполне удовлетворительно справляется с экстраполяцией. Для демонстрации возможностей приближения на рис. 1.42 показаны облако точек исходной зависимости, кривая приближения (жирная) и чистая (без шумов) исходная зависимость.

Рис. 1.43. Задание непрерывного сигнала его выборками и его восстановление на основе теоремы Котельникова

1.5.11. Восстановление сигнала по базису Котельникова Есть ряд базисов представления произвольных сигналов, которые занимают как бы промежуточное положение между синусоидальным базисом Фурье и вейвлетами. К такому базису можно отнести базис Котельникова, появившийся в результате доказательства фундаментальной теоремы об отсчетах. При цифровой обработке сигналов часто производят их выборку (вырезку) в определенные моменты времени (рис. 1.43, сверху). Они могут равномерно или неравномерно отстоять друг от друга. Сигнал может быть периодическим (с периодом T), но может быть и однократным или непериодическим.

61

Глава 1. Функции, ряды и преобразования Фурье Выборку электрических сигналов и их представление в виде чисел или кодов конечной разрядности выполняют так называемые аналого-цифровые преобразователи — АЦП. В результате на выходе АЦП мы имеем дискретный сигнал, представленный потоком чисел (кодов). Главные показатели АЦП — это их разрядность (число уровней квантования, обычно выражаемое в двоичном виде) и скорость выполнения преобразований (число операций в секунду). Обратное преобразование цифровой информации в аналоговую выполняют цифроаналоговые преобразователи — ЦАП. Для наиболее распространенных электрических сигналов АЦП и ЦАП выпускаются в виде больших интегральных микросхем. Их применение позволяет легко реализовать на практике описанные в данной главе математические методы обработки сигналов. Как часто надо делать равномерные выборки произвольного сигнала, чтобы после преобразования в цифровую форму, а затем снова в аналоговую была сохранена форма сигнала? Ответ на этот важный вопрос дает теорема об отсчетах или теорема Котельникова (за рубежом именуемая также теоремой Найквиста): «Если спектр сигнала e(t) ограничен высшей частотой fв, то он без потери информации может быть представлен дискретными отсчетами с числом, равным 2 ⋅ fв». При этом сигнал восстанавливается по его отсчетам e(k ⋅ dt), следующим с интервалом времени dt, с помощью фильтра низких частот, реализующего восстановление по формуле: —(е ) =



∑ e(k ⋅ dt )

k = −∞

sin(π (t − k ⋅ dt ) / dt ) . π (t − k ⋅ dt ) / dt

Для восстановления непрерывного сигнала по его выборкам достаточно располагать функцией sinc(x) = sin(x)/x с учетом ее особого значения sinc(x) = 1 при x = 0. Такая функция есть в системе Mathcad 11, но ее нет в предшествующих версиях системы Mathcad. Однако, как показано на рис. 1.43 (часть документа снизу), такую функцию несложно задать с помощью функции if. Заодно на рис. 1.43 снизу показано восстановление сигнала по его отсчетам на основе теоремы Котельникова. Примечательно, что функция sinc(x) = sin(x)/x имеет максимум при x = 0 и колебательно спадает в обе стороны, что чем то напоминает поведение некоторых вейвлетов. Рисунок 1.43 показывает, что даже при небольшом числе отсчетов (в нашем случае их 11) восстановление сигнала (или, можно сказать, его интерполяция) происходит вполне прилично, хотя и не идеально. Интерполирующая кривая получается довольно плавной и непрерывной и точно проходит через точки исходных отсчетов. Увы, злополучный эффект Гиббса (колебания интерполирующей кривой, не присущие исходному сигналу) и здесь имеет место. Его причиной, как всегда, является ограниченное число выборок. При увеличении числа выборок точность восстановления можно существенно улучшить, что часто и делается на практике. К примеру, популярные сейчас оптические компакт-диски содержат высококачественные записи речи и музыки в цифровой форме. Высшая частота звуковых сигналов 20 кГц. Частота дискретизации их 44,1 кГц (более 44000 выборок в секунду). Каждая выборка представляется (квантуется) с числом уровней 216 = 65536 (разрядность квантования 16 бит). Полученный поток цифровых данных и записывается в двоичном виде на оптический диск. В итоге компакт-диск при лазерном считывании информации позволяет воспроизводить сколько угодно раз звуки

62

1.6. Оконное преобразование Фурье любимых певцов и оркестров с невиданным ранее качеством. Более того, возможна их многократная перезапись без малейшей потери качества.

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

y (t ) ~

∑c e

itn

n

,

(1.16)

n=0

где i — мнимая единица. Функция y(t) представляется суммой произведений синусоид, представленных членом, на коэффициенты Фурье cn. Они вычисляются как: cn =

1 2π



∫ y(t )e

-itn

dt .

(1.17)

0

Коэффициенты Фурье — комплексные числа. Они представляют набор (спектр) гармонических сигналов, называемых гармониками. Число n — номер гармоники (0, 1, 2, ...). Теоретически ряд Фурье имеет бесконечное число членов (гармоник), но на практике оно всегда конечно и равно N. Поэтому ряд (1.16) записывается как приближенный. Гармоники, представляющие собой синусоиды с разной частотой, кратной частоте первой гармоники, и разной фазой, образуются умножением сn на eitn. С позиций точного представления преобразованием Фурье произвольных сигналов и функций можно отметить целый ряд его недостатков:

• неприменимость к анализу нестационарных сигналов; • преобразование Фурье даже для одной заданной частоты требует знание сигнала не только в прошлом, но и в будущем, что является теоретической абстракцией; • в условиях практически неизбежного ограничения числа гармоник или спектра колебаний точное восстановление сигнала после прямого и обратного преобразований Фурье теоретически (и тем более практически) невозможно, в частности, из-за появления эффекта Гиббса; • базисной функцией при разложении в ряд Фурье является гармоническое (синусоидальное) колебание, которое математически определено в интервале времени от −∞ до +∞ и имеет неизменные во времени параметры; • численное интегрирование во временной области от −∞ до +∞ при прямом преобразовании Фурье (ППФ) и от −∞ до +∞ в частотной области при обратном преобразовании Фурье (ОПФ) встречает большие вычислительные трудности;

63

Глава 1. Функции, ряды и преобразования Фурье • отдельные особенности сигнала (например, разрывы или пики) вызывает незначительные изменения частотного образа сигнала во всем интервале частот от −∞ до +∞, которые «размазываются» по всей частотной оси, что делает их обнаружение по спектру практически невозможным; • ясно, что такая плавная базисная функция, как синусоида, в принципе вообще не может представлять перепады сигналов с бесконечной крутизной, хотя такие сигналы (например, прямоугольные импульсы) применяются весьма широко; • единственным приспособлением к представлению быстрых изменений сигналов, таких как пики или перепады, является резкое увеличение числа гармоник, которые оказывают влияние на форму сигнала и за пределами локальных особенностей сигнала; • по составу высших составляющих спектра практически невозможно оце-

Рис. 1.44. Спектральный анализ и синтез синусоидального сигнала с небольшими ступеньками при переходе через нуль

нить местоположение особенностей на временной зависимости сигнала и их характер; • для нестационарных сигналов (а таковых сейчас большинство) трудности ППФ и ОПФ (и, соответственно, быстрого преобразования Фурье — БПФ) многократно возрастают. Небольшие разрывы (ступеньки) на синусоидальном или любом плавно изменяющемся сигнале трудно обнаружить в его Фурье-спектре, ибо они создают множество высших гармоник очень малой амплитуды — рис. 1.44. Сигнал здесь получен суммированием синусоиды с меандром, который моделируется выражением вида 0.1*sign(sin(x)). Таким образом, ступенька имеет величину 0.1 от амплитуды

64

1.6. Оконное преобразование Фурье синусоиды и видна на осциллограмме сигнала и его реставрации (для устранения слияния кривые раздвинуты по вертикали). Спектр таких сигналов (см. спектрограмму внизу рис. 1.44) содержит едва заметные высокочастотные составляющие спектра, по которым распознать локальную особенность сигнала и тем более ее место и характер практически невозможно. Составляющие спектра особенности как бы размазаны по оси частот.

1.6.2. Кратковременное (оконное) преобразование Фурье Проблемы спектрального анализа и синтеза сигналов, ограниченных во времени, частично решаются переходом к так называемому кратковременному или оконному преобразованию Фурье. Идея этого преобразования очень проста — временной интервал существования сигнала разбивается на ряд промежутков — временных окон. В каждом промежутке вычисляется свое преобразования Фурье. Если в каком-то окне существовали частотные составляющие некоторого сигнала, то они будут присутствовать в спектре. А если нет — будут отсутствовать. Таким образом, можно перейти к частотно-временному представлению сигналов, которое является особым разделом техники обработки сигналов. Кратковременное (оконное) преобразование выполняется с использованием выражения: A(ω ) =



∫ y(t ) ⋅ w(t − b ) ⋅ e

−iωt

dt .

(1.18)

−∞

Рис. 1.45. Иллюстрация к технике оконного преобразования Фурье

Здесь, в отличие интеграла Фурье, функция y(t) под знаком интеграла дополнительно умножается на оконную функцию w(t – b). Параметр b окна задает его сдвиг на временной оси. Обычно задается ряд фиксированных значений b в пределах полного окна. Например, для простейшего прямоугольного окна функция w(t – b) в пределах окна дает 1, а за пределами окна просмотра — 0. При этом для каждого окна мы получаем свой набор комплексных амплитуд сигнала в частотной области. Сказанное поясняет рис. 1.45. Окно, показанное на временной зависимости сигнала (слева) скачками перемещается и за некоторое число таких перемещений позволяет «просмотреть» весь сигнал. В каждом окне выполняется свое спектральное разложение, так что вместо обычно одной спектрограммы мы теперь получает набор спектрограмм, схематично показанный в правой части рис. 1.45 в виде прямоугольников. Естественно, что поскольку каждое окно охватывает небольшой участок по времени, точность описания локальных изменений сигнала может быть повышена. Часто используются окна Гаусса или иные окна, обеспечивающие малые иска-

65

Глава 1. Функции, ряды и преобразования Фурье жения спектра из-за граничных явлений и уменьшающие проявление эффекта Гиббса. Казалось бы, раз оконное преобразование Фурье дает нам частотно-временное представление сигналов, то достаточно им и ограничиться. И не нужно было открывать вейвлет-преобразования? Однако ситуация не так проста! Она упирается в известный принцип неопределенности Гейзенберга. Согласно ему невозможно получить одновременно высокое частотное и высокое временное разрешение. Выбирая окно с малой шириной по времени, мы получаем высокое временное разрешение, но низкое частотное разрешение. Взяв окно с большой шириной во времени, получаем хорошее разрешение по частоте, но плохое во времени. Оконное преобразование оперирует с окнами, имеющими одинаковую ширину, а потому данное противоречие для него неразрешимо. Мы вернемся к этой проблеме после рассмотрения современных методов представления спектра. А пока отметим еще один принципиальный недостаток оконного преобразования Фурье — в нем по-прежнему используется единственная базисная функция — синусоида со всеми ее отмеченными ранее недостатками.

1.6.3. Функции оконного спектрального анализа в пакете Signal Processing СКМ Mathcad Пакет Signal Processing популярной системы Mathcad имеет ряд функций оконного (короткого) спектрального анализа. Мы не рассматриваем этот пакет полностью, но отметим применение функций оконного спектрального анализа. Они позволяют разбить сигнал на диапазоны (окна) как без перекрытия, так и с перекрытием и выполнить спектральный анализ следующего типа: pspectrum(x,n,r[,w]) — расчет средней спектральной мощности сигнала x; cspectrum(x,n,r[,w]) — расчет кросс-спектра сигнала x;

Рис. 1.46. Сравнение специальных функций спектрального анализа пакета Signal Processing СКМ Mathcad

66

1.6. Оконное преобразование Фурье coherence(x,y,n,r[,w]) — расчет когерентности сигналов; snr (x,y,n,r[,w]) — расчет отношения сигнал/шум для векторов x и y. В этих функциях x и y — векторы с комплексными или вещественными элементами, n — число поддиапазонов входного сигнала (лежит в пределах от 1 до длины вектора x), r — фактор перекрытия поддиапазонов (от 0 до 1) и w — код окна, выбираемый следующим образом: 1. rectangular — прямоугольное окно; 2. tapreg rectangular — окно типа трапеции;

Рис. 1.47. Построение спектров радиоимпульса с помощью функций CFFT и pspectrum

3. 4. 5. 6.

triangular — треугольное окно; hanning — окно Хэннинга; hamming — окно Хэмминга; blackman — окно Блэкмана;

Рис. 1.46 дает сравнение этих функций при построении дискретных спектров зашумленных сигналов.

1.6.4. Спектральный анализ с помощью функций CFFT и pspectrum Поскольку мощность сигнала пропорциональна его уровню, то построение спектра спектральной мощности (СПМ) сигналов с помощью функции pspect-

67

Глава 1. Функции, ряды и преобразования Фурье rum позволяет эффективно отсеивать составляющие спектра с малым уровнем — например боковые лепестки радиоимпульсов. Это наглядно иллюстрирует рис. 1.47, на котором задано построение радиоимпульса (пачки синусоидальных колебаний) и построены спектры, вычисляемые функциями CFFT и pspectrum. Нетрудно заметить, что боковые лепестки у основных спектральных линий, хорошо заметные в спектре, полученном функцией CFFT, практически отсутствуют в спектре, созданном с помощью функции pspectrum.

1.7. Современные методы получения и визуализации спектров 1.7.1. Спектры на основе оконного преобразование Фурье Существенным недостатком спектров, полученных при обычном преобразовании Фурье, является их малая информативность. Локальные особенности сигналов, например короткие всплески или провалы, разрывы и ступеньки и т. д., ведут к появлению в спектре высших гармоник с малой амплитудой, размазанных по всей частотной оси. Определить по ним характер локальных особенностей довольно трудно. Кардинальное решение этой задачи кроется в применении вейлет-преобразований, описанных в следующей главе. Но и на основе использовании фурье-преобразований также был предложен ряд современных методов спектрального анализа, позволяющих с высокой детальностью представлять спектры сложных сигналов. Ниже представлено описание методов и их реализаций в пакете Signal Processing систем класса Mathcad. Нельзя не отметить, что некоторые из представлений спектра, обзорно представленных ниже, имеют определенные преимущества даже перед вейвлет-преобразованиями. Приходится сожалеть, что у нас практически нет литературы, описывающей и обосновывающей эти виды представления спектров. А объем данной главы вынуждает ограничиться лишь обзорным описанием функций новых представлений спектра. Одним из методов улучшенной визуализации спектра является короткое (оконное) преобразование Фурье. Оно реализуется функций stft(x[,n][,s][,w]), где x — вектор данных действительных или комплексных; n — число частот преобразования (по умолчанию 64); s — число пропущенных при преобразовании периодов частоты дискретизации (по умолчанию n/2); w — индекс окна или вектор с его коэффициентами. Окно можно задавать или вектором его коэффициентов или индексом для ряда заранее определенных окон, реализованных в виде фильтра с КИХ: 1. 2. 3. 4. 5. 6.

rectangular — прямоугольное окно (по умолчанию); tapreg rectangular — окно типа трапеции; triangular — треугольное окно; hanning — окно Хэннинга; hamming — окно Хэмминга; blackman — окно Блэкмана.

Формула для такого преобразования дана сверху на рис. 1.48 для сигнала, который представляет собой две пачки синусоидальных колебаний с разной частотой.

68

1.7. Современные методы получения и визуализации спектров

Рис. 1.48. Короткое (оконное) преобразование Фурье для двух пачек синусоидальных колебаний (пример 1)

Рис. 1.49. Короткое (оконное) преобразование Фурье для сложного сигнала с шумом (пример 2)

69

Глава 1. Функции, ряды и преобразования Фурье В отличие от обычного преобразования Фурье функция x(τ) умножается на окно w(τ – t), значение которого (в первом приближении) равно 1 в пределах окна и 0 за его пределами. Это окно перемещается по временной оси без перекрытия, и спектр по методу Фурье вычисляется в пределах каждого окна. Таким образом, получается набор спектрограмм в плоскости время-частота — спектрограммы представлены ниже для окон разной ширины. На спектрограммах можно четко выделить спектральные линии для обеих пачек синусоидального сигнала. Отчетливо выделяются их длительность и длительность пауз между пачками. На рис. 1.49 представлен результат анализа этим методом для более сложного сигнала, имеющего к тому же шумовую компоненту. Представление сигнала стало (особенно при малой ширине окна) намного более разнообразным, хотя по детальности трудно сравнимо со специальными приемами осуществления короткого преобразования в пакете Signal Processing Toolbox для системы MATAB.

1.7.2. Времячастотное билинейное представление спектра сигналов Пакет SP имеет ряд специальных функций для детального билинейного времячастотного представления (или презентации) спектра сигналов: timefreq(x,"t",f,s[,d]) — представление спектра сигнала на время-частота; timecorr(x,"t",f,s[,d]) — представление спектра сигнала на время-корреляция; timefreq(x,"custom",s,r,) — представление спектра сигнала на время-частота с заданным пользователем типом представления; timecorr(x,"custom",s,r) — представление спектра сигнала на время-корреляция с заданным пользователем типом представления.

плоскости плоскости плоскости плоскости

Здесь: x — вектор с элементами вещественного типа; t — строка, задающая тип представления (презентации) спектра; f — целое число лагов для функции timecor или число частот для функции timefreq, которое должно быть вычислено;

Рис. 1.50. Определения для времячастотных преобразований и представлений сигнала

70

1.7. Современные методы получения и визуализации спектров s — число шагов в виде целого числа, которое должно быть пропущено между соседними вычислениями; d — опционно заданный параметр, задающий фактор демпфирования для представления Чои—Вильямса (равен 1 по умолчанию, игнорируется при других представлениях); r — матрица с целочисленными элементами и с ядром представления «custom», задаваемым пользователем. Тип представления задается строкой t и может быть следующим: wigner — представление Вагнера; cone — коническое представление;

Рис. 1.51. Представление Вагнера (начало)

bornjordan — представление Борна—Жордана; marghill — представление Маргенау—Хилла; choiwill — представление Чои—Вильямса; custom — представление пользователя. В начале документа рис. 1.50 даны определения для времячастотных преобразований и представлений сигнала. Поскольку все эти представления мы рассматриваем лишь как прелюдию к вейвлет-анализу, ниже мы ограничимся только примерами их реализации без детального описания каждого из представлений. Такое описание заинтересованный читатель найдет в справках по этим представлениям.

1.7.3. Представление Вагнера Рисунок 1.51 иллюстрирует начало документа, поясняющего представление Вагнера. В этом представлении используется ядро r(t,τ) в виде дельта-функции. На

71

Глава 1. Функции, ряды и преобразования Фурье

Рис. 1.52. Представление по Вагнеру

Рис. 1.53. Cпектрограмма, полученная с помощью функции stft

рис. 1.51 представлено задание простого сигнала для представления и опредеРис. 1.54. Представление лены фурье-преобразования C(t, ω). Маргинау—Хилла для сложного Конец документа с этим представлесигнала с шумом нием дан на рис. 1.52. Здесь для представления использован сигнал, полученный из текстового файла batsig.txt. Такой сигнал при его считывании во времени представляет собой набор кодов. Временная зависимость сигнала представлена на рис. 1.52 (график сверху). График снизу рис. 1.52 представляет собой спектрограмму данного сигнала, соответствующую представлению Вагнера. Нетрудно заметить, что она имеет весьма

72

1.7. Современные методы получения и визуализации спектров

Рис. 1.55. Представление Чои—Вильямса

Рис. 1.56. Представления по Борну—Жордану и коническое представление (конец документа)

замысловатый вид, соответствующий сложности сигнала. Вы можете сравнить эту спектрограмму со спектрограммой, полученной с помощью функции stft. Эта спектрограмма показана на рис. 1.53. По детальности представления спектра эта спектрограмма заметно уступает представленной на рис. 1.52.

1.7.4. Представление Маргинау—Хилла Представление Маргинау—Хилла (с параметром «t» — «marghill») особенно эффектно в трехмерном пространстве. Это хорошо видно из рис. 1.54. Спектр в данном случае напоминает горный ландшафт и отличается детальностью и выразительностью. Цветная функциональная окраска (увы, не видная на рисунке в книге) дополнительно выявляет детали спектра.

1.7.5. Представление Чои—Вильямса Представление Чои—Вильямса представлено на рис. 1.55 в двух вариантах. Они показывают возможности управления детальностью спектрограмм. Это представление также дает наглядное представление о сложности реальных цифровых сигналов, к которым относится и сигнал от текстового файла, использованный в приведенных примерах.

1.7.6. Представление Борна—Жордана и коническое представление Еще два представления спектра сигнала представлены на рис. 1.56. Это представление Борна—Жордана и так называемое коническое представление. Детали этих представлений описаны в электронной книге по пакету Signal Processing/ Эти представления также отличаются детальностью спектрограмм. Выбор ряда представлений одного и того же сигнала (и, разумеется, разных сигналов) позволяет подбирать представления, наиболее подходящие для выявления тех или иных

73

Глава 1. Функции, ряды и преобразования Фурье

Рис. 1.57. Осциллограмма сигнала, имеющего четыре аддитивные косинусоидальные компоненты с частотами 5, 10, 20 и 50 Гц (время в миллисекундах)

Рис. 1.58. Осциллограмма сигнала, имеющего четыре косинусоидальные компоненты с частотами 30, 20, 10 и 5 Гц, присутствующими в разное время

особенностей сигналов. Сложные представления сигналов лежат в основе техники распознавания речи (звуковые сигналы) и изображений.

1.7.7. Трехмерное представление спектров Фурье Некоторые программные средства дают возможность получения трехмерных спектров, что особенно полезно при оценке частотно-временных методов представления сигналов, таких как оконное преобразование Фурье. Для оценки возможностей трехмерного представления спектра рассмотрим 3D-спектрограмму сложного сигнала, содержащего 4 косинусоидальные компоненты с частотами 5, 10, 20 и 50 Гц, с единичными амплитудами и нулевыми фазами: s(t) = cos(2π5t) + cos(2π10t) + cos(2π20t) + cos(2π50t) Этот сигнал содержит четыре аддитивные компоненты и является стационарным сигналом. То, что этот сигнал не так уж и прост, свидетельствует осциллограмма сигнала, представленная на рис. 1.57. По виду осциллограммы трудно судить о том, какие компоненты и с какими частотами входят в этот сигнал. Разве что бросается в глаза периодичность сигнала, связанная с первой частотной компонентой. Обычный спектр такого сигнала для нас уже тривиален — он просто представляет собой четыре линии единичной высоты на частотной оси с указанными выше частотами А теперь усложним задачу. Представим себе, что каждая из компонент (начиная с самой высокочастотной) на интервале времени 1000 мс существует всего по 250 мс. Таким образом, мы перешли от рассмотрения стационарного сигнала к рассмотрению нестационарного сигнала. Временная зависимость нового сигнала представлена на рис. 1.58. Сравнение сигнала с осциллограммой рис. 1.58 с сигналом, осциллограмма которого дана на рис. 1.57, показывает, что мы имеем два абсолютно разных сигнала. Изменится ли от этого вид обычного спектра? Мы показали в этой главе чуть выше, что он будет представлен четырьмя вертикальными линиями на частной

74

1.7. Современные методы получения и визуализации спектров

Рис. 1.59. 3D-спектр сигнала при a = 0.01

Рис. 1.60. 3D-спектр сигнала при a = 0.001

оси, хотя и меньшей высоты для второго сигнала, поскольку энергия каждой частотной составляющей стала меньше. Качественно вид спектра останется прежним и по нему невозможно судить, в какие времена существует та или иная частотная компонента сигнала. А теперь рассмотрим 3D-спектры такого сигнала с оконным преобразованием Фурье (1.18). Выберем хорошо известное временное окно Гаусса

w (t ) = e



at 2 2

.

Рис. 1.61. 3D-спектр сигнала при a = 0.0001

Это окно имеет колоколообразную временную зависимость, острота которой задается параметром a. Чем больше a, тем уже пик зависимости w(t). Рис. 1.59 показывает 3D-спектр для a = 0.01. Мы видим, что все компоненты сигнала хорошо различаются по времени и удовлетворительно по частоте. Теперь увеличим ширину окна, уменьшив a. Полученный при a = 0,001 спектр показан на рис. 1.60. Становится отчетливо видно, что разрешение во времени заметно ухудшилось и появились признаки перекрытия фрагментов сигнала. В то же время разрешение по частоте заметно улучшилось. Пойдем дальше и построим 3D-спектр для a = 0.0001 — рис. 1.61. Теперь уже разрешение по времени стало совершенно неудовлетворительным, а по частоте стало еще лучше. Заметим, что при a→0 наш спектр во всех временных интервалах выродится в обычный спектр Фурье. Итак, мы еще раз наглядно убедились в том, что в случае оконного преобразования Фурье действует принцип неопределенности, согласно которому улучшение разрешения по одному параметру (частоте или времени) ведет к ухудшению разрешения по другому параметру. Можно предположить, что это противоречие разрешимо путем перехода к адаптивному оконному преобразованию, при котором ширина окна адаптируется к особенностям сигнала, а число окон становится не

75

Глава 1. Функции, ряды и преобразования Фурье

Рис. 1.62. 3D вейвлет-спектрограмма сигнала из четырех косинусоид с разными частотами, действующими в разные промежутки времени

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

1.7.8. Трехмерные вейвлет-спектрограммы Альтернативой оконному преобразованию Фурье и заодно и его частному виду — обычному преобразованию Фурье и стала разработка вейвлет-преобразования на основе нового и довольно представительного набора базисных функций, порождающих вейвлеты. Это и является предметом рассмотрения в последующих главах данной книги. А в завершение этой главы мы, ради сравнения со спектрограммами оконного преобразования Фурье, рассмотрим типичную трехмерную вейвлет-спектрограмму для описанного чуть выше сигнала. Рис. 1.62 показывает такую спектрограмму. Горизонтальная плоскость спектрограммы построена по осям SCALE (Масштаб) и TRANSLATION (Преобразованное время). Высота задается значениями вейвлет-коэффициентов. Эти понятия мы рассмотрим подробно в главе 2. А пока отметим, что вейвлет-спектрограмма выглядит куда более представительно, чем обычные даже трехмерные спектрограммы оконного преобразования Фурье. В частности, можно четко локализовать места на спектрограмме, характерные для каждой из четырех компонент сигнала. Это особенно заметно на участках спектрограммы, соответствующих представлению коэффициентов с малыми номерами вейвлет-коэффициентов (малые значения SCALE). При больших номерах коэффициентов хорошо виден постепенный эффект сглаживания, находящий практическое применение для фильтрации сигналов, их сжатия (компрессии) и очистки от шума. ПРИМЕЧАНИЕ Несмотря на красоту (особенно в цвете) трехмерных спектрограмм на практике они применяются редко. Это связано с громоздкостью таких спектрограмм и необходимостью в специальном программном обеспечении для их построения.

76

Глава 2. Вейвлеты и вейвлет-преобразования 2.1. Некоторые математические понятия теории вейвлетов 2.1.1. Наглядный пример вейвлет-преобразований с применением вейвлета Хаара Прежде, чем мы окунемся в море вейвлет-преобразований, рассмотрим наглядное представление о том, что такое вейвлет-преобразования [20]. Воспользуемся для этого самым простым вейвлетом Хаара — рис. 2.1. Несмотря на свою простоту и ряд недостатков, он имеет компактный носитель и обеспечивает возможность точной декомпозиции и синтеза любого сигнала.

Рис. 2.1. Вейвлет Хаара (слева — аппроксимирующая функция, а справа — детализирующая функция)

Вначале выполним декомпозицию сигнала. Для этого используются две функции вейвлетов Хаара. Одна это аппроксимирующая функция, которая у вейвлета Хаара просто равна 1 на всем компактном носителе. А вот другая — детализирующая функция имеет значение +1 на первой половине носителя и –1 на второй половине (словом, на компактном носителе размещен один период меандра). Аппроксимирующая функция в данном случае указывает на усреднение значений сигнала, а детализирующая задает порядок применения приращений сигнала, причем ее значение +1 означает сложение, а –1 — вычитание. Пусть имеется сигнал, представленный в виде вектора с целочисленными компонентами [9 7 3 5]. Это могут быть, например, значения пикселей некоторой подстроки изображения. Разрешение в этом случае равно 4 (таково число элементов вектора) и поначалу обрабатывается весь вектор. Перейдем к более грубому (вдвое меньшему) разрешению 2, для чего поделим компактный носитель вейвлета вдвое и используем наш вейвлет дважды. Это значит, что мы должны вычислить среднее из каждой пары компонентов разделенного вдвое вектора сигнала. Получим вектор [8 4] с двумя детализирующими коэффициентами [1 –1]. Они представляют половинки от приращений уровня относительно среднего значения, т. е. (9 – 7)/2 = 1 и (3 – 5)/2 = –1. Прибавив и отняв +1 от первого компонента вектора огрубленного сигнала — числа 8, получим компоненты 9 и 7. Аналогично, прибавив и отняв –1 от второго

77

Глава 2. Вейвлеты и вейвлет-преобразования компонента вектора огрубленного сигнала 4, получим 3 и 5, т. е. вторую пару компонентов исходного вектора. Продолжим огрублять сигнал вдвое и перейдем к разрешению 1. Наш вектор превратится в [6] с детализирующим коэффициентом 2. Его прибавление и вычитание дадут вектор [8 4]. Итак, для декомпозиции (разложения) исходного сигнала имеем: Разрешение

Аппроксимирующие коэффициенты

Детализирующие коэффициенты

4

[9 7 3 5]

2

[8 4]

[1—1]

1

[6]

[2]

Таким образом, для представления сигнала достаточно хранить его грубое значение 6 и детализирующие коэффициенты 2, 1 и –1. Операции с ними задаются видом вейвлета Хаара. Например, на уровне разрешения 1 он представляется двумя функциями — аппроксимирующей с уровнем 1 и детализирующей с уровнем +1 на первой половине периода и –1 на второй половине периода (именно это задает вначале сложение, а затем вычитание детализирующего коэффициента). В итоге, осуществляя композицию сигнала, мы точно восстанавливаем его значение, используя последний (самый грубый) аппроксимирующий коэффициент и ряд детализирующих коэффициентов. Процедуры изменения разрешения вдвое в ходе композиции и декомпозиции реализуют так называемый диадический метод. Он является разновидностью более общего кратномасштабного метода и лежит в основе устранения избыточности, свойственной непрерывным вейвлет-преобразованиям (см. ниже). Казалось бы, какой прок в таком представлении, коли число компонентов вектора осталось неизменным? Оказывается, прок есть, и весьма существенный. Прежде всего, мы перешли от представления независимых значений сигнала к его грубому приближению и приращениям. Это прекрасно соответствует нашим представлениям об обычных сигналах — осциллограммы их обычно представляются некоторой сглаженной кривой, на которой видно множество отклонений от нее (осцилляций). Переход к представлению сигнала в виде его грубой компоненты и детализирующих компонент лежит в основе известной техники сжатия сигналов с малыми потерями или даже без них (как в нашем примере). Коэффициенты вейвлет-представления для большинства сигналов часто существенно меньшие числа, чем представления отсчетов сигналов. Для реальных сигналов многие коэффициенты по уровню оказываются настолько малыми, что их можно отбросить. Это означает возможность значительного сокращения объема информации о сигнале, выполнение его компрессии и очистки от шумов. Добавьте к этому, что сейчас есть множество куда более ценных и интересных вейвлетов, чем вейвлет Хаара, что дает обширный выбор базисных функций, как для точного, так и приближенного представления любых сигналов. Правда, точное представление могут давать только так называемые ортогональные вейвлеты. На определении ортогональности, как и многих иных свойств вейвлетов, мы остановимся в этой главе далее. Пока будем исходить из того, что такие вейвлеты есть. Кроме вейвлета Хаара, к ним относятся хорошо известные вейвлеты Добеши, для прямого и обратного преобразований которых Mathcad имеет встроенные в ядро функции.

78

2.1. Некоторые математические понятия теории вейвлетов 2.1.2. Пространство сигналов и его базисы В последнее время наметилась тенденция к использованию широкополосных импульсных и цифровых сигналов (видеоимпульсная локация, видеосредства компьютеров и т. д.), которые относятся к классу нестационарных. Параметры таких сигналов не являются постоянными, а меняются во времени. Здесь мы рассмотрим основные понятия, относящиеся к вейвлетам — средствам, перспективным для представления и обработки таких сигналов. Приведенная ниже сводка математических понятий нужна тем, кто хочет достаточно глубоко вникнуть в теорию вейвлетов. Если пока вы такой цели перед собой не ставите, то можете смело пропустить этот раздел и вообще бегло познакомиться с этой главой. В математической теории сигналов принято считать, что они определены как векторы в некотором пространстве. Не претендуя на строгость, можно считать, что вектором является некоторый набор чисел, представляющих сигнал (см. наглядный пример, описанный выше). Бесконечно-размерное пространство, часто используемое в теории вейвлетов, называется гильбертовым пространством L2[R] (см. главу 1). Вейвлет-функции Ψ, задающие грубое приближение сигналов (аппроксимацию) и принадлежащие пространству L2[R], принципиально должны иметь нулевое среднее значение (интеграл) и затухать на бесконечности. Именно это свойство побудило считать вейвлеты «короткими волнами». Ввиду ограниченности действия вейвлетов они могут покрывать всю вещественную ось или ее достаточно большую часть только в том случае, если обладают возможностью сдвига по этой оси. К этому стоит добавить возможность масштабирования (сжатия/растяжения), которое можно уподобить изменению частоты гармоник в рядах Фурье, приближающих сигналы или функции. При наличии этих свойств вейвлеты обеспечивают свое главное преимущество перед базисом на основе синусоид — возможность представления локальных особенностей функций и сигналов. Базисом векторного пространства V называют множество линейно независимых векторов, таких, что любой вектор из пространства V может быть записан в виде их линейной комбинации. У векторного пространства может быть один базис или много базисов. Однако число векторов во всех базисах одинаково и называется размерностью векторного пространства. К примеру, в двухмерном пространстве базис состоит из двух векторов, в трехмерном — из трех.

2.1.3. Скалярное произведение функций В дальнейшем мы часто будем использовать понятие скалярного произведения функций. Поэтому дадим его общее определение. Пусть имеются две функции f(t) и g(t), определенные в пространстве L2[a,b]. Тогда скалярное произведение обозначается как b

f (t ), g (t ) =

∫ f (t )g * (t )dt . a

Напомним, что L2[a, b] означает множество функций, интегрируемых с квадратом в интервале [a, b]. Знак * (иногда черточка над именем функции) означает комплексное сопряжение для соответствующей функции — в нашем случае g(t).

79

Глава 2. Вейвлеты и вейвлет-преобразования 2.1.4. Норма функции Для функции f в пространстве L2[R] существует понятие нормы функции: f = f,f

12

.

Понятие нормы широко используется в доказательствах сходимости рядов Фурье и вейвлетов. Эти доказательства можно найти в специальной литературе [11, 12, 21—23]. Мы же будем считать, что для всех реально применяемых кусочно-непрерывных сигналов и функций сходимость указанных рядов обеспечивается.

2.1.5. Ортогональность и ортонормированность Два вектора, например v и w, называются ортогональными, если v, w =

∑ v w * = 0, n

n

n

т. е. если их скалярное произведение равно нулю. Соответственно, две функции являются ортогональными, если b

f (t ), g (t ) =

∫ f (t )g * (t )dt

= 0.

a

Множество векторов называют ортонормированным, если все векторы попарно ортогональны и имеют единичную длину, что записывается как: vm , wn = δm,n . Гильбертово пространство всегда имеет ортонормированнные базисы. Для него справедливо выражение: f

2

=



2

f (x ) dx =



2

f , en .

n

Аналогично множество функций называют ортонормированным, если: b

∫ϕ

b

k

(t )ϕ *l (t )dt = 0, k ≠ l и

a

∫ {ϕ

(t )} dt = 1 2

k

.

a

Это можно записать в виде: b

∫ϕ

k

(t )ϕ l* (t )dt = δ k,l .

a

В этих выражениях 1, k = l — функция Кронекера. δ k,l =  0, k ≠ l

2.1.6. Базис Рисса В гильбертовом пространстве могут быть и более общие семейства линейно независимых базисных векторов, называемых базисом Рисса (Riesz). Для них действует условие — неравенство:

80

2.2. Основы теории вейвлет-преобразований α f

2





2

f , en

2

≤β f ,

n

где α > 0, β < ∞. Эти базисы являются безусловными, т. е. в них порядок размещения векторов может быть произвольным. Вейвлеты часто принадлежат к базису Рисса, облегчающему доказательства полной реконструкции сигналов (и функций) на основе вейвлет-преобразований. В данной книге представленные выше понятия используются только там, где это принципиально необходимо. Большую часть последующего материала можно понять, зная обычные курсы по теории сигналов и их обработке.

2.2. Основы теории вейвлет-преобразований 2.2.1. Идея вейвлет-преобразования На основании понятия о векторном пространстве общепринятым подходом к анализу таких сигналов s(t) стало их представление в виде взвешенной суммы простых составляющих — базисных функций ψk(t), помноженных на коэффициенты Ck: s (t ) =

∑C ψ k

k

(t ).

(2.1)

k

Т. к. базисные функции ψk(t) предполагаются заданными как функции вполне определенного вида, то только коэффициенты Ck содержат информацию о конкретном сигнале. Таким образом, можно говорить о возможности представления произвольных сигналов на основе рядов (2.1) с различными базисными функциями. К примеру, ряд Фурье использует в качестве базисных функций синусоиды и косинусоиды, представленные комплексной экспонентой eitk = cos(tk) + i ⋅ sin(tk): s (t ) ~

∑C e

itk

k

.

(2.2)

k

Они предельно локализованы в частотной области (вырождаясь на спектрограмме в вертикальную линию), но очень плохо локализованы (точнее, вообще не локализованы) во временной области. Коэффициенты Фурье-ряда (2.2) для произвольного сигнала s(t) вычисляются как: Ck =

1 2π



∫ s (t )e

−itk

dt .

0

Соответствующие формулы для периодических s(t) были приведены в главе 1. Из сказанного ясно, что ряды Фурье плохо годятся для представления коротких локальных особенностей сигналов и функций, таких как перепады и скачки. Прямо противоположный пример — некая импульсная базисная функция (функция Кронекера): 1, k = t . ψ k (t ) = δ k (t ) =  0, k ≠ t Она четко локализована во временной области и потому подходит для представления разрывов сигнала. Но эта базисная функция не несет никакой информации о частоте сигнала и потому плохо приспособлена для представления мед-

81

Глава 2. Вейвлеты и вейвлет-преобразования ленно меняющихся сигналов на заданном отрезке времени и, тем более, периодических сигналов. В этих показательных примерах базисные функции имеют один серьезный и принципиальный недостаток — они не способны адаптироваться к локальным изменениям сигналов. Этот же недостаток проявляется у всех методов аппроксимации сигналов и функций, рассмотренных в главе 1, — от ряда Тейлора до рядов Фурье. Несколько особняком стоит преобразование Габора. Это оконное преобразование, в котором в качестве базовой функции была использована синусоида, пропущенная через окно Гаусса (гауссиана). Такие функции могут быть локализованы и по частоте и по времени. Однако оказалось, что они в принципе не ортогональны и унаследуют недостатки синусоиды в части представления локальных особенностей сигналов. При этом функции анализа оказываются плохо обусловленными, что ведет к большим ошибкам в ходе преобразований, результаты которых «размазываются» как по всей частотной, так и пространственной областях. Таким образом, назрела острая необходимость в создании нового математического аппарата приближения функций и сигналов, свободного от указанных недостатков. Им и стали вейвлеты и вейвлет-преобразования. Термин вейвлет, введенный впервые специалистом по сейсмографии Морле (J. Morlet), в переводе с английского wavelet означает «короткая или маленькая волна». Такие волны распространяются в объеме Земли при различных ударных воздействиях, например взрывах или землетрясениях. У нас термин wavelet изначально переводили как «всплеск», «выброс» и т. д. [15], что менее удачно, поскольку большинство вейвлетов имеет временные зависимости с ярко выраженной колебательной компонентой (как и волны). Слова «всплеск» и «выброс» не отражают факта осцилляций вейвлетов. Вейвлеты занимают промежуточное положение между рассмотренными нами крайними случаями (синусоидой и импульсной функцией) и образуют некоторый набор функций, удовлетворяющих сформулированным далее условиям, основанным на использовании представления сигнала в виде (2.1). Довольно грубо можно представить вейвлеты как некоторые волновые функции, способные осуществлять преобразование Фурье не по всей временной оси (или оси x), а локально по месту своего расположения. Для этого вполне естественно, что кроме изменения «средней частоты» маленькие волны должны перемещаться к тому месту сигнала или функции, в котором должно осуществляться «локальное преобразование Фурье» и масштабироваться. Хотя подобная интерпретация вейвлетов способна дать стимул к начальному пониманию сути вейвлет-преобразований, она является чрезмерно упрощенной и подчас даже принципиально ошибочной. Прежде всего, потому, что подавляющее большинство вейвлетов не имеет ничего общего с модулированной по амплитуде синусоидальной волной. И свойства вейвлетов принципиально и сильно отличаются от свойств синусоиды. Базисными функциями вейвлетов могут быть различные функции, в том числе близко или отдаленно напоминающие модулированные импульсами синусоиды, функции со скачками уровня и т. д. Это обеспечивает различное представление сигналов с локальными скачками и разрывами наборами вейвлетов того или иного типа и открывает простор в подборе наиболее походящих вейвлетов, исходя из условий решаемых задач и делает такое решение отнюдь не тривиальным. К сожалению, почти все вейвлеты не имеют аналитического представления в виде одной

82

2.2. Основы теории вейвлет-преобразований формулы, но могут задаваться итерационными выражениями, легко вычисляемыми компьютерами. S. Wolfram — основатель корпорации Wolfram Research Inc. и создатель системы Mathematica [30] (лидера среди систем для аналитических вычислений) последние годы был занят удивительными исследованиями. Ему удалось показать и зачастую доказать, что многие процессы в природе описываются не столько математическими выражениями, сколько программами. Подобными тем, что применяются в компьютерах. Вейвлеты, несомненно, пополняют копилку этих удивительных представлений. И это делает создание программных инструментальных средств по вейвлетам и их применению столь же принципиально и практически важным, как и само по себе фундаментальное открытия вейвлетов как особых объектов математики. ВНИМАНИЕ Методика проектирования вейвлетов рассматривается в конце этой главы. Пока мы будем считать, что вейвлеты уже существуют и мы можем выбрать подходящий тип вейвлета для решения той или иной прикладной задачи.

Вейвлеты характеризуются своим временным и частотным образами — рис. 2.1. Временной образ определяется некоторой psi-функцией времени ψ(t ). А частотный ) образ определяется ее Фурье-образом ψ(ω ) = F (ω ), который задает огибающую спектра вейвлета. Фурье-образ определяется выражением: F (ω ) =



)

∫ ψ(t )e

−iωt

dt .

−∞

Для демонстрации этих параметров вейвлетов часто используется вейвлет типа «мексиканская шляпа». Его временной образ, в отличие от подавляющего большинства других вейвлетов, описывается аналитическим выражением: mhat (t ) = (1 − t 2 )e −t

2

2

.

Это выражение является второй производной гауссиана, в которой опущен не имеющий принципиального значения числовой множитель. С помощью системы Mathcad, имеющей оператор символьного преобразования → и средства построения графиков функций, нетрудно получить и представить графически временной и частотный образ этого вейвлета (рис. 2.2). Иногда предпочитают перевернутый вейвлет «мексиканская шляпа», у которого главный пик обращен вниз. Хорошо видно, что данный вейвлет напоминает затухающее синусоидальное колебание с некоторой «средней частотой» и площадью (над осью времени и под ней), близкой к нулю. На самом деле точное нулевое значение площади (над и под осью времени) — одно из важнейших условий, позволяющих отнести временную зависимость mhat(t) к вейвлетам. Если вейвлет в пространстве сужается, его «средняя частота» повышается, спектр вейвлета перемещается в область более высоких частот и расширяется. Этот процесс можно считать линейным — если вейвлет сужается вдвое, то его средняя частота и ширина спектра возрастают также вдвое. Тут важно отметить, что невозможна хорошая локализация вейвлетов одновременно во временной и частотной областях. Однако было бы неверно оценивать это обстоятельство как недостаток вейвлетов. Напротив, в сравнении с оконным преобразованием Фурье, именно хорошая временная локализация вейвлетов дает нужное средство для повышения частоты тех спектральных составляющих вейвле-

83

Глава 2. Вейвлеты и вейвлет-преобразования

Рис. 2.2. Временной и частотный образы вейвлета «мексиканская шляпа»

тов, которые и нужны для представления кратковременных локальных особенностей сигналов. Словом, ситуация, как в нашей модной песенке «что-то теряешь, что-то находишь». Даже интуитивно ясно, что совокупность волновых пакетов, напоминающих модулированную импульсами синусоиду или подобных приведенному на рис. 2.2 вейвлету «мексиканская шляпа», способна хорошо отражать локальные изменения сигналов. Однако вопрос о представлении произвольного сигнала в произвольно заданном промежутке времени целым рядом разных по виду вейвлетов пока остается открытым. Он будет решен ниже и, в частности, с введением понятия кратномасштабного анализа. Итак, с помощью вейвлетов сигнал представляется совокупностью волновых пакетов — вейвлетов, образованных на основе некоторой исходной (базовой, образующей и т. д.) функции ψ 0 (t ). Эта совокупность, разная в разных частях временного интервала определения сигнала и корректируемая множителями, имеющими вид порой сложных временных функций, и представляет сигнал с той или иной степенью детализации (рис. 2.3). Такой подход называют вейвлет-анализом сигналов.

Рис. 2.3. Иллюстрация к вейвлет-синтезу сигнала

84

2.2. Основы теории вейвлет-преобразований Число используемых при разложении сигнала вейвлетов задает уровень декомпозиции сигнала. При этом за нулевой уровень декомпозиции часто принимается сам сигнал, а последующие уровни декомпозиции образуют обычно ниспадающее вейвлет-дерево того или иного вида (иногда дерево задается «растущим» вверх). Точность представления сигнала по мере перехода на более низкие уровни декомпозиции снижается, но зато появляется возможность вейвлет-фильтрации сигналов, удаления из сигналов шумов и эффективной компрессии сигналов. Иными словами, становится возможной вейвлет-обработка сигналов. ВНИМАНИЕ Вейвлет-составляющие сигнала даже внешне не имеют ничего общего с синусоидами, и они представлены сигналами подчас весьма сложного и, порою, не вполне понятного вида. Это, кстати, существенный недостаток вейвлетов с позиции наглядного их понимания и представления. Он ликвидируется соответствующими инструментальными средствами, вошедшими в пакет расширения Wavelet Toolbox системы MATLAB и в расширения по вейвлетам различных СКМ.

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

• имеют вид коротких, локализованных во времени (или в пространстве) волновых пакетов с нулевым значением интеграла;

• обладают возможностью сдвига по времени; • способны к масштабированию (сжатию/растяжению); • имеют ограниченный (или локальный) частотный спектр. Этот базис может быть ортогональным (см. выше), что заметно облегчает анализ, дает возможность реконструкции сигналов и позволяет реализовать алгоритмы быстрых вейвлет-преобразований. Однако есть ряд вейвлетов, которые свойствами ортогональности не обладают, но которые тем не менее практически полезны — например, в задачах анализа и идентификации локальных особенностей сигналов и функций.

2.2.2. Аппроксимирующая и детализирующая компоненты вейвлет-анализа и синтеза сигналов Одна из основополагающих идей вейвлет-представления сигналов заключается в разбивке приближения к сигналу на две составляющие — грубую (аппроксимирующую) и утонченную (детализирующую) — с последующим их уточнением итерационным методом. Каждый шаг такого уточнения соответствует определенному уровню декомпозиции и реставрации сигнала. Это возможно как во временной, так и в частотной областях представления сигналов вейвлетами. Такой подход нельзя назвать абсолютно новым. Он реализован давным-давно, к примеру, в технике представления функций рядами Тейлора или Фурье, а также в современной технике обработки изображений. В математике можно найти немало соотношений, по форме (но вовсе не по существу) напоминающих выражения

85

Глава 2. Вейвлеты и вейвлет-преобразования для вейвлет-преобразований. Иногда это служит поводом к лжеоткрытию вейвлетов и вейвлет-преобразований на основании сходства некоторых интегральных преобразований (типа преобразований Фурье) и математических выражений из области вейвлет-преобразований. Обычно на такое сходство указывают не авторы преобразований, а их поклонники. Между тем новым в математике стало открытие целого класса функций, удовлетворяющих ряду особых и принципиально необходимых условий, способных представлять произвольные функции, сигналы и изображения и обеспечивать повышенную в сравнении с рядами Фурье эффективность обработки последних. В основе непрерывного вейвлет-преобразования НВП (или CWT — Continue Wavelet Transform) лежит использование двух непрерывных и интегрируемых по всей оси t (или x) функций: ∞

• вейвлет-функция psi ψ(t ) с нулевым значением интеграла ( ∫ ψ(е )dt = 0), опре−∞

деляющая детали сигнала и порождающая детализирующие коэффициенты; • маштабирующая или скейлинг-функция phi ϕ(t ) с единичным значением ∞

интеграла ( ∫ ϕ(е )dt = 1), определяющая грубое приближение (аппроксима−∞

цию) сигнала и порождающая коэффициенты аппроксимации. Аппроксимирующие phi-функции ϕ(t ) присущи далеко не всем вейвлетам, а только тем, которые относятся к ортогональным. Такие вейвлеты мы рассмотрим в дальнейшем, а пока остановимся только на свойствах детализирующей psi-функции ψ(t ) и на приближении ими локальных участков сигналов s(t). Psi-функция ψ(t ) создается на основе той или иной базисной функции ψ 0 (t ), которая, как и ψ(t ), определяет тип вейвлета. Базисная функция должна удовлетворять всем тем требованиям, которые были отмечены для psi-функции ψ(t ). Она должна обеспечивать выполнение двух основных операций:

• смещение по оси времени t — ψ 0 (t − b ) при b∈R; t  a

• масштабирование — a −1 2ψ 0   при a > 0 и a∈R+–{0}. Параметр a задает ширину этого пакета, а b — его положение. В ряде литературных источников вместо явного указания времени t используется аргумент x, а вместо параметров a и b используются имеющие тот же смысл иные обозначения. Нетрудно убедиться в том, что следующее выражение задает сразу два этих свойства функции ψ(t ):  t − b ψ(t ) ≡ ψ(a, b, t ) = a −1 2ψ 0  .  a 

(2.3)

Итак, для заданных a и b функция ψ(t ) и есть вейвлет. Вейвлеты, обозначаемые как ψ(t ), иногда называют «материнскими вейвлетами», поскольку они порождают целый ряд вейвлетов определенного рода. Вейвлеты являются вещественными функциями времени t и колеблются вокруг оси t (или x). Параметр b в (2.3) задает положение вейвлетов, а параметр a — их масштаб. Коэффициент a–1/2 обеспечивает нормирование энергии при изменении масштаба. О вейвлетах, четко локализованных в пространстве (или во времени), говорят, что они имеют компактный носитель.

86

2.2. Основы теории вейвлет-преобразований Применительно к сигналам как функциям времени параметр b∈R задает положение вейвлета на временной оси, а параметр a — задает его масштабирование по времени. Поскольку параметр масштаба a реально может быть только положительным и его нельзя брать равным нулю, то считается, что a∈R+–{0}. В дальнейшем мы будем опускать выражение –{0}, означающее исключение значения a = 0. На рис. 2.4 показано построение вейвлета, уже известного нам под названием «мексиканская шляпа». На этот раз «шляпа» представлена перевернутой сменой знака у исходной временной функции. Для вычисления и построения графиков этого вейвлета вновь использована популярная СКМ Mathcad.

Рис. 2.4. Иллюстрация к сдвигу и масштабированию вейвлета типа «мексиканская шляпа»

На рис. 2.4 представлена базисная функция данного вейвлета и функция ψ(a,b,t) для разных a и b, что иллюстрирует сдвиг вейвлета и его масштабирование. В Mathcad для обеспечения изменений a и b функцию ψ(a,b,t) приходится задавать в более полном виде, чем ψ(t), в котором зависимость ψ от a и b лишь подразумевается — см. (2.3). В частотной области малые значения a соответствуют высоким частотам, а большие — низким частотам. Таким образом, операция задания окна, используемая в оконном преобразовании Фурье, как бы заложена в самой базисной функции вейвлетов. Это создает предпосылки их приспособления (адаптации) к сигналам, которые могут быть представлены совокупностью вейвлетов.

2.2.3. Непрерывное прямое вейвлет-преобразование Для определенности, пусть энергия сигнала s(t), равная



R

s 2 (t )dt ,

87

Глава 2. Вейвлеты и вейвлет-преобразования конечна в пространстве V сигнала с областью ограничения R. Прямое непрерывное вейвлет-преобразование (ПНВП) сигнала s(t) задается, по формальной аналогии с преобразованием Фурье, путем вычисления вейвлет-коэффициентов по формуле: C (a, b ) = s (t ), ψ(a, b, t ) =



∫ s (t )a

−∞

 t − b ψ  dt ,  a 

−1 2

(2.4,a)

где обозначение K , K , введенное и поясненное в начале этой главы, означает скалярное произведение соответствующих сомножителей. С учетом ограниченной области определения сигналов и a,b∈R, a≠0: C (a, b ) =

∫ s (t )a R

 t − b ψ  dt .  a 

−1 2

(2.4,b)

Итак, вейвлет-коэффициенты определяются интегральным значением скалярного произведения сигнала на вейвлет-функцию заданного вида. Выражение (2.4,b) используется как основное для функции прямого непрерывного вейвлет-преобразования в пакете Wavelet Toolbox матричной системы MATLAB. Прямое вейвлет-преобразование можно рассматривать как разложение сигнала по всем возможным сдвигам и растяжениям/сжатиям сигнала s(t) или некоторой произвольной функции. При этом параметры a и b могут принимать любые значения в пределах указанных выше областей их определения. Заметим, что прямое преобразование Фурье также можно рассматривать как разложение по сдвигам (имеется в виду фазовый сдвиг гармоник, задающих положение их графиков) и растяжениям/сжатиям (определяемым значениями амплитуд гармоник), но применительно к одной функции (синусоиде), не очень удобной для представления локальных особенностей сигналов. ВНИМАНИЕ При вейвлет-преобразовании выбор типов вейвлетов намного более обширен, чем при преобразовании Фурье. В качестве вейвлет-функций могут использоваться ортогональные и биортогональные системы функций, функции, имеющие глобальный экстремум и быстрое затухание на бесконечности, и т. д. Основные требования к этим функциям обсуждались. Все это дает обширные возможности для представления различных сигналов.

2.2.4. Примеры выполнения прямого вейвлет-преобразования Для знакомства с техникой прямого вейвлет-преобразования удобна хорошо известная у нас СКМ Mathcad, общение пользователя с которой происходит с помощью математически ориентированного языка общения и визуального программирования [26—28]. Рисунок 2.5 демонстрирует документ системы Mathcad 2001, обеспечивающий создание вейвлета «мексиканская шляпа» и проведение прямого вейвлет-преобразования для функции, которая имеет вид симметричных прямоугольных импульсов — меандра. Они создаются с помощью выражения s(t): = sign(sin(0.04*t)), где sign — сигнум-функция sign(x) = 1 при x > 0, 0 при x = 0 и –1 при x < 0. В представленном документе системы Mathcad вычисление вейвлет-коэффициентов C(a,b) выполняется стандартным оператором интегрирования, что придает документу прекрасную наглядность. На другом рисунке (рис. 2.6) представлено прямое вейвлет-преобразование для периодической функции синуса в кубе. Такая функция имеет ряд особенностей, в

88

2.2. Основы теории вейвлет-преобразований частности, переходы производной через нуль в точках экстремумов и явные перегибы в моменты перехода функции через нуль.

Рис. 2.5. Прямое вейвлет-преобразование для периодических прямоугольных импульсов — меандра

Рис. 2.6. Прямое вейвлет-преобразование для периодических прямоугольных импульсов — меандра

89

Глава 2. Вейвлеты и вейвлет-преобразования Итак, эти примеры столь же наглядны, сколь и малоэффективны — даже на ПК автора этой книги с процессором Pentium III 600 МГц и оперативной памятью в 320 Мбайт время вычислений составляет до нескольких минут. Последнее связано с тем, что вычисление определенных интегралов в СКМ Mathcad реализовано довольно сложным адаптивным методом интегрирования. Он, кстати, неплохо, но ужасно медленно справляется с вычислением определенных интегралов с бесконечными пределами интегрирования, например такими как (2.4,а). Впрочем, надо отметить, что это имеет место не всегда и нередки отказы от вычисления — при этом Mathcad не выдает результат, а вычисляемое выражение окрашивается красным цветом. На практике для вейвлетов с компактным носителем нет никакой необходимости вычислять интегралы с бесконечными пределами. Можно учесть, что области изменения параметров a и b ограничены. К примеру, тот же результат можно получить, интегрируя в пределах от –N до N. Это соответствует вычислению вейвлет-коэффициентов по формуле (2.4,b). И еще одно важное обстоятельство. Практически невозможно вести вычисления с представленными непрерывными вейвлетами. На практике, так или иначе, приходится задавать дискретные значения a и b, например, для графического представления результатов вычислений, что и сделано в конце документов, представленных на рис. 2.5 и 2.6. Единственной специфической возможностью непрерывного преобразования в этих примерах, иногда ошибочно именуемого «дискретным», является практически произвольный (в пределах общих теоретических допущений) выбор значений a и b. Практически он сделан таким, чтобы представить вейвлет-спектрограммы в этих примерах в наиболее наглядном (а точнее детальном) виде. Непрерывное прямое вейвлет-преобразование обладает большой избыточностью, что и ведет к неоправданно большим затратам машинного времени на его вычисления. Однако, как уже отмечалось, это преобразование, даже с вейвлетами, не допускающими реконструкции сигналов, может использоваться для построения вейвлет-спектрограмм в плоскости «коэффициенты—время» (более точно, пожалуй, назвать эту плоскость «коэффициенты—сдвиг»). Такие спектрограммы и представлены в Mathcad документах рис. 2.5 и 2.6. В данном случае спектрограммы строятся с применением контурных графиков с функциональной закраской областей. Вейвлет-спектрограммы являются своеобразными образами функций и сигналов. Пакет Wavelet Toolbox системы MATLAB имеет специальные средства для построения спектрограмм сигналов с существенно улучшенной визуализацией, синтезированных вейвлетами. Эти спектрограммы также представляют значения коэффициентов вейвлетов в плоскости масштаб (номера коэффициентов) — время. Снизу вейвлет-спектрограммы расположены коэффициенты с малыми номерами, дающие детальную картину сигнала, а сверху — с большими номерами, дающие огрубленную картину сигнала. При этом их значения определяют цвет соответствующей (обычно достаточно малой) области спектрограммы. Избыточность непрерывного вейвлет-преобразования в некотором смысле дискредитирует его на практике. К примеру, вейвлет-спектрограммы в зависимости от их конкретной реализации, заданной соответствующими программными средствами, порой могут давать самую разнообразную окраску тех или иных локальных особенностей сигнала. Это может приводить к ошибочной интерпретации рентгеновских снимков или снимков томографа в медицине, лжеоткрытиям ту-

90

2.2. Основы теории вейвлет-преобразований манностей в астрофизике или к «обнаружению» полезных ископаемых по данных геофизической разведки, на самом деле просто несуществующих. Тем не менее вейвлет-спектрограммы являются важнейшим продуктом вейвлет-анализа сигналов и прекрасным дополнением к обычным спектрограммам на основе оконного преобразования Фурье, которые, кстати говоря, в расширенном варианте есть в пакете Signal Processing системы MATLAB. Вейвлет-спектрограммы сигналов (рис. 2.7) порой выделяют такие особенности сигналов, которые вообще незаметны на графиках сигналов и на Фурье-спектрограммах.

Рис. 2.7. Сигнал с особенностями и его вейвлет-спектрограмма

Чистым гармоническим сигналам соответствуют яркие горизонтальные полосы, где модуль некоторого коэффициента вейвлета велик. Локальным особенностям (нарушениям гладкости) отвечают вертикальные полосы, выходящие из точки, где находится особенность. Пикам сигналов соответствует сгущение светлых областей вейвлет-спектрограмм, а впадинам — сгущение темных областей. Чем резче выражена особенность сигнала, тем сильнее она выделяется на спектрограмме и тем выше уровни вейвлет-коэффициентов. Вейвлет-спектрограммы отчетливо выделяют такие особенности сигнала, как небольшие разрывы, изменение знаков первой и второй производных, изменение частоты составляющих сигнала во времени и т. д. Словом, именно те особенности сигнала, которые плохо выделяются на спектре фурье-сигнала, прекрасно видны на вейвлет-спектрограммах. Впрочем, вейвлет-спектрограммы по детальности представления особенностей сигнала могут уступать специальным методам представления спектров, отмеченным в главе 1. Различия между обычными спектрограммами фурье-анализа и вейвлет-спектрограммами носят принципиальный характер. Обычные спектрограммы удобны для обнаружения периодического стационарного компонента сигнала. Если такой компонент гармонический сигнал, то для его представления достаточна всего одна гармоника ряда Фурье. При вейвлет-анализе даже гармонического сигнала нам придется использовать множество вейвлетов, перекрывающих всю ось времени. Бесспорно, это может показаться совершенно неоправданным усложнением для представленного весьма частного случая — когда сигнал априорно известен как простая синусоида. В этом случае преобразование Фурье просто означает представление синусоиды синусоидой! Однако если сигнал имеет локальные особенности, если он не периодичен и не стационарен, то вейвлет-анализ и полученные по его результатам спектрограммы становятся именно тем инструментом исследования, к которым фурье-анализ в классическом виде неприменим. Большие уровни при вейвлет-анализе характерны только для коэффициентов тех вейвлетов, которые располагаются вблизи той или иной локальной особенности функции. Это позволяет легко определять местоположение локальных особен-

91

Глава 2. Вейвлеты и вейвлет-преобразования ностей, что практически невозможно при Фурье спектральном анализе. Таким образом, вейвлет-спектрограммы дают представление в амплитудно-временной области (если мы рассматриваем сигнал в виде временной функции). ВНИМАНИЕ Вейвлет-анализ сигналов открывает принципиально новые возможности в детальном анализе тонких особенностей сигналов. Это особенно важно для звуковых сигналов и сигналов изображения, где именно такие особенности подчас определяют качество их воспроизведения. Биология, картография, медицина, акустика, астрономия и космос — все это именно те области, где применение вейвлетов способно привести к новым открытиям, путем выявления характерных особенностей сигналов и изображений, малозаметных на временных зависимостях сигналов и на их спектрах Фурье. Однако пользоваться формально построенными спектрограммами, без тщательного изучения причин возникновения тех или иных их особенностей, недопустимо, ибо может привести к «лжеоткрытиям».

2.2.5. Вейвлеты в частотной области Мы уже говорили, что вейвлеты, будучи функциями времени, имеют свое час) тотное представление, или фурье-образ ψ(ω ). Налагаемое на функцию ψ(t ) усло) вие (нулевое значение интеграла) означает, что ψ(0 ) = 0. Последнее указывает на то, что фурье-образ смещен по оси времени и будет расположен вокруг некоторой ненулевой частоты ω 0, которую можно рассматривать как среднюю круговую частоту вейвлета. В частотной области спектры многих вейвлетов напоминает всплеск, пик которого приходится на частоту ω 0 (рис. 2.2). Если приближенно трактовать вейвлет как модулированную синусоиду, то ее частота и будет средней частотой вейвлета. В общем же случае, когда временная зависимость вейвлетов далека от синусоидальной, определение средней частоты требует обработки сигнала и реализуется итерационными методами — см. описание вейвлетов в конце этой главы. Частотный образ вейвлетов роднит их с оконным преобразованием Фурье. Нетрудно понять, что, подобрав набор вейвлетов, можно осуществить синтез локальной особенности любой функции. Разница, однако, в том, что свойства окна присущи самим вейвлетам, вследствие их частотной локализации, применение вейвлетов не ограничено фиксированными областями пространства или времени окна и, главное, существует обширный выбор вейвлетов для наиболее подходящего представления тех или иных функций. В их числе есть ортогональные вейвлеты, для которых возможность реставрации функций и сигналов после прямого и обратного преобразований теоретически обоснована и строго доказана. Частотное (спектральное) представление вейвлетов имеет важное значение и в определении фильтрующих свойств вейвлет-преобразований и основанном на них алгоритме быстрого вейвлет-преобразования (БВП). Нетрудно заметить, что есть прямая связь между временным и частотным представлением вейвлетов. Так, малые значения параметра a, характеризующие быстрые процессы в сигналах, соответствуют высоким частотам, а большие значения (соответствующие медленным изменениям сигнала) — низким частотам. ВНИМАНИЕ Временное и частотное представление вейвлетов — это две стороны одной медали, имя которой — вейвлет. Они образуют неразлучную пару и могут легко преобразовываться друг в друга. И каждое такое преобразование имеет свои достоинства и недостатки.

92

2.2. Основы теории вейвлет-преобразований Основанные на частотном подходе вейвлет-преобразования с помощью фильтров будут описаны далее.

2.2.6. Обратное непрерывное вейвлет-преобразование Обратное непрерывное вейвлет-преобразование (ОНВП) осуществляется по формуле реконструкции во временной области, которая имеет ряд форм, зависящих как от математической стилистики записи, так и (что более важно) от определения областей существования сигнала. В работе [11] формула реконструкции для произвольной функции f представлена в виде: ∞ ∞

dadb f , ψa,b ψa,b , 2 a −∞ −∞

f = C ψ−1 ∫



(2.5)

где ψa,b (x ) = a

−1 2

 x − b ψ .  a 

Обратите внимание на несколько непривычную запись интеграла в (2.5), которая часто используется в работе [11] и в других работах западных авторов. Непривычно записаны и параметры масштаба и сдвига (их индексы не надо отождествлять со степенями). Здесь параметры сдвига и сжатия меняются непрерывно вдоль R с ограничением a ≠ 0. Постоянная C ψ в (2.5) зависит только от ψ и определяется как: 2 ∞ ∞ ) ψ (ξ ) 2 −1 ) C ψ = 2 π ∫ dξ ψ(ξ ) ξ = 2 π ∫ dω. −1 −∞ −∞ ω

(2.6)

Выше приведены две формы записи выражения (2.6) для C ψ — одна соответствует стилистике [11], другая более привычна для наших читателей. Обе формы записи абсолютно идентичны. Считается, что C ψ < ∞, поскольку в ином случае выражение для f не имеем смысла. Если ψ является вещественной функцией, то оказывается справедливым следующее, более строгое, чем (2.6), выражение: ∞

0

0

−∞

2 −1 2 −1 ) ) C ψ = 2 π ∫ dξ ψ(ξ ) ξ = 2 π ∫ dξ ψ(ξ ) ξ < ∞.

(2.7)

В этом случае ∞



da db f , ψa,b ψa,b . 2 ∫ a 0 −∞

f = C ψ−1 ∫

(2.8)

Читатель, заинтересовавшийся подобными математическими выкладками, может обратиться к работам [1—12], где приведен еще целый ряд формул реконструкции. В частности, можно найти соответствующие формулы для так называемых «аналитических» f и ψ и даже для разных на этапах разложения и реконструкции сигналов функций ψ. В практическом аспекте интерес представляют лишь те формулы реконструкции, которые используются в конкретных программных инструментальных средствах, реализующих прямое и обратное вейвлет-преобразования. Так, ниже пред-

93

Глава 2. Вейвлеты и вейвлет-преобразования ставлена формула реконструкции сигнала s(t) в том виде, который использован в пакете расширения системы MATLAB 6.0/6.1/6.5 — Wavelet Toolbox (напоминаем, что он выбран в качестве основного для практического описания вейвлетов): s (t ) =

1 Kψ

∫ ∫ R+

R

 t − b  dadb , C (a, b )a −1 2ψ   a  a2

(2.9)

где K ψ — константа, определяемая функций ψ. Нетрудно понять, что здесь K ψ = C ψ и несколько иначе обозначены пределы интегрирования (с учетом области R и исключения отрицательных и нулевых значений параметра масштаба a, которые для целей практики не интересны). Основной задачей теории вейвлет-преобразований является доказательство того, что прямое и обратное вейвлет-преобразования способны обеспечить реконструкцию сигнала, причем точную или хотя бы приближенную, локальную или для сигнала в целом на заданном промежутке времени. Учитывая нулевое значение интеграла для функции ψ(t ) и то, что не все вейвлеты являются ортогональными, можно допустить, что эти преобразования не всегда способны восстановить любой сигнал в целом. Именно это и строго доказано в работах [11, 12]. Несколько парадоксально выглядят утверждения, что произвольный сигнал с отличным от нуля интегральным значением может быть восстановлен с помощью вейвлетов с нулевым интегральным значением. Однако, как показано И. Добеши в [11], это строго имеет место, если выражение для C ψ принадлежит (с некоторыми ограничениями) норме L1(R). Разумно считать, что вейвлет-преобразование на основе только детализирующей ортогональной вейвлет-функции ψ(t ) способно восстановить (реконструировать) по крайней мере тонкие детали временной зависимости сигнала s(t). Для восстановления полной формы сигнала приходится прибегать к применению еще одной временной функции ϕ(t ), называемой аппроксимирующей или «отцовским вейвлетом» — тут явный намек на то, что без существования папаши материнский вейвлет не способен воспроизвести потомство, полноценно представляющее функцию или сигнал. Причины, порождающие необходимость в использовании этой функции, и ее роль будут подробно рассмотрены чуть ниже — при описании кратномасштабного анализа. Вейвлеты, которые допускают применение такого анализа и обеспечивают полную реконструкцию сигнала, являются ортогональными вейвлетами. Пока именно они являются наиболее важным типом вейвлетов, способных полноценно приближать произвольные функции и сигналы. ВНИМАНИЕ Далеко не все типы вейвлетов гарантируют точную реконструкцию сигналов в целом и даже таковую вообще. Тем не менее применение и таких вейвлетов может быть полезно для выявления тонких особенностей сигналов или изображений, которые хорошо согласуются с определенными типами вейвлетов.

Обратное вейвлет-преобразование (2.9) не целесообразно выполнять прямо по представленным формулам с помощью СКМ, подобных Mathcad. Мы уже убедились в том, что куда более простое прямое вейвлет-преобразование выполняется крайне неэффективно и медленно. Намного более сложное обратное вейвлет-преобразование без специальных приемов выполнять «в лоб» неразумно. Эффективные приемы быстрого вейвлет-преобразования, к которым, прежде всего, относятся быстрые алгоритмы Малла, мы рассмотрим в этой главе несколько позже. Они реализованы в виде встроенных функций в ряд инструментальных пакетов расширения СКМ по вейвлетам и также будут рассмотрены ниже — в последующих главах книги.

94

2.2. Основы теории вейвлет-преобразований 2.2.7. Сравнение различных представлений сигналов Мы уже отмечали, что вейвлет-анализ не использует амплитудно-частотную область для визуального представления спектров сигналов, как это имеет место при спектральном анализе Фурье. Вместо нее используется область время (точнее сдвиг) — масштаб (см. выше). Теперь мы можем наглядно отобразить различные виды представлений сигналов в ходе тех или иных их преобразований — рис. 2.8. Здесь показаны виды представления сигналов не только с помощью вейвлет-преобразования, но и с помощью других видов преобразования сигналов, описанных в главе 1. На рис. 2.8 представлены следующие наиболее известные формы представления сигналов:

• Time Domain — временное представление (по Шеннону); • Frequency Domain — частотное представление (по Фурье);

Рис. 2.8. Различные представления сигналов

• STFT — кратковременное (оконное) быстрое преобразование Фурье; • Wavelet — вейвлет-преобразование. Нетрудно заметить, что вейвлет-преобразование отличается наиболее сложной и гибкой структурой представления сигналов в плоскости «Масштаб—Время» (Scale—Time). Это открывает возможности более полного и тонкого вейвлет-анализа сигналов, по сравнению с другими известными видами их анализа. При этом особенности сигналов привязаны к временной шкале.

2.2.8. О скорости вычислений при вейвлет-преобразованиях Порой может возникнуть сакраментальный вопрос: чем же, с точки зрения затрат машинного времени, вейвлет-преобразования лучше, чем преобразования Фурье? На этот вопрос ответить однозначно нельзя. Тем не менее, важно учитывать следующие обстоятельства:

• вейвлет-преобразование открывает принципиально новые возможности в обработке сигналов и изображений, и в этом случае затраты времени на вычисления отходят на второй план (особенно с учетом постоянного роста производительности компьютеров);

95

Глава 2. Вейвлеты и вейвлет-преобразования • некоторые вейвлеты (например, Хаара) являются намного более простыми функциями, чем синусоидальная функция, и в этом случае затраты времени на вейвлет-преобразования могут быть заметно ниже, чем на преобразования Фурье, где вычисления множества трансцендентных тригонометрических функций всегда требуют значительных затрат времени; • большинство вейвлетов представлено вещественными функциями, так что отсутствует необходимость привлечения для их вычисления аппарата комплексных чисел, затрудняющего вычисления; • для ряда типов вейвлетов имеются быстрые алгоритмы вейвлет-преобразования, при реализации которых затраты времени (как и при реализации БПФ) кардинально уменьшаются. В то же время еще раз подчеркнем, что большинство вейвлетов описываются итерационными выражениями, которые, в целом, сложнее синусоиды, но, как правило, легче вычисляются численными методами, реализованными в компьютерных программах.

2.3. Кратномасштабный анализ 2.3.1. Первое понятие об ортогональных вейвлетах Если желательно выполнение прямого и обратного вейвлет-преобразований, особенно с применением быстрых алгоритмов таких преобразований, нужно иметь вейвлеты на основе ортогональных базисных функций. К таковым относится, в частности, уже хорошо нам знакомый ряд функций 1, cos(x), sin(x), cos(2x), sin(2x), ..., cos(nx), sin(nx), ..., которые, при x = 2πft, образуют гармоники ряда Фурье для периодических сигналов. На промежутке 2π этот ряд обладает свойством ортогональности — интеграл от произведения любых двух функций этого ряда равен нулю. Именно это свойство лежит в основе строгого математического доказательства того факта, что ряд Фурье способен представлять с заданной погрешностью любой сигнал s(t), удовлетворяющий условиям Дирихле. Детали этого доказательства можно найти в учебниках по математике, например в [21]. В ортонормированном пространстве есть много и других классических ортогональных базисов (и многочленов) — Эрмита, Лагерра и др. Среди вейвлетов также заметное место занимают ортогональные и биортогональные вейвлеты, отличающиеся рядом выгодных качеств. Главные среди них — возможность восстановления (реконструкции) не только локальных особенностей произвольного сигнала s(t), но и сигнала в целом, а также возможность осуществления быстрых вейвлет-преобразований. Вейвлет, как уже отмечалось, представляет собой функцию одного аргумента (хотя могут существовать и многомерные вейвлеты), определенную в области R, которая, будучи подверженной фундаментальной операции сдвига и двухэлементного растяжения, порождает ортогональный базис L2(R). В дискретном представлении, которое мы обсудим позже, это означает, что функция ψj,k: = 2k/2ψ(2k – j), j, k∈Z образует полную ортонормированную систему для L2(R). Ограничения, представленные условием j, k∈Z, где {Z = ...—1, 0, 1, 2, ...} — множество целых чисел,

96

2.3. Кратномасштабный анализ диктуются практическими соображениями. А теперь дадим определение ортогонального вейвлета. Определение Функция ψ∈L2(R) называется ортогональным вейвлетом, если семейство {ψjk}, определяемое формулой ψj,k: = 2k/2ψ(2k – j), j, k∈Z, является ортонормированным базисом в пространстве L2(R), т. е. ψ jk , ψlm = δ jl ⋅ δ km , j , k , l , m ∈ Z , 1 длШ j = k — функция Кронекера, причем любая функция δ jk =  0 длШ j ≠ k f∈L2(R) может быть представлена рядом

где

f (x ) =



∑c

jk

ψ jk (x ),

j ,k = −∞

который сходится в L2(R). Функция Хаара H: = X[0,1/2] – X[1/2,1] — простейший пример ортогонального вейвлета. Функция phi у него имеет значение 1 в интервале [0, 1] и 0 за пределами этого интервала — рис. 2.1. Функция psi имеет вид прямоугольных импульсов — меандра (значение 1 в интервале [0, 0.5[ и –1 в интервале [0.5, 1]). Вейвлеты Хаара хорошо локализованы в пространстве, но плохо локализованы в частотной области, поскольку меандр имеет широкий спектр частот (теоретически бесконечный). Пример применения вейвлета Хаара для декомпозиции и синтеза вектора данных мы уже рассмотрели в начале этой главы. Ингрид Добеши первая предложила ортогональные вейвлеты, сосредоточенные на конечном интервале времени. К тому же эти вейвлеты имеют хорошо локализованный спектр в частотной области. «Ложкой дегтя» оказывается отсутствие у этих вейвлетов симметрии. Об усовершенствованных вейвлетах Добеши, названных койфлетами и имеющих лучшую симметрию, можно прочитать в [18]. Все эти вейвлеты реализуются итерационными формулами. Детально свойства вейвлетов Хаара, Добеши и других ортогональных вейвлетов мы опишем подробно несколько позже. Сейчас для нас главное то, что такие вейвлеты существуют и способны точно представлять сигналы на нулевом уровне реконструкции, и то, что они имеют алгоритм быстрых вейвлет-преобразований. Ортогональные вейвлеты, как отмечалось, характеризуются двумя функциями — вейвлет-функцией (psi) и масштабирующей функцией (phi). Их можно наблюдать и исследовать в окне GUI пакета Wavelet Toolbox, впрочем, как и другие типы вейвлетов. Ближе к концу этой главы описана методика создания ортогональных вейвлетов.

2.3.2. Диадное вейвлет-преобразование непрерывных сигналов Мы уже убедились в том, что непрерывное вейвлет-преобразование требует больших вычислительных затрат при его проведении. Поэтому для практического его применения необходима дискретизация значений a и b. Для избежания избыточности вейвлет-преобразований можно задавать дискретные значения a и b на некотором множестве Z = {...–1, 0, 1, ...} равные: a = 2 j и b = k2 j ,

97

Глава 2. Вейвлеты и вейвлет-преобразования где j и k — целые числа, хотя возможны и иные способы задания дискретных значений a и b. Параметр j, иногда обозначаемый в литературе как m, называется параметром масштаба. Подобная дискретизация является наиболее распространенной, а сетка дискретизации называется диадической. Соответственно это преобразование принято называть диадным (dyadic) вейвлет-преобразованием. Ее важной особенностью является исключение перекрытия носителей вейвлетов, т. е. устранение избыточности в ходе вейвлет-преобразований. Простейший пример диадного преобразования на основе вейвлета Хаара был дан в начале этой главы. Выделение диадного преобразования в отдельный класс оправдано тем, что и непрерывное вейвлет-преобразование на практике используется в том или ином дискретном варианте. Но при этом не накладывается особых ограничений на характер дискретизации параметров a и b и он может быть иным, чем в приведенном выше случае. Например, часто используется равномерный ряд значений a и b. В отличие от дискретного вейвлет-преобразования непрерывных сигналов, имеющего большую избыточность, диадное преобразование такой избыточности не имеет. Это означает, что компактные носители вейвлетов плотно укладываются на оси t (или x) не перекрываясь. Итак, при дискретных значениях a и b вейвлет-функция может быть представлена в виде: ψ j ,k (t ) = a0− j 2ψ(a0− j t − k ).

(2.10)

Условие, что множество {ψj,k}j,k∈Z образует ортонормированную систему, означает, что любая функция f∈L2(R) может быть представлена рядом: f =



j ,k ∈Z

f , ψ j ,k ∑ ψ j ,k .

(2.11)

Тогда выражение (2.11) рассматривается как наложение вейвлетов ψj,k, создающее функцию f. Разложение (2.11) чисто внешне напоминает разложение в ряд Фурье для функции f∈ L2(R) по экспоненциальным функциям ek: = eik. Но есть и серьезные отличия. Экспоненциальная функция этого вида имеет глобальный носитель. Таким образом, все члены разложения Фурье зависят от значения f в точке x. Вейвлеты обычно имеют или компактный носитель, или экспоненциальный порядок убывания на бесконечности. Итак, только члены разложения (2.11), соответствующие ψj,k с j, 2–k в окрестности точки x, вносят наибольший вклад в функцию в этой окрестности. Разложение (2.11) в этом смысле локально. Другое важное свойство вейвлет- разложения, не присутствующее напрямую в разложении Фурье, заключается в том, что коэффициенты вейвлет-разложения обычно несут всю необходимую информацию, чтобы установить, находится ли функция f в гладком пространстве. Итак, прямое дискретное вейвлет-преобразование (ПДВП) сводится в вычислению коэффициентов C(a,b) по формуле (2.4), естественно, с подстановкой дискретных значений a и b, т. е., в конечном счете: C ( j , k ) = d j ,k =



∫a

−∞

98

−j 2 0

ψ(a0− j t − k )s (t )dt .

(2.12)

2.3. Кратномасштабный анализ Здесь C(j,k) = dj,k — детализирующие коэффициенты для вейвлет-декомпозиции сигнала уровня k (оба обозначения этих коэффициентов равноценны). Теперь эти коэффициенты дискретны, т. е. вычисляются для заданных j и k. Обратное дискретное вейвлет-преобразование (ОДВП) для непрерывных сигналов задается формулой: s (t ) =

1 Cψ

∑ ∑ C ( j , k )a

−j 2 0

ψ(a0− j t − k ).

(2.13)

j ∈Z k ∈Z

В пакете Wavelet Toolbox осуществляется нормировка базовых функций в частотной области таким образом, что C ψ = 1. При этом окончательная формула реконструкции сигнала на основании (2.13) записывается в виде: s (t ) =

∑ ∑ C ( j , k )ψ

j ,k

(t ).

(2.14)

j ∈Z k ∈Z

Было доказано [11, 12], что для ортогональных вейвлетов возможно точное восстановление сигнала, именуемое реставрацией, после прямого и инверсного дискретного вейвлет-преобразований с использованием дополнительно аппроксимации сигнала с помощью phi-функции. В ином случае восстановление дает близкий к исходному сигналу s(t) приближенный сигнал, причем близость понимается в смысле обеспечения минимума среднеквадратической погрешности восстановления. Итак, диадное вейвлет-преобразование имеет характерную иерархическую структуру, которая может быть представлена ее деревом. При фиксированном индексе разрешения j вейвлеты имеют одинаковые масштабы и лишь дискретно сдвигаются во времени. При увеличении разрешения на 1 величина сдвига уменьшается вдвое и вейвлеты сжимаются. Нечто похожее есть и у рядов Фурье, но только в их случае каждому уровню разрешения соответствует пара гармонических функций, сдвинутых на полпериода. Любопытно, что и ряд Фурье можно рассматривать как грубое (нулевое) представление сигнала константой (значением «нулевой» гармоники) функции. Первое приближение — это сумма константы с первой гармоникой. Затем приближение постепенно улучшается увеличением числа членов ряда — учетом дополнительных гармоник. В принципе любое конечное число членов ряда Фурье можно считать за начальное приближение определенного уровня, а дополнительное число членов за уточнение (детализацию) сигнала или функции. При дискретном вейвлет-преобразовании также нет явно нулевого представления сигнала. Чаще всего в качестве его берется представление для j = 0, но может браться иное значение j от –∞ до –1. Описанный подход имеет особое значение для применения вейвлет-преобразований в графике. Он позволяет реализовать постепенное во времени формирование рисунков путем вейвлет-синтеза изображений. Это важно для передачи рисунков по Интернету, когда постепенная обрисовка рисунков позволяет отказаться от их использования (например, просмотра или использования в качестве гиперссылки) задолго до того, как вся информация о рисунке будет передана по каналу связи. Диадное вейвлет-преобразование часто называют дискретным. Однако такая подмена формулировки не совсем корректна. Правильнее говорить о диадном преобразовании как об особой разновидности непрерывного вейвлет-преобразования, позволяющей устранить избыточность последнего. Не стоит проводить па-

99

Глава 2. Вейвлеты и вейвлет-преобразования раллели между диадным вейвлет-преобразованием и дискретным преобразованием Фурье. Завершая описание диадного вейвлет-преобразования, стоит упомянуть еще один особый тип вейвлетов — фреймы. Вейвлет-фреймы используют кратное двум масштабирование, но непрерывные сдвиги. Таким образом, они сохраняют избыточность, присущую непрерывному преобразованию, но в гораздо меньшей мере, чем при этом преобразовании. Можно сказать, что вейвлет-фреймы занимают промежуточное положение между диадным и непрерывным вейвлет-преобразованиями. В описанные далее пакеты расширения вейвлет-фреймы как самостоятельный класс вейвлетов не включены, так что мы ограничимся лишь упоминанием о них. При необходимости соответствующие им инструментальные средства легко получить небольшой модификацией средств непрерывного вейвлет-преобразования.

2.3.3. Практические примеры вейвлет-преобразований в среде Mathcad Нетрудно догадаться, что представленный выше материал будет не слишком понятен многим читателям без практических примеров осуществления вейвлет-преобразований. Еще совсем недавно для этого нужно было иметь доступ к большой ЭВМ и недюжинные способности к программированию этих самых вейвлет-преобразований. Однако в наши дни мощные персональные компьютеры стали общедоступными, а для современных систем компьютерной математики (СКМ) уже создано множество программ для реализации вейвлет-преобразований. СКМ Mathcad стали первыми массовыми системами такого рода, в ядро которых были включены функции прямого и обратного дискретного вейвлет-преобразования, названные функциями волновых преобразований. В них пока используется единственный тип вейвлета — Добеши порядка 4 (DB4 или db4), что не мешает строить интересные практические примеры на выявление свойств вейвлет-преобразований. При этом реализация этих примеров не требует никаких дополнительных средств, а благодаря высокой скорости исполнения функций ядра можно получить вполне приличную эффективность вычислений. В ядро систем Mathcad (начиная с версии Mathcad 8) включены следующие две функции для вейвлет-преобразований:

• wave(V) — дискретное (диадное) вейвлет-преобразование действительных чисел (вектор V должен содержать 2n действительных значений, где n — целое число); • iwave(V) — обратное вейвлет-преобразование относительно преобразования wave (V — вектор, с числом элементов 2n). Рис. 2.9 показывает пример осуществления прямого дискретного вейвлет-преобразования для прямоугольного импульса. Для наглядности результаты преобразования представлены в виде графиков пяти первых вейвлет-коэффициентов. Нетрудно убедиться, что для этого типа вейвлета коэффициенты представлены прямоугольными (или ступенчатыми) волнами разной амплитуды, длительности и формы. Некоторые детали разложения сразу бросаются в глаза: • очевидно, что форма вейвлет-коэффициентов благоприятна для синтеза скачков и импульсов, содержащих скачки;

100

2.3. Кратномасштабный анализ • вейвлет-коэффициенты представляют собой прямоугольные колебания с явно кратной частотой осцилляций;

• число максимально возможных уровней разложения Nlevels невелико и оно вычисляется в документе рис. 2.9;

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

Рис. 2.9. Пример вейвлет-декомпозии для прямоугольного импульса (начало документа)

матрицы вейвлет-коэффициентов. Это позволяет ограничить число используемых коэффициентов значением L и тем самым менять уровень композиции (реконструкции) сигнала. Из представленного рисунка видно, что ограничение уровня реставрации ведет к появлению характерных для эффекта Гиббса выбросов в местах, где сигнал имеет скачки уровня. Чем ближе уровень реставрации к максимальному значению Nlevels, тем точнее реставрация. Рис. 2.10 дает временные зависимости реставрированного сигнала для трех уровней L = 3, 5 и 8. Теперь рассмотрим несколько более сложный сигнал — импульс с крутыми нарастанием и спадом и линейно растущей вершиной (линейным трендом в формулировке, принятой в анализе временных рядов). Такой сигнал можно рассматривать как суперпозицию прямоугольного и пилообразного сигналов. Здесь (см. рис. 2.11) вновь построены пять вейвлет-коэффициентов, представляющих декомпозицию сигнала. Тут любопытно отметить, что несмотря на отсутствие линейных трендов у самих вейвлет-коэффициентов линейно нарастающая часть импульса приближается превосходно, без малейших намеков на ступенчатость рис. 2.12. Здесь показано восстановление сигнала для трех уровней L = 3, 6 и 8.

101

Глава 2. Вейвлеты и вейвлет-преобразования А теперь рассмотрим вейвлет-преобразования для еще одного характерного сигнала — радиоимпульса, представляющего собой вырезку синусоидального сиг-

Рис. 2.10. Пример реконструкции сигнала — прямоугольного импульса (конец документа)

Рис. 2.11. Пример декомпозиции импульса с линейно нарастающей вершиной (начало документа)

102

2.3. Кратномасштабный анализ

Рис. 2.12. Пример реставрации импульса с линейно нарастающей вершиной (конец документа)

нала. Соответствующий документ с прямым вейвлет-преобразованием представлен на рис. 2.13. По-прежнему для данного типа вейвлета коэффициенты представляют собой прямоугольные формы. Несмотря на такую форму вейвлет-коэффициентов они весьма недурно воспроизводят довольно сложный сигнал в виде радиоимпульса. Это видно из окон-

Рис. 2.13. Пример декомпозиции радиоимпульса (начало документа)

103

Глава 2. Вейвлеты и вейвлет-преобразования чания документа рис. 2.14, представленного на рис. 2.13. Здесь реконструированный сигнал дан для уровней реконструкции L = 3, 5 и 8. Итак, мы проиллюстрировали процесс дискретных вейвлет-преобразований для трех видов сигналов, тех же, что рассматривались в главе 1. Все они представ-

Рис. 2.14. Пример реконструкции радиоимпульса (конец документа)

ляют трудности для стандартного преобразования Фурье из-за наличия скачков. Тем не менее во всех случаях простейшие функции преобразований (для всего одного типа вейвлета из многих десятков известных типов) дали вполне приличные результаты. В некоторой мере мы даже преуспели в выделении вейвлет-коэффициентов и в удалении части из них, что, по существу, означает осуществление процесса вейвлет-фильтрации. Последняя, естественно, сопровождается некоторыми искажениями — отличиями реконструированного сигнала от оригинального. Порою весьма заметными. Это хорошо видно во всех временных диаграммах реставрированного сигнала для различных уровней реставрации. Поскольку вейвлеты Добеши относятся к ортогональным, можно ожидать возможности точного восстановления произвольного сигнала. Разумеется, мы не можем воспроизвести весь бесконечный набор произвольных сигналов. Но приведем наглядный пример — вейвлет-преобразование для 512 точек сложного сигнала, представляющего собой смесь импульса с наклонной спадающей верхушкой, меандра с переменной частотой, синусоиды с нарастающей частотой и шумовой компоненты, созданной генератором случайных чисел (функция rnd в системе Mathcad). Этот пример дан на рис. 2.15. На этом рисунке показан как график реконструированного сигнала, так и исходный сигнал. Нетрудно заметить, что, несмотря на сложный и даже случайный

104

2.3. Кратномасштабный анализ

Рис. 2.15. Вейвлет-преобразования для сложного сигнала

(не детерминированный) характер исходного сигнала, связанный с наличием шумовой компоненты и потому исключающий его точное аналитическое описание, графики исходного и восстановленного сигналов практически совпадают и их пришлось искусственно сдвинуть относительно друг друга. Совпадают и графики на небольшом отрезке времени (снизу рис. 2.15). Этому не стоит удивляться — вычисленная максимальная среднеквадратическая погрешность ничтожно мала — менее 6 ⋅ 10–15. В заключение надо отметить, что в данных функциях системы Mathcad точной реконструкции соответствует максимальный уровень реконструкции, а не нулевой (к примеру, как в большинстве других СКМ). Это обстоятельство не принципиально, но при практическом использовании описанных функций о нем просто надо помнить.

2.3.4. Кратномасштабный анализ Мы уже знаем, что возможно представление сигнала на основе суммирования его грубого представления с детализирующими локальными представлениями сигнала в его разных местах. Для реализации этой важной возможности существует ряд вейвлетов, относящихся к ортогональным. Их можно создать, в общем случае, базируясь на представлении пространства сигналов V в виде системы вложенных подпространств V j , отличающихся друг от друга только перемасштабированием независимой переменной. Основанный на этом анализ называется кратномасштабным анализом (multiresolution analysis) — КМА. Иногда его называют и многомасштабным анализом, что, возможно, и точнее с позиции перевода этого термина. Этот вид анализа базируется на следующих исходных предпосылках:

• пространство сигналов V может быть разбито на иерархически вложенные подпространства V j , которые не пересекаются и объединение которых дает в пределе L2(R);

105

Глава 2. Вейвлеты и вейвлет-преобразования • для любой функции s (t ) ∈V j ее сжатая версия принадлежит пространству V j −1; • существует такая функция ϕ(x ) ∈V 0, для которой ее сдвиги ϕ 0, j (t ) = ϕ (t − k ) при k ∈ Z образуют ортонормированный базис пространства V 0. Так как функции ϕ 0,k (t ) образуют ортонормированный базис пространства V 0, то функции ϕ j ,k (t ) = 2 − j 2 ϕ (2 − j t − k )

(2.15)

образуют ортонормированный базис пространства V j . Таким образом, мы подошли к важному уточнению понятия о масштабирующей функции для дискретного вейвлет-преобразования непрерывного сигнала, называемой отцовским вейвлетом. Эти функции называются масштабирующими именно потому, что они создают свои масштабированные версии в пространстве сигнала. При этом сигнал s(t) может быть представлен множеством последовательных приближений sj(t) в субпространствах V j . Переменная j (нередко обозначаемая как m) в рамках такой трактовки называется масштабным коэффициентом. Поскольку дерево декомпозиции сигнала при вейвлет-преобразовании принято отсчитывать вниз (хотя и не всегда), то можно сказать, что сигнал s(t) есть предел аппроксимации s j (t ) ∈V j при j→ –∞, т. е. s (t ) = lim s j (t ). j → −∞

В соответствии с этим при больших j мы получаем грубые приближения сигнала, а при малых — точные. Приближение (аппроксимация) сигнала соответствует итерационной формуле:

∑ C ( j , k )ϕ (t ), (t ) = 2 ∑ h ϕ (2t − k ),

s j (t ) =

(2.16)

j ,k

j

ϕ 0,0

причем

(2.17)

k

k

где hk — некоторая последовательность. Сумма приближенной и детализирующей компонент, в конечном итоге, и дает исходный сигнал с тем или иным приближением — (2.16) и (2.17). В качестве стартового значения J часто берут 0, но, в принципе, начинать итерационный процесс приближения можно и при других значениях J. В общем случае реконструкция сигнала на n-м уровне разрешения jn задается выражением: s (t ) =



∑a

k = −∞

j n ,k

ϕ j n , k (t ) +





∑ ∑d

j ,k

ψ k (t ),

(2.18)

j = j n k = −∞

где через a обозначены коэффициенты аппроксимации, а через d — детализирующие коэффициенты. Кратномасштабное представление лежит в основе многих применений вейвлет-анализа и вейвлет-преобразований. Например, применительно к сигналам изображений оно означает представление изображений последовательностью образов с разной степенью их детализации. При этом для создания грубого образа сигнала служит функция ϕ(t ), а уточнение этого образа достигается с помощью вейвлет-функций или вейвлет-коэффициентов.

106

2.3. Кратномасштабный анализ Первым типом вейвлета, на котором была теоретически доказана возможность кратномасштабного анализа (КМА), был вейвлет Хаара, упомянутый чуть выше. На его примере было показано, что в ходе прямого и обратного диадного вейвлет-преобразования возможно полное восстановление сигнала, если для целых k существуют такие коэффициенты {hk }, которые удовлетворяют решению функционального уравнения t ϕ  =  2

2 ∑ hk ϕ (t − k ).

(2.19)

k

Это функциональное уравнение является одним из важнейших в теории вейвлет-анализа и именуется как уравнение масштабирования или уравнение уточнения (refinement equation). Для функции Хаара нетрудно найти, что коэффициенты h1 = h2 = 1 2 . Для других ортогональных вейвлетов эти коэффициенты были также вычислены (как это делается, мы рассмотрим чуть ниже в этой главе). Уравнение масштабирования (2.19) может иметь и несколько иные формы записи. Например, в пакете Wavelet Toolbox оно задано в виде (x = t для временных зависимостей): 1 x ϕ  = 2  2

∑ ω ϕ (x − n ) , причем (ω n

n ∈Z

)

n n ∈n

.

(2.20)

Нетрудно подметить, что вместо коэффициентов hk здесь использованы коэффициенты ωn и несколько иная нормировка. Это, разумеется, не принципиально, поскольку учитывается в конечных алгоритмах вейвлет-анализа и реализующих их вычислениях.

2.3.5. Кратномасштабный вейвлет-анализ в пакете Wavelet Toolbox Пожалуй, наиболее полные средства кратномасштабного вейвлет-анализа дает пакет расширения системы MATLAB 6/6.1/6.5 — Wavelet Toolbox. Этот пакет представляет собой мощную и вполне завершенную математическую компьютерную лабораторию, позволяющую выполнять все виды вейвлет-анализа как в командном режиме, так и с помощью средств интерфейса пользователя (GUI). Данный пакет, впервые описанный в [25], мы рассмотрим далее в главах 3 и 4, а пока ограничимся полученным в нем рисунком 2.16, который наглядно отображает его возможности в проведении анализа и реконструкции одномерных сигналов. Как хорошо видно из рис. 2.16, основой вейвлет-приближения одномерного сигнала s является получаемый в ходе прямого вейвлет-преобразования набор коэффициентов прямого вейвлет-преобразования — аппроксимирующих ai и детализирующих di (показаны коэффициенты с индексами i от 1 до 5). На рис. 2.16 первые представлены слева под временной зависимостью сложного сигнала, а вторые — справа. Сверху справа построена также вейвлет-спектрограмма данного тестового сигнала — cfs. Полезно обратить внимание на то, что «дерево» (или порядок следования) коэффициентов, дающий улучшение приближения, в данном пакете является ниспадающим, за нулевой уровень точной реконструкции сигнала принят сам сигнал. Чем меньше номера коэффициентов, тем ближе реконструированный сигнал к оригиналу.

107

Глава 2. Вейвлеты и вейвлет-преобразования

Рис. 2.16. Иллюстрация вейвлет-приближения для случая одномерного сигнала

Просмотр рис. 2.16 полезен в том смысле, что он позволяет понять, какими временными зависимостями характеризуются коэффициенты аппроксимации и детализации. Хорошо видно, что коэффициенты аппроксимации действительно являются грубыми (как бы сглаженными) копиями сигнала, тогда как детализирующие коэффициенты лишь выделяют локальные особенности сигнала. Узреть прямую связь между видом детализирующих коэффициентов и видом сигнала s может только очень опытный пользователь, много раз применявший вейвлет-технологию для обработки разных сигналов.

2.3.6. Точное и грубое разрешение Дискретизация параметра a = 2j по существу означает возможность управления разрешением сигнала в ходе вейвлет-преобразований. Значения параметров масштаба a и разрешения 1/a представлены ниже. J

10

9



2

1

0

–1

–2

–3

Масштаб

1024

512



4

2

1

1/2

1/4

1/8

Разрешение

1/210

1/29



ј

Ѕ

1

2

4

8

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

108

2.4. Частотный подход и быстрое вейвлет-преобразование по вейвлетам системы MATLAB), при достижении которого дальнейшее изменение уровня становится нецелесообразным, поскольку погрешность преобразований падает до уровня погрешности машинных расчетов.

2.4. Частотный подход и быстрое вейвлет-преобразование 2.4.1. Частотный подход к вейвлет-преобразованиям Хотя при восстановлении сигналов в ходе вейвлет-преобразований можно наглядно пользоваться временными функциями — вейвлетами, они применяются скорее для демонстрации сущности вейвлет-декомпозиции и реставрации сигналов, чем для практической работы по обработке и представлению реальных сигналов. Она же обычно базируется на особой трактовке вейвлет-преобразований в частотной области и позволяет плодотворно использовать хорошо разработанный и давно известный аппарат частотной фильтрации (см. главы 1—3 книги [28]) и методы быстрого вейвлет-преобразования (БВП). Они основаны на пирамидальном алгоритме Малла и прореживании спектра вейвлетов по частоте. Вначале рассмотрим частотный подход чисто умозрительно и без строгих доказательств. В соответствии с этим подходом, частотная область вейвлетов может быть разбита на две составляющие — низкочастотную и высокочастотную. Их частота раздела равна половине частоты дискретизации сигнала. Для их разделения достаточно использовать два фильтра с одинаковой граничной частотой — низкочастотный Lo и высокочастотный Hi, ко входам которых подключается сигнал s. Фильтр Lo дает частотный образ для аппроксимации (грубого приближения) сигнала, а фильтр Hi — для его детализации. Полосы частот пропускания фильтров будем считать равными, что соответствует делению общей полосы частот сигнала на 2. Пожалуй, главным выводом из теории вейвлет-преобразований является вывод о соответствии вейвлет-коэффициентов коэффициентам передаточной характеристики этих фильтров. Другими словами, коэффициенты фильтров Hi и Lo и есть детализирующие коэффициенты вейвлет-декомпозиции сигналов и их коэффициенты аппроксимации. Поскольку фильтры передают только половину всех частотных компонент сигнала, то не попавшие в полосу прозрачности компоненты могут быть безболезненно удалены. По аналогии с казней каждого десятого в провинившихся войсковых подразделениях Древнего Рима, эта операция получила название «децимация». В количественном отношении ей придается более общий смысл. Так, децимация вдвое обозначается как ↓2 и означает удаление половины отсчетов. Если просто сложить полученные на выходах фильтров сигналы, то получится исходный сигнал, т. е. будет иметь место полная реконструкция сигнала на ее начальном уровне. Однако Lo фильтр можно, в свою очередь, разложить на два фильтра и снова подвергнуть спектры этих новых фильтров операции децимации. Это означает изменение уровня реконструкции, которое можно представить деревом реконструкции (что будет сделано позднее). Таким образом, может быть сформирована система вейвлет-фильтров, реализующих операцию декомпозиции сигнала того или иного уровня.

109

Глава 2. Вейвлеты и вейвлет-преобразования Подобные операции, в конце концов, сокращают спектр соответствующих компонентов сигнала, что лежит в основе приближенного представления сигнала на разных уровнях декомпозиции сигнала. Такое представление необходимо, например, для реализации операций сжатия сигналов и их очистки от шума. Операция последовательной разбивки Lo фильтров и постепенного огрубления сигнала была предложена Малла и известна как алгоритм Малла (в его французской фамилии Mallat буква «t» не читается). Возникает законный вопрос, почему именно НЧ-фильтр удостоен операции деления? Можно сказать, что это следствие устоявшейся практики применения радиотехнических сигналов — основные частотные компоненты их расположены обычно в низкочастотной области спектра. Считается, что именно она несет больше информации, чем высокочастотная (уточняющая) область. Разумеется, принимать это за абсолютную истину не стоит — в наше время есть виды сигналов, где это допущение попросту неверно. И, как станет ясно из дальнейшего, возможно деление полос и ВЧ-фильтров, порождающее особые, так называемые «пакетные» вейвлеты.

2.4.2. Основы вейвлет-фильтрации Теперь рассмотрим сказанное более подробно. Так, вполне очевидно, что каждый ортогональный вейвлет имеет свой Фурье-образ. В ряде работ, включая опи) сание пакета Wavelet Toolbox, было показано, что Фурье-образ ψ(ω ) можно представить реализацией двух фильтров — низкочастотного H (ω ) и согласованного с ним высокочастотного фильтра: G (ω ) = − e −iω H (ω + π ). При этом Фурье-образ вейвлета имеет вид: ) ) ψ(2ω ) = G (ω )ϕ (ω ).

(2.21)

(2.22)

В пакете Wavelet Toolbox задан ряд свойств базовых фильтров H (ω ) со следующими их характеристиками:

• фильтры имеют тип ФНЧ с импульсной характеристикой класса FIR (КИХ);

• длина вектора коэффициентов фильтра равна 2N; • сумма коэффициентов фильтра равна 1; • норма вектора коэффициентов фильтра равна 1 2. Количественные данные по вейвлет-фильтрам в пакете Wavelet Toolbox системы MATLAB нетрудно проверить с помощью соответствующих простых команд командного режима работы. Например, для вейвлета Добеши db4, после его загрузки командой load, имеем: >>load db4 >>db4 db4 = 0.1629 0.5055 0.4461 -0.0198 -0.1323 0.0218 0.0233 -0.0075 >>length(db4) ans = 8

110

2.4. Частотный подход и быстрое вейвлет-преобразование >>sum(db4) ans = 1.0000 >>norm(db4) ans = 0.7071

2.4.3. Квадратурные фильтры Для обоснования частотного подхода рассмотрим весьма важное для него понятие о квадратурных фильтрах (КФ). Кратномасштабный анализ основан на двух хорошо известных методах обработки сигналов, заимствованных из теории фильтрации сигналов:

• разложение сигнала по поддиапазонам (subband decomposition) при помощи квадратурных зеркальных фильтров (quadrature mirror filters);

• пирамидальное представление (pyramid representation) [24]. Первый метод возник из потребностей обработки звуковых сигналов, а второй — из обработки сигналов изображения. Пусть имеется некий обобщенный сигнал в виде последовательности чисел x = {xn }nn == ∞−∞ . Для сглаживания сигнала, подавления шума и других целей часто используют фильтры, базирующиеся на операции свертки: yn =

∑h x k

n−k

.

(2.23)

k

Сигнал y = { yn }nn == ∞−∞ получается «локальным усреднением» сигнала x с помощью набора «весов» h = {hk }. Используя понятия частотного анализа, можно записать Y (ω ) = H (ω )X (ω ),

(2.24)

или, что принято в анализе цифровых сигналов, в терминах z-преобразования Y (z ) = H (z )X (z ).

(2.25)

*

Транспонированный фильтр h состоит из тех же коэффициентов, что и фильтр h, но переставленных в обратном порядке. В частотной области транспонированный фильтр записывается как H (ω ). Коэффициенты всех сигналов и фильтров предполагаются вещественными. Величина X (ω ) характеризует распределение энергии сигнала по частотам ω ∈ (− π , π ). А теперь попробуем найти два фильтра, которые позволяли бы разложить сигнал на две частотные компоненты — высокочастотную X H (z ) и низкочастотную X G (z ), их проредить операцией децимации ↓2, а затем, с помощью транспонированных фильтров, точно восстановить по этим данным исходный сигнал. Этот, давно известный прием можно применять неоднократно, что и лежит в основе быстрых алгоритмов преобразования Фурье и алгоритмов вейвлет-преобразований для приближенного представления сигналов. Если спектр сигнала ограничен, то разумно сделать полосы пропускания фильтров равными половине общей полосы частот спектра сигнала — другими словами граничная частота фильтров должна быть равна половине частоты квантования сигналов. Пусть теперь вектор Y (z ) перед кодированием прореживается вдвое, а перед восстановлением исходного сигнала доводится до исходной длины вставкой нулей между соседними значениями его элементов. При этом z-преобразование из

111

Глава 2. Вейвлеты и вейвлет-преобразования Y (z ) превращается в (Y (z ) + Y (− z )) / 2. Подставим сюда (2.25) для каждого из фильтров и получим z-преобразования компонент перед восстановлением X H (z ) → (H (z )X (z ) + H (− z )X (− z )) / 2 X G (z ) → (G (z )X (z ) + G (− z )X (− z )) / 2. z-преобразования транспонированных фильтров имеют вид H (z −1 ) и G (z −1 ). Сигнал восстановится с их помощью точно, если: X (z ) = (H (z −1 )H (z ) + G (z −1 )G (z ))X (z ) / 2 + (H (z −1 )H (− z ) + G (z −1 )G (− z ))X (− z ) / 2. Тогда условия точного восстановления (perfect reconstruction, PR) будут иметь вид: H (z −1 )H (z ) + G (z −1 )G (z ) = 2 H (z −1 )H (− z ) + G (z −1 )G (− z ) = 0. В матричной форме они записываются так:

(

)

M (z ) M (z −1 )

t

2 0  =   = 2E , 0 2 

где  H (z ) G (z )  M (z ) =  .  H (− z ) G (− z ) Подставив z = eiω , получим условия на ДПФ искомых фильтров: 2

2

H (ω ) + G (ω ) ≡ 2,

(2.26)

H (ω )H (ω + π ) + G (ω )G (ω + π ) = 0.

(2.27)

Если 2

2

H (ω ) + H (ω + π ) ≡ 2, то, положив G (ω ) = − e −iω H (ω + π ), мы видим, что (2.26) выполняется. Фильтры H и G (или L), удовлетворяющие условию (2.26), называются квадратурными зеркальными фильтрами — КЗФ (quadrature mirror filters, QMF). Понятие о них широко используется и в технике вейвлет-преобразований и составляет основу быстрого вейвлет-преобразования (БВП). Итак, для ряда типов вейвлетов частотное представление открывает возможности использования быстрого вейвлет-преобразования, в основе которого лежит известный принцип «разделяй и властвуй» — т. е. дели спектр на две составляющие и прореживай их по частоте. Его последовательное применение по существу и есть пирамидальный алгоритм Maлла, дающий приближения сигнала с уменьшающейся по мере удаления от вершины дерева детальностью представления сигнала.

112

2.4. Частотный подход и быстрое вейвлет-преобразование 2.4.4. Быстрое вейвлет-преобразование и алгоритм Малла Для ортогональных вейвлетов существует быстрое вейвлет-преобразование (Fast Wavelet Transform), называемое также алгоритмом Маллa (Mallat algorithm). Оно реализует основанный на фильтрации итерационный алгоритм, причем число итераций N может быть произвольным. Прежде всего отметим, что быстрое вейвлет-преобразование можно осуществлять, вычисляя аппроксимирующие и детализирующие коэффициенты в формуле реконструкции (2.18) по формулам: a j +1,k =

∑h a m

m

j ,2 k +m

a0,k =

при

и d j +1,k =

∑g

m

a j ,2 k +m ,

m

∫ f (t )ϕ(t − k )dt .

Классическая схема Малла, однако, предполагает рекурсивное применение процедуры реконструкции сигнала в частотной области без явного вычисления a и d. Коэффициенты фильтров при этом соответствуют приведенным ниже обозначениями: Тип фильтра

НЧ

ВЧ

Декомпозиция

Lo_D

Hi_D

Реконструкция

Lo_R

Hi_R

Первый шаг алгоритма Малла поясняется следующей диаграммой вейвлет-декомпозиции сигнала: → Lo_D → ↓2 → cA1 (коэффициенты аппроксимации уровня 1) s  → Hi_D → ↓2 → cD1 (детализирующие коэффициенты уровня 1) Сигнал s подается на фильтры декомпозиции низких и высоких частот, после чего с помощью операции децимации ↓2 (уменьшения числа частотных составляющих вдвое) можно получить коэффициенты аппроксимации на выходе фильтра низких частот и детализирующие коэффициенты на выходе фильтра высоких частот. Далее этот алгоритм может быть продолжен по схеме: → Lo_D → ↓2 → cAj+1 (коэффициенты аппроксимации уровня j + 1) cAj  → Hi_D → ↓2 → cDj+1 (детализирующие коэффициенты уровня j + 1) В результате мы получим полный набор аппроксимирующих и детализирующих коэффициентов, вплоть до уровня декомпозиции j + 1. Это и есть вейвлет-декомпозиция сигнала. По этому набору коэффициентов мы может построить вейвлет-спектрограмму сигнала, например для оценки его особенностей. Теперь перейдем к диаграмме быстрой вейвлет-реконструкции. Используя операцию, обратную децимации, ↑2 (увеличение числа вдвое составляющих путем добавления нулевых компонентов вперемежку с имеющимися компонентами), можно получить диаграмму понижения уровня коэффициентов аппроксимации: cAj → ↑2 → Lo_R →  → функция wkeep → cAj-1

113

Глава 2. Вейвлеты и вейвлет-преобразования cDj → ↑2 → Hi_R →

Рис. 2.17. Иллюстрация операции ↑, обратной децимации

Смысл операции ↑, обратной децимации, поясняет рис. 2.17. Понижение уровня коэффициентов аппроксимации означает постепенное приближение к исходному сигналу. В целом, несколько упрощенно (обозначение i указывает на итерационный характер вычислений), процесс декомпозиции-реконструкции можно представить общей диаграммой вейвлет-преобразований: → Lo_D → ↓2 → cA → s  → Hi_D → ↓2 → cD →

→ cA → ↑2 → Lo_R → i

(+) → se → cD → ↑2 → Hi_R →

На рис. 2.18 представлена более наглядная диаграмма реализации быстрого многошагового алгоритма Малла на основе вейвлет-фильтрации. Для наглядности здесь сигнал представлен 1000 отсчетами и схематично показаны АЧХ фильтров. Из этой диаграммы легко проследить за процессом декомпозиции вейвлет-филь-

Рис. 2.18. Структура многошагового алгоритма Малла при декомпозиции и реставрации сигнала

тров и сигналов и затем за процессом реставрации сигнала. ВЧ-фильтры обозначены как H, а НЧ-фильтры как L. Итак, в результате этого процесса исходный сигнал s раскладывается на вейвлет-компоненты вплоть до заданного уровня декомпозиции, после чего, в ходе реконструкции, восстанавливается до приближенного сигнала se→s. Степень приближения зависит от уровня декомпозиции и реконструкции. Нулевой уровень соответствует точному

114

Рис. 2.19. Структура вейвлет-представления сигнала

2.5. Специальные вопросы вейвлет-преобразований восстановлению сигнала (se = s). Рисунок 2.19 показывает обычную диаграмму разложения (сверху вниз) и реконструкции (снизу вверх) сигнала s. На этой диаграмме коэффициенты аппроксимации сигнала обозначены как A, а детализирующие коэффициенты как D. Цифры указывают на уровень декомпозиции и реконструкции сигнала (нулевой уровень отдельно не указывается, это есть сам сигнал s). Читатель легко найдет сходство между этой диаграммой и диаграммой вейвлет-преобразований в частотной области, представленной на рис. 2.18. Диаграмму рис. 2.19 можно рассматривать как дерево декомпозиции сигнала.

2.5. Специальные вопросы вейвлет-преобразований 2.5.1. Пакетные вейвлеты Итак, при обычном алгоритме Малла на каждом шаге «отрезается» половина НЧ-части диапазона сигнала. Напоминаем, что реализация алгоритма исходит из бытующего представления о большей информационности низкочастотной части спектра сигнала, что для многих видов сигнала (например, цифровых) не всегда справедливо. Р. Койфманом и М. Викерхаузером был предложен усовершенствованный алгоритм Малла, структура которого представлена на рис. 2.20. Здесь процесс «рас-

Рис. 2.20. Структура (дерево) вейвлет-представления сигнала для пакетных вейвлетов

щепления» (splitting) дерева применен как для НЧ-, так и ВЧ-компонент сигнала. При одном из вариантов такого алгоритма операция «расщепления» применяется к любой из получающихся ВЧ-компонент. Этой схеме можно дать истолкование применительно к вейвлетам. В этом случае происходит замена вейвлета ψ(t ) на два новых вейвлета: ψ1 (t ) =

∑ h ψ(t − n ) и ψ (t ) = ∑ g ψ(t − n ). n

2

n

И так далее. Новые вейвлеты тоже локализованы во времени (пространстве), но на вдвое более широком отрезке, чем исходный вейвлет. Можно нарисовать бинарное дерево разложения, и ему будет соответствовать набор подпространств с базисами, построенными по аналогичному рецепту. Функции, порождающие эти базисы, называются вейвлет-пакетами (wavelet-packets). Преобразование с помощью вейвлет-пакетов является адаптивным вейвлет-преобразованием, поскольку оно легко приспосабливается к особенностям сигнала и

115

Глава 2. Вейвлеты и вейвлет-преобразования может успешно использоваться для компрессии сигналов и их очистки от шумов — см. ниже. В частности, имеется возможность отсечения части ветвей детализирующих коэффициентов дерева. Достоинством (а в какой-то мере и недостатком) вейвлет-пакетов и адаптивных алгоритмов их реализации является отсутствие необходимости в обучении системы (характерном, например, для систем на основе нейронных сетей [36]) и даже в оценке статистических характеристик сигналов. Все, что нужно, — это ввести оценку стоимости вейвлет-коэффициентов, мерой которой может служить энтропия — концентрация числа вейвлет-коэффициентов, требующихся для описания сигнала с некоторой заданной точностью (или погрешностью).

2.5.2. Дискретный вейвлет-анализ и временные ряды Уже давно внимание математиков и ученых привлекают временные ряды. Напомним, что временным рядом называют совокупность некоторых значений (сигналов или данных) в отдельные моменты времени. Это могут быть температуры воздуха, отмечаемые ежедневно, курс доллара или стоимость акций компаний Intel или Microsoft. Основной задачей теории временных рядов является изучение их поведения во времени и, что особенно желательно в сфере решения экономических задач, прогнозирования тех или иных событий, наподобие пресловутого «черного вторника», вмиг превратившего наш «серебряный» рубль в «деревянный». До сих пор основным методом исследования таких рядов был статистический метод, который лишь частично мог решать задачи предсказания. В популярной литературе по временным рядам под компонентами детерминированного ряда часто предполагают выражения вида: dt = trt + st + ct, где t = 1, 2, ..., N. Первая составляющая является трендом, вторая сезонной составляющей и третья — циклической компонентой. ВНИМАНИЕ В последние годы к указанным составляющим временных рядов стали добавлять новую составляющую — интервенцию, которая описывает резкие изменения временного ряда в определенные (чаще всего довольно редкие) моменты времени.

Имеется много типов временных рядов. Ряды Фурье, к примеру, получили признание как один из типов временных рядов, в частности, удобных для оценки периодических изменений компонент временного ряда. Особенно велика роль временных рядов в математической экономике, где на их основе возможно предсказание некоторых событий. На наш взгляд, большие возможности в анализе временных рядов заложены в дискретных и в диадных вейвлет-преобразованиях. По существу, дискретный сигнал, для обработки которого используются вейвлет-преобразования, представляет собой типичный временной ряд. Он может содержать шумовые компоненты и удовлетворять известным статистическим требованиям для временных рядов. Следует отметить, что дискретное вейвлет-преобразование непрерывных сигналов и вейвлет-преобразование дискретных во времени сигналов, например временных рядов, далеко не одно и то же. Строго говоря, для дискретных сигналов не существует базисных функций, масштабированные и смещенные версии которых дают базис пространства сигнала. Тем не менее алгоритм Малла на основе

116

2.5. Специальные вопросы вейвлет-преобразований концепции вейвлет-фильтров применим для вейвлет-преобразований дискретных во времени сигналов. Для лучшего знакомства с тонкостями применения такого вида преобразований можно рекомендовать обращение к литературе [1—11]. Мощные средства выявления тонких локальных особенностей временных рядов (и представляющих их сигналов) и превосходная степень их визуализации — все это позволяет надеяться на то, что уже в ближайшее время вейвлеты станут одним из серьезных инструментов анализа временных рядов самого различного назначения. По существу, для временных рядов в виде дискретных сигналов они уже стали таковыми. И в следующей главе их возможности будут рассмотрены самым детальным образом. Уже известен ряд успешных попыток применения вейвлетов для анализа временных рядов с целью предсказания таких событий, как возникновение землетрясений, цунами, обвалов в финансовой сфере, возможность проведения террористических актов (увы, даже подобных тем кошмарным событиям, которые произошли в США в очередной «черный вторник» 11 сентября 2001 года), последствия бомбардировок в локальных конфликтах, при анализе томограмм в реальном масштабе времени в медицине и др.

2.5.3. Двумерные вейвлеты Для работы с изображениями необходимо обрабатывать двумерные массивы данных. Для общности пусть они по-прежнему задаются в пространстве V , но теперь как функции двух переменных x и y. Есть два основных способа осуществления вейвлет-преобразований такого сигнала:

• развертка двумерного массива в одномерный массив тем или иным способом и применение одномерных вейвлет-преобразований;

• применение специальных двумерных вейвлетов. Первый способ не представляет особого интереса ввиду его очевидности. Поэтому рассмотрим более интересный второй способ. В этом случае вместо выражения для одномерной вейвлет-функции вида  x − b a −1 2ψ 0  ,  a  записанной с независимой переменной x, мы можем воспользоваться ее двумерным аналогом, учитывая, что теперь по каждому измерению (x и y) пространства сигнала V имеются свои значения a и b. Обозначив их как a1 и a2, а также b1 и b2, мы можем записать выражение для двумерного непрерывного вейвлета в виде: 1  x − b1 y − b2  2 ψ 0 ,  , где V = x , y ∈ R . a2  a1 ⋅ a2  a1 Для двумерного дискретного вейвлет-анализа непрерывных сигналов мы должны также задать условия дискретизации: ( j , k ) ∈ Z 2, a = 2 j , b = k 2 j = ka, ψ j ,k = 2 − j 2 ψ(2 − jV − k ), ϕ j ,k = 2 − j ϕ (2 jV − k ). Попробуем распространить описанные выше положения частотно-временного представления вейвлет-анализа на случай сигналов в виде функций двух перемен-

117

Глава 2. Вейвлеты и вейвлет-преобразования ных x и y. В данном случае можно воспользоваться тензорным произведением одномерных КМА и в качестве двумерной масштабирующей функции взять Ф (x , y ) = ϕ (x )ϕ ( y ). Тогда, с учетом известного соотношения для тензорного произведения, вместо одного вейвлета теперь возникает три: ΨLH (x , y ) = ϕ (x )ψ( y ), ΨHL (x , y ) = ψ(x )ϕ ( y ), ΨHH (x , y ) = ψ(x )ψ( y ). Здесь по-прежнему L означает реализацию фильтра низких частот, H — реализацию фильтра высоких частот. Скорректированные с учетом приведенных выше соотношений формулы для вейвлет-преобразований двумерных сигналов и изображений используются во всех описанных в данной книге инструментальных пакетах для осуществления вейвлет-преобразований изображений.

2.5.4. Вейвлет-компрессия сигналов и изображений и их очистка от шумов Вейвлеты открывают новые и необычные подходы в сокращении избыточной информации и в очистке сигналов и изображений от шума. Суть одного из таких подходов заключается просто в ограничении уровня детализирующих коэффициентов. При этом возможно как глобальное ограничение всех коэффициентов по уровню, так и локальное ограничение. Более того, возможны разные типы порогов ограничения, например, мягкий в виде одной вертикальной ступеньки передаточной характеристики ограничения или жесткий в виде дополнительных горизонтальных полочек. Их реализацию и графическое представление мы рассмотрим в следующей главе. На практике при сжатии данных или очистке сигналов от шума мы почти всегда имеем дело только с частотными фильтрами. За счет выбора оптимального дерева для данного сигнала или класса сигналов иногда можно существенно (в несколько раз) повысить эффективность сжатия. Для выбора оптимального (или квазиоптимального) дерева разработан ряд методов. Как отмечалось, некоторые из них основаны на введении понятия энтропии, позволяющей оценить информативность набора коэффициентов. Функция стоимости на основе понятия энтропии M имеет различные значения. Она большая, если вейвлет-коэффициенты получаются примерно одной величины, и мала, если они существенно отличаются. Это значит, что любое усреднение коэффициентов увеличивает энтропию. Функция стоимости должна быть аддитивной, что для сигнала x = s означает следующее: M(0) = 0 и M ({xi }) =

∑ M (x ). i

i

Под энтропией обычно понимается величина: M =e



∑n p n log( p n )

2

, где pn = xn x

−2

.

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

118

2.6. Конструирование вейвлетов

2.6. Конструирование вейвлетов 2.6.1. Общий подход Как уже отмечалось, большинство вейвлетов, к сожалению, не имеет единого аналитического выражения. Рассмотрим схематично процесс конструирования вейвлетов. Как нам известно, множество базисных функций образует вейвлет-базис. Рассмотрим базис {Ψik}, в котором каждая функция Ψik — это перенос (Ψ(x)→Ψ(x + 1)) и растяжение (Ψ(x)→Ψ(2x)) той же функции прототипа Ψ, называемой родительским вейвлетом. Пусть:

∫ψ

jk

(x )ψlm (x )dx = δij δ km ,

(2.28)

и ψ jk (x ) = 2 j 2 ψ(2 j x − k ).

(2.29)

j/2

Коэффициент 2 в (2.29) появляется из-за общего требования ортонормированности базиса. Понятие вейвлета в общем случае (полагаем под независимой переменной x, в частности x = t) проистекает из решения следующего функционального уравнения: ϕ (x ) =

M −1

∑ c ϕ (2 x − k ), k

(2.30)

k=0

где M — число ненулевых коэффициентов ck (M — произвольное число, называемое порядком вейвлета). Коэффициенты ck в уравнении (2.30) зависят от свойств масштабирующей функции ϕ(x ). Вейвлет-функция, удовлетворяющая сформулированным для нее условиям, записывается в виде: ψ (x ) =

1

∑ (−1) c k

k = 2 −m

1− k

ϕ (2 x − k ).

(2.31)

Очевидно, чтобы сконструировать конкретный вейвлет, необходимо решить уравнение масштабирования (2.30) для данного M и полученных вейвлет- коэффициентов ck. Коэффициенты ck зависят от следующих свойств масштабирующей функции: требуется, чтобы интегрируемая масштабирующая функция была равна единице:

∫ ϕ(x )dx

= 1.

(2.32)

Масштабирующая функция должна быть ортогональна по отношению к ее операции сдвига:

∫ ϕ (x )ϕ (x − k )dx

= 1.

(2.33)

Важные свойства вейвлет-коэффициентов ck могут быть выведены из приведенных выше уравнений. Так, интегрирование выражения (2.30) с учетом (2.32) дает: M −1

∑c

k

= 2.

(2.34)

k=0

119

Глава 2. Вейвлеты и вейвлет-преобразования Ортогональность масштабирующей функции к ее операции сдвига (2.33) имеет вид: M −1

∑ (−1) c k

k=0

c

1 − k k − 2m

= 0.

(2.35)

Требование ортогональности (2.29) вейвлета (2.31) гарантирует, что: M −1

∑c c k=0

k k − 2l

= 2δ 0l .

(2.36)

Желательно, чтобы для некоторого p было справедливо следующее уравнение: M −1

∑ (−1) c k k

m

k

= 0, 1, K , p − 1.

(2.37)

k=0

Уравнение (2.37) вытекает из требования точной аппроксимации полиномов степени p или меньшей линейной комбинацией ϕ(x) и ее операции сдвига. Из (2.37) следует, что:

∫x

m

ψ(x )dx = 0, m = 0, 1K p − 1.

Альтернативно базису {Ψjk}, можно использовать ортонормированный базис {ϕ(x), Ψjk}. На основании принципов кратномасштабного анализа можно восстановить любую функцию f(x) с помощью выражения: f (x ) = f ϕ +

∑b

jk

ψ jk (x ).

(2.38)

j ,k

В нем первая составляющая f(x) — ее приближение (аппроксимация) f ϕ, а вторая — уточнение функции на основе ее детализирующих коэффициентов. Коэффициенты разложения bjk несут информацию о функции f около x = 2j и x = 2–jk.

2.6.2. Конструирование вейвлета Хаара В качестве характерного и достаточно простого примера сконструируем простейший ортогональный вейвлет Хаара. Вычисление должно начинаться с функции ϕ0(x): ϕ j (x ) =

M −1

∑c ϕ k

k=0

j −1

(2 x − k ),

(2.39)

где j = 1, 2, ... Выражение (2.39) будет сходиться к воссоздаваемой масштабирующей функции ϕ(x) во всех двухэлементных точках x = k/2j. Исходя из соображений традиционной нормировки, принятой в теории сигналов, имеем ck = 2hk и ϕ j (x ) =

M −1

2 ∑ hk ϕ j −1 (2 x − k ). k=0

Итак, целое число M определяет число коэффициентов hk, определенных на ортогональном базисе: hk = при условии нормировки

120

2 ∫ ϕ (x )ϕ * (2 x − k )dx

2.6. Конструирование вейвлетов ∞

∫ ϕ(x )dx

= 1.

−∞

Поскольку масштабирующая функция известна, мы можем перейти к определению базисной функции («материнского вейвлета»): ψ (x ) =

2 M −1

2

∑g

k

ϕ (2 x − k ),

k=0

g k = (−1)k h2M − k −1.

где

Вейвлет Хаара получается, если взять M = 1. Тогда он будет иметь два отличных от нуля коэффициента hk, равных 1 2, и масштабирующую функцию, определяемую из решения функционального уравнения ϕ H (x ) = ϕ H (2 x ) + ϕ H (2 x − 1). Решение этого функционального уравнения имеет вид: ϕ H (x ) = θ(x )θ(x − 1), где θ( x ) — функция Хевисайда, равная 1 при положительных x и 0 при отрицательных. Граничные условия, важные для реализации итерационного алгоритма реализации вейвлета Хаара имеют вид ϕ H (0 ) = 1 и ϕ H (1) = 0. Таким образом вид масштабирующей функции ϕ H (x ) вейвлета Хаара полностью определен. Она имеет значение 1 в интервале x от 0 до 1 и 0 при любых других x. Соответственно для psi-функции имеем: ϕ H (x ) = θ(x )θ(2 x − 1) − θ(2 x − 1)θ(1 − x ) с граничными условиями ψ H (0 ) = 1, ψ H (1 2 ) = −1 и ψт (1) = 0. Следовательно, вейвлет Хаара имеет psi-функцию вида  1, 0 ≤ x < 1 2,  ψ H (x ) = −1, 1 2 ≤ x < 1  0, otherwise  и phi-функцию вида 1, 0 < x < 1, , ϕ H (x ) =  0, otherwise где otherwise означает значения в ином случае. Его масштабирующие и вейвлет-функции в дискретном варианте вычисляются как: ϕ j ,k = 2 j 2 ϕ (2 j x − k ) и ψ j ,k = 2 j 2 ψ(2 j x − k ). К сожалению, вейвлет Хаара имеет целый букет недостатков. К примеру, он не является гладким и его частотный спектр плохо локализован (интенсивность спектра убывает как 1/f). Тем не менее это типичный ортогональный вейвлет и он может широко применяться на практике, например для представления сигналов, содержащих перепады уровня.

121

Глава 2. Вейвлеты и вейвлет-преобразования 2.6.3. Конструирование вейвлета Добеши 4 Из конструирования вейвлета Хаара может показаться, что существует определенный произвол в расчете коэффициентов фильтров вейвлетов. Однако это не так и коэффициенты фильтров подчиняются жестким условиям. В 1987 году Ингрид Добеши сконструировала ортонормированный базис вейвлетов, который остается ключевым и сегодня для многих вейвлет-приложений. В частности, она использовала ϕ0(x) = ϕH(x), чтобы сконструировать вейвлеты порядка 4 и 6. Рассмотрим вывод коэффициентов для вейвлетов Добеши порядка 4 (M = 2) [18]. Это «вполне полноценный» ортогональный вейвлет, который давно нашел себе место в мире вейвлет-технологий. Конструирование будем вести на основе уже известных нам функциональных уравнений: ϕ (x ) =

2 ∑ hk ϕ (2 x − k ), ψ(x ) =

2 ∑ g k ϕ (2 x − k ).

k

k

Из свойства ортогональности phi-функций

∫ ϕ (x )ϕ (x − m )dx

= δ 0m

можно найти уравнение, определяющее коэффициенты h

∑h h

= δ 0m ,

∑h h

= δ 0m .

k k + 2m

k

откуда:

k k + 2m

(2.40)

k

Далее из ортогональности psi- и phi-функций, выражаемой как

∫ ψ(x )ϕ(x − m )dx

= 0,

следует уравнение

∑h g k

= 0,

k + 2m

k

решение которого есть:

g k = (−1)k h2M −1− k .

(2.41)

Таким образом, коэффициенты gk для вейвлетов однозначно определяются коэффициентами hk phi-функции. Гладкость и знакопеременность вейвлета задается условием его ортогональности полиномам степени до M – 1:

∫ x ψ(x )dx n

= 0, n = 0, 1, K , M − 1

что сводится к соотношению

∑k g n

k

=0

k

или, с учетом (2.41):

∑ (−1) k h k

k

n

k

= 0.

(2.42)

Условие нормировки phi-функции (равенство 1 интеграла с ней в качестве подынтегральной функции) задают еще одно условие для выбора коэффициентов h:

122

2.6. Конструирование вейвлетов

∑h

k

=

(2.43)

2.

k

Теперь для M = 2 запишем условия (2.40), (2.42) и (2.43) в явном виде: h0h2 + h1h3 = 0, h0 − h1 + h2 − h3 = 0, − h1 + 2h2 − 3h3 = 0, h0 + h1 + h2 + h3 =

2.

Эта система имеет следующие решения: h3 =

1 1 (1 ± 3 ), h2 = + h3 , 4 2 2 2

h1 =

1 1 − h3 , h0 = − h3 . 2 2 2

К примеру, если в выражении для h3 использовать знак минус, то семейство фильтров вейвлета Добеши 4 будет иметь чаще всего используемый вид: h0 =

1 1 (1 + 3 ), h1 = (3 + 3 ), 4 2 4 2

h2 =

1 1 (3 − 3 ), h4 = (1 − 3 ). 4 2 4 2

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

2.6.4. Сравнение различных типов простых вейвлетов Приведем вычисленные значения коэффициентов ck для вейвлетов Хаара и Добеши. Они представлены в таблице 2.1.

Таблица 2.1. Коэффициенты вейвлетов Хаара и Добеши Вейвлет

c0

с1

c2

с3

Хаара

1

1

Добеши-4*

0.25(1+ 3)

0.25(3+ 3)

0.25(3– 3)

0.25(1– 3)

Добеши-6

0.332671

0.806891

0.459877

–0.135011

c4

–0.085441

c5

0.035226

123

Глава 2. Вейвлеты и вейвлет-преобразования * Нормировочный множитель 1 2 опущен. Заметим, что у уже примененного нами (в системе Mathcad) вейвлета DB4 масштабирующая функция не является гладкой. Она имеет фрактальную структуру и всюду не дифференцируема. Тем не менее вейвлеты Добеши широко используются при обработке и преобразовании изображений и при сжатии данных.

Из описанного следует, что процесс конструирования вейвлетов достаточно сложен для обычного пользователя, работающего в области прикладных наук. Это явно хлеб для достаточно опытных математиков и научных работников, в совершенстве владеющих математическим аппаратом. К счастью, что отмечалось, множество вейвлетов уже создано и их применение вполне возможно при решении множества прикладных задач. Рисунок 2.21 дает хорошее представление об основных типах вейвлетов, которые могут использоваться для выполнения одномерного анализа сигналов.

Рис. 2.21. Основные типы вейвлетов для одномерного вейвлет-анализа

Заметим, что многие из приведенных на рис. 2.21 вейвлетов имеют множество вариантов. Большинство из этих вейвлетов имеет как вейвлет-функцию, так и скейлинг-функцию, что делает возможным кратномасштабный и быстрый вейвлет-анализ. Подробное описание одной из наиболее полных «коллекций» вейвлетов, входящих в пакет расширения Wavelet Toolbox системы MATLAB, представлено ниже.

2.7. Вейвлеты в пакете Wavelet Toolbox СКМ MATLAB 2.7.1. Типы вейвлетов в пакете Wavelet Toolbox Вейвлеты в пакете Wavelet Toolbox СКМ MATLAB принято классифицировать по виду и особенностям образующей функции ψ 0 (t ) и по имени ученого, впервые

124

2.7. Вейвлеты в пакете Wavelet Toolbox СКМ MATLAB предложившего тот или иной вейвлет. В этом разделе рассмотрено множество вейвлетов, входящих в пакет Wavelet Toolbox. Полный список 15 базовых типов вейвлетов, включенных в пакет Wavelet Toolbox, с указаниями их кратких обозначений (в апострофах) приведен ниже: 'haar' — Хаара 'db' — Добеши 'sym' — Симлета 'coif' — Койфлета 'bior' — биортогональный 'rbio' — обратный биортогональный 'meyr' — Мейера 'dmey' — дискретная аппроксимация вейвлета Мейера 'gaus' — Гаусса 'mexh' — мексиканская шляпа 'morl' — Морле 'cgau' — комплексный Гаусса (гауссиана) 'shan' — Шенона 'fbsp' — частотный B-сплайновый 'cmor' — комплексный Морле Для получения справки по какому-либо типу вейвлета в командном режиме работы MATLAB надо исполнить команду waveinfo('type'), указав тип вейвлета. Например, для вейвлета Хаара: >> waveinfo('haar') HAARINFO Information on Haar wavelet. Haar Wavelet General characteristics: Compactly supported wavelet, the oldest and the simplest wavelet. scaling function phi = 1 on [0 1] and 0 otherwise. wavelet function psi = 1 on [0 0.5[, = -1 on [0.5 1] and 0 otherwise. Family Haar Short name haar Examples haar is the same as db1 Orthogonal yes Biorthogonal yes Compact support yes DWT possible CWT possible Support width 1 Filters length 2 Regularity haar is not continuous Symmetry yes Number of vanishing moments for psi 1 Reference: I. Daubechies, Ten lectures on wavelets, CBMS, SIAM, 61, 1994, 194-202. Мы постепенно познакомимся со всеми указанными типами вейвлетов, оценим их возможности и представим графики представляющих их функций.

2.7.2. Вейвлет-менеджер — wavemngr Вейвлет-менеджер — это мощное средство, которое позволяет добавлять (с параметром'add'), удалять, сохранять или считывать новые вейвлеты, интересую-

125

Глава 2. Вейвлеты и вейвлет-преобразования щие пользователя или создаваемые им. Вейвлет-менеджер представлен функцией wavemngr, которая имеет следующие формы: wavemngr(['add',]FN,FSN,WT,NUMS,FILE), wavemngr(['add',]FN,FSN,WT,NUMS,FILE,B), wavemngr(['add',]FN,FSN,WT,{NUMS,TYPNUMS},FILE), wavemngr(['add',]FN,FSN,WT,{NUMS,TYPNUMS},FILE,B) Входные параметры этой функции: FN — название семейства, FSN — короткое название семейства, WT — определяет тип вейвлета, NUMS — cписок параметров вейвлета, разделенных пробелами, заканчивающийся двумя звездочками **, TYPNUMS — формат входного значения ('integer', 'real' или 'string', FILE — имя MAT или m-файла, B — вектор нижней и верхней границы эффективной поддержки вейвлетов. Значения параметра WT могут быть следующими:

• • • • •

WT WT WT WT WT

= = = = =

1, 2, 3, 4, 5,

для для для для для

ортогонального вейвлета; биортогонального вейвлета; вейвлета с масштабирующей функцией; вейвлета без масштабирующей функции; комплексного вейвлета без масштабирующей функции.

Эта функция выходных параметров обычно не имеет, за исключением следующих вариантов ее записи: OUT1 = wavemngr('read') — возвращает названия всех семейств вейвлетов; OUT1 = wavemngr('read',IN2) — возвращает названия всех вейвлетов (IN2 — любое число); OUT1 = wavemngr ('read_asc') — выводит на экран содержание всех файлов информации о вейвлетах в формате ASCII. В следующем примере функция wavemngr считывает полные и краткие наименования всех типов вейвлетов, которые входят в пакет Wavelet Toolbox: >> wavemngr('read') ans = =================================== Haar

haar

Daubechies

db

Symlets

sym

Coiflets

coif

BiorSplines

bior

ReverseBior

rbio

Meyer

meyr

DMeyer

dmey

Gaussian

gaus

Mexican_hat

mexh

Morlet

morl

Complex Gaussian

cgau

Shannon

shan

Frequency B-Spline

fbsp

126

2.7. Вейвлеты в пакете Wavelet Toolbox СКМ MATLAB Complex Morlet

cmor

=================================== А в следующем примере выводится лист с перечнем всех вейвлетов wavemngr('read',1) ans = =================================== Haar

haar

=================================== Daubechies

db

-----------------------------db1db2db3db4 db5db6db7db8 db9db10db** =================================== Symlets

sym

-----------------------------sym2

sym3

sym4

sym5

sym6

sym7

sym8

sym**

=================================== Coiflets

coif

-----------------------------coif1

coif2

coif3

coif4

coif5 =================================== BiorSplines

bior

-----------------------------bior1.1bior1.3

bior1.5

bior2.2

bior2.4bior2.6

bior2.8

bior3.1

bior3.3bior3.5

bior3.7

bior3.9

bior4.4bior5.5

bior6.8

=================================== ReverseBior

rbio

-----------------------------rbio1.1rbio1.3

rbio1.5

rbio2.2

rbio2.4rbio2.6

rbio2.8

rbio3.1

rbio3.3rbio3.5

rbio3.7

rbio3.9

rbio4.4rbio5.5

rbio6.8

=================================== Meyer

meyr

127

Глава 2. Вейвлеты и вейвлет-преобразования =================================== DMeyer

dmey

=================================== Gaussian

gaus

----------------------------gaus1

gaus2

gaus3

gaus4

gaus5

gaus6

gaus7

gaus8

gaus** =================================== Mexican_hat

mexh

=================================== Morlet

morl

=================================== Complex Gaussian

cgau

----------------------------cgau1

cgau2

cgau5

cgau**

cgau3

cgau4

=================================== Shannon

shan

----------------------------shan1-1.5

shan1-1

shan1-0.5

shan1-0.1

shan2-3shan** =================================== Frequency B-Spline

fbsp

-----------------------------fbsp1-1-1.5

fbsp1-1-1

fbsp2-1-0.5

fbsp2-1-0.1

fbsp1-1-0.5

fbsp2-1-1

fbsp**

=================================== Complex Morlet

cmor

-----------------------------cmor1-1.5

cmor1-1

cmor1-0.5

cmor1-0.5

cmor1-0.1

cmor**

cmor1-1

=================================== В последнем примере показано, как можно задать новый вейвлет с именем Leirina >> wavemngr('add','Leirina','lei',1,'1 2 3 4 5','leirinaf'); Теперь можно проверить, что этот вейвлет вошел в общий список типов вейвлетов: >> wavemngr('read')

128

2.8. Семейство вейвлет-фильтров пакета Wavelet Toolbox При исполнении этой команды будет получен ранее приведенный список типов вейвлетов, дополненный новым: Leirina

lei

2.8. Семейство вейвлет-фильтров пакета Wavelet Toolbox 2.8.1. Множество фильтров биортогонального вейвлета — biorfilt Как было показано в теоретическом разделе этой главы, весьма плодотворным в технике вейвлет-преобразований является частотный подход, основанный на особенностях квадратурных фильтров. В пакет Wavelet Toolbox входит ряд функций для создания вейвлет-фильтров низких и высоких частот. Большинство таких функций имеет имя в виде имени вейвлет-функции с буквой «f» в конце. Обычно декомпозиция сигнала при вейвлет-преобразовании типа фильтрации заключается в фильтрации сигнала двумя фильтрами — низкочастотным Lo и высокочастотным Hi. Каждый из фильтров представляет пару наборов коэффициентов разного уровня — аппроксимирующих коэффициентов R, грубо представляющих сигнал, и детализирующих коэффициентов D. Указанные выше функции и служат для создания этих наборов коэффициентов. Функция [Lo_D,Hi_D,Lo_R,Hi_R] = biorfilt(DF,RF) возвращает четыре фильтра, связанных с биортогональным вейвлетом: Lo_D Hi_D Lo_R Hi_R

— — — —

узкополосный фильтр разложения; широкополосный фильтр разложения; узкополосный фильтр восстановления; широкополосный фильтр восстановления.

Другой вариант этой функции [Lo_D1,Hi_D1,Lo_R1,Hi_R1,Lo_D2,Hi_D2,Lo_R2,Hi_R2]=biorfilt(DF, RF,'8') возвращает восемь фильтров, первые четыре из которых связаны с вейвлет-разложением, следующие четыре связаны с вейвлет-восстановлением. Из теории фильтрации сигналов хорошо известно, что если одни и те же фильтры с конечной импульсной характеристикой (КИХ или FIR) используются и для разложения и для восстановления, то симметричное и точное восстановление невозможно. Исключением является фильтр Хаара. Следовательно, с биортогональными фильтрами используются два вейвлета вместо только одного: ~ используется в анализе, и коэффициенты сигнала s следую• один вейвлет ψ щие: ~ c j ,k =

∫ s (k )ψ~

j ,k

(x )dx ;

• другой вейвлет ψ используется при синтезе: s =

∑ ~c

j ,k

ψ j ,k .

j ,k

Здесь и далее, как в оригинале, мы используем независимую переменную x (при переходе во временную область t = x). Указанные два вейвлета взаимосвязаны в соответствии с выражениями:

129

Глава 2. Вейвлеты и вейвлет-преобразования

∫ ψ~

j ,k

(x )ψ j ′,k ′ (x )dx = 0 если j ≠ j′ и k ≠ k′

и

∫ϕ

0,k

(x )ϕ 0,k ′ (x )dx = 0 если k ≠ k′.

Следующий пример задает представление на одном графике четырех вейвлет-фильтров на основе биортогональных вейвлетов: [Rf,Df] = biorwavf('bior3.5'); [Lo_D,Hi_D,Lo_R,Hi_R] = biorfilt(Df,Rf); subplot(221); stem(Lo_D); title('Dec. low-pass filter bior3.5'); subplot(222); stem(Hi_D); title('Dec. high-pass filter bior3.5'); subplot(223); stem(Lo_R); title('Rec. low-pass filter bior3.5'); subplot(224); stem(Hi_R); title('Rec. high-pass filter bior3.5'); Коэффициенты фильтров представлены линейчатыми диаграммами (рис. 2.22), что позволяет легко сравнивать эти фильтры. Все строки этого примера, кроме наиболее важной первой, задают построение линейчатых диаграмм в подокнах окна графики. Эти, как и другие подобные, графики получены с помощью средств графического интерфейса пользователя (GUI) системы MATLAB 6/6.1. Для более полной иллюстрации возможностей биортогональных вейвлетов на рис. 2.23 представлены пары вейвлет-функций для вейвлетов bior1.5, bior2.4 и bior2.8. Аналогичные пары вейвлет-функРис. 2.22. Графики коэффициентов ций для вейвлетов bior3.3, bior3.7 и biчетырех фильтров биортогольного or4.4 показаны на рис. 2.24. вейвлета

Рис. 2.23. Пары вейвлет-функций для вейвлетов bior1.5, bior2.4 и bior2.8

130

Рис. 2.24. Пары вейвлет-функций для вейвлетов bior3.3, bior3.7 и bior4.4

2.8. Семейство вейвлет-фильтров пакета Wavelet Toolbox Представленные вейвлеты дают разнообразные возможности для приближения сигналов. Среди биортогональных вейвлетов есть вейвлеты с достаточно высокой гладкостью, а есть и вейвлеты с резкими изгибами и острыми пиками вейвлет-функции.

2.8.2. Множество фильтров ортогонального вейвлета — orthfilt Функция [Lo_D,Hi_D,Lo_R,Hi_R] = orthfilt(W) возвращает четыре фильтра ортогонального вейвлета, связанных с масштабирующим фильтром W. Выходные параметры функции задают:

• • • •

Lo_D — узкополосный фильтр разложения; Hi_D — широкополосный фильтр разложения; Lo_R — узкополосный фильтр восстановления; Hi_R — широкополосный фильтр восстановления.

Схему их вычисления можно найти в справке по этой функции. Для ортогонального вейвлета одно из фундаментальных соотношений — это соотношение со сдвоенным масштабом 1 x ϕ  = 2  2

∑ w ϕ (x − n ). n

n ∈Z

Все фильтры, используемые функциями dwt и idwt, тесно связаны последовательностью (wn )n ∈Z . Если phi-функция имеет компактный носитель, то последовательность (wn) конечна и может рассматриваться как FIR-фильтр (с конечной импульсной характеристикой — КИХ). Следующий пример командой load загружает вейвлет Добеши db8, строит его график и графики коэффициентов фильтров (рис. 2.25): load db8; w = db8; subplot(321);plot(xval,psi); title('Wavelet'); subplot(322);stem(w); title('Original scaling filter'); [Lo_D,Hi_D,Lo_R,Hi_R] = orthfilt(w); subplot(323); stem(Lo_D); title('Decomposition low-pass filter'); subplot(324); stem(Hi_D); title('Decomposition high-pass filter'); subplot(325); stem(Lo_R); title('Reconstruction low-pass filter'); subplot(326); stem(Hi_R); title('Reconstruction high-pass filter'); Рис. 2.26 показывает вид вейвлет-функции для вейвлетов Добеши db2—db10. Нетрудно заметить, что гладкость вейвлетов Добеши возрастает по мере увеличения их номера. Одновременно растет и частота осцилляций. Вейвлеты Добеши как наиболее типичные среди ортогональных вейвлетов широко используются в практике вейвлет-анализа и вейвлет-преобразований. Иногда надо считаться с тем, что эти вейвлеты несимметричны, так что для них понятие средней частоты не совсем корректно.

131

Глава 2. Вейвлеты и вейвлет-преобразования

Рис. 2.25. Графики вейлета Добеши db8 и коэффициентов производных от него фильтров

Рис. 2.26. Вейвлет-функции для вейвлетов Добеши db2—db10

2.8.3. Фильтры ортогональных или биортогональных вейвлетов — wfilters Функция [Lo_D,Hi_D,Lo_R,Hi_R] = wfilters ('wname') возвращает четыре фильтра, связанные с ортогональным или биортогональным вейвлетом, указанным в строке 'wname'. Назначение выходных параметров здесь очевидно, поскольку уже описывалось. В связи с этим ограничимся примером применения функции wfilters для задания четырех типов фильтров на основе вейвлета Добеши db8: [Lo_D,Hi_D,Lo_R,Hi_R] = wfilters('db8'); subplot(221); stem(Lo_D); title('Decomposition low-pass filter'); subplot(222); stem(Hi_D); title('Decomposition high-pass filter'); subplot(223); stem(Lo_R); title('Reconstruction low-pass filter'); subplot(224); stem(Hi_R); title('Reconstruction high-pass filter'); xlabel('The four filters for db8')

132

2.8. Семейство вейвлет-фильтров пакета Wavelet Toolbox Представление их коэффициентов в виде диаграмм отсчетов представлено на рис. 2.27.

Рис. 2.27. Представление коэффициентов фильтра вейвлета db8

2.8.4. Биортогональный сплайновый вейвлет-фильтр — biorwavf Функция [RF,DF] = biorwavf(W) возвращает два масштабирующих фильтра, относящихся к ортогональному wavelet, указанному в строке W. Строка W записывается в виде 'biorNr.Nd', где возможные комбинации Nr и Nd соответствуют приведенным ниже данным: Nr Nr Nr Nr Nr Nr

= = = = = =

1 2 3 4 5 6

Nd Nd Nd Nd Nd Nd

= = = = = =

1 , 3 or 5 2 , 4 , 6 or 8 1 , 3 , 5 , 7 or 9 4 5 8

Выходными аргументами является пара фильтров: RF — фильтр восстановления и DF — фильтр разложения. Пример: wname = 'bior3.1'; [rf,rd] = biorwavf(wname) rf = 0.1250 0.3750 0.3750 rd = -0.2500 0.7500 0.7500

0.1250 -0.2500

Вейвлет-функции для биортогональных вейвлетов мы уже описывали — см. рис. 2.23 и 2.24.

133

Глава 2. Вейвлеты и вейвлет-преобразования 2.8.5. Комплексный гауссовский вейвлет — cgauwavf Функция [PSI,X] = cgauwavf(LB,UB,N,P) возвращает значения P-й производной комплексной функции Гаусса F (x ) = C p e −ix e − x

2

в N-й точке регулярной сетки на интервале [LB,UB]. Здесь величина Сp такая, что вторая норма P-й производной функции F(x) стремится к 1. Выходным аргументом является функция PSI, вычисленная на сетке X. Следующий пример строит графики действительной и мнимой частей комплексного гауссова вейвлета (гауссиана) порядка 5 (рис. 2.28): lb = -5; ub = 5; n = 1000; [psi,x] = cgauwavf(lb,ub,n,5); subplot(211); plot(x,real(psi)); xlabel('Real part'), grid subplot(212); plot(x,imag(psi)); xlabel('Imaginary part'), grid

2.8.6. Комплексный вейвлет Морле — cmorwav Функция [PSI,X] = cmorwavf(LB,UB,N,FB,FC) возвращает значения комплексного вейвлета Морле, определенного положительным параметром ширины полосы частот FB, центральной частотой wavelet FC и выражением: PSI(X) = ((pi*FB)^(-0.5))*exp(2*i*pi*FC*X)*exp(-X^2/FB) в N-точках регулярной сетки на интервале [LB,UB]. Выходным аргументом является вейвлет-функция PSI, вычисленная на сетке X. Приведенный ниже пример строит графики действительной и мнимой частей комплексного вейвлета Морле с заданными в первой строке параметрами (рис. 2.29): fb = 0.75; fc = 1; lb = -4; ub = 4; n = 500; [psi,x] = cmorwavf(lb,ub,n,fb,fc); subplot(211); plot(x,real(psi)); xlabel('Real part'), grid subpl+ot(212); plot(x,imag(psi)); xlabel('Imaginary part'), grid

Рис. 2.28. Графики действительной и мнимой частей для комплексного гауссова вейвлета порядка 5

134

Рис. 2.29. Графики действительной и мнимой частей комплексного вейвлета Морле

2.8. Семейство вейвлет-фильтров пакета Wavelet Toolbox 2.8.7. Вейвлет-фильтр Койфлета — coifwavf Функция F = coifwavf(W) возвращает масштабирующий фильтр для вейвлета Койфлета, определенного строкой W. Строка W задается как 'coifN', где N — целое число от 1 до 5. Пример: >> wname = 'coif2'; f = coifwavf(wname) f = Columns 1 through 7 0.0116 -0.0293 -0.0476 0.2730 0.5747 0.2949 -0.0541 Columns 8 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) = SUMW. Возможные значения для N — 1, 2, 3, ... Вычисление порядка N масштабирующего фильтра Добеши W выполняется за два шага: 1. Вычисление параметра P (в оригинале именуемого «Lagrange a trous») симметричного фильтра длиной (4N–1) и определенного как P=[a(N) 0 a(N–1) 0 ... 0 a(1) 1 a(1) 0 a(2) 0 ... 0 a(N)], где 1   − i   2 i = − N +1 N



a(k ) =

i ≠k

N

∏ (k − i )

для k = 1, K , N .

i = − N +1 i ≠k

2. Извлечение квадратного корня. При этом, если W является масштабирующим фильтром Добеши «dbN» sum√2, то W — квадратный корень P: P = conv(wrev(w),w), где W — фильтр длиной 2N. Вычисление масштабирующего фильтра Добеши «dbN» требует извлечения корня полинома степени 4N. Нестабильность в вычислениях может проявляться при очень большом N.

135

Глава 2. Вейвлеты и вейвлет-преобразования Функция F = dbwavf(W) возвращает масштабирующий фильтр, связанный с wavelet Добеши, определенным строкой W, где W = 'dbN' и N = 1, 2, 3, ..., 45. Пример: wname = 'db6'; f = dbwavf(wname) f = Columns 1 through 8 0.0789 0.3498 0.5311 -0.0918 0.0689 0.0195 Columns 9 through 12 -0.0223 0.0004 0.0034

0.2229

-0.1600

-0.0008

2.8.9. Частотный B-сплайновый вейвлет — fbspwavf Функция [PSI,X] = fbspwavf(LB,UB,N,M,FB,FC) возвращает значения комплексной частоты B-сплайнового вейвлета, определенного порядком M (целое число 1 ≤ M), шириной полосы частот FB, центральной частотой wavelet FC. Функция PSI вычисляется, используя следующее выражение: PSI(X) = (FB^0.5)*((sinc(FB*X/M).^M).*exp(2*i*pi*FC*X)) в N-точках регулярной сетки в интервале [LB,UB]. FB и FC должны быть такие, что FC > FB/2 > 0. Выходными аргументами являются вейвлет-функция PSI, вычисленная на сетке X. Пример, приведенный ниже, строит графики действительной и мнимой частей комплексного вейвлета Морле с заданными в первой строке параметрами (рис. 2.31):

Рис. 2.31. Графики действительной и мнимой частей частотного B-сплайнового вейвлета

m = 3; fb = 1; fc = 0.75; lb = -10; ub = 10; n = 500; [psi,x] = fbspwavf(lb,ub,n,m,fb,fc); subplot(211); plot(x,real(psi)); xlabel('Real part'), grid; subplot(212) plot(x,imag(psi)); xlabel('Imaginary part'), grid

136

2.8. Семейство вейвлет-фильтров пакета Wavelet Toolbox 2.8.10. Гауссовый вейвлет — gauswavf Функция [PSI,X] = gauswavf(LB,UB,N,P) возвращает значения P-й производной функции Гаусса F (x ) = C p e − x . 2

в N-точках регулярной сетки для интервала [LB,UB]. Значение Cp такое, что 2-норма P-й производной функции F стремится к 1. Построение графика (рис. 2.32) гауссового вейвлета (гауссиана) порядка 10 представлено следующим примером: lb = -5; ub = 5; n = 1000; [psi,x] = gauswavf(lb,ub,n,10); plot(x,psi); grid

2.8.11. Вейвлет «мексиканская шляпа» — mexihat Функция [PSI,X] = mexihat(LB,UB,N) возвращает значения вейвлета, известного под образным названием «мексиканская шляпа», в N-точках регулярной сетки X на интервале [LB,UB]. Выходными аргументами является вейвлет-функция PSI, вычисленная на сетке X: −x  2 14  ψ (x ) =  π  1 − x2 e 2 .  3 

(

)

2

Эта функция (тут она дана без упрощений, использованных в начале этой главы) пропорциональна второй производной гауссовой функции плотности вероятности. Вид этого вейвлета (рис. 2.33) позволяет наблюдать следующий пример: lb = -6; ub = 6; n = 500; [psi,x] = mexihat(lb,ub,n); plot(x,psi) Обратите внимание на то, что иногда вейвлет-функцию такого вейвлета изображают в перевернутом виде.

Рис. 2.32. График Гауссового вейвлета 10-го порядка

Рис. 2.33. График вейвлета «мексиканская шляпа»

137

Глава 2. Вейвлеты и вейвлет-преобразования 2.8.12. Вейвлет-функция Мейера — meyer и meyeraux Вейвлет-функции Мейера определены в частотной области следующим образом: − 3 4π π   2π ^ (ω ) = (2 π ) 2 eiω sin  v  ≤ ω ≤ ψ ω − 1   3  2  2π 3 1

− 3 8π π   4π ^ (ω ) = (2 π ) 2 eiω cos v  ≤ ω ≤ ψ ω − 1   3  2  4π 3 1

2 π 8π ^ (ω ) = 0 ω ∉  ;  ψ  3 3  v (a ) = a 4 (35 − 84a + 70a 2 − 20a 3 ) a ∈[0, 1] Соответствующая масштабирующая функция есть: ψ(ω ) = (2 π )



1 2

ω ≤

2π 3

− 3 4π π   2π ^ (ω ) = (2 π ) 2 eiω cos v  ≤ ω ≤ ψ ω − 1   3  2  2π 3 1

^ (ω ) = 0 ω > ψ

4π 3

Функция [PHI,PSI,T] = meyer(LB,UB,N) возвращает масштабирующую функцию и вейвлет-функцию Мейера, вычисленную в N-точках регулярной сетки в интервале [LB,UB]. Переменная N должна быть степенью числа 2. Выходными параметрами являются масштабирующая функция PHI и вейвлет-функция PSI, вычисленные на сетке T. Если требуется в качестве выходного параметра получить только одну из перечисленных функций, то требуется четвертый аргумент: [PHI,T] = meyer(LB,UB,N,'phi') или [PSI,T] = meyer(LB,UB,N,'psi') Следующий пример строит графики вейвлета Мейера и его масштабирующей функции (рис. 2.34): lb = -5; ub = [phi,psi,x] = subplot(211), subplot(212),

10; n = 1024; meyer(lb,ub,n); plot(x,psi); title('Meyer wavelet') plot(x,phi); title('Meyer scaling function')

Если использовать функцию Y=meyeraux(x), можно вычислять дополнительную функцию, которая описывается полиномом 35x4 – 85x5 + 70x6 – 20x7.

2.8.13. Вейвлет Морле — morlet Функция [PSI,X] = morlet(LB,UB,N) возвращает значения вейвлета Морле в N точках регулярной сетки на интервале [LB,UB]. Выходными аргументами является вейвлет-функция PSI, вычисленная на сетке X и сетка X: ψ(x ) = e

138



x2 2

cos(5x ).

2.8. Семейство вейвлет-фильтров пакета Wavelet Toolbox

Рис. 2.34. График вейвлета Мейера

Рис. 2.35. График вейвлета Морле

Для построения графика этой функции (рис. 2.35) можно использовать следующий пример: lb = -5; ub = 10; n = 512; [psi,x] = morlet(lb,ub,n); plot(x,psi), title('Morlet wavelet')

2.8.14. Обратный биортогональный вейвлет-фильтр — rbiowavf Функция [RF,DF] = rbiowavf(W) возвращает два масштабирующих фильтра, связанных с биортогональным вейвлетом, определенным строкой W. W = 'rbioNr.Nd', где возможные значения для Nr и Nd: следующие Nr Nr Nr Nr Nr Nr

= = = = = =

1 2 3 4 5 6

Nd Nd Nd Nd Nd Nd

= = = = = =

1 , 3, 5 2 , 4 , 6, 8 1 , 3 , 5 , 7, 9 4 5 8

Выходными аргументами являются два фильтра: фильтр разложения RF и фильтр восстановления DF. Пример: [rf,df] = rbiowavf('rbio3.1') rf = -0.2500 0.7500 0.7500 -0.2500 df = 0.1250 0.3750 0.3750 0.1250

2.8.15. Вейвлет-фильтр Шеннона Функция [PSI,X] = shanwavf(LB,UB,N,FB,FC) возвращает значения комплексного вейвлета Шеннона, определенного параметром ширины полосы частот FB, центральной частотой FC и выражением: PSI(X) = (FB^0.5)*(sinc(FB*X).*exp(2*i*pi*FC*X))

139

Глава 2. Вейвлеты и вейвлет-преобразования в N точках регулярной сетки на интервале [LB,UB]. Причем FB и FC должны быть такими, что FC > FB/2 > 0. Выходным аргументом является wavelet-функция PSI, вычисленная на сетке X.

2.8.16. Масштабирующие фильтры вейвлета Симлета — symaux и symwavf Функция W = symaux (N,SUMW) возвращает масштабирующий фильтр Симлета порядка N, такой что SUM(W) = SUMW. N принимает следующие возможные значения 1, 2, 3, ... Симлет-вейвлет — это наименьший асимметричный вейвлет Добеши. Пример, представленный ниже, в особых комментариях не нуждается: >> wdb6 = dbaux(6) wdb-6 = Columns 1 through 8 0.0789 0.3498 0.5311 0.2229 -0.0918 0.0689 0.0195 Columns 9 through 12 -0.0223 0.0004 0.0034 -0.0008

-0.1600

F = symwavf (W) возвращает масштабирующий фильтр, связанный с Симлет-вейвлетом, определяемым строкой W, где W ='symN'. N принимает значения 2, 3, ..., 45. >> w = symwavf('sym5') w = Columns 1 through 8 0.0138 -0.0149 -0.1240 0.5115 0.1410 -0.0277 Columns 9 through 10 0.0209 0.0193

0.0117

0.4483

2.9. Сравнение вейвлетов разного типа Сейчас выбор вейвлетов довольно обширен. Как было только что показано, только в пакете Wavelet Toolbox 2.0/2.1/2.2 представлено полтора десятка базовых типов вейвлетов и множество вариантов для ряда базовых типов вейвлетов. Однако необоснованное применение того или иного типа вейвлета способно привести к разочарованию. Поэтому ниже обобщены основные свойства вейвлетов различного типа. Их учет позволяет подбирать наиболее подходящие типы вейвлетов для решения конкретных задач обработки сигналов и изображений. Такой выбор надо рассматривать как «пробу пера». Разумеется, при решении серьезных задач в области обработки сигналов и изображений необходимо применение хотя бы нескольких типов вейвлетов с последующим сравнением результатов и выбором наилучших из них.

2.9.1. Грубые (Crude) вейвлеты К «грубым» вейвлетам относятся вейлеты Гауссова типа (gaus), Морле (morlet) и «мексиканской шляпы» (mexihat). Они обладают минимумом свойств, которыми

140

2.9. Сравнение вейвлетов разного типа должны обладать вейвлеты, обеспечивающие полноценные возможности в технике преобразования сигналов:

• • • • • • •

функция phi у них отсутствует; анализ не является ортогональным; функция psi не имеет компактного носителя; возможность реконструкции не гарантирована; возможна непрерывная декомпозиция; главные свойства: симметричность, функция psi задается явно; быстрые алгоритмы преобразований и точная реконструкция невозможны.

2.9.2. Бесконечные регулярные вейвлеты К бесконечным регулярным вейвлетам принадлежат вейвлеты Мейера (meyr). Они имеют следующие свойства:

• • • • •

имеют функцию phi и их анализ ортогональный; функции psi и phi не определены явно; функции psi и phi не имеют компактного носителя; вейвлеты симметричны и регулярны в бесконечности; быстрый алгоритм преобразований не поддерживается.

У этих вейвлетов возможны следующие методы анализа:

• непрерывные преобразования; • дискретные преобразования, но без FIR-фильтров. Еще один вейвлет этого типа — дискретный вейвет Мейера (dmey). Его свойства:

• аппроксимация фильтром класса FIR; • поддержка непрерывного и дискретного преобразований. 2.9.3. Ортогональные вейвлеты с компактным носителем К этим вейвлетам относятся вейвлеты Добеши (dbN), Симлета (symN) и Койфлета (coifN). Их основные свойства:

• • • •

функция phi имеется и анализ относится к ортогональному типу; функции имеют определенное число моментов исчезновения; функции psi и phi имеют компактный носитель; возможны непрерывные преобразования и дискретные преобразования с применением быстрого вейвлет-преобразования; • обеспечивается принципиальная возможность реконструкции сигналов и функций. Некоторые трудности: недостаточная периодичность. Специфические проблемы:

• вейвлеты dbN несимметричны; • вейвлеты symN: близки с симметричным; • вейвлеты coifN: отсутствие симметрии, функций phi и psi, наличие моментов исчезновения.

141

Глава 2. Вейвлеты и вейвлет-преобразования 2.9.4. Биортогональные парные вейвлеты с компактным носителем К ним относятся B-сплайновые биортогональные вейвлеты (biorNr.Nd и rbioNr.Nd). Они имеют следующие свойства:

• функция phi имеется и анализ относится к биортогональному типу; • обе функции psi и phi для декомпозиции и реконструкции имеют компактный носитель;

• phi и psi для декомпозиции имеют моменты исчезновения; • psi и phi для реконструкции могут иметь периодичность. Возможные виды анализа — непрерывное преобразование и дискретное преобразование с использованием алгоритма быстрого вейвлет-преобразования. Наиболее существенные достоинства: симметрия с фильтрами, желаемые свойства для разложения и восстановления разделены, возможно их хорошее распределение. Наиболее существенные трудности: отсутствие ортогональности.

2.9.5. Комплексные вейвлеты К комплексным относится довольно большая группа вейвлетов: Гаусса (cgauN), Морле (cmorFb-Fc), Шенона (shanFb-Fc) и частотные B-сплайновые вейвлеты (fbspM-Fb-Fc). Они обладают минимальными свойствами:

• • • • •

функция phi отсутствует; анализ не ортогональный; функция psi не имеет компактного носителя; свойства реконструкции не гарантируются; возможен анализ типа комплексной декомпозиции.

Трудности применения: быстрый алгоритм и реконструкция невозможны. Итак, мы рассмотрели множество вейвлетов, входящих в пакет расширения Wavelet Toolbox системы MATLAB 6.0/6.1/6.5. Эти вейвлеты (или их большинство) входят и в состав пакетов расширения других СКМ, например Mathcad или Mathematica. ВНИМАНИЕ Обилие классов вейвлетов и их конкретных реализаций в каждом классе позволяет легко использовать для решения каждой практической задачи наиболее подходящий тип вейвлета. По-видимому, в настоящее время создание новых типов вейвлетов рационально только при решении новых и довольно специфических задач и при условии, что для этого не удается подобрать подходящий тип вейвлета из числа описанных.

2.10. Примеры вейвлет-обработки данных, сигналов и изображений 2.10.1. Вейвлет- и вейвлет/медианное сглаживание Одной из перспективных областей применения вейвлет-преобразований является вейвлет-сглаживание данных и зашумленных зависимостей. В этой главе рассмотрим эту возможность, используя только встроенные в ядро системы Mathcad функции wave и iwave, реализующие работу с вейвлетами Добеши четвертного

142

2.10. Примеры вейвлет-обработки данных, сигналов и изображений порядка. Это отнюдь не гладкие вейвлеты и сглаживаемые с их помощью функции имеют признаки фрактальных структур, что, конечно, не способствует наилучшему сглаживанию. Поэтому наряду со сглаживанием вейвлетами разумно применять дополнительное сглаживание каким-либо другим методом сглаживания. Рисунок 2.36 показывает применение вейвлет и вейвлет/медианного сглаживания на примере сглаживания нестационарного сигнала в виде сильно зашумленной синусоиды с падающей во времени частотой.

Рис. 2.36. Пример вейвлет- и вейвлет/медианного сглаживания

Само по себе прямое и обратное вейвлет-преобразования свойствами сглаживания не обладают, поскольку идеально восстанавливают исходный произвольный сигнал независимо от его формы. Для осуществления вейвлет-сглаживания надо уменьшить число используемых при синтезе сигнала вейвлет-коэффициентов. В нашем случае это достигается снижением уровня преобразований с максимального уровня 8 до 6. На рис. 2.36 показаны следующие графики (сверху вниз):

• исходный зашумленный сигнал; • сглаженный вейвлетами сигнал с уровнем преобразования 6; • сигнал, сглаженный только методом скользящей медианы с помощью функции medsmoot;

• сигнал, сглаженный комбинированным методом; • исходный сигнал без шума. Можно заметить, что как вейвлет, так и медианное сглаживания сами по себе достаточно эффективны, но не избавляют полностью полученный сигнал от высокочастотных компонент как шума, так и самих вейвлет-коэффицициентов. Комбинированный метод сглаживания дает лучшие результаты — высокочастотные «пички» при нем сглажены. Объективную оценку сглаживания может дать только оценка соответствия результатов сглаживания с результатами представления исходной зависимости. В правой части рис. 2.36 представлены результаты вычисления суммарной (по всем точкам) среднеквадратической погрешности между сгла-

143

Глава 2. Вейвлеты и вейвлет-преобразования женной и идеальной кривыми сигнала. Хорошо видно, что минимальную погрешность обеспечивает комбинированный вейвлет/медианный метод сглаживания.

2.10.2. Комбинированное сглаживание вейвлетами и фильтром «скользящее среднее» Рассмотрим еще один пример комбинированного сглаживания, который представлен на рис. 2.37. Тут задан нестационарный сигнал еще более сложной зависимости — в виде сильно зашумленной синусоиды с растущими во времени амплитудой и частотой. Вначале сигнал обрабатывается с помощью вейвлет-преобразований с уровнем 7 (при максимальном уровне 9), а затем явно реализованным фильтром типа «скользящее среднее».

Рис. 2.37. Пример сглаживания нестационарного сигнала вейвлетами и фильтром «скользящее среднее»

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

2.10.3. Вейвлет-сплайновое сглаживание Сплайны также могут использоваться, наряду с вейвлетами, для сглаживания сложных зависимостей. На рис. 2.38 представлен документ, в котором сглаживанию подвергается нестационарный сигнал в виде искаженной (возведением в кубическую степень) синусоиды с нарастающим периодом и амплитудой, имеющий шумовую компоненту. Такой сигнал имеет характерную уплощенную область в моменты перехода синусоиды через нуль. Нетрудно заметить, что эта особенность прослеживается и после сглаживания. Для эффективного сглаживания сплайнами нужно правильно подобрать началь-

144

2.10. Примеры вейвлет-обработки данных, сигналов и изображений

Рис. 2.38. Пример вейвлет-сплайнового сглаживания нестационарного сигнала

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

2.10.4. Вейвлет-обработка и компрессия изображения Для многих вейвлет-обработка изображений кажется настолько сложной, что ее нереально выполнять в системе Mathcad. Тем более что в ядре системы имеется всего две функции — для прямого и обратного преобразований одномерного массива, тогда как даже монохромные рисунки представляются двумерными массивами. Ниже представлен документ, который показывает что вейлет-обработка изображений вполне возможна в системе Mathcad, даже без применения специальных пакетов расширения. На рис. 2.39 представлено начало документа, в котором выполняется прямое двумерное вейвлет-преобразование сигнала изображения, которое хранится в графическом файле формата BMP и задается число (в процентах) удаляемых вейвлет-коэффициентов thres. Идея преобразования достаточно проста — двумерный массив изображения M развертывается в одномерный и задается функция двумерного вейвлет-преобразования wave2D. После этого мы получаем матрицу вейвлет-коэффициентов N. Для пояснения смысла вейвлет-преобразований в левой части рис. 2.39 представлена исходная матрица изображения M и матрица вейвлет-коэффициентов N. Элементы матрицы M — целые числа от 0 до 255, которые характеризуют яркость каждой точки изображения — от черного цвета 0 до белого 255. Элементы матрицы N — вейвлет-коэффициенты, которые представляют собой по существу временные зависимости. Следующая часть документа (рис. 2.40) демонстрирует технику компрессии изображения и его восстановления. Здесь после вычисления вспомогательных функций задается вычисление порога th. Если какой-то вейвлет-коэффициент имеет абсолютное значение меньше th, ему просто задается нулевое значение.

145

Глава 2. Вейвлеты и вейвлет-преобразования

Рис. 2.39. Прямое вейвлет-преобразование изображения из графического файла

Рис. 2.40. Обратное вейвлет-преобразование изображения с компрессией

В результате получается разреженная матрица N, файл которой можно подвергнуть эффективной компрессии любым архиватором. На рис. 2.41 построено исходное изображение (по матрице M) и изображение, полученное в результате вейвлет-преобразований и компрессии (по матрице M1). Нетрудно заметить, что несмотря на высокую степень компрессии (использовалось только 5% ненулевых вейвлет-коэффициентов, что соответствует степени идеализированной компрессии 20) изображение достаточно отчетливо, хотя и

146

2.10. Примеры вейвлет-обработки данных, сигналов и изображений имеет заметные погрешности в сравнении с оригиналом. Помимо огрубления передачи полутонов заметны светлые точки на наиболее темных участках изображения. Это типичное проявление эффекта Гиббса, жесткости примененных вейвлетов DB4 и резкого порога удаления вейвлет-коэффициентов.

Рис. 2.41. Исходное (слева) и преобразованное (справа) изображения при степени компрессии 20

Указанные погрешности изображения заметно уменьшаются при уменьшении степени компрессии. На рис. 2.42 показано сравнение оригинального изображения с изображением, в котором сохранено только 20% коэффициентов (идеализированная степень сжатия 5). В этом случае разницу в изображениях приметить довольно трудно.

Рис. 2.42. Исходное (слева) и преобразованное (справа) изображения при степени компрессии 5

В главе 5 мы рассмотрим более совершенные способы обработки и компрессии изображений, основанные на применении более совершенных для решения этой задачи вейвлетов и более тонких методов удаления вейвлет-коэффициентов. А пока лишь отметим, что реальная степень сжатия изображений, конечно, меньше приведенных идеализированных оценок. Надо считаться с затратами памяти на реализацию алгоритмов сжатия, а также с тем, что для представления вейвлет-коэффициентов необходимо представление чисел в формате плавающей точки, требующее повышенных затрат памяти.

147

Глава 2. Вейвлеты и вейвлет-преобразования 2.10.5. Двумерные способы декомпозиции изображений Реализация быстрых алгоритмов обработки изображений часто базируется на фильтровых способах с применением одной матрицы, хранящей изображение. Один из наиболее часто применяемых способов фильтровой обработки изображений представлен на рис. 2.43. Вначале матрица (двумерный массив) изображения обрабатывается НЧ- и ВЧ-фильтрами с равной граничной частотой L1 и H1. Матрица делится на две части, в которой размещены подверженные фильтрации фрагменты изображения. Затем фрагмент L1 делится на два фрагмента L2 и H2 и так далее. Структура матрицы и хранящихся в ней фрагментов изображений представлена на рис. 2.43. Еще один пример такого рода, с показом реальных фрагментов преРис. 2.43. Способ фильтровой обработки образуемого изображения, представизображения — Original Image лен на рис. 2.44. Изображение в этом случае рассматривается как функция двух переменных f(x,y), формула декомпозиции изображения представлена на рисунке сверху. Разумеется, есть и другие способы декомпозиции изображений, например основанные на пакетных вейвлетах. Мы рассмотрим их в главах 3 и 4.

Рис. 2.44. Пример двумерной вейвлет-декомпозиции изображений

148

Глава 3. Работа с Wavelet Toolbox в командном режиме 3.1. Краткая характеристика пакета расширения Wavelet Toolbox 3.1.1. Назначение пакета Wavelet Toolbox Пакет расширения систем MATLAB 6.0/6.1/6.5 Wavelet Toolbox 2/2.1/2.2 — одно из новейших и мощных инструментальных средств для изучения, создания и применения вейвлетов и проведения вейвлет-преобразований. Пакет представляет пользователю обширные и одновременно уникальные возможности для работы с вейвлетами, причем как в командном режиме, так и с помощью специальных средств графического интерфейса пользователя (GUI) данного пакета. По обилию типов вейвлетов и функций для обработки сигналов, а также по числу весьма поучительных и наглядных примеров в фирменном описании этот пакет является лучшим среди пакетов расширения для СКМ в этой области (пакеты расширения по вейвлетам есть и в новых реализациях СКМ Mathcad и Mathematica). В этой главе вначале описываются средства, используемые в командном режиме работы. Пакет Wavelet Toolbox предоставляет:

• инструментальные средства для вейвлет-анализа и синтеза сигналов и изо• • • • • • •

бражений; множество уже встроенных вейвлетов разного типа, в том числе пакетных; возможность задания своего вейвлета с заданными свойствами; средства обработки сигналов и изображений; средства для непрерывного и дискретного вейвлет-анализа; средства очистки сигналов от шума и специальной обработки; средства обработки и компрессии сигналов изображений; мощные средства визуализации вейвлетов и всех операций с ними.

Указанные средства предоставляются как на уровне функций, выполняемых из командной строки или программных модулей, так и на уровне хорошо проработанного и удобного графического интерфейса пользователя (GUI).

3.1.2. Справка по пакету в командном режиме Для получения общей справки по пакету или по функции с заданным именем name_function нужно использовать команду: help wavelet или help name_function При исполнении первой команды выводится сообщение о версии пакета и список функций, которыми пакет дополняет систему MATLAB: >> help wavelet Wavelet Toolbox Version 2.2 (R13SP1) 22-Aug-2003 Wavelet Toolbox GUI (Graphical User Interface).

149

Глава 3. Работа с Wavelet Toolbox в командном режиме wavemenu

— Start Wavelet Toolbox graphical user interface tools.

Wavelets: General. biorfilt

— Biorthogonal wavelet filter set.

centfrq

— Wavelet center frequency.

dyaddown

— Dyadic downsampling.

dyadup

— Dyadic upsampling.

intwave

— Integrate wavelet function psi.

orthfilt

— Orthogonal wavelet filter set.

qmf

— Quadrature mirror filter.

scal2frq

— Scale to frequency.

wavefun

— Wavelet and scaling functions.

wavefun2

— Wavelets and scaling functions 2-D.

wavemngr

— Wavelet manager.

wfilters

— Wavelet filters.

wmaxlev

— Maximum wavelet decomposition level.

Wavelet Families. biorwavf

— Biorthogonal spline wavelet filters.

cgauwavf

— Complex Gaussian wavelet.

cmorwavf

— Complex Morlet wavelet.

coifwavf

— Coiflet wavelet filter.

dbaux

— Daubechies wavelet filter computation.

dbwavf

— Daubechies wavelet filters.

fbspwavf

— Complex Frequency B-Spline wavelet.

gauswavf

— Gaussian wavelet.

mexihat

— Mexican Hat wavelet.

meyer

— Meyer wavelet.

meyeraux

— Meyer wavelet auxiliary function.

morlet

— Morlet wavelet.

rbiowavf

— Reverse Biorthogonal spline wavelet filters.

shanwavf

— Complex Shannon wavelet.

symaux

— Symlet wavelet filter computation.

symwavf

— Symlet wavelet filter.

Continuous Wavelet: One-Dimensional. cwt

— Real or Complex Continuous wavelet coefficients 1-D.

Discrete Wavelets: One-Dimensional. appcoef

150

— Extract 1-D approximation coefficients.

3.1. Краткая характеристика пакета расширения Wavelet Toolbox detcoef

— Extract 1-D detail coefficients.

dwt

— Single-level discrete 1-D wavelet transform.

dwtmode

— Discrete wavelet transform extension mode.

idwt

— Single-level inverse discrete 1-D wavelet transform.

upcoef

— Direct reconstruction from 1-D wavelet coefficients.

upwlev

— Single-level reconstruction of 1-D wavelet

wavedec

— Multi-level 1-D wavelet decomposition.

waverec

— Multi-level 1-D wavelet reconstruction.

wenergy

— Energy for 1-D wavelet decomposition.

wrcoef

— Reconstruct single branch from 1-D wavelet

decomposition.

coefficients. Discrete Wavelets: Two-Dimensional. appcoef2

— Extract 2-D approximation coefficients.

detcoef2

— Extract 2-D detail coefficients.

dwt2

— Single-level discrete 2-D wavelet

dwtmode

— Discrete wavelet transform extension mode.

idwt2

— Single-level inverse discrete 2-D wavelet

upcoef2

— Direct reconstruction from 2-D wavelet

transform.

transform. coefficients. upwlev2

— Single-level reconstruction of 2-D wavelet decomposition.

wavedec2

— Multi-level 2-D wavelet decomposition.

waverec2

— Multi-level 2-D wavelet reconstruction.

wenergy2

— Energy for 2-D wavelet decomposition.

wrcoef2

— Reconstruct single branch from 2-D wavelet coefficients.

Wavelets Packets Algorithms. bestlevt

— Best level tree (wavelet packet).

besttree

— Best tree (wavelet packet).

entrupd

— Entropy update (wavelet packet).

wenergy

— Energy for a wavelet packet decomposition.

wentropy

— Entropy (wavelet packet).

wp2wtree

— Extract wavelet tree from wavelet packet

151

Глава 3. Работа с Wavelet Toolbox в командном режиме tree. wpcoef

— Wavelet packet coefficients.

wpcutree

— Cut wavelet packet tree.

wpdec

— Wavelet packet decomposition 1-D.

wpdec2

— Wavelet packet decomposition 2-D.

wpfun

— Wavelet packet functions.

wpjoin

— Recompose wavelet packet.

wprcoef

— Reconstruct wavelet packet coefficients.

wprec

— Wavelet packet reconstruction 1-D.

wprec2

— Wavelet packet reconstruction 2-D.

wpsplt

— Split (decompose) wavelet packet.

Discrete Stationary Wavelet Transform Algorithms. iswt

— Inverse discrete stationary wavelet transform 1-D.

iswt2

— Inverse discrete stationary wavelet

swt

— Discrete stationary wavelet transform 1-D.

swt2

— Discrete stationary wavelet transform 2-D.

transform 2-D.

De-noising and Compression for Signals and Images. ddencmp

— Default values for de-noising or

thselect

— Threshold selection for de-noising.

wbmpen

— Penalized threshold for wavelet 1-D or 2-D

compression.

de-noising. wdcbm strategy. wdcbm2

— Thresholds for wavelet 1-D using Birge-Massart — Thresholds for wavelet 2-D using BirgeMassart strategy.

wden

— Automatic 1-D de-noising using wavelets.

wdencmp

— De-noising or compression using wavelets.

wnoise

— Generate noisy wavelet test data.

wnoisest

— Estimate noise of 1-D wavelet coefficients.

wpbmpen

— Penalized threshold for wavelet packet de-

wpdencmp

— De-noising or compression using wavelet

noising. packets.

152

wpthcoef

— Wavelet packet coefficients thresholding.

wthcoef

— Wavelet coefficient thresholding 1-D.

wthcoef2

— Wavelet coefficient thresholding 2-D.

wthresh

— Perform soft or hard thresholding.

3.1. Краткая характеристика пакета расширения Wavelet Toolbox wthrmngr

— Threshold settings manager.

Tree Management Utilities. allnodes

— Tree nodes.

cfs2wpt

— Wavelet packet tree construction from coefficients.

depo2ind

— Node depth-position to node index.

disp

— Display information of WPTREE object.

drawtree

— Draw wavelet packet decomposition tree (GUI).

dtree

— Constructor for the class DTREE.

get

— Get tree object field contents.

ind2depo

— Node index to node depth-position.

isnode

— True for existing node.

istnode

— Determine indices of terminal nodes.

leaves

— Determine terminal nodes.

nodeasc

— Node ascendants.

nodedesc

— Node descendants.

nodejoin

— Recompose node.

nodepar

— Node parent.

nodesplt

— Split (decompose) node.

noleaves

— Determine nonterminal nodes.

ntnode

— Number of terminal nodes.

ntree

— Constructor for the class NTREE.

plot

— Plot tree object.

read

— Read values in tree object fields.

readtree

— Read wavelet packet decomposition tree from a figure.

set

— Set tree object field contents.

tnodes

— Determine terminal nodes (obsolete — use LEAVES).

treedpth

— Tree depth.

treeord

— Tree order.

wptree

— Constructor for the class WPTREE.

Wpviewcf

— Plot wavelet packets colored

write

— Write values in tree object fields.

wtbo

— Constructor for the class WTBO.

wtreemgr

— NTREE object manager.

coefficients.

General Utilities.

153

Глава 3. Работа с Wavelet Toolbox в командном режиме wcodemat

— Extended pseudocolor matrix scaling.

wextend

— Extend a Vector or a Matrix.

wkeep

— Keep part of a vector or a matrix.

wrev

— Flip vector.

wtbxmngr

— Wavelet Toolbox manager.

Other. wvarchg

— Find variance change points.

Wavelets Information. waveinfo

— Information on wavelets.

Demonstrations. wavedemo

— Wavelet Toolbox demos.

See also WAVEDEMO. Пример получения справки по функции centfrq представлен ниже: >> help centfrq CENTFRQ Wavelet center frequency. FREQ = CENTFRQ(‘wname’) returns the center frequency in hertz of the wavelet function ‘wname’ (see WAVEFUN). For FREQ = CENTFRQ(‘wname’,ITER), ITER is the number of iterations used by the WAVEFUN function to compute the wavelet. [FREQ,XVAL,RECFREQ] = CENTFRQ(‘wname’,ITER, ‘plot’) returns in addition the associated center frequency based approximation RECFREQ on the 2^ITER points grid XVAL and plots the wavelet function and RECFREQ. See also SCAL2FRQ, WAVEFUN, WFILTERS. Еще одна полезная команда type name_function выводит MATLAB-коды m-файла, задающего функцию с именем name_function. Вывод для многих функций оказывается довольно громоздким, но это единственная возможность детально познакомиться с реализаций заданной функции.

3.1.3. Техническая документация по пакету Wavelet Toolbox Техническая документация по пакету расширения Wavelet Toolbox представлена электронной и обычной книгами «Wavelet Toolbox. For Use with MATLAB. User Guide». Для версии пакета 2.0 объем книги составляет 941 стр., объем PDF-файла электронной версии книги около 13.8 Мбайт. Версия пакета 2.0 является основной, и ей посвящен последующий материал этой и следующей глав. Отличия версий 2.1 и 2.2 от версии 2.0 отмечены в конце этой главы.

154

3.2. Основные функции вейвлет-анализа

3.2. Основные функции вейвлет-анализа 3.2.1. Центральная частота — centfrq Мы уже отмечали важность понятия центральной частоты вейвлетов, которая определяет положение пика Фурье — образа вейвлета на оси частот. Как правило, эта частота вычисляется итерационным методом. Она определяет пик спектрального образа вейвлета. Функция FREQ = centfrq('wname') возвращает центральную частоту (в Гц) вейвлет-функции с именем 'wname'. Другой вариант этой функции FREQ = centfrq('wname',ITER) возвращает центральную частоту вейвлет-функции с дополнительным аргументом ITER — числом итераций, выполненных функцией wavefun, которая используется для вычисления вейвлета. Следующий пример задает вейвлет Добеши типа db2, вычисляет его центральную частоту при 16 итерациях и строит графики вейвлета и синусоиды (рис. 3.1), имеющей ту же частоту, что и центральная частота вейвлета: wname = 'db2'; iter = 16; cfreq = centfrq(wname,iter,'plot'); cfreq = 0.6667 Рис. 3.1 дает наглядное представление о различии базовых функций в Фурье-преобразовании (синусоида) и в вейвлет-преобразовании (в данном случае вейвлет Добеши db2). Рассмотрим еще один особенно характерный пример. Здесь задано вычисление центральной частоты так называемого гауссова комплексного вейвлета cgau6, который можно и впрямь трактовать как вырезку окном Гаусса синусоидального сигнала с частотой, равной средней частоте вейвлета: wname = 'cgau6'; cfreq = centfrq(wname,16,'plot') cfreq = 0.6000

Рис. 3.1. Графики вейвлета Добеши db2 и синусоиды с частотой, равной средней частоте вейвлета

Рис. 3.2. Графики комплексного гауссова вейвлета cgau6 и синусоиды с частотой, равной средней частоте вейвлета

155

Глава 3. Работа с Wavelet Toolbox в командном режиме Вычисление средней частоты также сопровождается автоматическим построением сравнительных графиков вейвлета и синусоиды — рис. 3.2. Приведенные примеры дают наглядное представление о том, как можно трактовать тот или иной вейвлет. Однако проще всего это сделать, используя GUI-пакет, который мы рассмотрим несколько позже.

3.2.2. Уменьшение размера матрицы вдвое — dyaddown В ходе осуществления кратномасштабного вейвлет-анализа приходится то и дело уменьшать или увеличивать вдвое размеры матрицы X со значениями сигнала. Вектор X рассматривается как частный случай матрицы X. Функция Y = dyaddown(X,EVENODD) возвращает масштабированную (уменьшенную вдвое) версию матрицы X. Причем матрица Y может содержать четные или нечетные элементы матрицы X в зависимости от значения положительной переменной EVENODD:

• если 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,'type',EVENODD), где type — r, c или m, возвращает масштабированную версию матрицы X, сжатую по строкам (r), столбцам (c) или и по строкам, и по столбцам (m) в зависимости от значения переменной type. Пример: s = (1:2)’*(1:3) dec = dyaddown(s,0,’c’) der = dyaddown(s,1,’r’) dem = dyaddown(s,1,’m’) s = 1

2

3

2

4

6

2

3

dec = 2 4 der = 1 dem = 1

3

3.2.3. Увеличение размера матрицы вдвое — dyadup Функция Y = dyadup(X,EVENODD), в отличие от рассмотренной выше функции, возвращает дополненную нулями версию матрицы X. Другими словами, она увеличивает размер вектора вдвое. Нулевые элементы могут быть четными или нечетными в зависимости от значения переменной EVENODD:

156

3.2. Основные функции вейвлет-анализа если число EVENODD — четное, то Y(2k – 1) = X(k), Y(2k) = 0; если EVENODD — нечетное, то Y(2k – 1) = 0, Y(2k) = X(k). Функция Y = dyadup(X) эквивалентна функции Y = dyadup(X,1). Y = dyadup(X,EVENODD,'type') или Y = dyadup(X,'type',EVENODD) возвращает масштабированную матрицу X, дополненную нулями по столбцам или по строкам или и по столбцам, и по строкам, в зависимости от значения переменной type. Приведенный ниже пример в особых комментариях не нуждается: s = (1:3)’*(1:2) der = dyadup(s,1,’r’) doc = dyadup(s,0,’c’) dem = dyadup(s,1,’m’) s = 1

2

2

4

3

6

der = 0

0

1

2

0

0

2

4

0

0

3

6

0

0

doc = 1

0

2

2

0

4

3

0

6

0

0

0

0

0

0

1

0

2

0

0

0

0

0

0

0

2

0

4

0

0

0

0

0

0

0

3

0

6

0

0

0

0

0

0

dem =

3.2.4. Интеграл от вейвлет-функции — intwave Функция [INTEG,XVAL] = intwave('wname',PREC) вычисляет интеграл INTEG вейвлет-функции ψ (от –∞ до значения XVAL = x):

157

Глава 3. Работа с Wavelet Toolbox в командном режиме x

∫ ψ( y )dy.

−∞

Функция ψ( y ) аппроксимируется на сетке из 2PREC точек, где PREC — положительное целое число, а 'wname' — символьный аргумент (строка символов), содержащий имя вейвлета.?Результат INTEG — вещественный или комплексный вектор, в зависимости от типа вейвлета. [INTEG,XVAL] = intwave('wname') Функция [INTEG,XVAL] = intwave('wname') эквивалентна [INTEG,XVAL] = intwave('wname',8). Для биортогонального вейвлета применяется функция [INTDEC,XVAL,INTREC] = intwave('wname',PREC), которая возвращает интегралы INTDEC и INTREC для вейвлет-функции разложения и вейвлет-функции восстановления соответственно. Следующий пример строит график вейвлета Добеши db2 и интеграла от него (рис. 5.12): wname = 'db2'; [phi,psi,xval] = wavefun(wname,7); subplot(211); plot(xval,psi); title('Wavelet'); [integ,xval] = intwave(wname,7); subplot(212); plot(xval,integ); title('Wavelet integrals');

Рис. 3.3. Графики вейлета Добеши db2 и интеграла от него

3.2.5. Масштабирование к частоте — scal2frq Функция F = scal2frq(A,'wname',DELTA) — возвращает псевдочастоты, соответствующие масштабированию, задаваемому в A, вейвлет-функции 'wname' и выборочному периоду DELTA. Следующий пример задает вейвлет Добеши db10 и строит его спектрограмму: wname = ‘db10’; A = -64; B = 64; P = 224; delta = (B-A)/(P-1); t = linspace(A,B,P); omega = 5; x = cos(omega*t); freq = omega/(2*pi);

158

3.2. Основные функции вейвлет-анализа scales = [0.25:0.25:3.75]; TAB_PF = scal2frq (scales,wname,delta); [dummy,ind] = min(abs(TAB_PF-freq)); freq_APP = TAB_PF(ind); scale_APP = scales(ind); str1 = [‘224 samples of x = cos(5t) on [-64,64] — ‘ ... ‘True frequency = 5/(2*pi) =~ ‘ num2str(freq,3)]; str2 = [‘Array of pseudo-frequencies and scales: ‘]; str3 = [num2str([TAB_PF’,scales’],3)]; str4 = [‘Pseudo-frequency = ‘ num2str(freq_APP,3)]; str5 = [‘Corresponding scale = ‘ num2str(scale_APP,3)]; figure; cwt(x,scales,wname,’plot’); ax = gca; colorbar axTITL = get(ax,’title’); axXLAB = get(ax,’xlabel’); set(axTITL,’String’,str1) set(axXLAB,’String’,[str4,’ — ‘ str5]) clc ; disp(strvcat(‘ ‘,str1,’ ‘,str2,str3,’ ‘,str4,str5)) Как нетрудно заметить, большая часть этого примера задает строковое обрамление графика, который представлен на рис. 3.4.

Рис. 3.4. Спектрограмма вейвлета Добеши db10, построенная с масштабированием к частоте функцией scal2frq

Помимо графика данный фрагмент программы выводит следующие данные: 224 samples of x = cos(5t) on [-64,64] — True frequency = 5/(2*pi) =~ 0.796 Array of pseudo-frequencies and scales: 4.77 0.25 2.38 0.5 1.59 0.75 1.19

1

0.954 0.795 0.681 0.596 0.53 0.477 0.433 0.397

1.25 1.5 1.75 2 2.25 2.5 2.75 3

159

Глава 3. Работа с Wavelet Toolbox в командном режиме 0.367 3.25 0.341 3.5 0.318 3.75 Pseudo-frequency = 0.795 Corresponding scale = 1.5

3.2.6. Вейвлет и масштабирующие функции — wavefunavefun Функция wavefun возвращает аппроксимацию вейвлет-функции 'wname' и связанную с ней масштабирующую функцию, если последняя существует. Положительное число ITER определяет число итераций. Для ортогонального вейвлета эта функция задается в следующем виде: [PHI,PSI,XVAL] = wavefun('wname',ITER) Она возвращает масштабирующую и вейвлет-функцию в 2ITER точках сетки XVAL. Для биортогонального вейвлета эта функция задается в виде: [PHI1,PSI1,PHI2,PSI2,XVAL] = wavefun('wname',ITER) Функция wavefun возвращает масштабирующую и вейвлет-функции для разложения (PHI1, PSI1) и восстановления (PHI2, PSI2). Для вейвлетов без масштабирующей функции (Морлета, комплексного вейвлета и т. д.) применяется следующая форма функции: [PSI,XVAL] = wavefun('wname',ITER) Приведенный ниже пример показывает итерационный процесс (10 итераций) приближения к вейвлету типа sym2 — рис. 3.5: iter = 10; wav = 'sym2'; for i = 1:iter [phi,psi,xval] = wavefun(wav,i); plot(xval,psi); hold on end title(['Approximations of the wavelet ',wav, ... ' for 1 to ',num2str(iter),' iterations']); hold off

Рис. 3.5. Итерационное уточнение (аппроксимация) вейвлета sym2

160

3.3. Утилиты управления построением деревьев Выбранный для иллюстрации вейвлет типа sym2 имеет довольно тонкую структуру, напоминающую фрактальную кривую. Тем не менее из рис. 3.5 хорошо видно, что десятка итераций процесса аппроксимации вполне достаточно для его представления в окончательном виде.

3.2.7. Максимальный уровень вейвлет-разложения — wmaxlev Функция L = wmaxlev(S,'wname') возвращает максимальный уровень разложения сигнала или изображения размера S, используя wavelet, определенный в строке 'wname'. Приведем примеры применения этой простой функции: s = 2^10; w = 'db1'; l1 = wmaxlev(s,w) l1 = 10 w = 'db7'; l2 = wmaxlev(s,w) l2 = 6 Напоминаем, что максимальный уровень разложения сигнала задает такой уровень, при котором погрешность аппроксимации сигнала или функции становится меньше погрешности представления чисел в системе MATLAB.

3.3. Утилиты управления построением деревьев 3.3.1. Обзор утилит управления построением деревьев В пакет Wavelet Toolbox включено довольно много утилит для построения деревьев вейвлет-преобразований. Они предназначены, в основном, для построения таких деревьев в примерах, реализованных на основе GUI-пакета и в составе ряда функций пакета. Самостоятельно эти утилиты применяются редко, но такое применение не исключено — особенно для утилит, строящих завершенные графики деревьев и иных графических объектов. Такие утилиты рассматриваются более подробно. Набор утилит для управления построением деревьев представлен ниже: Allnodes — создает дерево узлов; depo2ind — определяет местоположение узла по отношению к его индексу; drawtree — дает построение дерева разложения пакетного вейвлета с соответствующим обрамлением в окне GUI; dtree — конструктор для класса DTREE; Get — дает получение компонентов дерева; ind2depo — задает индекс узла по отношению к глубине его позиции; isnode — возвращает логическую единицу, если узел существует, и логический нуль, если он не существует; stnode — определяет индексы для терминальных узлов; leaves — определяет терминальные узлы; nodeasc — задает инцедентность узла; nodedesc — задает потомки данного узла; nodejoin — задает восстановление узла; nodepar — задает родительский узел; nodesplt — задает узел разложения;

161

Глава 3. Работа с Wavelet Toolbox в командном режиме noleaves — определяет число нетерминальных узлов; ntnode — возвращает количество терминальных узлов; ntree — задает конструктор класса NTREE; plot — строит график объекта дерева; read — считывает значение в поле объекта дерева; readtree — считывает декомпозицию дерева пакетного вейвлета с фигуры; set — задает установки содержания полей объекта дерева; tnodes — определяет терминальные узлы; treedpth — возвращает глубину дерева; treeord — возвращает порядок дерева; wptree — заадает конструктор класса WPTREE; wpviewcf — строит коэффициенты пакетных вейвлетов в цвете (вейвлет-спектрограмму); write — записывает значения в поле объекта дерева; wtbo — задает конструктор для класса WTBO; wtreemgr — задает менеджер объекта NTREE. Напоминаем, что команда help name_function позволяет вывести описание каждой из этих функций, при замене name_function на имя конкретной функции. В большинстве описаний функций можно найти демонстрационные примеры на их применение. Некоторые примеры показаны ниже.

3.3.2. Построение дерева разложения пакетного вейвлета — drawtree Одна из важных утилит drawtree(T) строит дерево пакетного вейвлета T, а функция F = drawtree(T) строит дерево пакетного вейвлета и графическую метку. Эти построения происходят в окне GUI и обеспечены соответствующими возможностями, например, в построении графика сигнала (функции), просмотра временных диаграмм в узлах дерева, установкой параметров и т. д. Приведем пример построения дерева функции sin(x)/x с уровнем 3 декомпозиции и на основе вейвлета Добеши db4: x = 6*pi*[0.001:0.005:1]; y=sin(x)./x; t = wpdec(y,3,'db4'); fig = drawtree(t); Получаемое при этом окно для просмотра пакетных вейвлетов показано на рис. 3.6.

3.3.3. Построение дерева — plot Функция plot(T) строит график дерева и график вейвлетов в указанных на этом дереве узлах. Пример такого построения: load noisbloc; x = noisbloc; t = wpdec(x,3,'db4'); plot(t) Построенные графики представлены на рис. 3.7. Активизируя те или иные узлы дерева (рис. 3.7, слева), можно наблюдать построение в них временных зависимостей для декомпозиции сигнала (рис. 3.7, справа).

162

3.3. Утилиты управления построением деревьев

Рис. 3.6. Пример применения утилиты drawtree

Рис. 3.7. Пример применения утилиты plot

Рис. 3.8. Построение дерева пакетного вейвлета

3.3.4. Построение цветной вейвлет-спектрограммы — wpviewcf Функция wpviewcf(T,CMODE) строит коэффициенты пакетных вейвлетов в цвете, причем возможно задание до 8 режимов (числами от 0 до 1). В следующем примере: x = sin(8*pi*[0:0.005:1]); t = wpdec(x,3,'db1'); plot(t); wpviewcf(t,1); вначале функцией plot строится дерево пакетного вейвлета и временные зависимости в узлах — рис. 3.8. Затем функция wpviewcf строит спектрограмму, показанную на рис. 3.9, для значения параметра CMODE = 1. К сожалению, цвета спектрограммы при ее печати в книге отсутствуют и заменяются оттенками серого цвета, что делает спектрограмму блеклой.

163

Глава 3. Работа с Wavelet Toolbox в командном режиме

Рис. 3.9. Пример построения цветной спектрограммы

3.4. Основные утилиты В этом разделе рассматриваются четыре функции, в оригинале названные основными утилитами. Эти функции не имеют прямого отношения к вейвлетам, но они полезны для некоторых операций с ними.

3.4.1. Кодированная версия матрицы — wcodemat Утилита Y = wcodemat(X,NBCODES,OPT,ABSOL) возвращает кодированную версию входной матрицы X, если ABSOL = 0, или ABS(X), если ABSOL — ненулевой аргумент, с использованием первых NBCODES целых чисел. Кодирование может быть выполнено построчно (OPT = 'row' or 'r'), по столбцам (OPT = 'col' или 'c') или глобально (OPT = 'mat' or 'm'). Кодирование выполняется на равномерной сетке между минимальным и максимальным значениями каждой строки или столбца матрицы соответственно. Y = wcodemat(X,NBCODES,OPT) эквивалентна Y = wcodemat(X,NBCODES,OPT,1). Y = wcodemat(X,NBCODES) эквивалентна Y = wcodemat(X,NBCODES,'mat',1). Y = wcodemat(X) эквивалентна Y = wcodemat(X,16,'mat',1).

3.4.2. Утилита расширения — wextend Утилита расширения Y = wextend (TYPE,MODE,X,L[,LOC]) служит для расширения X в соответствии с типом расширения TYPE: 1, '1', '1d' или 2, '2', '2d' или 'ar' или 'addrow' 'ac' или 'addcol'

164

'1D' — 1D-расширение; '2D' — 2D-расширение; — добавление строк; — добавление столбцов.

3.4. Основные утилиты Допустимые режимы расширения (MODE) приведены ниже: 'zpd' — нулевое расширение; 'sp0' — гладкое расширение нулевого порядка; 'spd' (или 'sp1') — гладкое расширение первого порядка; 'sym' — симметричное расширение; 'ppd' — периодическое расширение (1); 'per' — периодическое расширение (2). Если TYPE = {1, '1', '1d' or '1D'}: LOC = 'l' (or 'u') — для расширения влево или вверх; LOC = 'r' (or 'd') — для расширения вправо или вниз; LOC = 'b' — для расширения в обе стороны; LOC = 'n' — левое расширение. Пример расширения вектора: >> x = [1 2 3] >> xextzpd1 = wextend('1','zpd',x,2) x = 1 2 3 xextzpd1 = 0 0 1 2 3 0 >> xextper = wextend('1D','per',x,2) xextper = 3 3 1 2 3 3

0

1

2

Пример расширения матрицы: >> X = [1 2 3;4 5 6] >> Xextzpd = wextend(2,’zpd’,X,2) X = 1

2

3

4

5

6

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

1

2

3

0

0

0

0

4

5

6

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

Xextzpd =

>> Xextsym = wextend(‘2D’,’sym’,X,2) Xextsym = 5

4

4

5

6

6

5

2

1

1

2

3

3

2

2

1

1

2

3

3

2

5

4

4

5

6

6

5

5

4

4

5

6

6

5

2

1

1

2

3

3

2

165

Глава 3. Работа с Wavelet Toolbox в командном режиме 3.4.3. Извлечение — wkeep Для вектора X функция Y = wkeep(X,L,OPT) извлекает вектор Y из вектора X. Длина вектора Y задается параметром L. Если OPT = 'c' ('l', 'r', соответственно), Y – центральная часть (левая или правая, соответственно) вектора X. Функция Y = wkeep(X,L,FIRST) возвращает вектор X(FIRST : FIRST + L – 1). Функция Y = wkeep(X,L) эквивалентна Y = wkeep(X,L,'c'). Примеры извлечения элементов вектора даны ниже: >> x = 1:8; y = wkeep(x,4,’c’) y = 3 >> y = y = 3 >> y = y = 3 >> y = y = 1 >> y = y = 6

4 5 wkeep(x,3)

6

4 5 wkeep(x,3,’c’) 4 5 wkeep(x,3,’l’) 2 3 wkeep(x,3,’r’) 7

8

Для матрицы X функция Y = wkeep(X,S) извлекает центральную часть матрицы X. Размер матрицы Y задается вектором S. Функция Y = wkeep(X,S,[FIRSTR FIRSTC]) извлекает часть матрицы X размера S, начиная с элемента матрицы X(FIRSTR,FIRSTC). Примеры извлечения части матрицы: >> m = magic(4) m = 16 2 3 13 5 11 10 8 9 7 6 12 4 14 15 1 >> y = wkeep(m,[2 3]) y = 5 11 10 9

7

6

3.4.4. Разворот вектора — wrev Утилита Y = wrev(X) осуществляет разворот вектора X. Например: >> X = [5 3 1]; Y = wrev(X) Y = 1 3 5 >> Y=wrev(X') Y =

166

3.5. Прочие функции 1 3 5 В этом примере вектор-строка превращается в вектор-столбец.

3.5. Прочие функции 3.5.1. Обратное нестандартное БПФ — instdfft Функция [X,T] = instdfft(XHAT,LOWB,UPPB) возвращает нестандартное обратное БПФ (IFFT) для параметра XHAT на регулярной сетке на интервале [LOWB,UPPB]. Выходными аргументами является сигнал X, вычисленный на интервале T следующим образом T = LOWB + [0 : n – 1]*(UPPB–LOWB)/n, где n — длина параметра XHAT.

3.5.2. Нестандартное прямое БПФ — nstdfft Функция [XHAT,OMEGA] = nstdfft(X,LOWB,UPPB) возвращает нестандартное одномерное прямое БПФ ( FFT) для сигнала X на регулярной сетке [LOWB,UPPB] с числом измерений, равным степени 2. Выходной аргумент XHAT — сдвинутое БПФ по X, вычисляемое в интервале OMEGA, который задается как OMEGA = [–n : 2 : n – 2] / (2*(UPPB — LOWB)), где n = length(X). Выходные векторы XHAT и OMEGA также имеют размер n. Используется для аппроксимации коэффициентов непрерывного разложения Фурье методом БПФ, прямое применение которого возможно только для дискретного преобразования Фурье. Обратная функция instdfft позволяет восстановить сигнал по его нестандартному разложению.

3.5.3. Точки оценки — wvarchg Функция [PTSOPT,KOPT,T_EST] = wvarchg (Y,K,D) возвращает точки оценки сигнала Y для j точек с j = 1, 2, ..., K–1. Целое число KOPT определяет число точек (0 KOPT < K–1). Вектор PTS_OPT содержит соответствующие точки. Если KOPT = 0, PTS_OPT = [] (пустое множество). Целое число D – это минимальная задержка между двумя точками. K и D должны быть числами, такими что 1 < K