psi – дискретизированнный исходный вейвлет;
psi_size – размер исходного вейвлета;
psi_scaled – смаштабированный (передискретизированный) вейвлет;
res – результат вейвлет анализа;
resample – оператор передискретизации вейвлета (см. п. 2.2);
multiply – оператор перемножения сигнала (см. п. 2.3).
Подпрограмма Wavelet.Resample служит для масштабирования дисретизированного вейвлета. Подпрограмма производит изменение шага дискретизации вейвлета и соответсвующее усреднение значения сигнала в полученных интервалах. Текст программы приведен в приложении 1.2.
Подпрограмма Wavelet.Resample предназначена для реализации алгоритма передискретизации сигнала.
Входные данные для данной подпрограммы представлены:
int [] data– массив, содержащий значения исходного вейвлета;
intsize – требуемый размер вейвлета.
Выходные данные для данной подпрограммы представлены:
double[] res – передискретизированный вейвлет.
В подпрограмме не используется других подпрограмм.
Схема подпрограммы «Wavelet.Resample» приведена на рис. 2.2.
Схема программы Wavelet.Resample
Рис. 2.2
2.6. Описание подпрограммы «Result.FormRow»
Подпрограмма Result.FormRowслужит для получения одной строки результата вейвлет-анализа, соответсвующей определенному масштабу вейвлета. Подпрограмма производит перемножение сигнала и вейвлета. Текст программы приведен в приложении 1.3.
Подпрограмма Result.FormRow предназначена для реализации алгоритма перемножения сигнала и вейвлета.
Входные данные для данной подпрограммы представлены:
int [] x – массив, содержащий значения анализируемого сигнала;
double [] y – массив, содержащий значения смаштабированного вейвлета;
introw – номер строки, для который производится расчёт.
Выходные данные для данной подпрограммы представлены:
double [ , ] data – матрица, содержащая значения результата вейвлет-анализа.
В подпрограмме не используется других подпрограмм.
Схема подпрограммы «Result.FormRow» приведена на рис. 2.3.
2.7. Описание подпрограммы «Analyzer.Analyze»
Подпрограмма Analyzer.Analyze служит для осуществления вейвлет-анализа. Подпрограмма производит последовательное масштабирование вейвлета и его перемножение с сигналом. Текст программы приведен в приложении 1.4.
Подпрограмма Analyzer.Analyze предназначена для реализации алгоритма вейвлет-анализа.
Входные данные для данной подпрограммы представлены:
int [] data – массив, содержащий значения анализируемого сигнала;
int [] wavelet – массив, содержащий значения исходного вейвлета.
Выходные данные для данной подпрограммы представлены:
double [ , ] result – массив, содержащий значения исходного вейвлета.
Схема программы Result.FormRow
Рис. 2.3
В подпрограмме используется подпрограммы Wavelet.Resample и Result.FormRow, описанные в п.п. 2.5, 2.6.
Схема подпрограммы «Analyzer.Analyze» приведена на рис. 2.4.
Схема программы Analyzer.Analyze
Рис. 2.4
2.8. Описание контрольного примера
Основной целью работы программы служит вейвлет-анализ дискретных сигналов. Результатом работы является матрица вещественных чисел. Так как анализируемый сигнал и результирующие матрицы имеют достаточно большие размеры, для наглядности контрольный пример будет содержать не набор чисел, а их изображения, полученные в подсистеме визуализации данных.
Исходными данными служат файлы «.dat», содержащие данные исходного сигнала или вейвлета. Описание формата этих файлов представлено в п.2.1.2.
В качестве исходного сигнала была выбрана дискретизированная синусоида. После загрузки в программу анализируемый сигнал выглядит следующим образом (рис. 2.5).
Анализируемый сигнал
Рис.2.5
Для анализа входного сигнала был выбран вейвлет – аналог так называемой «мексиканской шляпы» /1/. В нашем случае к «мексиканской шляпе» были добавлены две краевые составляющие. Полученный вейвлет представлен на рис. 2.6.
Вейвлет
Рис. 2.6
После расчёта и визуализации результат вейвлет-анализа исходного сигнала выглядит следующим образом (рис.2.7). Как видно на результирующей картине ярко выделены минимумы и максимумы исходного сигнала.
Результат вейвлет анализа
Рис. 2.7
2.8.4. Тестирование программного обеспечения подсистемы вейвлет-нализа