Вейвлет преобразование в matlab. Различные примеры функций вейвлет-анализа в MATLAB

Пакет расширения системы Matlab 7.0.1 Wavelet Toolbox 2 - одно из мощных инструментальных средств для изучения и применения вейвлет-преобразования (ВП). Этот пакет представляет обширные и уникальные возможности для работы с вейвлетами в двух режимах: командного окна и графического интерфейса пользователя.

Вейвлеты в пакете Matlab принято классифицировать по имени ученого, впервые предложившего тот или иной тип вейвлета, или по отличительным особенностям. В данном пакете содержится 15 базовых типов вейвлетов, в частности, Хаара - ‘haar’, Морле - ‘шогГ, Добеши - ‘db’, мексиканская шляпа - ‘mexh’ и т.д. Для получения справки по типу вейвлета необходимо в командном окне набрать waveinfo (‘type’), указав тип вейвлета. Например, для вейвлета типа "сомбреро" имеем:

>> waveinfо(1 mexh 1)

MEXHINFO Information on Mexican Hat wavelet.

Mexican Hat Havelet

Definition: second derivative of the Gaussian probability density function

mexh(x) = с * ехр(-х л 2/2) * (1-х л 2) where c = 2/(sqrt(3)*pi A {1/4})

Family Mexican hat

Compact support no

Support width infinite

Effective support [-5 5]

Режим командного окна

В режиме командного окна пакет системы Matlab Wavelet Toolbox предоставляет:

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

анализа приведено в .

Рассмотрим некоторые примеры использования вейвлетов в режиме командного окна.

