48969 (588621), страница 3
Текст из файла (страница 3)
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. Обоснование необходимости разработки системы многомасштабного анализа дискретных сигналов
Система многомасштабного анализа дискретных сигналов реализует вейвлет-анализ и структурную индексацию дискретных сигналов. Анализ позволяет выделить структурные особенности сигналов и отобразить их в наглядном для восприятия человека виде. Посредством многомасштабного анализа удается значительно понизить количество шумов и искажений в исходном сигнале. Также появляется возможность для существенного сжатия исходных данных.