pat2cwav

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

Описание

пример

[psi,xval,nc] = pat2cwav(ypat,method,poldegree,regularity) возвращает допустимый вейвлет psi для непрерывного вейвлета преобразовывает (CWT), адаптированного к шаблону ypat. Вейвлет psi оценен в xval, обычная сетка в интервале [0,1], и имеет L2-норму, равную 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-норму, равную 1.

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

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

Ссылки

[1] Мизити, M., И. Мизити, Г. Оппенхейм и J.-M. Poggi. Приложения Les ondelettes et leurs. Франция: Гермес Science/Lavoisier, 2003.

Смотрите также

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