Пример 6.11. Вычислить значения вейвлета типа «сомбреро» в диапазоне [-6; 6J.

Функция =mexihat(lb,uto,n); plot(x,psi)

получим итоговый результат, показанный на рис. 6.31. Здесь представлена вейвлет-функция типа "сомбреро", вычисленная в диапазоне [-6; 6J.

Рис.6.31. График вейвлет-функции типа «сомбреро» Непрерывное вейвлет-преобразование

Этот вид преобразования лежит в основе применения

вейвлетов в технике обработки сигналов. НПВ реализуется функцией cwt, синтаксис которой имеет следующие формы:

COEFS = cwt(S, SCALES, ‘wname’) - возвращает коэффициенты НПВ вещественного или комплексного сигнала S в вещественном положительном SCALES; wname задает имя вейвлета;

  • COEFS = cwt(S, SCALES, ‘wname’, ‘plot’) - возвращает коэффициенты и строит их график;
  • COEFS = cwt(S, SCALES, ‘wname’, PLOTMODE) возвращает коэффициенты и строит их график с

использованием настроек цвета PLOTMODE.

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

Пример 6.12. Непрерывный вейвлет-анализ синусоиды.

В командной строке записываются следующие выражения: t=linspace(-6,б,2048); s=sin(t); subplot(211), plot(t,s); title(1 function s(t)") subplot(212), c =cwt(s,1:1:16, "sym4", "abslvl", ); title (1 Wavelet spectr s(t)")|

Запись в третьей строке - "abslvl" - указывает на

характеристику окрашивания: здесь используются абсолютные значения коэффициентов. Результат расчета показан на рис.6.32.


Рис.6.32. График сигнала sin(t) и его вейвлет-спектрограмма

Полученная вейвлет-спектрограмма представляет собой зависимость коэффициентов вейвлет-представления (масштаба) от времени. Для такой простой функции, как sin(t), полезна оценка лишь младших коэффициентов, заданных комплексом 1:1:16 (выводятся коэффициенты от 1 до 16 с шагом 1). Как видно из рис.6.32, в спектрограмме синусоиды нет каких-либо отличительных особенностей, кроме областей перехода сигнала через нуль и экстремальные точки: периодичность синусоиды выражается чередованием темных и светлых областей. Лишь по краям выявляются зоны, усложняющие общий вид спектрограммы, что вызывается ограниченностью во времени области существования сигнала. Напомним, что обычный спектр Фурье такой функции представляет собой одну вертикальную линию с абсциссой, равной частоте синусоиды, и ординатой, определяемой ее амплитудой. ? шума:

s(t) = sin(0,3t) + b(t),

где b(t) - белый шум, равномерно распределенный в интервале [-0,5; 0,5 ]. Выполнить для этого сигнала НВП.

В командной строке запишем:

load noissin; vc=cwt(noissin, 1:48,1db4",1 plot1);

Результат вейвлет-преобразования показан на рис.6.33.



Рис.6.33. Г рафик сигнала (а) и его вейвлет-спектрограмма (б, в)

Аргументы в записанном выражении для cwt определяют использованный вейвлет (Добеши 4 -го порядка) и масштабы анализа. На рис.6.33.б приведены результаты ВА для 48 масштабов, на рис.6.33.в - для 128 масштабов. По существу, возвращаемый аргумент содержит коэффициенты для различных масштабов. В первом случае (рис.6.33.б) результат расчета -

матрица размером 48*1000, в которой каждый ряд соответствует одному фиксированному масштабу, а график дает коэффициенты НВП.

Второй аргумент в командной строке для cwt позволяет управлять числом масштабов (шкал), на которых проводится НВП. При изменении этого параметра необходимо учитывать:

Все масштабы должны быть действительными

положительными числами;

Приращение масштабов должно быть положительным.

Повторим анализ, используя масштабы от 2 до 128, набрав

следующую команду:

с = cwt(noissin,2:2:128,"db4","plot");

Полученный график (рис.6.33.в) дает более ясную картину того, что происходит с сигналом, высвечивая периодичность. ?

ДВП выполняется с помощью команды dwt, которая выполняет одномерную вейвлетную декомпозицию по отношению к конкретному вейвлету ("wname ^ или фильтрам декомпозиции (.Lo_D и Hi_D ).

Синтаксис команды имеет следующий вид:

Dwt(X,’wname") - вычисляет вектор коэффициентов аппроксимации сА и вектор коэффициентов детализации cD, полученных вейвлетным разложением вектора X. Запись в строке "wname" определяет имя вейвлета.

Dwt(X,Lo_D,Hi_D) - вычисляет вейвлетную

декомпозицию, как и выше, но используя указанные здесь фильтры в качестве входов: Lo_D - НЧ-ый фильтр декомпозиции; Hi_D - ВЧ-ый фильтр декомпозиции.

Пример 6.14. Анализируемый сигнал отображает

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

В командной строке записываются следующие выражения: load leleccum;

s = leleccum(1:3920) ;| l_s = length(s);

Dwt(s, 1 dbl 1);

subplot(1,2,1); plot(Al); title(1 Approximation Al 1) subplot(1,2, 2); plot(Dl); title(1 Detail D1 1)

Результат показан на рис.6.34.

Рис.6.34.

(б) и детализации (в)

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

Режим графического интерфейса

Перейдем от командного окна к режиму графического интерфейса (Graphical Interface ), для чего необходимо набрать в поле командного окна wavemenu.. В результате появляется окно с перечнем основных применений вейвлетов (рис.6.35).

Рис.6.35.

Вначале выполним одномерное НВП, нажав кнопку Continuous Wavelet 1-D. В появившемся окне (рис.6.36) необходимо провести ряд действий для загрузки исследуемого сигнала.

Рассмотрим следующий пример.

Пример 6.15. Выполним НВП для зашумленного синусоидального сигнала, который был использован ранее в примере 6.13.

Загрузим выбранный сигнал с помощью операций, показанных на рис.6.36. Для анализа воспользуемся вейвлетом Добеши 4-го порядка с числом масштабов от 1 до 48. Установив в правой части окна требуемые параметры анализа, получим результат, который показан на рис. 6.37.


Рис.6.36.

Рис.6.37,

На рис.6.37 приведены следующие графики (сверху вниз):

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

Рис.6.38.


Рис.6.39.

Информацию о структуре сигнала можно получить не только в координатах: «Положение (X)» и «Масштаб (Sea)», но и в терминах «Положение (X)» и «Частота (Frq) в герцах. Удерживая правую клавишу мыши на графике коэффициентов, получаем информацию о положении и масштабе (в нижней части окна, рис.6.40). Выполнив такую же операцию, но при отмеченной позиции «Frequency», имеем информацию о положении и частоте (рис.6.41).

Рис.6.40. Вейвлет-анализ в координатах: «Положение» (X = 507) и «Масштаб» (25)

Рис.6.41. Вейвлет-анализ в координатах: «Положение» (X = 600) и «Частота» (0,027)

Часто возникает вопрос о связи масштаба и частоты. Ответ на этот вопрос может быть дан только в широком смысле, поэтому лучше говорить о псевдочастоте , соответствующей масштабу. Для того чтобы выявить такую связь, необходимо вычислить центральную частоту вейвлета F c , равную где а - масштаб; А - период выборки; F c - центральная частота вейвлета; F a - псевдочастота, соответствующая масштабу а , в Гц.

Сущность такой связи заключается в ассоциации с данным вейвлетом периодического сигнала частоты F c . В системе Matlab имеется функция centfrq, которая может быть использована для вычисления центральной частоты и построения

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


Рис.6.42. Вейвлет Добеши 7 -го порядка и периодический сигнал (период: 1,44; частота: 0,7)

Дискретное вейвлет-преобразование

Рассмотрим с помощью графического интерфейса выполнение ДВП на следующем примере.

Пример 6.16. Проведем вейвлет-анализ для сигнала SeriesjG, который имеется во многих статистических пакетах и используется как классический пример сезонных временных рядов.

На рис.6.43 показаны результаты ДВП, выполненного

посредством вейвлета Хаара. Декомпозиция на первом уровне представляет собой сумму коэффициентов аппроксимации и детализации, т.е. 5 = а г + d lt что определяет моду full

decomposition. При ДВП можно более подробно проанализировать структуру сигнала. Так, на рис.6.44 приведены отдельные моды ВА {separate mode): аппроксимации и детализации вместе с

коэффициентами разложения.


Рис.6.43.

Рис.6.44. (а - сигнал и его аппроксимация; б - коэффициенты, сигнал и его

детализация)

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


Рис.6.45.

го порядка)

На рис.6.46 приведены отдельные моды BA (separate mode): аппроксимации и детализации вместе с коэффициентами разложения. ?

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

1.2.2. MatLab Wavelet Toolbox

MatLab Wavelet Toolbox – это открытый, дружественный для пользователя пакет расширения MatLab, позволяющий синтезировать всевозможные алгоритмы обработки информации - данных, сигналов и изображений - с использованием вейвлет-функций /6/. В своей работе пакет широко использует возможности системы MatLab (матричные алгоритмы вычислений, стильную и в тоже время мощную графику) для решения задач анализа (шумоподавления, расфильтровки, сжатия и восстановления): это предоставляет в распоряжение как начинающего, так и профессионального пользователя исчерпывающий набор функций для реализации собственных алгоритмов обработки данных, т.е. написания собственного m-кода, а также средства графического интерфейса (GUI). Можно сказать, пакет Wavelet Toolbox оказывается превосходным средством для решения задач обработки одно- и двумерной информации: действительно, спектр задач, решаемых с использованием пакета, настолько широк, что упоминание таких проблем, как обработка звука, статических изображений и видеокартинок, не говоря уже о передаче данных, исследовании массивов геофизических, сейсмоакустических данных, биомедицинских сигналов и изображений, будет, естественно, далеко не полным.

MatLab Wavelet Toolbox включает обширную библиотека вейвлет-функций (континуальных неортогональных вейвлетов, в том числе комплексных; ортогональных семейств функций, функций Добеши, Койфмана, а также симлетов; биортогональных вейвлетов); широкий набор вейвлет-фильтров /7/.

Основные возможности:

1) всевозможные функции для реализации континуального анализа, дискретного одноуровневого и дискретного многоуровневого анализа;

2) функции анализа и синтеза данных с использованием вейвлет-пакетов;

3) функции для решения задач аппроксимации данных, статистических распределений и т.п.;

4) функции внедрения в пакет собственных вейвлет-функций и работы с ними;

