Паттерновое проектирование при создании комплекса программ для проведения вейвлет-анализа

Автор: Прохоров Сергей Антонович, Столбова Анастасия Александровна

Журнал: Известия Самарского научного центра Российской академии наук @izvestiya-ssc

Рубрика: Перспективные информационные технологии

Статья в выпуске: 2-5 т.17, 2015 года.

Бесплатный доступ

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

Спектральный анализ, вейвлет-преобразование, паттерн, комплекс программ

Короткий адрес: https://sciup.org/148203710

IDR: 148203710

Текст научной статьи Паттерновое проектирование при создании комплекса программ для проведения вейвлет-анализа

Решение задач анализа и синтеза сигналов с заданными характеристиками, идентификация динамических объектов, как правило, осуществляется на основе частотных (спектральных) характеристик [5].

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

АВТОМАТИЗИРОВАННАЯ СИСТЕМА ВЕЙВЛЕТ-АНАЛИЗА СЛУЧАЙНЫХ ПРОЦЕССОВ

На кафедре информационных систем и технологий СГАУ была разработана «Автоматизированная система вейвлет-анализа случайных процессов» [3, 6], состоящая из следующих подсистем [4]:

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

  • 2)    генерации модельного сигнала, предназначенная для генерации модельных сигналов заданного вида;

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

  • 5)    вычисления преобразования Фурье, предназначенная для получения преобразования Фурье анализируемого процесса;

  • 6)    вычисления оконного преобразования Фурье, предназначенная для получения оконного преобразования Фурье анализируемого процесса;

  • 6)    построения вейвлетов, предназначенная для расчета значений заданных вейвлетов;

  • 7)    вычисления теоретического вейвлет преобразования, предназначенная для вычисления вейвлет-преобразования модельного сигнала аналитически;

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

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

  • 10)    хранения и загрузки используемых файлов и проверки их структур.

Структурная схема системы представлена на рис. 1.

Эта система позволяет провести:

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

  • -    исследование методов спектрального анализа (преобразования Фурье, оконного преобразования Фурье, вейвлет-преобразования) методом имитационного моделирования.

Приведем пример работы системы. Исходный сигнал имеет следующий вид:

^т2т,0 < т < 20, sin8T,20 < т < 50.

f ( т ) = ‘

Рис. 1. Структурная схема системы

График данного сигнала представлен на рис. 2.

Проведем вейвлет-анализ данного сигнала, используя в качестве базового вейвлета восьмую производную функции Гаусса:

у ( г ) = - 8 - 28 т 6 + 210г4

-

„       \    ( г2 ^

420г2 + 105 ) exp - - .

V 2)

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

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

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

ПАТТЕРНЫ ПРОЕКТИРОВАНИЯ

Паттерны проектирования – это описание взаимодействия объектов и классов, адаптированных для решения общей задачи проектирования в конкретном контексте [2].

Одним из классических паттернов является, например, паттерн Model – View – Controller (MVC). Принцип данного паттерна показан на рис. 4.

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

View (Вид) – это отображение данных из Модели.

Controller (Контроллер) перехватывает со-

Рис. 2. Исходный сигнал

Рис. 3. Спектр

Рис. 4. Принцип MVC

бытия из Вида и изменяет Модель.

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

Проанализировав различные технологии, были выбраны паттерны проектирования ModelView-Presenter (MVP) и Inversion of Control (IoC) [2], позволяющие упростить разработку комплекса программ, сократить сроки ее разработки и уменьшить затраты, устранить зависимость между логической частью программы и её интерфейсом.

Рассмотрим данные паттерны более подробно.

Модель и Вид в паттерне MVP аналогичны тем, что используются в MVC.

Presenter (Презентер) обеспечивает связь между Моделью и Видом.

Модель и Вид взаимодействуют с Презен-тером посредством обработки событий, а Пре-зентер, в свою очередь, имеет доступ к Модели и Виду, т.к. он получает ссылки на Модель и Вид.

Принцип MVP показан на рис. 5.

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

Рис. 5. Принцип MVP

ПАТТЕРНЫ ПРИ СОЗДАНИИ КОМПЛЕКСА ПРОГРАММ

На рис. 6 представлена часть диаграммы классов системы, на которой показана реализация вейвлет-преобразования с применением паттернов проектирования.

Data Wavelet Transformation User Control – это Вид (реализованный в виде пользовательского компонента), который содержит в себе элементы для отображения данных вейвлет-преобразования.

Данный Вид реализует интерфейс IData Wavelet Transformation View, который содержит свойства, методы и события, доступные Пре-зентеру.

Wavelet Transformation Model – это Модель. Она содержит в себе экземпляр класса, реализующего алгоритмы вейвлет-преобразования, а также свойства и методы, необходимые для реализации вейвлет-преобразования. Модель реализует интерфейс IWavelet Transformation Model, содержащий свойства, методы и события, доступные в Презентере.

Wavelet Transformation Presenter обеспечи- вает связь между Видом и Моделью, что позволяет обновить данные Модели, если, например, пользователем были внесены изменения, а также обновить Вид, если были проведены расчеты и Модель изменилась.

Аналогичным образом реализуется визуализация вейвлет-преобразования:

ЗАКЛЮЧЕНИЕ

Результаты анализа наличия ошибок в коде до и после применения паттернов проектирования представлены в таблице 1.

При применении данных паттернов для реализации комплекса были получены следующие преимущества:

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

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

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


    «Interface»

    I Vvb ve I e tTran sfor m ati о n Mod e



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

Таблица 1. Ошибки кода

Тип ошибки Автоматизированная система Комплекс программ Общие методы и улучшение кода 246 66 Предупреждения компилятора 3 2 Нарушения ограничений 695 52 Языковые возможности использования 318 67 Потенциальные проблемы качества кода 245 19 Избыточность кода 312 84 Избыточность в объявлении переменных 147 19 ния, организации имитационного моделирования и др.;
  • -    отладка и тестирование алгоритмов стала проще.

Список литературы Паттерновое проектирование при создании комплекса программ для проведения вейвлет-анализа

  • Добеши, И. Десять лекций по вейвлетам/И. Добеши. -Ижевск: НИЦ «Регулярная и хаотическая динамика», 2001. -464 с.
  • Приемы объектно-ориентированного программирования. Паттерны проектирования/Э. Гамма, Р. Хелм, Р. Джонсон, Дж. Влиссидес. -СПб: Питер, 2001. -368 с.: ил. -(Серия «Библиотека программиста»).
  • Прикладной анализ случайных процессов/под ред. С. А. Прохорова. -Самара: СНЦ РАН, 2007. -582 с.
  • Прохоров С. А., Столбова А. А. Автоматизированная информационная система вейвлет-анализа случайных процессов//Проблемы автоматизации и управления в технических системах: Сб. ст./Издательство ПГУ. -Пенза, 2013. -С. 159-163.
  • Прохоров С. А., Столбова А. А. Паттерны проектирования при создании комплекса программ для проведения вейвлет-анализа//труды международной научно-технической конференции «Перспективные информационные технологии ПИТ 2015». Том 1. СНЦ РАН. -Самара, 2015. -С. 109-112.
  • Свидетельство № 2013613175 Российская Федерация. Автоматизированная система вейвлет-анализа случайных процессов: Свидетельство об официальной регистрации программы для ЭВМ/С. А. Прохоров, А. А. Столбова; заявитель и правообладатель С. А. Прохоров (RU), А. А. Столбова (RU). -№2013610653; заявл. 05.02.2013; зарегистр. 27.03.2013.
Еще
Статья научная