Федеральное агентство по образованию
Государственное образовательное учреждение
высшего профессионального образования
«ИЖЕВСКИЙ ГОСУДАРСТВЕННЫЙ ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ»
Факультет «Информатика и вычислительная техника»
Кафедра «Программное обеспечение»
ПОЯСНИТЕЛЬНАЯ ЗАПИСКА
к дипломной работе на тему:
«Система многомасштабного анализа дискретных сигналов.
Подсистема вейвлет-анализа»
Дипломник
Руководитель
Консультант по экономической части
Консультант по безопасности
и экологичности проекта
Нормоконтроль
Рецензент
вед. инженер-программист
Зав. кафедрой
д.т.н., профессор Мурынов А.И.
ИЖЕВСК 2006
РЕФЕРАТ
Для написания соответствующего программного обеспечения были изучены материалы и публикации в области цифровой обработки сигналов.
В результате проделанной работы было разработано программое обеспечение, предназначенное для автоматизации процесса вейвлет-анализа дискретных сигналов. Изображения и аналитические данные, получаемые в результате работы программного обеспечения, используются при дальнейшей обработке исходного сигнала в составе системы.
На сегодняшний день существует большое количество программных продуктов, предоставляющих возможность многомасштабного анализа дискретных сигналов. Однако все они являются узко-прикладными и могут быть применены только в специализированной области анализа и обработки сигналов. Поэтому данная разработка является уникальной и не имеет аналогов в современной индустрии компьютерного анализа и обработки сигналов.
Разработанное программное обеспечение является исследовательским, оно направлено на изучение и обобщение методов многомасштабного анализа дискретных сигналов. С его помощью уже были получены важные экспериментальные данные, использованные в данной работе. Конечным программным продуктом может являться оболочка, представляющая в значительной мере автоматизированный интерфейс для проведения многомасштабного анализа.
ПЕРЕЧЕНЬ УСЛОВНЫХ ОБОЗНАЧЕНИЙ
МАДС – многомасштабный анализ дискретных сигналов
ПО – программное обеспечение
ОС – операционная система
ЭВМ – электронно-вычислительная машина
ВВЕДЕНИЕ
Данная работа посвящена вопросам многомасштабного анализа дискретных сигналов. Термин «сигнал» применяется для обозначения любого упорядоченного набора численно зафиксированной информации о каком-либо процессе, объекте, функции и т.п. Под «анализом» сигнала имеется в виду не только его чисто математическое преобразование, но и получение на основе этого преобразования выводов о специфике соответствующего процесса или объекта /1/.
Одним из методов многомасштабного анализа является вейвлет-анализ (от англ. «wave» – волна). Он используется уже более десятка лет и хорошо зарекомендовал себя в таких областях как архивация данных, медицина и биология (анализ интервалов сердцебиений, ЭКГ, последовательностей ДНК), анализ наблюдательных данных (метеорология, акустика, сейсмология) и др. /2/
Принципиально новым методом многомасштабного анализа является структурная индексация. Её суть заключается в выявлении структурных особенностей сигналов для последующего анализа этих особенностей.
В данной работе анализ дискретных сигналов производится при помощи вейвлет-преобразования и структурной индексации. Делаются выводы о возможности использования этих преобразований для выявления и подавления шумов, архивации данных.
Перед разработчиком были поставоены следующие задачи;
разработка модели данных подсистемы вейвлет-анализа;
разработка алгоритма вейвлет-анализа входного сигнала;
программная реализация подсистемы вейвлет-анализа;
интеграция подсистемы в единую систему многомасштабного анализа дискретных сигналов.
РАЗРАБОТКА СИСТЕМЫ МНОГОМАСШТАБНОГО АНАЛИЗА ДИСКРЕТНЫХ СИГНАЛОВ
1.1. Обоснование целесообразности разработки системы многомасштабного анализа дискретных сигналов
1.1.1. Назначение системы
Система многомасштабного анализа дискретных сигналов реализует вейвлет-анализ и структурную индексацию дискретных сигналов. Анализ позволяет выделить структурные особенности сигналов и отобразить их в наглядном для восприятия человека виде. Посредством многомасштабного анализа удается значительно понизить количество шумов и искажений в исходном сигнале. Также появляется возможность для существенного сжатия исходных данных.
1.1.2. Характеристика функциональной структуры системы
Функциональная схема системы приведена на рис. 1.1.
Обработка входных сигналов состоит из следующих этапов:
ввод данных в систему многомасштабного анализа дискретных сигналов;
в подсистеме вейвлет-анализа осуществляется соответствующий анализ дискретного сигнала. Результатом работы подсистемы является результат вейвлет-преобразования;
в подсистеме структурной индексации осуществляется структурная индексация входного сигнала;
в подсистеме конвертации данных структурной индексации происходит преобразование результата структурной индексации, а также осуществляется возможность получения из него исходного сигнала;
в подсистеме визуализации осуществляется отображение результатов вейвлет-анализа и структурной индексации в выбранной цветовой шкале. Осуществляется возможность сохранения полученных изображений для дальнейшего использования.
Функциональная схема системы многомасштабного анализа дискретных сигналов
Рис. 1.1
1.1.3. Обоснование цели создания системы
Задачи многомасштабного анализа дискретных сигналов имеют широкий спектр применения, начиная от выявления структурных особенностей сигналов и заканчивая архивацией данных.
На настоящий момент хорошо разработаны алгоритмы вейвлет-преобразований и структурной индексации сигналов. Однако еще не делалось попыток объединить эти методы в единую систему.
Целью данной работы является разработка и реализация многомасштабного анализа дискретных сигналов путем вейвлет-преобразований и структурной индексации, объединение этих методов в единую систему.
Создаваемая система носит поисково-исследовательский характер и направлена на упрощение многомасштабного анализа экспериментальных данных и выявление общих закономерностей.
1.1.4. Обоснование состава автоматизируемых задач
Реализация системы МАДС позволит интегрировать в едином интерфейсе все этапы обработки входных сигналов:
вейвлет-преобразование исходных сигналов. Сохранение результатов преобразования для дальнейшего использования;
структурная индексация исходных сигналов. Сохранение результатов индексации для дальнейшего использования;
конвертация данных структурной индексации для получения исходного сигнала;
визуализация данных вейвлет-анализа и структурной индексации для наглядного отображения их результатов.
1.2. Аналитический обзор
На сегодняшний день не существует программных продуктов, предоставляющих возможность многомасштабного анализа дискретных сигналов путем структурной индексации.
Однако метод вейвлет-анализа, используемый в системе МАДС для предварительного анализа и являющейся основой данной работы, известен достаточно давно и с появлением электронно-вычислительной техники начали появлятся программные продукты для вейвлет-преобразований дискретных сигналов.
1.2.1. AutoSignal
AutoSignal – программа компании Systat Software Inc, которая автоматизирует процесс анализа сигналов /4/. AutoSignal имеет графический интерфейс, позволяющий легко выполнять все операции, от ввода данных до вывода результатов. Существует возможность выбора технологии анализа, подбора соответствующего алгоритма. По результатам проведённого анализа AutoSignal формирует отчёты, содержащие двухмерные и трехмерные графики и краткие статистические обзоры /5/.
AutoSignal позволяет быстро определить все необходимые компоненты в структуре сигнала, для поиска которых обычно требуются навыки программирования и используются математические приложения. AutoSignal содержит огромное количество процедур спектрального анализа:
быстрое преобразование Фурье;
построение авторегрессионных моделей;
построение ARMA-моделей;
построение сложных экспоненциальных моделей;
анализ собственных частот и вейвлет-анализ.
1.2.2. MatLab Wavelet Toolbox
MatLab Wavelet Toolbox – это открытый, дружественный для пользователя пакет расширения MatLab, позволяющий синтезировать всевозможные алгоритмы обработки информации - данных, сигналов и изображений - с использованием вейвлет-функций /6/. В своей работе пакет широко использует возможности системы MatLab (матричные алгоритмы вычислений, стильную и в тоже время мощную графику) для решения задач анализа (шумоподавления, расфильтровки, сжатия и восстановления): это предоставляет в распоряжение как начинающего, так и профессионального пользователя исчерпывающий набор функций для реализации собственных алгоритмов обработки данных, т.е. написания собственного m-кода, а также средства графического интерфейса (GUI). Можно сказать, пакет Wavelet Toolbox оказывается превосходным средством для решения задач обработки одно- и двумерной информации: действительно, спектр задач, решаемых с использованием пакета, настолько широк, что упоминание таких проблем, как обработка звука, статических изображений и видеокартинок, не говоря уже о передаче данных, исследовании массивов геофизических, сейсмоакустических данных, биомедицинских сигналов и изображений, будет, естественно, далеко не полным.
MatLab Wavelet Toolbox включает обширную библиотека вейвлет-функций (континуальных неортогональных вейвлетов, в том числе комплексных; ортогональных семейств функций, функций Добеши, Койфмана, а также симлетов; биортогональных вейвлетов); широкий набор вейвлет-фильтров /7/.
Основные возможности:
всевозможные функции для реализации континуального анализа, дискретного одноуровневого и дискретного многоуровневого анализа;
функции анализа и синтеза данных с использованием вейвлет-пакетов;
функции для решения задач аппроксимации данных, статистических распределений и т.п.;
функции внедрения в пакет собственных вейвлет-функций и работы с ними;
набор средств визуализации результатов анализа и синтеза;
средства GUI.
1.2.3. Вывод по аналитическому обзору
Список программных продуктов, безусловно, может быть расширен, но все же самые характерные и популярные разработки в него включены.
Однако, несмотря на множество достоинств, они имеют следующие недостатки:
не реализуют метод структурной индексации исходных сигналов;
обладают высокими требованиями к аппаратному обеспечению;
имеют высокую стоимость;
понятие вейвлета в них строго детерминировано для реализации уже разработанных алгоритмов.
Этих недостатков лишена система МАДС. Кроме того, ограничения, накладываемые вышеупомянутыми системами на структуру вейвлета, в данной работе сняты: вейвлет по своей сущности здесь ничем не отличается от сигнала. Это открывает перед нами широкое поле для экспериментов, в том числе и по изучению фрактальных свойств сигнала.
Поэтому данная разработка является востребованной в современной индустрии компьютерной обработки сигналов.
1.3. Основные требования к системе
1.3.1. Основные цели создания системы и критерии эффективности ее функционирования
Создание системы многомасштабного анализа дискретных сигналов позволит получить новые возможности по выявлению структурных особенностей сигналов, подавлению в них шумов, сжатию данных.
Для оценки эффективности работы системы МАДС можно использовать оценку размера данных до и после сжатия.
1.3.2. Функциональное назначение системы
Автоматизация процесса многомасштабного анализа дискретных сигналов подразумевает реализацию в системе определенных средств и функций. Следует выделить ряд функциональных особенностей, которыми должна обладать система МАДС:
осуществление вейвлет-преобразования исходных сигналов;
осуществление структурной индексации исходных сигналов;
конвертация результатов структурной индексации для получения исходного сигнала;
визуализация данных вейвлет-преобразования и структурной индексации для наглядного отображения их результатов.
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.1. Описание постановки задачи вейвлет-анализа
2.1.1. Характеристика задачи
Для того чтобы функция могла называться вейвлетом, должны выполняться два условия /8/:
ее среднее значение (т.е. интеграл по всей прямой) равно нулю: ;
функция быстро убывает при .
Теперь возьмем произвольный сигнал – некоторую функцию (переменную будем называть временем), и произведем ее вейвлет-анализ при помощи вейвлета .
Результатом вейвлет-анализа этого сигнала будет функция , которая зависит уже от двух переменных – от времени и от масштаба . Для каждой пары и рецепт вычисления значения следующий:
растянуть вейвлет в раз по горизонтали и в раз по вертикали;
сдвинуть его в точку , полученный вейвлет обозначим ;
"усреднить" значения сигнала в окрестности точки a при помощи :
, (2.1)
где – вейвлет со смещением и масштабом /3/.
Но это всё в теории. На практике мы имеем дело с дискретным входным сигналом и дискретным (или дисркетизированным) вейвлетом. Соответственно, результатом дискретного вейвлет-анализа должна явиться матрица, каждую точку которой можно сопоставить конкретному значению входного сигнала и конкретному масштабу вейвлета.
Таким образом, задача вейвлет-анализа может быть разбита на несколько подзадач:
передискретизация сигнала, куда входит нахождение и разработка алгоритма, выполняющего масштабирование (сжатие и разжатие) вейвлета, заданного в дискретном виде (т.е. в виде, аналогичном входному сигналу);
перемножение сигнала и вейвлетва, т.е. расчёт одной строки матрицы результата вейвлет-анализа, соответствующей одному масштабу вейвлета;
собственно вейвлет-анализ, производящий последовательное масштабирование вейвлета и его перемножение с сигналом и получающий результирующую матрицу целиком.
Результат вейвлет-анализа легко визуализируется в любой цветовой шкале и может быть использован для выявления нестационарных составляющих сигнала, что крайне полезно при подборе способов фильтрования сигнала с помощью структурной индексации.
В результате построения подсистемы вейвлет-анализа система многомасштабного анализа дискретных сигналов (МАДС) дополнит свои функциональные возможности способностью выделения из исходного сигнала наиболее четких его составляющих, что должно быть учтено при дальнейшей его очистке от шумов.
2.1.2. Входная информация
Входной информацией являются текстовые файлы с расширением «.dat» (от англ. data – данные), содержащие данные исходного сигнала.
Структура входного файла «.dat»:
где – количество данных;
, – значение сигнала, целое число.
2.1.3. Выходная информация
Выходной информацией для данной задачи являются текстовые файлы с расширением «.war» (от англ. wavelet analysis result – результат вейвлет-анализа), содержащие результаты вейвлет-анализа.
Структура выходного файла «.war»:
где – ширина растра;
– высота растра;
, , – результат вейвлет-анализа, вещественное число.
2.1.4. Математическая постановка задачи
2.1.4.1. Математическое описание задачи передискретизации сигнала
Исходный и результирующий сигналы представляют собой одномерные массивы чисел.
Целью передискретизации исходного сигнала размером является получение сигнала размером по следующему закону:
, (2.2)
где – индекс элемента в исходном сигнале, участвующего в вычислении -го элемента результирующего сигнала;
, – исходный сигнал;
, – передискретизированный сигнал;
– модуль (длина) вектора;
– взятие целой части.
2.1.4.2. Математическое описание задачи перемножения сигнала и вейвлета
Анализируемый сигнал и вейвлет представляют собой массивы чисел. Размер вейвлета должен быть меньше размера сигнала, иначе результатом перемножения будет массив из нулей. Перемножение сигнала и вейвлета происходит следющим образом: вейвлет сдвигается в некоторую точку и усредняет в данной точке значение сигнала по следующей формуле:
(2.3)
где , – исходный сигнал;
, – вейвелет;
– модуль (длина) вектора.
Полученное усреднение располагается в результате со смещением, равным половине размера вейвлета , следовательно, элементы, расположенные по краям результата на будут равны нулю.
2.1.4.3. Математическое описание задачи вейвлет-анализа
Собственно сам вейвлет-анализ представляет собой процесс последовательного масштабирования исходного вейвлета и перемножения его с сигналом. В отличие от предыдущей задачи в качестве результата мы будем иметь не массив чисел, а матрицу, функция расчета точек которой уже зависит от двух параметров:
, (2.4)
где , – исходный сигнал;
, – вейвлет с маштабом ;
– модуль (длина) вектора.
Масштаб уменьшается от до 1.
2.2. Описание алгоритма передискретизации сигнала
2.2.1. Назначение и характеристика алгоритма передискретизации сигнала
Данный алгоритм предназначен для масштабирования дискретного сигнала (в частности вейвлета). Суть масштабирования заключается в изменении шага дискретизации с соответствующим усреднением значения сигнала.
2.2.2. Используемая информация
При реализации алгоритма используются размерные характеристики исходного и результирующего сигнала, а также собственно значения исходного сигнала.
2.2.3. Результаты решения
Результатом решения является сигнал, полученный из исходного путем масштабирования. Полученный сигнал отличается от исходного тем, что его значения представлены вещественными, а не целыми числами.
2.2.4. Математическое описание алгоритма передискретизации сигнала
Математическое описание передискретизации сигнала приведено в п.
2.1.4.1. Результирующий сигнал рассчитывается по формуле (2.2).
Пример передискретизации сигнала изображен на рис. 2.1.
Пример передискретизации сигнала
а – дискретизация сигнала на 9 интервалов б – дискретизация сигнала на 7 интервалов Рис. 2.1 |
2.2.5. Алгоритм передискретизации сигнала
i ::= 0; offs ::= 0;
Если i ≥ res_size, то переход к п. 7;
resi ::= 0; j :: = 0;
Если j ≥ src_size, то переход к п. 6;
resi ::= resi + src](offs + j) / res_size[; j ::= j + 1; переход к п. 4;
resi ::= resi / src_size; i ::= i + 1; offs ::= offs + src_size; переход к п. 2;
Конец.
2.2.6. Требования к контрольному примеру
Контрольный пример должен содержать результаты передискретизации сигнала в масштабах от исходного размера до 1.
2.2.7. Список условных обозначений
Алгоритм использует следующие условные обозначения:
src – исходный сигнал;
src_size – размер исходного сигнала;
res – передискретизированный сигнал;
res_size – размер результата передискретизации;
][ – взятие целой части.
2.3. Описание алгоритма перемножения сигнала и вейвлета
2.3.1. Назначение и характеристика алгоритма перемножения сигнала и вейвлета
Данный алгоритм предназначен для усреднения значений сигнала с использованием вейвлета определенного масштаба. Усреднение заключается в анализе каждого значения сигнала в его окрестностях, причем размер окрестностей и есть ни что иное, как размер вейвлета.
2.3.2. Используемая информация
При реализации алгоритма используются размерные характеристики сигнала и вейвлета, а также их значения.
2.3.3. Результаты решения
В результате перемножения получается массив вещественных чисел с ярко выраженными максимумами и минимумами, соответсвующими степени идентичности значений сигнала вейвлету заданного масштаба.
2.3.4. Математическое описание алгоритма перемножения сигнала и вейвлета
Обобщенное математическое описание перемножения сигнала и вейвлета приведено в п. 2.1.4.2. Для ускорения расчёта и обработки размер результата искусственно увеличим вдвое. Данное допущение также решит проблемы с четностью/нечетностью размеров вейвлета и сигнала.
Итак, если применить удвоение результата к отмеченным в п. 2.1.4.2 формулировкам, исходя из формулы (2.3), имеем следующий результат перемножения:
, (2.5)
где , , – результат перемножения;
, – исходный сигнал;
, – вейвелет;
– модуль (длина) вектора;
– взятие целой части;
– остаток от целочисленного деления;
– функция перемножения, описанная в формуле (2.3);
– логическое «или»;
– логическое «и».
2.3.5. Алгоритм перемножения сигнала и вейвлета
res_size
::= 2 * y_size ; max_offset ::= y_size – psi_zise;
null_offset
::= min{psi_size – 1, res_size}; i ::= 0;
Если i ≥ null_offset, то переход к п.3;
resi ::= 0; i ::= i + 1; переход к п. 2;
Если null_offset = res_size, то переход к п. 14;
i ::= 0;
Если i > max_offset, то переход к п. 11;
sum ::= 0; j ::= 0;
Если j ≥ psi_size, то переход к п. 9
sum ::= sum + yi+j * psij; j ::= j + 1; переход к п. 8
res2*i+psi_size-1 ::= sum; res2*i+psi_size ::= 0; i ::= i+1; переход к п. 6
i ::= res_size – null_offset;
Если i ≥ res_size, то переход к п. 14;
resi ::= 0; i ::= i + 1; переход к п.12;
Конец.
2.3.6. Требования к контрольному примеру
Контрольный пример должен содержать результаты перемножений сигнала с вейвелетами различных масштабов.
2.3.7. Список условных обозначений
Алгоритм использует следующие условные обозначения:
y – анализируемый сигнал;
y_size – размер анализируемого сигнала;
psi – дискретизированный вейвлет;
psi_size – размер дискретизированного вейвлета;
res – резельтат переменожения сигнала и вейвлета;
res_size – размер результата.
2.4. Описание алгоритма вейвлет-анализа
2.4.1. Назначение и характеристика алгоритма вейвлет-анализа
Вейвлет-анализ является инструментом, разбивающим данные на составляющие с различными частотами, каждая из которых затем изучается с разрешением, подходящим масштабу. Алгоритм ортогонального вейвелет-анализа, который реализован в данной работе, предназначен для анализа дискретных сигналов в различных масштабах посредством передискретизации ортогонального вейвлета.
2.4.2. Используемая информация
При реализации алгоритма используются размерные характеристики сигнала и вейвлета, а также их значения.
2.4.3. Результаты решения
Результатами решения является матрица, каждую точку которой можно сопоставить конкретному значению входного сигнала и конкретному масштабу вейвлета.
2.4.4. Математическое описание алгоритма вейвлет-анализа
Обобщенное математическое описание вейвлет-анализа приведено в п. 2.1.4.3. Как и в п. 2.3.4, количество точек в строке удваивается. Вследствие этого, исходя из формулы (2.4), получаем следующее:
, (2.6)
где , , – результат вейвлет-анализа;
, – исходный сигнал;
, – вейвелет;
– модуль (длина) вектора;
– взятие целой части;
– остаток от целочисленного деления;
– функция вейвлет-анализа, описанная в формуле (2.4);
– логическое «или»;
– логическое «и».
2.4.5. Алгоритм вейвлет-анализа
i ::= 0;
Если i ≥ psi_size, то переход к п. 4;
psi_scaled
::= resample(psi, psi_size – i);
resi
::= multiply(y, psi_scaled);
i ::= i + 1;
Конец.
2.4.6. Требования к контрольному примеру
Контрольный пример должен содержать результаты вейвлет-анализа сигнала, состоящего не менее чем из двух нестационарных составляющих, при помощи вейвлетов, соизмеримых по масштабу с составляющими сигнала.
2.4.7. Список условных обозначений
Алгоритм использует следующие условные обозначения:
y – анализируемый сигнал;
psi – дискретизированнный исходный вейвлет;
psi_size – размер исходного вейвлета;
psi_scaled – смаштабированный (передискретизированный) вейвлет;
res – результат вейвлет анализа;
resample – оператор передискретизации вейвлета (см. п. 2.2);
multiply – оператор перемножения сигнала (см. п. 2.3).
2.5. Описание подпрограммы «Wavelet.Resample»
2.5.1. Вводная часть
Подпрограмма Wavelet.Resample служит для масштабирования дисретизированного вейвлета. Подпрограмма производит изменение шага дискретизации вейвлета и соответсвующее усреднение значения сигнала в полученных интервалах. Текст программы приведен в приложении 1.2.
2.5.2. Функциональное назначение
Подпрограмма Wavelet.Resample предназначена для реализации алгоритма передискретизации сигнала.
2.5.3. Описание информации
Входные данные для данной подпрограммы представлены:
int [] data – массив, содержащий значения исходного вейвлета;
int size – требуемый размер вейвлета.
Выходные данные для данной подпрограммы представлены:
double [] res – передискретизированный вейвлет.
2.5.4. Используемые программы
В подпрограмме не используется других подпрограмм.
2.5.5. Схема подпрограммы «Wavelet.Resample»
Схема подпрограммы «Wavelet.Resample» приведена на рис. 2.2.
Схема программы Wavelet.Resample
Рис. 2.2
2.6. Описание подпрограммы «Result.FormRow»
2.6.1. Вводная часть
Подпрограмма Result.FormRow служит для получения одной строки результата вейвлет-анализа, соответсвующей определенному масштабу вейвлета. Подпрограмма производит перемножение сигнала и вейвлета. Текст программы приведен в приложении 1.3.
2.6.2. Функциональное назначение
Подпрограмма Result.FormRow предназначена для реализации алгоритма перемножения сигнала и вейвлета.
2.6.3. Описание информации
Входные данные для данной подпрограммы представлены:
int [] x – массив, содержащий значения анализируемого сигнала;
double [] y – массив, содержащий значения смаштабированного вейвлета;
int row – номер строки, для который производится расчёт.
Выходные данные для данной подпрограммы представлены:
double [ , ] data – матрица, содержащая значения результата вейвлет-анализа.
2.6.4. Используемые программы
В подпрограмме не используется других подпрограмм.
2.6.5. Схема подпрограммы «Result.FormRow»
Схема подпрограммы «Result.FormRow» приведена на рис. 2.3.
2.7. Описание подпрограммы «Analyzer.Analyze»
2.7.1. Вводная часть
Подпрограмма Analyzer.Analyze служит для осуществления вейвлет-анализа. Подпрограмма производит последовательное масштабирование вейвлета и его перемножение с сигналом. Текст программы приведен в приложении 1.4.
2.7.2. Функциональное назначение
Подпрограмма Analyzer.Analyze предназначена для реализации алгоритма вейвлет-анализа.
2.7.3. Описание информации
Входные данные для данной подпрограммы представлены:
int [] data – массив, содержащий значения анализируемого сигнала;
int [] wavelet – массив, содержащий значения исходного вейвлета.
Выходные данные для данной подпрограммы представлены:
double [ , ] result – массив, содержащий значения исходного вейвлета.
Схема программы Result.FormRow
Рис. 2.3
2.7.4. Используемые программы
В подпрограмме используется подпрограммы Wavelet.Resample и Result.FormRow, описанные в п.п. 2.5, 2.6.
2.7.5. Схема подпрограммы «Analyzer.Analyze»
Схема подпрограммы «Analyzer.Analyze» приведена на рис. 2.4.
Схема программы Analyzer.Analyze
Рис. 2.4
2.8. Описание контрольного примера
2.8.1. Назначение
Основной целью работы программы служит вейвлет-анализ дискретных сигналов. Результатом работы является матрица вещественных чисел. Так как анализируемый сигнал и результирующие матрицы имеют достаточно большие размеры, для наглядности контрольный пример будет содержать не набор чисел, а их изображения, полученные в подсистеме визуализации данных.
2.8.2. Исходные данные
Исходными данными служат файлы «.dat», содержащие данные исходного сигнала или вейвлета. Описание формата этих файлов представлено в п.2.1.2.
2.8.3. Контрольный пример
В качестве исходного сигнала была выбрана дискретизированная синусоида. После загрузки в программу анализируемый сигнал выглядит следующим образом (рис. 2.5).
Анализируемый сигнал
Рис.2.5
Для анализа входного сигнала был выбран вейвлет – аналог так называемой «мексиканской шляпы» /1/. В нашем случае к «мексиканской шляпе» были добавлены две краевые составляющие. Полученный вейвлет представлен на рис. 2.6.
Вейвлет
Рис. 2.6
После расчёта и визуализации результат вейвлет-анализа исходного сигнала выглядит следующим образом (рис.2.7). Как видно на результирующей картине ярко выделены минимумы и максимумы исходного сигнала.
Результат вейвлет анализа
Рис. 2.7
2.8.4. Тестирование программного обеспечения подсистемы вейвлет-нализа
Для испытания программного обеспечения подсистемы вейвлет-анализа на вход были поданы файлы, содержащие данные анализируемого сигнала и вейвлета. Испытания проводились согласно руководству программиста, приведенному в приложении 2, и руководству оператора, приведенному в приложении 3.
Тестирование показало, что разработанное программное обеспечение способно производить вейвлет-анализ дискретных сигналов.
ОРГАНИЗАЦИОННО-ЭКОНОМИЧЕСКАЯ ЧАСТЬ
3.1. Обоснование необходимости разработки системы многомасштабного анализа дискретных сигналов
Система многомасштабного анализа дискретных сигналов реализует вейвлет-анализ и структурную индексацию дискретных сигналов. Анализ позволяет выделить структурные особенности сигналов и отобразить их в наглядном для восприятия человека виде. Посредством многомасштабного анализа удается значительно понизить количество шумов и искажений в исходном сигнале. Также появляется возможность для существенного сжатия исходных данных.
Разрабатываемая система носит исследовательский характер и предназначена для поиска и отладки наиболее эффективных алгоритмов многомасштабного анализа. Реализация системы позволит в значительной степени облегчить труд программиста-исследователя посредством автоматизации процесса многомасштабного анализа дискретных сигналов.
Реализация системы МАДС позволит интегрировать в едином интерфейсе все этапы обработки входных сигналов:
вейвлет-преобразование исходных сигналов. Сохранение результатов преобразования для дальнейшего использования;
структурная индексация исходных сигналов. Сохранение результатов индексации для дальнейшего использования;
конвертация данных структурной индексации для получения исходного сигнала;
визуализация данных вейвлет-анализа и структурной индексации для наглядного отображения их результатов.
3.2. Расчет затрат на разработку системы многомасштабного анализа дискретных сигналов
Для определения величины расходов на создание подсистемы, используем прямой метод калькуляции /22/.
Расчет сметы затрат осуществляется по следующим статьям:
расходы на материалы;
расходы на оплату труда исполнителей;
отчисления на социальные налоги;
расходы на содержание и амортизацию вычислительной техники;
накладные расходы;
прочие расходы.
К статье «Расходы на материалы» относятся покупные изделия, необходимые для выполнения работы, перечисленные в табл. 3.1.
Таблица 3.1
Расходы на основные и вспомогательные материалы
Наименование материала | Количество | Стоимость, р. |
Диск CD-RW | 4 шт. | 120 |
Бумага писчая 80 г. | 250 листов | 80 |
Тонер для принтера | 1 шт. | 200 |
Прочие канцелярские товары | 25 | |
Итого | 425 |
Оклад инженера-программиста в период разработки составлял 5000 р. в месяц. Продолжительность разработки 3 месяца.
ЗП = ЗПМ*ПМ , (3.1)
где ЗП – оклад за период разработки;
ЗПМ – оклад инженера-программиста;
ПМ – период разработки.
ЗП = 5000 * 3 = 15000 руб.
Работникам начисляется премия. Процент премиальных составил 15% в месяц.
ЗП,% = ЗП*1.15 , (3.2)
где ЗП,% – зарплата с учетом премии;
ЗП – оклад за период разработки.
ЗП,% = 15000 * 1.15 = 17250 руб.
Плановые накопления в фонд резерва отпусков рассчитывается в размере 10% от тарифной платы:
ЗПД = ЗП * 0.10 , (3.3)
где ЗПД – плановые накопления в фонд резерва отпусков;
ЗП – оклад за период разработки.
ЗПД = 17250 * 0.10 = 1725 руб.
В расходы на оплату труда необходимо включить уральский коэффициент (15%). Районный коэффициент рассчитывается от оклада вместе с премиальными и дополнительной заработной платой.
КУР = 17250 * 0.15 = 2587.5 руб.
Следовательно, расходы на оплату труда с учетом зонального коэффициента составят:
ЗПОСН = ЗП,% + ЗПД + КУР , (3.4)
где ЗПОСН – расходы на оплату труда;
ЗП,% – зарплата с учетом премии;
ЗПД – плановые накопления в фонд резерва отпусков;
КУР – районный коэффициент.
ЗПОСН = 17250 + 1725 + 2587.5 = 21562.5 руб.
Статья «Расходы на социальные налоги» включает в себя отчисления в пенсионный фонд (20%), на медицинское (3.1%) и социальное страхование (2.9%), отчисления в фонд страхования от несчастных случаев (0.2%), что составляет 26.2% /23/. Отчисления производятся от общих расходов на оплату труда и сумма отчислений составляет:
СОТЧ = ЗПОСН * 0.262 , (3.5)
где СОТЧ – расходы на социальные налоги;
ЗПОСН – расходы на оплату труда.
СОТЧ = 21562.5 * 0.262 = 5649.37 руб.
Статья «Расходы на содержание и амортизацию вычислительной техники» включает расходы, связанные с эксплуатацией вычислительной техники. Стоимость одного машинного часа рассчитывается по формуле:
АЧ = СИСП / (ЧМ * КЧ), (3.6)
где АЧ – аренда за час использования;
СИСП – общая стоимость использования ЭВМ (рассчитывается по формуле (3.7));
ЧМ – число месяцев в году;
КЧ – количество рабочих часов в месяце.
СИСП = АКОМП + ЗПОБСЛ + СЗЧ + СЭЛ + АПО, (3.7)
где АКОМП – амортизация компьютера за год эксплуатации;
ЗПОБСЛ – расходы на оплату труда обслуживающего персонала за год эксплуатации.
ЗПОБСЛ = 2000 руб/мес.
СЗЧ – стоимость запчастей для компьютера за год эксплуатации.
СЗЧ = 3000 руб/год.
СЭЛ – стоимость израсходованной электроэнергии за год эксплуатации.
СЭЛ = 3000 руб/год.
АПО – годовая амортизация программного обеспечения.
АКОМП = СКОМП / СПИ, (3.8)
где СКОМП – стоимость компьютера;
СПИ – срок полезного использования (в годах).
АКОМП = 30000 / 5 = 6000 руб.
АПО = СТПО / СПИ, (3.9)
где СТПО – стоимость программного обеспечения;
СПИ – срок полезного использования (в годах).
АПО = 7000 / 5 = 1400 руб.
СИСП = 6000 + 2000*12 + 3000 + 3000 + 1400 = 37400 руб.
АЧ = 37400 / (12 * 176) = 17.708 руб
ЭВМ использовалась на этапах проектирования (52 час), программирования (65 часов), отладки (490 часов) и документирования (247 часов), т.е. всего 854 часов. Следовательно, сумма амортизационных отчислений составит:
САР = Эч * Ач , (3.10)
где САР – сумма амортизационных отчислений;
Эч – количество часов проектирования;
АЧ – аренда за час использования.
САР = 854 * 17.708 = 15122.63 руб.
Статья «Прочие расходы» содержит расходы, неучтенные в предыдущих статьях (до 5 % от расходов на оплату труда) :
ПР = ЗПОСН * 0.05 , (3.11)
где ПР – прочие расходы;
ЗПОСН – расходы на оплату труда.
ПР = 21562.5 * 0.05 = 1078.125 руб.
Статья «Накладные расходы» включает в себя расходы по управлению (заработная плата управления, расходы на все виды командировок управленческого аппарата), содержание пожарной и сторожевой охраны, содержание и текущий ремонт зданий, сооружений, инвентаря; содержание персонала, не относящегося к аппарату управления; расходы по изобретательству и рационализации; по подготовке кадров; расходы на содержание ВЦ; канцелярские, почтово-телеграфные расходы и др. общехозяйственные расходы; непроизводственные расходы. Накладные расходы составляют 130% от расходов на оплату труда, таким образом, получаем:
НР = ЗПОСН * 1.3 , (3.12)
где НР – накладные расходы;
ЗПОСН – расходы на оплату труда.
НР = 21562.5 * 1.3 = 28031.25 руб.
Сумма затрат на разработку подсистемы в целом составила 72000 руб. Табл. 3.2 отражает затраты по статьям и структуру этих затрат в общей сумме.
Таблица 3.2
Смета затрат на разработку подсистемы
Статья затрат | Сумма затрат, руб. |
Расходы на основные и вспомогательные материалы | 425 |
Расходы на оплату труда | 21562 |
Расходы на социальные налоги | 5649 |
Расходы на содержание и амортизацию вычислительной техники | 15122 |
Накладные расходы | 28031 |
Прочие расходы | 1078 |
Итого | 71867 |
Округлим полученную сумму до тысяч для учета непредвиденных затрат. Получим, что сумма затрат на разработку системы составит 72 000.0 руб.
Структура затрат на разработку ПО приведена на рис. 3.1.
Структура затрат на разработку ПО
Рис.3.1
4. БЕЗОПАСНОСТЬ И ЭКОЛОГИЧНОСТЬ ПРОЕКТА
В соответствии с ГОСТом /24/ охрана труда определяется как система законодательных актов, социально-экономических, организационных, технических, гигиенических и лечебно-профилактических мероприятий и средств, обеспечивающих безопасность, сохранение здоровья и работоспособности человека в процессе труда.
Задача охраны труда – свести к минимуму вероятность несчастного случая или заболевания работающего с одновременным обеспечением комфортных условий при максимальной производительности труда.
В процессе труда на человека кратковременно или длительно воздействуют разнообразные неблагоприятные факторы (пыль, газы, пары, шум и др., которые могут привести к заболеванию и потере трудоспособности).
Компьютерная техника, на первый взгляд, не таит в себе опасности для окружающих. Существуют скрытые факторы, которые могут привести к профессиональным заболеваниям и производственным травмам: большая нагрузка на зрительную систему, воздействие излучений, шумовое воздействие при работе с печатающими устройствами.
Руководству предприятий, имеющих в своем арсенале средства вычислительной техники, приходится заботиться о соблюдении мер противопожарной и электробезопасности, следить за состоянием микроклиматических условий труда, так как в случае возникновения опасной ситуации дорогостоящее оборудование может выйти из строя или сократится срок его службы. Особое внимание следует уделять персоналу, который непосредственно связан с работой на компьютерной технике. Как правило, программисты проводят за дисплеем большую часть рабочего времени и они попадают под влияние скрытых производственных факторов. Задача руководства предприятия и инженерного состава – обеспечить сохранность вычислительной техники и обслуживающего персонала, путем проведения мероприятий по безопасности труда.
4.1. Анализ опасных и вредных факторов, возникающих при ксплуатации компьютера
Правильная организация труда пользователя среди других вопросов предполагает создание безопасных и безвредных условий труда. Безопасность труда определяется как состояние условий труда, при котором отсутствует производственная опасность /24/. Последняя определяется как возможность воздействия на человека опасных и вредных факторов. Опасным считается фактор, воздействие которого приводит к несчастному случаю или травме работника, а вредным – фактор, приводящий к заболеванию. Различия между обеими группами довольно условны.
Пользователи компьютерной техники сталкиваются с воздействием таких производственных факторов, как повышенный уровень шума, повышенная температура внешней среды, отсутствие и недостаток естественного света, недостаточная освещенность, электрический ток и др. Существует также ряд психологических факторов: перенапряжение зрительных и слуховых анализаторов, монотонность труда, эмоциональные перегрузки.
Для обеспечения безопасности пользователя необходимо проводить анализ условий труда, знать существующие стандарты, разрабатывать и проводить специальные мероприятия.
4.2. Техника безопасности при эксплуатации компьютера
Исследовательская работа в рамках данного проекта заключается в выполнении многих этапов, практически все из которых проходят в тесном контакте с ЭВМ. Длительная работа инженера-программиста с компьютером сопряжена с целым рядом вредных и опасных факторов. Рассмотрим некоторые из них.
4.2.1. Постоянное напряжение глаз
Работа с компьютером характеризуется высокой напряженностью зрительной работы. В выполняемом исследовании значительный объем информации на разных стадиях обработки представлен в графической форме с большим количеством мелких деталей, что дает серьезную нагрузку на зрение. Постоянное напряжение глаз может привести к снижению остроты зрения. Экран видеомонитора должен находиться от глаз пользователя на оптимальном расстоянии 600…700 мм, но не ближе 500 мм с учетом размеров алфавитно-цифровых знаков и символов. Также для снижения утомляемости рекомендуется делать 15-минутные перерывы в работе за компьютером в течение каждого часа /26/.
4.2.2. Влияние электростатических и электромагнитных полей
Допустимые значения параметров ионизирующих электромагнитных излучений от монитора компьютера представлены в табл.4.1.
Максимальный уровень рентгеновского излучения на рабочем месте оператора компьютера обычно не превышает 10 мкбэр/ч, а интенсивность ультрафиолетового и инфракрасного излучений от экрана монитора лежит в пределах 10…100 мВт/м2 /26/.
Таблица 4.1
Допустимые значения параметров неионизирующих электромагнитных излучений (в соответствии с СанПиН 2.2.2.542-96)
Наименование параметра | Допустимые значения |
Напряженность электрической составляющей электромагнитного Поля на расстоянии 50см от поверхности видеомонитора |
10В/м |
Напряженность магнитной составляющей электромагнитного Поля на расстоянии 50см от поверхности видеомонитора |
0,3А/м |
Напряженность электростатического поля не должна превышать: для взрослых пользователей для детей дошкольных учреждений и учащихся средних специальных и высших учебных заведений |
20кВ/м 15кВ/м |
Для снижения воздействия этих видов излучения рекомендуется применять мониторы с пониженным уровнем излучения (MPR-II, TCO-92, TCO-99), устанавливать защитные экраны, а также соблюдать регламентированные режимы труда и отдыха.
4.2.3. Средства защиты от шума
Шум ухудшает условия труда оказывая вредное действие на организм человека. Работающие в условиях длительного шумового воздействия испытывают раздражительность, головные боли, головокружение, снижение памяти, повышенную утомляемость, понижение аппетита, боли в ушах и т. д. В табл.4.2 указаны предельные уровни звука в зависимости от категории тяжести и напряженности труда, являющиеся безопасными в отношении сохранения здоровья и работоспособности /27/.
Таблица 4.2
Предельные уровни звука, дБ, на рабочих местах
Категория напряженности труда |
Категория тяжести труда | |||
I. Легкая | II. Средняя | III. Тяжелая | IV. Очень тяжелая | |
I. Мало напряженный | 80 | 80 | 75 | 75 |
II. Умеренно напряженный | 70 | 70 | 65 | 65 |
III. Напряженный | 60 | 60 | - | - |
IV. Очень напряженный | 50 | 50 | - | - |
Уровень шума на рабочем месте инженеров-программистов и операторов видеоматериалов не должен превышать 50дБА, а в залах обработки информации на вычислительных машинах - 65дБА. Для снижения уровня шума стены и потолок помещений, где установлены компьютеры, могут быть облицованы звукопоглощающими материалами. Уровень вибрации в помещениях вычислительных центров может быть снижен путем установки оборудования на специальные виброизоляторы.
4.3. Организация рабочего места оператора
Разработка данного дипломного проекта проводится одним автором на персональном компьютере в домашних условиях. Проведем расчет параметров рабочего места инженера-программиста с точки зрения эргономических требований.
В табл. 4.3 приведены параметры стола для занятий с ПЭВМ. Рост автора данного дипломного проекта в обуви составляет 184 см, что входит в категорию «выше 175 см». Это означает, что согласно эргономическим правилам и нормам высота поверхности стола над полом должна составлять 760 мм, при этом размер пространства для ног в столе должен быть не менее 700 мм.
Таблица 4.3
Высота одноместного стола для занятий с ПЭВМ
Высота над полом, мм | ||
Рост учащихся или студентов в обуви, см | поверхность стола | пространство для ног, не менее |
116 – 130 | 520 | 400 |
131 – 145 | 580 | 520 |
146 – 160 | 640 | 580 |
161 – 175 | 700 | 640 |
Выше 175 | 760 | 700 |
Примечание. Ширина и глубина пространства для ног определяются конструкцией стола.
Реальная высота стола на рабочем месте автора данного проекта составляет 760 мм. Размер пространства для ног составляет 800 мм. Эти показатели соответствуют допустимым.
В табл. 4.4 приведены параметры стула, которым должно быть оснащено рабочее место инженера-программиста.
Рабочее место должно быть оборудовано подставкой для ног, имеющей ширину не менее 300 мм, глубину не менее 400 мм, регулировку по высоте в пределах до 150 мм и по углу наклона опорной поверхности подставки до 20 градусов. Поверхность подставки должна быть рифленой и иметь по переднему краю бортик высотой 10 мм. На рабочем месте автора данного проекта подставка для ног отсутствует.
Исходя из эргономических требований, пространство рабочего места можно разделить на несколько частей:
моторное поле – пространство рабочего места, в котором могут осуществляться двигательные действия человека;
максимальная зона досягаемости рук – это часть моторного поля рабочего места, ограниченного дугами, описываемыми максимально вытянутыми руками при движении их в плечевом суставе;
оптимальная зона – часть моторного поля рабочего места, ограниченного дугами, описываемыми предплечьями при движении в локтевых суставах с опорой в точке локтя и с относительно неподвижным плечом.
Таблица 4.4
Основные размеры стула для учащихся и студентов
Рост учащихся и студентов в обуви, см | |||||
Параметры стула | 116-130 | 131-145 | 146-160 | 161-175 | > 175 |
Высота сиденья над полом, мм | 300 | 340 | 380 | 420 | 460 |
Ширина сиденья не менее, мм | 270 | 290 | 320 | 340 | 360 |
Глубина сиденья, мм | 290 | 330 | 360 | 380 | 400 |
Высота нижнего края спинки над сиденьем, мм | 130 | 150 | 160 | 170 | 190 |
Высота верхнего края спинки над сиденьем, мм | 280 | 310 | 330 | 360 | 400 |
Высота линии прогиба спинки не менее, мм | 170 | 190 | 200 | 210 | 220 |
Радиус изгиба переднего края сиденья, мм | 20 - 50 | ||||
Угол наклона сиденья, град. | 0 - 4 | ||||
Угол наклона спинки, град. | 95-108 | ||||
Радиус спинки в плане не менее, мм | 300 |
Зоны досягаемости рук в горизонтальной плоскости |
|
а – зона максимальной досягаемости; б – зона досягаемости пальцев при вытянутой руке; в – зона легкой досягаемости ладони; г – оптимальное пространство для грубой ручной работы; д – оптимальное пространство для тонкой ручной работы. Рис. 4.1 |
Оптимальное размещение предметов труда и документации в зонах досягаемости:
ДИСПЛЕЙ размещается в зоне а (в центре);
СИСТЕМНЫЙ БЛОК размещается в предусмотренной нише стола;
КЛАВИАТУРА - в зоне г/д;
«МЫШЬ» - в зоне в справа;
СКАНЕР в зоне а/б (слева);
ПРИНТЕР находится в зоне а (справа);
ДОКУМЕНТАЦИЯ: необходимая при работе – в зоне легкой досягаемости ладони – в, а в выдвижных ящиках стола – литература, неиспользуемая постоянно.
На рис. 4.2 показан образец размещения основных и периферийных составляющих ПК на рабочем столе инженера-программиста.
Размещение основных и периферийных составляющих ПК
1 – сканер, 2 – монитор, 3 – принтер, 4 – поверхность рабочего стола,
5 – клавиатура, 6 – манипулятор типа «мышь».
Рис. 4.2
Положение экрана определяется расстоянием считывания (0,6…0,7м), углом считывания, направлением взгляда на 20° ниже горизонтали к центру экрана, причем экран перпендикулярен этому направлению. Должна также предусматриваться возможность регулирования экрана по высоте +3 см, по наклону от -10° до +20° относительно вертикали, в левом и правом направлениях.
Во время пользования компьютером медики советуют устанавливать монитор на расстоянии 50-60 см от глаз.
Рабочее место инженера-программиста в составе данного проекта в целом соответствует предъявляемым к нему эргономическим требованиям, связанным с параметрами мебели и размещением предметов труда в рабочих зонах.
4.4. Требования к помещениям
Цветовое оформление производственных и вспомогательных помещений ВЦ должно соответствовать требованиям стандарта /28/.
Подбор цветных образцов необходимо производить в соответствии с принятым наименованием цветов. Малонасыщенные (основные) цвета должны применяться для окраски больших полей (потолок, стены, рабочие поверхности и т.п.), средненасыщенные (вспомогательные) - для небольших поверхностей или участков, редко попадающих в поле зрения работающих, а также для создания контрастов; насыщенные (акцентные) - для малых по площади поверхностей (в качестве функциональной окраски).
При цветовом оформлении помещений ВЦ необходимо учитывать климатические особенности района, где расположено здание, и ориентацию окон помещений по сторонам света. Параметры цветового оформления помещений ВЦ приведены в табл. 4.5.
Таблица 4.5
Параметры цветового оформления помещений ВЦ
Ориентация окон помещений | Наименование цвета (поверхности) | Характеристика цветов |
N образца СН 181-70 |
||
Длина волны, нм | Чистота | Коэффициент отражения, % | |||
Юг |
Зеленовато-голубой (стены) Светло-голубой (стены) Зеленый (пол) |
498±5 485±5 550±5 |
8±10 7±10 30±10 |
69±7 64±7 29±7 |
10,0 11,4 7,1 |
Север |
Светло-оранжевый (стены) Оранжево-желтый (стены) Красновато-оранжевый (пол) |
587±5 581±5 600±7 |
24±10 37±10 50±5 |
71±7 67±7 10±7 |
4,5 22,4 18,1 |
Восток |
Желтовато-зеленый (стены) Зеленый (пол) Красновато-оранжевый (пол) |
559±5 550±5 600±7 |
38±10 30±10 50±5 |
67±7 29±7 10±7 |
6,5 7,1 18,1 |
Запад |
Светло-желтый (стены) Голубовато-зеленый (стены) Зеленый (пол) Красновато-оранжевый (пол) |
572±5 515±5 550±5 600±7 |
47±10 10±5 30±10 50±5 |
70±7 67±7 29±7 10±7 |
5,4 9,4 7,1 18,1 |
В цветовой композиции интерьера помещений ВЦ должны использоваться гармонические цветовые сочетания. Выбор образцов цвета для отделочных материалов и изделий следует осуществлять с учетом их фактуры; поверхности в помещениях должны иметь матовую и полуматовую фактуру для исключения попадания отраженных бликов в глаза работающего.
Необходимо обеспечивать следующие величины коэффициента отражения в помещениях ВЦ:
для потолка от 60 до 70%;
для стен от 40 до 50%;
для пола 30%;
для других отражающих поверхностей в рабочей мебели от 30 до 40%.
4.5. Требования к параметрам микроклимата помещения, расчет вентиляции
Под метеорологическими условиями понимают сочетание температуры, относительной влажности, скорости движения и запыленности воздуха. Перечисленные параметры оказывают огромное влияние на функциональную деятельность человека, его самочувствие и здоровье, на надежность средств вычислительной техники. Эти микроклиматические параметры влияют как каждый в отдельности, так и в различных сочетаниях.
Температура воздуха является одним из основных параметров, характеризующих тепловое состояние микроклимата. Суммарное тепловыделение в помещении поступает от:
ЭВМ;
вспомогательного оборудования;
приборов освещения;
людей;
внешних источников.
Наибольшее количество теплоты выделяют ЭВМ и вспомогательное оборудование. Средняя величина тепловыделения от компьютеров колеблется до 100 Вт/кв.м. Тепловыделения от приборов освещения также велики. Удельная величина их составляет 35 Вт/кв.м. При этом, чем больше уровень освещенности, тем выше удельные величины тепловыделений. Количество теплоты от обслуживающего персонала незначительно. Оно зависит от числа работающих в помещении, интенсивности работы, выполняемой человеком.
К внешним источникам поступления теплоты относят теплоту, поступающую через окна от солнечной радиации, приток теплоты через непрозрачные ограждения конструкций. Интенсивность этих источников зависит от расположения здания, ориентации по частям света, цветовой гаммы и прочего.
С целью создания нормальных условий для труда пользователей вычислительной техники, ГОСТом 12.1.005-88 установлены оптимальные и допустимые значения всех параметров микроклимата /29/. Они представлены в табл. 4.6.
Таблица 4.6
Параметры микроклимата производственных помещений
Период года | Категория работ | Температура воздуха, ˚С не более | Относительная влажность воздуха, % | Скорость движения воздуха, м/с | |||
Оптим. | Допуст. | Оптим. | Допуст. | Оптим. | Допуст. | ||
Холодный | Легкая–1а | 22–24 | 20-25 | 40–60 | 15-75 | 0,1 | 0,1 |
Легкая–1б | 21–23 | 19-24 | 40–60 | 15-75 | 0,1 | 0,1-0,2 | |
Теплый | Легкая–1а | 23–25 | 21-28 | 40–60 | 15-75 | 0,1 | 0,1-0,2 |
Легкая–1б | 22–24 | 20-28 | 40–60 | 15-75 | 0,2 | 0,1-0,3 |
К категории 1а относятся работы, производимые сидя и не требующие физического напряжения, при которых расход энергии составляет до 120 ккал/ч.
К категории 1б относятся работы, производимые сидя, стоя или связанные с ходьбой и сопровождающиеся некоторым физическим напряжением, при которых расход энергии составляет от 120 до 150 ккал/ч.
Для обеспечения нормальных условий труда необходимо придерживаться вышеуказанных данных. В целях поддержания температуры и влажности воздуха в помещении можно использовать системы отопления, вентиляции и кондиционирования воздуха.
Расчет для помещения
Vвент – объем воздуха, необходимый для обмена;
Vпом – объем рабочего помещения.
Для расчета примем следующие размеры рабочего помещения:
длина В = 7.35 м;
ширина А = 4.9 м;
высота Н = 4.2 м.
Объем помещения равен:
V помещения = А * В * H =151,263 м3
Необходимый для обмена объем воздуха Vвент определим исходя из уравнения теплового баланса:
Vвент * С( tуход - tприход ) * Y = 3600 * Qизбыт ,
где Qизбыт – избыточная теплота (Вт);
С = 1000 – удельная теплопроводность воздуха (Дж/кгК);
Y = 1.2 – плотность воздуха (мг/см).
Температура уходящего воздуха определяется по формуле:
tуход = tр.м. + ( Н - 2 )t , (4.1)
где t = 1-5 градусов – превышение t на 1м высоты помещения;
tр.м. = 25 градусов – температура на рабочем месте;
Н = 4.2 м – высота помещения;
tприход = 18 градусов.
tуход = 25 + ( 4.2 - 2 ) 2 = 29.4
Qизбыт = Qизб.1 + Qизб.2 + Qизб.3 , (4.2)
где Qизб. – избыток тепла от электрооборудования и освещения.
Qизб.1 = Е * р , (4.3)
где Е – коэффициент потерь электроэнергии на топлоотвод ( Е=0.55 для освещения);
р – мощность, р = 40 Вт * 15 = 600 Вт.
Qизб.1 = 0.55 * 600=330 Вт
Qизб.2 – теплопоступление от солнечной радиации;
Qизб.2 =m * S * k * Qc , (4.4)
где m – число окон, примем m = 4;
S – площадь окна, S = 2.3 * 2 = 4.6 м2;
k – коэффициент, учитывающий остекление. Для двойного остекления
k = 0.6;
Qc = 127 Вт/м – теплопоступление от окон;
Qизб.2 = 4.6 * 4 * 0.6 * 127 = 1402 Вт
Qизб.3 – тепловыделения людей;
Qизб.3 = n * q , (4.5)
где q = 80 Вт/чел.;
n – число людей, например, n = 15.
Qизб.3 = 15 * 80 = 1200 Вт
Qизбыт = 330 +1402 + 1200 = 2932 Вт
Из уравнения теплового баланса следует:
Vвент м3
Оптимальным вариантом является кондиционирование воздуха, т.е. автоматическое поддержание его состояния в помещении в соответствии с определенными требованиями (заданная температура, влажность, подвижность воздуха) независимо от изменения состояния наружного воздуха и условий в самом помещении.
4.6. Требования к освещению рабочих мест, расчет освещения
К современному освещению помещений, где работают с вычислительной техникой, предъявляют высокие требования как гигиенического, так и технического характера. Правильно спроектированное и выполненное освещение обеспечивает высокий уровень работоспособности, оказывает положительное психологическое воздействие, способствует повышению производительности труда. Условия деятельности пользователя в системе «человек-машина» связаны с явным преобладанием зрительной информации – до 90% общего объема.
В помещениях с компьютерной техникой применяется совмещенная система освещения. К таким системам предъявляют следующие требования:
соответствие уровня освещенности рабочих мест характеру выполняемых зрительных работ;
достаточно равномерное распределение яркости на рабочих поверхностях и в окружающем пространстве;
отсутствие резких теней, прямой и отраженной блеклости.
постоянство освещенности во времени;
оптимальная направленность излучаемого осветительными приборами светового потока;
долговечность, экономичность, электро- и пожаробезопасность, эстетичность, удобство и простота эксплуатации.
Для искусственного освещения помещений с вычислительной техникой следует использовать люминесцентные лампы, у которых высокая световая отдача (до 75 лм/Вт и более), продолжительный срок службы (до 10.000 ч), малая яркость светящейся поверхности, близкий к естественному спектр излучения, что обеспечивает хорошую цветопередачу. Наиболее приемлемыми являются люминесцентные лампы белого света и тепло-белого света мощностью 40, 80 Вт /30/.
Работа программиста относится к работам высокой точности (III разряд зрительных работ). Рекомендуемая освещенность для работы с экраном дисплея составляет 200 лк, а при работе с экраном в сочетании с работой над документами – 400 лк. Рекомендуемая яркость в поле зрения должна лежать в пределах 1:5-1:10.
Освещенность рабочего места пользователя на исследуемом предприятии является совмещенной (искусственное + естественное), расположение рабочих мест исключает попадание прямых солнечных лучей на экран дисплея и в глаза. В качестве источника искусственного освещения используют ДРЛ (12 штук).
Расчет освещенности рабочего места сводится к выбору системы освещения, определению необходимого числа светильников, их типа и размещения. Процесс работы программиста в таких условиях, когда естественное освещение недостаточно или отсутствует. Исходя из этого, рассчитаем параметры искусственного освещения.
Искусственное освещение выполняется посредством электрических источников света двух видов: ламп накаливания и люминесцентных ламп. Будем использовать люминесцентные лампы, которые по сравнению с лампами накаливания имеют существенные преимущества:
по спектральному составу света они близки к дневному, естественному освещению;
обладают более высоким КПД (в 1.5-2 раза выше, чем КПД ламп накаливания);
обладают повышенной светоотдачей (в 3-4 раза выше, чем у ламп накаливания);
более длительный срок службы.
Расчет освещения производится для комнаты площадью 36 м2 , ширина которой 4.9 м, высота – 4.2 м. Воспользуемся методом светового потока.
Для определения количества светильников определим световой поток, падающий на поверхность по формуле:
, (4.6)
где F – рассчитываемый световой поток, Лм;
Е – нормированная минимальная освещенность, Лк (определяется по таблице). Работу программиста, в соответствии с этой таблицей, можно отнести к разряду точных работ, следовательно, минимальная освещенность будет Е = 300 Лк при газоразрядных лампах;
S – площадь освещаемого помещения ( в нашем случае S = 36 м2 );
Z – отношение средней освещенности к минимальной (обычно принимается равным 1.1-1.2 , пусть Z = 1.1);
К – коэффициент запаса, учитывающий уменьшение светового потока лампы в результате загрязнения светильников в процессе эксплуатации (его значение определяется по таблице коэффициентов запаса для различных помещений и в нашем случае К = 1.5);
n – коэффициент использования, (выражается отношением светового потока, падающего на расчетную поверхность, к суммарному потоку всех ламп и исчисляется в долях единицы; зависит от характеристик светильника, размеров помещения, окраски стен и потолка, характеризуемых коэффициентами отражения от стен (Рс) и потолка (Рп)), значение коэффициентов Рс и Рп определим по таблице зависимостей коэффициентов отражения от характера поверхности: Рс=30%, Рп=50%. Значение n определим по таблице коэффициентов использования различных светильников. Для этого вычислим индекс помещения по формуле:
, (4.7)
где S – площадь помещения, S = 36 м2;
h – расчетная высота подвеса, h = 3.39 м;
A – ширина помещения, А = 4.9 м;
В – длина помещения, В = 7.35 м.
Подставив значения получим:
Зная индекс помещения I, Рс и Рп, по таблице находим n = 0.28
Подставим все значения в формулу для определения светового потока F:
Лм
Для освещения выбираем люминесцентные лампы типа ЛБ40-1, световой поток которых F = 4320 Лк.
Рассчитаем необходимое количество ламп по формуле:
, (4.8)
где N – определяемое число ламп;
F – световой поток, F = 63642,857 Лм;
Fл- световой поток лампы, Fл = 4320 Лм.
шт.
При выборе осветительных приборов используем светильники типа ОД. Каждый светильник комплектуется двумя лампами. Размещаются светильники двумя рядами, по четыре в каждом ряду.
4.7. Пожарная безопасность
В современных ЭВМ очень высокая плотность размещения элементов электронных схем. В непосредственной близости друг от друга располагаются соединительные провода, коммуникационные кабели. При протекании по ним электрического тока выделяется значительное количество тепла, что может привести к повышению температуры отдельных узлов до 100°C. При этом возможно плавление изоляции проводов, их оголение, и как следствие, короткое замыкание, которое сопровождается искрением и ведет к перегрузкам элементов электронных схем, которые, перегреваясь, сгорают с искрением, поэтому следует большое внимание оказывать пожарной безопасности.
Пожарная безопасность – состояние объекта, при котором с установленной вероятностью исключается возможность возникновения и развития пожара и воздействия на людей опасных факторов пожара, а также обеспечивается защита материальных ценностей /31/.
Особое внимание к пожарной безопасности является обоснованным, так как в случае пожара будет нанесен значительный материальный ущерб (даже если в помещении находится один компьютер) и возможна угроза жизни и здоровью людей.
Источниками пожара при работе программиста с компьютером могут быть ЭВМ, электропроводка, действующие системы отопления, вентиляции и кондиционирования воздуха, бытовые приборы.
Помещение, где установлена вычислительная техника, относятся к категории “Д” – помещения, где находятся твердые горючие и трудногорючие вещества и материалы, так как:
относительная влажность воздуха не превышает 75%;
нет токопроводящей пыли;
температура не превышает длительное время 30 °С ;
отсутствует возможность одновременного прикосновения человека с имеющим соединение с землей металлическими конструкциями;
отсутствие возможности прикоснуться к токоведущим частям оборудования;
нет токопроводящих полов.
В соответствии с требованиями пожарной безопасности у входной двери должен находиться углекислотный огнетушитель типа ОУ-5.
В помещении может быть установлена пожарная сигнализация - тепловые извещатели с плавкими предохранителями. Это необходимо при большой концентрации средств вычислительной техники.
Для ликвидации пожара в начальной стадии в коридоре ВЦ размещается пожарный кран. В помещении, где установлена вычислительная техника, недопустимо применять воду и пенные огнетушители, так как в этом случае существует опасность повреждения или полного выхода из строя ЭВМ и другого оборудования. Для тушения пожаров на ВЦ наиболее эффективно использовать порошковые огнетушители типа ОП-5-01 из расчета один огнетушитель на 40-50 кв. м площади, но не менее двух в помещении. Устройства пожарной автоматики предназначены для обнаружения, оповещения и ликвидации пожаров.
В данном разделе дипломной работы был проведен анализ вредных и опасных производственных факторов, действующих на рабочем месте инженера-программиста. Среди них были выделены: постоянное напряжение глаз, влияние электростатических и электромагнитных полей, длительное неизменное положение тела, шум. Был проведен анализ и указан комплекс мер по пожаробезопасности и электробезопасности. Проведен расчет эргономических требований к рабочему месту инженера-программиста. Созданные условия должны обеспечивать комфортную работу. На основании изученной литературы по данной проблеме, были указаны оптимальные размеры рабочего стола и кресла, параметры рабочей поверхности, а также сформулированы предложения по улучшению параметров рабочего места. Соблюдение условий, определяющих оптимальную организацию рабочего места инженера-программиста, позволит сохранить хорошую работоспособность в течение всего рабочего дня, повысит как в количественном, так и в качественном отношениях производительность труда программиста, что в свою очередь будет способствовать быстрейшей разработке и отладке программного продукта.
ЗАКЛЮЧЕНИЕ
В дипломной работе был разработан и реализован математический метод, позволяющий за приемлемое время автоматически производить вейвлет-преобразование дискреного сигнала. В результате проделанной работы были решены поставленные перед разработчиком задачи:
спроектированы базовые модели данных, которые могут быть использованы для дальнейшей обработки и анализа;
реализован алгоритм вейвлет-анализа входного сигнала;
разработано программное средство реализующее вейвлет-анализ;
подсистема вейвлет-анализа интегрирована в единую систему многомасштабного анализа дискретных сигналов;
подсистема предоставляет базовый набор функций для анализа входных сигналов, результаты которого могут применяться в других подсистемах.
Проведен анализ, выбор и реализация оптимальных алгоритмов вейвлет-анализа, позволяющих за приемлимое время достичь нужного результата.
Создано программное обеспечение, выполняющее многомасштабный анализ дискретных сигналов.
Посредством МАДС удается обнаружить структурные особенности сигналов, выявить и уменьшить шумы.
Созданную систему МАДС следует рассматривать как исследовательскую систему, предназначенную для выявления эмпирических закономерностей в предметной области и дальнейшую разработку в направлении большей автоматизации процесса многомасштабного анализа.
СПИСОК ЛИТЕРАТУРЫ
Добеши И. Десять лекций по вейвлетам. -Ижевск: НИЦ «Регулярная и хаотическая динамика», 2001.
Дремин И.М. Вейвлеты и их использование. –М: Наука – производству, 2000.
Астафьева Н.М. Вейвлет-анализ: основы теории и примеры применения. –М: Фундаментальная и прикладная математика, 1998.
http://www.systat.com/products/AutoSignal/
AutoSignal
– Spectral and time domain signal analysis and processing
software.
// Проверено
06.06.2006.
http://education.softline.ru/product.asp?catalog_name=SoftLine&category_name=&product_id=Software-13545&view=tech_info_ru&cookie%5Ftest=1
AutoSignal
– пакет для
проведения
автоматизированного
анализа сигналов.
//
Проверено
06.06.2006.
http://www.mathworks.com/products/wavelet/
Wavelet
Toolbox 3.0.4. // Проверено
06.06.2006.
http://matlab.exponenta.ru/wavelet/index.php
Wavelet ToolBox
- обработка
сигналов и
изображений.
//Проверено
06.06.2006.
Новиков И.Я. Основные конструкции всплесков. –М: Успехи математических наук, 1998.
Петухов А.П. Введение в теорию базисов всплесков. –М: Радио и связь, 1995.
Строустрап Б. Язык программирования С++. – М.: Мир, 1994. – 278 с.
Кнут Д. Искусство программирования для ЭВМ. - М.: Мир, 1976. – Т. 1-3.
Корн Г., Корн Т. Справочник по математике для научных работников и инженеров. - М.: Наука, 1979. – 720с.
Эйнджел Э. Интерактивная компьютерная графика. – М.: Вильямс, 2001. – 592 с.
ГОСТ 19.001-77 ЕСПД. Общие положения. -М.: Издательство стандартов, 1989.
ГОСТ 19.701-90 ЕСПД. Схемы алгоритмов, программ, данных и систем. Условные обозначения и правила выполнения. -М.: Издательство стандартов, 1991.
ГОСТ 19.105-78 ЕСПД. Общие требования к программным документам. -М.: Издательство стандартов, 1989.
ГОСТ 19.401-78 ЕСПД. Текст программы. Требования к содержанию и оформлению. -М.: Издательство стандартов, 1989.
ГОСТ 19.404-79 ЕСПД. Пояснительная записка. Требования к содержанию и оформлению. -М.: Издательство стандартов, 1989.
ГОСТ 19.504-79 ЕСПД. Руководство программиста. Требования к содержанию и оформлению. -М.: Издательство стандартов, 1989.
ГОСТ 19.505-79 ЕСПД. Руководство оператора. Требования к содержанию и оформлению. -М.: Издательство стандартов, 1989.
Почерняев С.В., Килин И.В. Методические указания по дипломному проектированию. – Ижевск: Издательство ИжГТУ, 1994.
Технико-экономическое обоснование дипломных проектов. – Ижевск: Издательство ИжГТУ, 2001.
Налоговый кодекс РФ. – М.: ГроссМедиа Ферлаг, 2004.
ГОСТ 12.0.002-80 Система стандартов безопасности труда. Термины и определения – М.: Издательство стандартов, 1984.
ГОСТ 12.1.003-89 Система стандартов безопасности труда. Шум. Общие требования безопасности. -М.: Издательство стандартов, 1989.
СанПиН 2.2.2.542-96 Гигиенические требования к видеодисплейным терминалам, персональным электронным вычислительным машинам и организации работы. -М.: Издательство стандартов, 1976.
ГОСТ 12.1.029-80 Система стандартов безопасности труда. Средства и методы защиты от шума. Классификация. -М.: Издательство стандартов, 1980.
Руководства по проектированию производственных помещений и промышленных предприятий. -М.: Стройиздат, 1981.
СанПиН 2.2.4.548-96 Гигиенические требования к микроклимату производственных помещений. -М.: Издательство стандартов, 1976.
СНиП 23-05-95 Нормы проектирования естественного и искусственного освещения. -М.: Издательство стандартов, 1995.
ГОСТ 12.1.004-91 Система стандартов безопасности труда. Пожарная безопасность. Общие требования. -М.: Издательство стандартов, 1992.
ПРИЛОЖЕНИЕ 1
ТЕКСТ ПРОГРАММЫ
П. 1.1. ТЕКСТ МОДУЛЯ SIGNAL.CS
using System;
using System.Collections;
using System.Drawing;
using System.IO;
using System.Windows.Forms;
using MultiScAn.Common.Attributes;
using MultiScAn.Common.Interfaces;
using MultiScAn.Common.Utils;
namespace MultiScAn.Common.Classes
{
public delegate void CommonHandler();
/// <summary>
/// Summary description for Signal.
/// </summary>
[Filter("Текстовый файл данных (*.dat)|*.dat")]
public class Signal : IData, ICleanable, IEnumerable
{
private int[] _data = new int[0];
private int _minValue = int.MaxValue;
private int _maxValue = int.MinValue;
private Bitmap _bitmap;
public Signal()
{
}
public void Rebuild(int size)
{
_data = new int[size];
_minValue = int.MaxValue;
_maxValue = int.MinValue;
_bitmap = null;
}
public void Load(string fileName)
{
int min = int.MaxValue, max = int.MinValue;
ArrayList list = new ArrayList();
using(StreamReader reader = File.OpenText(fileName))
{
string str = String.Empty;
while((str = reader.ReadLine()) != null)
{
str = str.Trim();
if (str != String.Empty)
{
string [] vals = str.Split(' ', '\t');
foreach(string val in vals)
{
int iVal = int.Parse(val);
DataUtil.Sort(iVal, ref min, ref max);
list.Add(iVal);
}
}
}
}
if (list.Count == 0) throw new NotSupportedException();
_data = (int[]) list.ToArray(typeof(int));
_minValue = min; _maxValue = max;
_bitmap = null;
if(OnLoad != null) OnLoad();
}
public event CommonHandler OnLoad;
public void Save(string fileName)
{
using(StreamWriter writer = File.CreateText(fileName))
{
foreach(int s in _data)
{
writer.WriteLine(s);
}
}
if (OnSave != null) OnSave();
}
public event CommonHandler OnSave;
public Bitmap Bitmap
{
get
{
if (_bitmap == null)
{
int min = _minValue > 0 ? 0 : -_minValue;
int max = _maxValue < 0 ? 0 : _maxValue;
Graphics g = null;
_bitmap = new Bitmap(2 * _data.Length, min + max);
g = Graphics.FromImage(_bitmap);
g.FillRectangle(new SolidBrush(Color.White), g.ClipBounds);
for(int i = 1; i <= _data.Length; i++)
{
g.DrawLine(new Pen(Color.Black),
new Point(2*i-1 , max),
new Point(2*i-1, max - _data[i-1]));
}
}
return _bitmap;
}
}
public void Clean()
{
_data = new int[0];
_minValue = int.MaxValue;
_maxValue = int.MinValue;
}
public bool IsEmpty
{
get { return _data.Length == 0; }
}
public int this[int index]
{
get { return _data[index]; }
set { sorter = _data[index] = value; }
}
private int sorter
{
set
{
DataUtil.Sort(value, ref _minValue, ref _maxValue);
}
}
public IEnumerator GetEnumerator()
{
return _data.GetEnumerator();
}
public int Length
{
get { return _data.Length; }
}
public void CopyTo(int[] arr)
{
_data.CopyTo(arr, 0);
}
}
}
П. 1.2. ТЕКСТ МОДУЛЯ WAVELET.CS
using MultiScAn.Common.Classes;
namespace MultiScAn.WaveletAnalysis
{
/// <summary>
/// Summary description for Wavelet.
/// </summary>
public class Wavelet : Signal
{
public Wavelet()
{
}
public double[] Resample(int size)
{
double[] res = new double[size];
for (int i = 0, offs = 0; i < size; i++, offs += base.Length)
{
res[i] = 0.0;
for (int j = 0; j < base.Length; j++)
{
res[i] += base[(offs + j)/size];
}
res[i] /= base.Length;
}
return res;
}
}
}
П. 1.3. ТЕКСТ МОДУЛЯ RESULT.CS
using System;
using System.Collections;
using System.Drawing;
using System.IO;
using MultiScAn.Common.Attributes;
using MultiScAn.Common.Classes;
using MultiScAn.Common.Interfaces;
using MultiScAn.Common.Utils;
namespace MultiScAn.WaveletAnalysis
{
/// <summary>
/// Summary description for ResultUtil.
/// </summary>
[Filter("Результат вейвлет анализа (*.war)|*.war")]
public class Result : IResult
{
double [,] _Data = new double[0, 0];
private Bitmap _bitmap;
private double _minValue = double.MaxValue;
private double _maxValue = double.MinValue;
private Spectrum _spectrum = new Spectrum();
public Result()
{
}
internal void Rebuild(int height, int width)
{
_bitmap = null;
_Data = new double[height, width];
_minValue = double.MaxValue;
_maxValue = double.MinValue;
}
public int Width
{
get { return _Data.GetLength(1); }
}
public int Height
{
get { return _Data.GetLength(0); }
}
public double this[int i, int j]
{
get { return _Data[i, j]; }
set { sorter = _Data[i, j] = value; }
}
public double MinValue
{
get { return _minValue; }
}
public double MaxValue
{
get { return _maxValue; }
}
public void Load(string fileName)
{
double min = double.MaxValue, max = double.MinValue;
double [,] data;
using(StreamReader reader = File.OpenText(fileName))
{
int width = int.Parse(__read(reader));
int height = int.Parse(__read(reader));
data = new double[width, height];
for(int i = 0; i < width; i++)
{
for(int j = 0; j < height; j++)
{
DataUtil.Sort(data[i, j] = double.Parse(__read(reader)), ref min, ref max);
}
}
}
_Data = data;
_minValue = min;
_maxValue = max;
_bitmap = null;
if(OnLoad != null) OnLoad();
}
private string __read(StreamReader reader)
{
string str = reader.ReadLine();
if (str == null) throw new NotSupportedException();
return str;
}
public event CommonHandler OnLoad;
public void Save(string fileName)
{
using(StreamWriter writer = File.CreateText(fileName))
{
int height = _Data.GetLength(0), width = _Data.GetLength(1);
writer.WriteLine(height);
writer.WriteLine(width);
for(int i = 0; i < height; i++)
{
for(int j = 0; j < width; j++)
{
writer.WriteLine(_Data[i, j]);
}
}
}
if (OnSave != null) OnSave();
}
public event CommonHandler OnSave;
public Bitmap Bitmap
{
get
{
if (_bitmap == null)
{
if (_spectrum.Length == 0) _spectrum.LoadDefault();
_bitmap = new Bitmap(Width, Height);
double k = (_spectrum.Length - 1) / (_maxValue - _minValue);
for(int i = 0; i < Height; i++)
{
for(int j = 0; j < Width; j++)
{
_bitmap.SetPixel(j, i, _spectrum[(int) (k *(_Data[i, j] - _minValue))]);
}
}
}
return _bitmap;
}
}
public void FormRow(Signal x, double[] y, int row)
{
int result_size = 2 * x.Length,
max_offset = x.Length - y.Length,
null_offset = Math.Min(y.Length - 1, result_size);
if (result_size != _Data.GetLength(1)) throw new ArgumentOutOfRangeException();
for (int i = 0; i < null_offset; i++)
{
this[row, i] = 0.0;
}
if (null_offset == result_size) return; // зачем делать лишние движения, если и так уже всё забито нулями
for (int i = 0; i <= max_offset; i++)
{
double sum = 0.0;
for (int j = 0; j < y.Length; j++)
{
sum += x[i+j] * y[j];
}
this[row, 2*i+y.Length-1] = sum;
this[row, 2*i+y.Length] = 0.0;
}
for (int i = result_size - null_offset; i < result_size; i++)
{
this[row, i] = 0.0;
}
}
public Spectrum Spectrum
{
get { return _spectrum; }
set { _spectrum = value; }
}
private double sorter
{
set
{
DataUtil.Sort(value, ref _minValue, ref _maxValue);
}
}
}
}
П. 1.3. ТЕКСТ МОДУЛЯ ANALYZER.CS
using System;
using System.Diagnostics;
using MultiScAn.Common.Classes;
using MultiScAn.Common.Interfaces;
namespace MultiScAn.WaveletAnalysis
{
/// <summary>
/// Summary description for Analysis.
/// </summary>
public class Analyzer : IAnalyzer
{
public const double DEFAULT_SCALE = 1.0;
private Wavelet _Wavelet = new Wavelet();
private Signal _Data = new Signal();
public Analyzer()
{
}
// public Analyzer(Wavelet wavelet, Wavelet data)
// {
// _Wavelet = wavelet;
// _Data = data;
// }
public Wavelet Wavelet
{
get { return _Wavelet; }
set { _Wavelet = value; }
}
public Signal Data
{
get { return _Data; }
set { _Data = value; }
}
public void Analyze(IResult result)
{
Analyze(DEFAULT_SCALE, (Result)result);
}
public void Analyze(double scale, Result result)
{
if (_Wavelet == null) throw new ArgumentNullException("Wavelet");
if (_Data == null) throw new ArgumentNullException("Data");
int size = (int)(_Wavelet.Length * scale);
// Wavelet [] result = new Wavelet[size];
result.Rebuild(size, 2 * _Data.Length);
for (int i = 0; i < size; i++)
{
result.FormRow(_Data, _Wavelet.Resample(size - i), i);
// Trace.WriteLine(String.Format("{0} / {1}", i, size));
}
}
}
}
ПРИЛОЖЕНИЕ 2
РУКОВОДСТВО ПРОГРАММИСТА
П.2.1. НАЗНАЧЕНИЕ ПРОГРАММЫ
Программа вейвлет-анализа имеет идентификатор WaveletAnalysis. Программа WaveletAnalysis выполняет следующие функции:
загрузка и сохранение дискретных сигналов (включая вейвлеты);
расчёт, загрузка и сохранение результатов вейвлет-анализа;
предоставление интерфейсов для подсистемы визуализации данных МАДС;
Программа WaveletAnalysis входит в состав системы МАДС в качестве динамически загружаемой библиотеки. Система МАДС реализует многомасштабный анализ дискретных сигналов методами вейвлет-анализа и структурной индексации.
П.2.2. УСЛОВИЯ ВЫПОЛНЕНИЯ ПРОГРАММЫ
Программа WaveletAnalysis предъявляет следующие требования к техническим средствам:
стандартный x86-совместимый ПК;
тактовая частота процессора не менее 900 МГц;
объем оперативной памяти не менее 128 Мб;
разрешение экрана монитора не менее 1024x768.
Программа WaveletAnalysis предъявляет следующие требования к программным средствам:
операционная система семейства Windows (Windows NT/2000/XP);
.NET Framework версии 1.1;
П.2.3. ХАРАКТЕРИСТИКА ПРОГРАММЫ
Программа WaveletAnalysis входит в состав системы МАДС в качестве динамически загружаемой библиотеки.
В состав программы входят следующие файлы, необходимые для ее функционирования:
MultiScAn.Visualization.exe – исполняемый модуль подсистемы визуализации данных;
MultiScAn.Common.dll – библиотека, содержащая базовые классы и интерфейсы необходимые для функционирования системы МАДС;
MultiScAn.WaveletAnalysis.dll – библиотека, реализующая вейвлет-анализ;
DialCol.txt – файл цветовой шкалы, используемой для визуализации результатов вейвлет-анализа.
Программа является интерактивной, т.е. требующей взаимодействия с пользователем, поэтому время выполнения отдельных этапов обработки не превышает 0.5 с. при использовании требуемых технических средств.
П.2.4. ОБРАЩЕНИЕ К ПРОГРАММЕ
Для вызова программы необходимо запустить на выполнение файл MultiScAn.Visualization.exe и выбрать закладку «Вейвлет-анализ».
Интерфейс программы WaveletAnalysis представлен на рис. П.2.1.
Описание панели инструментов программы WaveletAnalysis представлено в табл. П.2.1.
Интерфейс программы WaveletAnalysis
Рис. П.2.1
Таблица П.2.1
Панель инструментов программы WaveletAnalysis
Кнопка на панели инструментов | Значение |
Выход из приложения | |
Загрузка анализируемого сигнала из текстового файла | |
Загрузка вейвелета из текстового файла | |
Вейвлет-анализ сигнала | |
Сохранение результатов вейвлет-анализа в текстовый файл | |
Настройка программы | |
Просмотр диалога «О программе» |
Для загрузки, сохранения или сохранения изображения анализируемого сигнала, вейвлета или результата вейвлет-анализа в соответсвующей закладке («Данные», «Вейвлет» или «Результат») необходимо выбрать соответсвующий пункт контекстного меню («Загрузить», «Сохранить» или «Сохранить изображение…») или нажать на соответствующую кнопку панели инструментов (см. табл. П.2.1).
В стандартном диалоге открытия файла необходимо выбрать нужный файл. В итоге на соответсвующей закладке («Данные», «Вейвлет» или «Результат») появляется графическое изображение анализируемого сигнала, вейвлета или результата вейвлет-анализа.
П.2.5. ВХОДНЫЕ И ВЫХОДНЫЕ ДАННЫЕ
Входной информацией являются текстовые файлы с расширением «.dat» (от англ. data – данные), содержащие данные исходного сигнала.
Структура входного файла «.dat»:
где – количество данных;
, – значение сигнала, целое число.
Выходной информацией для данной задачи являются текстовые файлы с расширением «.war» (от англ. wavelet analysis result – результат вейвлет-анализа), содержащие результаты вейвлет-анализа.
Структура выходного файла «.war»:
где – ширина растра;
– высота растра;
, , – результат вейвлет-анализа, вещественное число.
П.2.6. СООБЩЕНИЯ ПРОГРАММИСТУ
Сообщения, выдаваемые программисту, приведены в табл. П.2.2.
Таблица П.2.2
Сообщения программисту
Сообщение | Действие программиста |
Неверный формат входной строки | Выбранный файл данных имеет некорректный формат. При необходимости попытаться загрузить другой файл данных |
Невозможно найти файл «Resources\DialCol.txt» | Результат вейвлет-анализа успешно рассчитан или загружен, но не может быть отображен в связи с тем, что не найден файл цветовой шкалы. Необходимые действия описаны в приложении 2.7 |
Результаты загрузки и вычислений выводятся в интерфейсном элементе так, как это приведено на рис.П.2.2 и П.2.3.
Результат загрузки вейвлета
Рис. П.2.2
Результат вейвлет-анализа сигнала
Рис. П.2.3
П.2.7. НАСТРОЙКА ПРОГРАММЫ
Для функционирования программы WaveletAnalysis необходимо установить .NET Framework версии 1.1.
Визуализация результатов вейвлет-анализа требует наличие файла цветовой шкалы. Для этого необходимо создать каталог Resources в каталоге с программой и поместить в него файл DialCol.txt.
ПРИЛОЖЕНИЕ 3
РУКОВОДСТВО ОПЕРАТОРА
П.3.1. НАЗНАЧЕНИЕ ПРОГРАММЫ
Программа вейвлет-анализа имеет идентификатор WaveletAnalysis. Программа WaveletAnalysis выполняет следующие функции:
загрузка и сохранение дискретных сигналов (включая вейвлеты);
расчёт, загрузка и сохранение результатов вейвлет-анализа;
предоставление интерфейсов для подсистемы визуализации данных МАДС;
Программа WaveletAnalysis входит в состав системы МАДС в качестве динамически загружаемой библиотеки. Система МАДС реализует многомасштабный анализ дискретных сигналов методами вейвлет-анализа и структурной индексации.
П.3.2. УСЛОВИЯ ВЫПОЛНЕНИЯ ПРОГРАММЫ
Программа WaveletAnalysis предъявляет следующие требования к техническим средствам:
стандартный x86-совместимый ПК;
тактовая частота процессора не менее 900 МГц;
объем оперативной памяти не менее 128 Мб;
разрешение экрана монитора не менее 1024x768.
Программа WaveletAnalysis предъявляет следующие требования к программным средствам:
операционная система семейства Windows (Windows NT/2000/XP);
.NET Framework версии 1.1;
наличие в каталоге программы файлов MultiScAn.Visualization.exe, MultiScAn.Common.dll, MultiScAn.WaveletAnalysis.dll и Resources\DialCol.txt.
П.3.3. ВЫПОЛНЕНИЕ ПРОГРАММЫ
Для вызова программы необходимо запустить на выполнение файл MultiScAn.Visualization.exe и выбрать закладку «Вейвлет-анализ».
Интерфейс программы WaveletAnalysis представлен на рис. П.3.1.
Интерфейс программы WaveletAnalysis
Рис. П.3.1
Описание панели инструментов программы WaveletAnalysis представлено в табл. П.3.1.
Для загрузки, сохранения или сохранения изображения анализируемого сигнала, вейвлета или результата вейвлет-анализа в соответсвующей закладке («Данные», «Вейвлет» или «Результат») необходимо выбрать соответсвующий пункт контекстного меню («Загрузить», «Сохранить» или «Сохранить изображение…») или нажать на соответствующую кнопку панели инструментов (см. табл. П.3.1).
В стандартном диалоге открытия файла необходимо выбрать нужный файл. В итоге на соответсвующей закладке («Данные», «Вейвлет» или «Результат») появляется графическое изображение анализируемого сигнала, вейвлета или результата вейвлет-анализа.
Таблица П.3.1
Панель инструментов программы WaveletAnalysis
Кнопка на панели инструментов | Значение |
Выход из приложения | |
Загрузка анализируемого сигнала из текстового файла | |
Загрузка вейвелета из текстового файла | |
Вейвлет-анализ сигнала | |
Сохранение результатов вейвлет-анализа в текстовый файл | |
Настройка программы | |
Просмотр диалога «О программе» |
П. 3.4. СООБЩЕНИЯ ОПЕРАТОРУ
Сообщения, выдаваемые оператору, приведены в табл. П.3.2.
Таблица П.3.2
Сообщения оператору
Сообщение | Действие программиста |
Неверный формат входной строки | Выбранный файл данных имеет некорректный формат. При необходимости попытаться загрузить другой файл данных |
Невозможно найти файл «Resources\DialCol.txt» | Результат вейвлет-анализа успешно рассчитан или загружен, но не может быть отображен в связи с тем, что не найден файл цветовой шкалы. Необходимые действия описаны в приложении 2.7 |
Результаты вычислений выводятся в интерфейсном элементе так, как это приведено на рис. П.3.2.
Результат вейвлет-анализа сигнала
Рис. П.3.2