5) набор средств визуализации результатов анализа и синтеза;

6) средства GUI.

1.2.3. Вывод по аналитическому обзору

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

Однако, несмотря на множество достоинств, они имеют следующие недостатки:

1) не реализуют метод структурной индексации исходных сигналов;

2) обладают высокими требованиями к аппаратному обеспечению;

3) имеют высокую стоимость;

4) понятие вейвлета в них строго детерминировано для реализации уже разработанных алгоритмов.

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

Поэтому данная разработка является востребованной в современной индустрии компьютерной обработки сигналов.


1.3. Основные требования к системе 1.3.1. Основные цели создания системы и критерии эффективности ее функционирования

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

Для оценки эффективности работы системы МАДС можно использовать оценку размера данных до и после сжатия.

1.3.2. Функциональное назначение системы

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

1) осуществление вейвлет-преобразования исходных сигналов;

2) осуществление структурной индексации исходных сигналов;

3) конвертация результатов структурной индексации для получения исходного сигнала;

4) визуализация данных вейвлет-преобразования и структурной индексации для наглядного отображения их результатов.

1.3.3. Особенности системы и условия ее эксплуатации

Система МАДС предназначена для работы с текстовыми файлами, содержащими данные о различных сигналах. Таким образом, объем информации, обрабатываемый системой, может быть достаточно велик и составлять десятки мегабайт. Эти особенности накладывают ограничения на использование непроизводительных и медленных алгоритмов.

