Robust Discrete Wavelet Transform

DESCRIPTION:
Applies the robust discrete wavelet transform to a time series or a vector.

USAGE:
rob.dwt(x, ..., span=5, cutoff1=2.5, cutoff2=3.75,
        max.resid.level=3)

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

OPTIONAL ARGUMENTS:
...:
additional arguments for dwt. See dwt for details.
span:
an odd integer, span in median smooth.
cutoff1:
lower cutoff point for computing the robust residuals.
cutoff2:
upper cutoff point for computing the robust residuals.
max.resid.level:
number of levels robust residuals are computed; if max.resid.level>n.levels, n.levels-1 is used.

VALUE:
an object of class rob.dwt, inheriting from the class dwt, wp and crystal.list. Each element represents a wavelet crystal as a vector of wavelet coefficients at different resolutions.

All the information for the robust wavelet transform is stored in dictionary.


DETAILS:
The robust smoother-cleaner wavelet transform is a fast wavelet decomposition which is robust towards outliers. Smoother-cleaner wavelets behave like the classical discrete wavelet transform for Gaussian signals, but prevent outliers and outlier patches from leaking into the wavelet coefficients at coarse levels. The basic idea of robust smoother/cleaner wavelets is that the smooth coefficients are preprocessed with a fast and robust smoother/cleaner.

The details and algorithm are given in the S+WAVELETS User's Manual, in the section "Robust Smoother-Cleaner Wavelets".


REFERENCES:
Bruce, A., Donaho, D. Gao, H., and Martin, D. (1994). "Denoising and Robust Non-Linear Wavelet Analysis," SPIE Proceedings, Wavelet Aplications, Vol 2242, pp. 325-36.

SEE ALSO:
dwt , reconstruct , decompose , eda.plot .

EXAMPLES:
xx <- make.signal("blocks")
yy <- xx + rcauchy(length(xx))     # add Cauchy noise

par(mfrow=c(2,2)) plot(xx, type="l", xlab="Blocks", ylab="") plot(yy, type="l", xlab="Blocks with Cauchy Noise", ylab="") rw <- rob.dwt(yy, wavelet="d2", span=5) zz <- reconstruct(rw) plot(zz, type="l", xlab="Cleaned Noisy Blocks", ylab="") ss <- wavesmooth(zz, wavelet="d2") plot(ss, type="l", xlab="Smoothed Blocks", ylab="")