Matching Pursuit Decomposition

DESCRIPTION:
Compute a "matching pursuit" decomposition of a signal.

USAGE:
matching.pursuit(x, type="wp", n.atom=50, ...)

REQUIRED ARGUMENTS:
x:
a time series object or a vector.

OPTIONAL ARGUMENTS:
type:
one of the character strings "wp" or "cp".
n.atom:
number of coefficients (atoms) in the decomposition.
...:
when type="cp", available arguments: n.levels, dct.type, taper, boundary, n.taper. See cp.table for details. When type="wp", available arguments: wavelet, n.levels, boundary, dual, analysis.filter, synthesis.filter. See dwt for details.

VALUE:
an object of class "wp.molecule" or "cp.molecule", depending on type, inheriting from class "molecule". See molecule.object for details.

DETAILS:
The matching pursuit decomposition of Mallat and Zhang (1993) is an alternative to wavelet packet and cosine packet analysis which can provide greater flexibility in analysis of signals. In matching pursuits, a signal is decomposed as a sum of "atomic waveforms". The matching pursuit algorithm proceeds by successively finding the best fitting atomic waveforms to a signal f(t). The matching pursuit algorithm is described in Mallat and Zhang (1993) and the chapter "Matching Pursuit and Molecules" of the S+WAVELETS User's Manual.

BUGS:
when type="wp", only boundary="periodic" is available.

REFERENCES:
Mallat, S. and Zhang, Z. (1993), "Matching Pursuits with Time Frequency Dictionaries," IEEE Transactions of Signal Processing, Vol. 41, No. 12.

SEE ALSO:
top.atoms , decompose , molecule.object .

EXAMPLES:
xx <- make.signal("ramp", 1024)
xx.mp <- matching.pursuit(xx, type="wp", n.atom=15)
plot(xx.mp)
title(xlab="Decompose to top 15 atoms")