1.3.4. Требования к функциональной структуре

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

Подсистема вейвлет-анализа служит для вейвлет-преобразования исходного сигнала.

Подсистема структурной индексации предназначена для реализации методов структурной индексации исходного сигнала.

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

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

1.3.5. Требования к техническому обеспечению

Задача обработки дискретных сигналов в системе МАДС связана с автоматическим анализом больших массивов информации. Преобразования, проводимые в системе, должны проводиться в процессе интерактивного взаимодействия с пользователем, поэтому паузы на обработку не должны превышать нескольких минут. Исходя из этого, сформулированы требования к техническим характеристикам персонального компьютера, на котором будет функционировать система. Требования сведены в табл. 1.1.

Таблица 1.1

Технические характеристики персонального компьютера

Наименование Значение
Частота процессора, МГц от 900
Объем оперативной памяти, Мб от 128
Разрешение экрана монитора не менее 1024x768
1.3.6. Требования к информационному обеспечению

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

1.3.7. Требования к программному обеспечению

Систему МАДС целесообразно разрабатывать для функционирования под операционной системой семейства Windows, так как ОС данного класса наиболее широко распространены в современном мире. Платформой для разработки выбрана среда для разработки приложений Microsoft Visual Studio .NET. Эта среда поддерживает язык C# и обладает при этом возможностями быстрой разработки и проектирования визуальных интерфейсов, что особенно важно при работе с графической информацией.

1.4. Основные технические решения проекта системы 1.4.1. Решение по комплексу технических средств

Как уже отмечалось в п.п. 1.3.5, для достижения удобного пользователю режима функционирования системы необходимо следующая минимальная конфигурация персонального компьютера: частота процессора 900 МГц, объем оперативной памяти 128 Мб, монитор, поддерживающий разрешение 1024x768 точек. Также желательно наличие следующих периферийных технических средств: цветной струйный принтер для вывода на печать результатов обработки изображений.

1.4.2. Описание системы программного обеспечения

Для реализации и функционирования проекта необходимо общесистемное программное обеспечение ОС Windows XP, в основе которой лежит ядро, характеризуемое 32-разрядной вычислительной архитектурой и полностью защищенной моделью памяти, что обеспечивает надежную вычислительную среду.

Разработка системы МАДС и ее подсистем будет вестись с использованием среды для разработки приложений Microsoft Visual Studio .NET. Среда разработки включает в себя высокопроизводительный 32-битный компилятор, что позволяет оптимизировать создаваемый код. Microsoft Visual Studio .NET включает обширный набор средств, которые повышают производительность труда программистов и сокращают продолжительность цикла разработки. Многофункциональная интегрированная среда разработки Microsoft Visual Studio .NET включает компилятор, удовлетворяющий стандарт ANSI/ISO, встроенный дизайнер форм, богатый набор средств для работы с компонентами, менеджер проектов и отладчик. Удобство разработки и эффективность созданных в данной среде разработки программ делают Microsoft Visual Studio .NET оптимальным выбором для построения исследовательской системы, какой является система МАДС.


2. РАЗРАБОТКА ПОДСИСТЕМЫ ВЕЙВЛЕТ-АНАЛИЗА 2.1. Описание постановки задачи вейвлет-анализа 2.1.1. Характеристика задачи

