pat2cwav

Build wavelet from pattern

Syntax

[PSI,XVAL,NC] = pat2cwav(YPAT,METHOD,POLDEGREE,REGULARITY)

Description

[PSI,XVAL,NC] = pat2cwav(YPAT,METHOD,POLDEGREE,REGULARITY) computes an admissible wavelet for CWT (given by XVAL and PSI) adapted to the pattern defined by the vector YPAT, and of norm equal to 1.

The underlying x-values pattern is set to

xpat = linspace(0,1,length(YPAT))

The constant NC is such that NC*PSI approximates YPAT on the interval [0,1] by least squares fitting using

  • a polynomial of degree POLDEGREE when METHOD is equal to 'polynomial'

  • a projection on the space of functions orthogonal to constants when METHOD is equal to 'orthconst'

The REGULARITY parameter defines the boundary constraints at the points 0 and 1. Allowable values are 'continuous', 'differentiable', and 'none'.

When METHOD is equal to 'polynomial'

  • if REGULARITY is equal to 'continuous', POLDEGREE must be greater than or equal to 3.

  • if REGULARITY is equal to 'differentiable', POLDEGREE must be greater than or equal to 5.

Examples

The principle for designing a new wavelet for CWT is to approximate a given pattern using least squares optimization under constraints leading to an admissible wavelet well suited for the pattern detection using the continuous wavelet transform (see Misiti et al.).

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

[psi,xval,nc] = pat2cwav(Y, 'polynomial',6, 'continuous') ;
plot(X,Y,'-',xval,nc*psi,'--'), 
title('Original Pattern and Adapted Wavelet (dashed line)')

You can check that psi satisfies the definition of a wavelet by noting that it integrates to zero and that its L2 norm is equal to 1.

dx = xval(2)-xval(1);
Mu = sum(psi*dx)
L2norm = sum(abs(psi).^2*dx)

References

Misiti, M., Y. Misiti, G. Oppenheim, J.-M. Poggi (2003), "Les ondelettes et leurs applications," Hermes.

Was this topic helpful?