exponenta event banner

pat2cwav

Создать вейвлет из шаблона

Описание

пример

[psi,xval,nc] = pat2cwav(ypat,method,poldegree,regularity) возвращает допустимый вейвлет psi для непрерывного вейвлет-преобразования (CWT), адаптированного к шаблону ypat. Небольшая волна psi оценивается при xval, регулярная сетка в интервале [0,1] и имеет L2-norm, равное 1.

Константа nc таков, что nc×psi приближается ypat на интервале [0,1] методом наименьших квадратов methodи многочлен степени poldegree с граничными ограничениями, указанными regularity.

Примеры

свернуть все

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

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

Загрузка и печать массива.

load ptpssin1
plot(X,Y)
grid on
title('Original Pattern')

Figure contains an axes. The axes with title Original Pattern contains an object of type line.

Интегрируйте шаблон через интервал. Интеграл не равен 0. Однако шаблон является хорошим кандидатом, поскольку он колеблется подобно вейвлету.

dX = X(2)-X(1);
patternInt = dX*sum(Y);
disp(['Integral: ',num2str(patternInt)]);
Integral: 0.15915

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

[psi,xval,nc] = pat2cwav(Y,'polynomial',6,'continuous');

Постройте график нового вейвлета.

plot(X,Y,'-',xval,nc*psi,'--')
grid on
legend('Original Pattern','Adapted Wavelet','Location','NorthWest')

Figure contains an axes. The axes contains 2 objects of type line. These objects represent Original Pattern, Adapted Wavelet.

Проверьте, что psi удовлетворяет определению вейвлета, подтверждая, что он интегрируется в ноль и имеет норму L2 равную 1.

dxval = xval(2)-xval(1);
psiIntegral = dxval*sum(psi);
disp(['Integral: ',num2str(psiIntegral)])
Integral: 1.9626e-05
psiSqN = dxval*sum(psi.^2);
disp(['L2-norm: ',num2str(psiSqN)])
L2-norm: 1

Входные аргументы

свернуть все

Узор для аппроксимации, заданный как действительный вектор.

Метод аппроксимации методом наименьших квадратов для аппроксимации массива, указанный как одно из следующих значений:

  • 'polynomial' - использовать многочлен степени poldegree

  • 'orthconst' - использовать проекцию на пространство функций, ортогональных константам;

Примечание

Указание 'orthconst' опция не создает ортогональный вейвлет. Любой вейвлет psi полученные с использованием pat2cwav является вейвлетом типа 4 (вейвлет без функции масштабирования) в wavemngr.

Степень полинома для использования в аппроксимации методом наименьших квадратов, заданная как целое число.

Граничные ограничения в точках 0 и 1, указанные как 'continuous', 'differentiable', или 'none'. Когда method равно 'polynomial':

  • Если regularity равно 'continuous', poldegree должно быть больше или равно 3.

  • Если regularity равно 'differentiable', poldegree должно быть больше или равно 5.

Выходные аргументы

свернуть все

Допустимый вейвлет для CWT, возвращаемый как действительный вектор. Длина psi равняется длине ypat. Небольшая волна psi интегрируется в ноль и имеет L2-norm, равное 1.

Моменты отбора проб, где psi вычисляется, возвращается как действительный вектор. Моменты отбора проб xval - регулярная сетка с n точками, охватывающая интервал [0,1], где n - длина ypat: xval = linspace(0,1,length(ypat)).

Нормализующая константа, возвращаемая как скаляр. Константа nc таков, что nc×psi приближается ypat на интервале [0,1] методом наименьших квадратов method.

Ссылки

[1] Мисити, М., Я. Мисити, Г. Оппенгейм и Ж.-М. Погги. Les ondelettes et leurs applications. Франция: Hermes Science/Lavoisier, 2003.

См. также

Представлен до R2006a