Для того чтобы функция могла называться вейвлетом, должны выполняться два условия /8/:

1) ее среднее значение (т.е. интеграл по всей прямой) равно нулю: ;

2) функция быстро убывает при .

Теперь возьмем произвольный сигнал – некоторую функцию (переменную будем называть временем), и произведем ее вейвлет-анализ при помощи вейвлета .

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

1) растянуть вейвлет в раз по горизонтали и в раз по вертикали;

2) сдвинуть его в точку , полученный вейвлет обозначим ;

3) "усреднить" значения сигнала в окрестности точки a при помощи :

, (2.1)

где – вейвлет со смещением и масштабом /3/.


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

Таким образом, задача вейвлет-анализа может быть разбита на несколько подзадач:

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

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

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

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

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


2.1.2. Входная информация

Входной информацией являются текстовые файлы с расширением «.dat» (от англ. data – данные), содержащие данные исходного сигнала.

Структура входного файла «.dat»:

где – количество данных;

, – значение сигнала, целое число.

2.1.3. Выходная информация

Выходной информацией для данной задачи являются текстовые файлы с расширением «.war» (от англ. wavelet analysis result – результат вейвлет-анализа), содержащие результаты вейвлет-анализа.

Структура выходного файла «.war»:

где – ширина растра;

– высота растра;

, , – результат вейвлет-анализа, вещественное число.

2.1.4. Математическая постановка задачи 2.1.4.1. Математическое описание задачи передискретизации сигнала

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

Целью передискретизации исходного сигнала размером является получение сигнала размером по следующему закону:

где – индекс элемента в исходном сигнале, участвующего в вычислении -го элемента результирующего сигнала;

, – исходный сигнал;

, – передискретизированный сигнал;

– модуль (длина) вектора;

Функция intwave - первообразная вейвлет-функции.

Вычисляет первообразную функции как интеграл функции вейвлета `wname" от до переменной точки.

Intwave(`wname",N),

Intwave(`wname").

Значения параметров:

Количество итераций(по умолчанию);

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

Для биортогональных вейвлетов функция =

Intwave(`wname",N) вычисляет интегралы intdec и intrec вейвлет-функций разложения и восстановления. Выражение =intwave(`wname") эквивалентно = intwave(`wname",8).

Пример 1. Для нахождения первообразной вейвлет-функции Добеши запускаем программу MATLAB. После чего перед нами появляется главное меню программы MATLAB, показанный на рис. 3.3.

Wavefun("db4",7);

subplot(211);plot(xval,psi);title("Wavelet");

Intwave("db4",7);

subplot(212);plot(xval,integ);

title(["Wavelet integrals over [-Inf x] for each value of xval"]);

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

Рис. 3.4.

Одноуровневое дискретное одномерное вейвлет-преобразование dwt.

В одноуровневом дискретном одномерном вейвлет-преобразовании используются следующие функции:

· dwt - одноуровневое дискретное одномерное вейвлет-преобразование;

· idwt - обратное одноуровневое дискретное одномерное вейвлет-преобразование;

· dwtmode - мода расширения дискретного вейвлет-преобразования.

Дискретное вейвлет-преобразование. функция вычисляет аппроксимирующие коэффициенты cA и детализирующие коэффициенты cD первого уровня вейвлет-преобразования сигнала, заданного вектором. Коэффициенты получаются сверткой сигнала с фильтром разложения нижних частот Lo_D для аппроксимации с фильтром разложения нижних частот Hi_D для детализации, а затем сопровождаются двоичной децимацией.

Команда dwt употребляются в следующих формах:

Dwt(s,"wname"),=dwt(s,"wname","mode",MODE),

Функция =dwt(s,"wname") вычисляет аппроксимирующие коэффициенты cA и детализирующие коэффициенты cD вектора s. Строка wname - имя вейвлета, для которого возможны быстрые алгоритмы. Это - haar, db, sym, coif, bior, rbio, dmey. Функия =dwt(s,Lo_D,Hi_D) находит вейвлет разложение, как выше, используя вместо имени вейвлета его низкочастотный фильтр разложения Lo_D и высокочастотный фильтр разложения Hi_D.

Параметр MODE определяет метод расширения данных для вейвлет-разложения. Например, =dwt(s,"db2","mode""sym").

Пример 2. Зададим сигнал. Найдем его разложение, используя вейвлет Хаара, затем - Добеши.

n=1:20;s=sin(0.5*n);

Dwt(s,"haar");

subplot(311);plot(s);title("Original signal");

subplot(323);plot(cal);title("Approx. coef. for haar");

subplot(324);plot(cd1);title("Detail coef. for haar");

Dwt(s,"db4");

subplot(325);plot(ca2);title("Approx. coef. for db2");

subplot(326);plot(cd2);title("Detail coef. for db2");

Ниже на рис. 3.5 приведено графическое решение.

Рис. 3.5

Непрерывное вейвлет-преобразование cwt.

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

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

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

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

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

Синтаксис cwt:

COEFS=cwt(s,SCALES,"wname").

COEFS=cwt(s,SCALES,"wname","plot"),

COEFS=cwt(s,SCAKES,"wname",PLOIMODE),

COEFS=cwt(s,SCALES,"wname",PLOTMODE,XLIM).

Функция COEFS=cwt(s,SCALES,ЎЇwnameЎЇ) вычисляет вейвлет-коэффициенты вектора, когда принимает положительные значения из вектора SCALES, используя вейвлет "wname". Сигнал вещественный, вейвлет может быть вещественным или комплексным.

Для каждого значения масштабного коэффициента в пределах вектора SCALES вейвлет-коэффициенты вычисляются для и и сохраняются в виде вектора-строки COEFS(i,:), соответствующей -му значению параметра a=SCALES(i).

Результат COEFS является на матрицей, где является длиной вектора SCALES, . Результат COEFS является вещественной или комплексной матрицей в зависимости от типа вейвлета.

Функция COEFS=cwt(s,SCALES,"wname","plot") вычисляет и создает вейвлет-спектрограмму сигнала.

Функция COEFS=cwt(s,SCAKES,"wname",PLOIMODE) вычисляет и создает вейвлет-спектрограмму сигнала. Результат COEFS является на матрицей, она изображается на плоскости в виде матрицы, состоящей из ячеек в количестве - по вертикали и - по горизонтали. Каждая ячейка содержит элемент матрицы коэффициентов и окрашивается в соответствии со значением своего коэффициента. Способ окраски определятся параметром PLOIMODE, значения которого приведены ниже в таблице 3.1.

Таблица 3.1

По умолчанию принят вариант окраски absglb, т.е.

COEFS=cwt(…,"plot") эквивалентно COEFS=cwt(…,"absglb").

Функция COEFS=cwt(s,SCALES,"wname",PLOTMODE,XLIM) вычисляет и создает вейвлет-спектрограмму сигнала с указанием пределов изображения XLIM= по горизонтали, .

Пример 3. Варианты написания команды.

t=linspace(-1,1,512);s=1-abs(t);

c=cwt(s,1:32,"cgau4");

c=cwt(s,,"morl");

c=cwt(s,1:64,"sym4","abslvl",);

Результаты показаны на рис. 3.6.

Рис. 3.6

Функции в MATLAB для удаления шума.

Функция wden автоматическое удаление шума(1-D).

Функция wden автоматически удаляет шум одномерного сигнала, используя вейвлеты. Применяются в виде:

Wden(X,TPTR,SOHR,SCAL,N,"wname"),

Wden(C,TPTR,SOHR,SCAL,N,"wname").

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

Исходные параметры:

· - сигнал;

· TPTR - строка, определяющая выбор порога:

- `rigrsure" - адаптивный выбор порога, используя принцип Штейна и несмещенной оценки риска (SURE);

– `heursure" - эвристический вариант первого выбора;

– `qtwolog" - универсальный порог sqrt(2*log(length(X)));

– `minimaxi" - мини-максный порог;

* SOHR="s" или `h" - выбор мягкого или жесткого;

* SCAL - строка, которая определяет мультипликативное пороговое перемасштабирование. Если шум вне пределов или не белый, то порог должен быть перемасштабирован с использованием оценки уровня шума. Возможны следующие варианты:

- `one" - без перемасштабирования, когда используется базовый метод;

- `sln" - для перемасштабирования порога с использованием оценки уровня шума на базе коэффициентов первого уровня;

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

* N - уровень вейвлет-разложения и "wname" - имя ортогонального вейвлета.

Во втором случае функция wden производит тоже самое, но использует уже полученное вейвлет-разложение исходного сигнала до уровня N и ортогональный вейвлет ЎЇwnameЎЇ.

Пример 4. Создаем зашумленный сигнал функцией wnoise. Для удаления шума используем мягкий эвристический метод SURE. Разложение берем до уровня 5 по вейвлету sym8.

snr=3;init=2055615866;

Wnoise(3,11,snr,init);

xd=wden(x,"heursure","s","one",5,"sym8");

subplot(311),plot(xref),axis();title("original signal");

subplot(312),plot(x),axis();title("Noisy signal");

subplot(313),plot(xd),axis();title("De-noised signal - heuristic SURE")

Результат показан на рис. 3.7.

Рис. 3.7.

Функция wdencmp - удаление шума и сжатие при помощи вейвлетов(1-D,2-D).

wdencmp(`gbl",X,"wname",N,THR,SORH,KEEPAPP),

Wdencmp(`lvd",X,"wname",N,THR,SORH),

Wdencmp(`lvd",C,L,"wname",N,THR,SORH).

Описание. Случай параметра `gbl". Функция производит:

· XC - очищенную от шума версию входного сигнала X (1-D или 2-D);

· - структуру вейвлет-разложения сигнала XC;

· PRO - оценку числа обнуленных коэффициентов сигнала X в процентах;

· PRL2 - отношение -норм сжатого и первоначального сигнала в процентах. PRL2=100(norm(CXC)/norm(С))2, где - вейвлет-разложение X. Если X - одномерный сигнал и `wname" - ортогональный вейвлет, то PRL2=100.

Функция использует:

· X - сигнал, или изображение;

· `wname" - имя вейвлета и N - уровень вейвлет разложения;

· THR - значение порога;

· SORH="s" или `h" - выбор мягкого или жесткого порогового метода;

· KEEPAPP=1, то коэффициенты аппроксимации не подвергаются пороговой обработке, иначе это возможно.

Функция wdencmp(`gbl",X,"wname",N,THR,SORH,KEEPAPP) выполняет то же самое, используя вейвлет-разложение исходного сигнала до уровня N.

В одномерном случае и опции `lvd". Функция выполняет то же самое, но используя зависимые от уровня пороги, указанные в векторе THR (THR должен иметь длину N). Кроме того, коэффициенты аппроксимации сохраняются.

Для двумерного случая и опции `lvd". В этом случае THR должен быть матрицей, содержащей зависимые от уровня пороги в трех направлениях: по горизонтали, по диагонали и по вертикали.

Отметим, что сравнительно с wden (автоматическое удаление шума), wdencmp дает больше возможностей и можно осуществить свою стратегию удаления шума. Пример 5. Загружаем изображение девушки. Делаем вейвлет-разложение при. Используем wdencmp для компрессии изображения.

load woman; x=X(100:200,100:200);

nbc=size(map,1);n=5;w="sym2";

Wavedec2(x,n,w);thr=20;

Wdencmp("gbl",c,l,w,n,thr,"h",1);

colormap(pink(nbc));

subplot(221),image(wcodemat(x,nbc)),title("Original image");

subplot(222),image(wcodemat(xd,nbc)),title("De-noised image");

xlab1=["2-norm rec.: ",num2str(perfl2)];

xlab2=["% - zero cfs: ",num2str(perf0),"%"];

xlabel();

Оригинальное изображение и изображение после удаления шума показано на рис. 3.8.

Рис. 3.8

Слияние двух изображений

Функция wfusimg - слияние двух изображений. Синтаксис:

XFUS=wfusimg(X1,X2,WNAME,LEVEL,AFUSMETH,DFUSMEH)

wfusimg(X1,X2,WNAME,LEVEL,AFUSMETH,DFUSMETH,FLAGPLO

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

XFUS=wfusimg(X1,X2,WNAME,LEVEL,AFUSMETH,DFUSMETH)

возвращает изображение XFUS, полученное слиянием двух оригинальных изображений X1 и X2. Каждый метод слияния, заданный параметрами AFUSMETH и DFUSMETH, определенным способом объединяет коэффициенты разложений X1 и X2 на уровне LEVEL и использует вейвлет WNAME.

Матрицы X1 и X2 должны иметь один и тот же размер и должны быть связаны с изображениями общей цветовой картой colormap. Параметры

AFUSMETH и DFUSMETH определяет метод слияния для приближений и деталей соответственно. Функция

wfusimg(X1,X2,WNAME,LEVEL,AFUSMETH,DFUSMETH)

возвращает, в дополнение к матрице XFUS, три объекта класса WDECTREE, ассоциированные с XFUS,X1 и X2 соответственно. Функция

wfusimg(X1,X2,WNAME,LEVEL,AFUSMETH,DFUSMETH,FLAGPLOT)

строит также графики объектов TXFUS,TX1 и TX2.

Fusmeth обозначает AFUSMETH или DFUSMETH. Доступные методы слияния:

· простой - может быть `max","min","mean","img1","img2" или `rand", когда слияние коэффициентов аппроксимаций и деталей, полученных из X1 и X2 , делается выбором максимального, минимального, среднего из соответствующих элементов двух изображений, элемента первого изображения, элемента второго изображения, или случайным выбором элемента;

· зависящий от параметра - в следующей форме:

Fusmeth=struct(`name",nameMETH,"param",paramMETH),

где nameMETH может быть:

– `UD _fusion" - слияние сверху вниз;

– `DU_fusion" - слияние снизу вверх;

– `RL_fusion" - слияние справа налево;

– `UserDEF" - пользовательское слияние.

Пример 6. Восстановленное изображение из двух нечетких изображений. Загружаем две оригинальные нечеткие фотографии. Файлы cathe 1_mat и cathe_2.mat находятся в каталоге C:ProgramFilesMATLABR2006a oolboxwavelet

wavedemo. Выполняю слияние уровня 5, используя sym4, выбором максимумов абсолютных значений коэффициентов и аппроксимации, и детализации.

load cathe_1;X1=X;

load cathe_2;X2=X;

XFUS=wfusimg(X1,X2,"sym4",5,"max","max");

subplot(221),image(X1),axis square,title("Catherine 1");

subplot(222),image(X2), axis square,title("Catherine 2");

subplot(223),image(XFUS),axis square,title("Synthesized image");

Рис. 3.9 Восстановленное четкое изображение из двух не четких

Соглашение об использовании материалов сайта

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

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

Подобные документы

    Плоскость частота-время для анализа и сравнения частотно-временных локализационных свойств различных базисов. Понятие базисных функций. Прямое и обратное преобразование Фурье. Сущность дискретного вейвлет-преобразования и примеры функции вейвлет.

    курсовая работа , добавлен 21.11.2010

    Идея и возможности вейвлет-преобразования. Свойства вейвлетов: непрерывное прямое и обратное образование. Понятие и оценка преимуществ, сферы применения дискретного вейвлет-преобразования. Поиск изображений по образцу. Многомасштабное редактирование.

    курсовая работа , добавлен 27.04.2011

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

    реферат , добавлен 25.05.2010

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

    курсовая работа , добавлен 13.08.2011

    Уравнения Фредгольма и их свойства как классический пример интегральных уравнений с постоянными пределами интегрирования, их формы и степени, порядок формирования и решения. Некоторые приложения интегральных уравнений. Общая схема метода квадратур.

    курсовая работа , добавлен 25.11.2011

    Определение, свойства и примеры функциональных уравнений. Основные методы их решения, доказательство некоторых теорем. Понятие группы функций, применение их при решении функциональных уравнений с несколькими переменными. Класс уравнений типа Коши.

    курсовая работа , добавлен 01.10.2011

    Параллельные методы решения систем линейных уравнений с ленточными матрицами. Метод "встречной прогонки". Реализация метода циклической редукции. Применение метода Гаусса к системам с пятидиагональной матрицей. Результаты численного эксперимента.

    курсовая работа , добавлен 21.10.2013

    Аналитические свойства интегральных преобразований. Интеграл Коши на различных кривых. Аналитическая зависимость от параметра. Существование производных всех порядков у аналитической функции. Вывод формулы Коши и формулировка следствий из данной формулы.

    курсовая работа , добавлен 10.04.2011



Есть вопросы?

Сообщить об опечатке

Текст, который будет отправлен нашим редакторам: