Learn R Programming

wavethresh (version 4.7.3)

mwd: Discrete multiple wavelet transform (decomposition).

Description

This function performs the discrete multiple wavelet transform (DMWT). Using an adaption of Mallat's pyramidal algorithm. The DMWT gives vector wavelet coefficients.

Usage

mwd(data, prefilter.type = "default", filter.type = "Geronimo",
        bc ="periodic", verbose = FALSE)

Value

An object of class mwd.

Arguments

data

A vector containing the data you wish to decompose. The length of this vector must be a power of 2 times the dimension of the DMWT (multiplicity of wavelets).

prefilter.type

This chooses the method of preprocessing required. The arguments will depend on filter.type, but "default" will always work.

filter.type

Specifies which multi wavelet filter to use, The options are "Geronimo" (dimension 2) or "Donovan3" (dimension 3). The latter has not been tested fully and may contain bugs. See the function mfilter.select for further details.

bc

specifies the boundary handling. If bc=="periodic" the default, then the function you decompose is assumed to be periodic on its interval of definition, if bc=="symmetric" then the function beyond its boundaries is assumed to be a symmetric reflection of the function in the boundary.

verbose

Controls the printing of "informative" messages whilst the computations progress. Such messages are generally annoying so it is turned off by default.

Author

Tim Downie

RELEASE

Version 3.9.6 (Although Copyright Tim Downie 1996)

Details

The code implements Mallat's pyramid algorithm adapted for multiple wavelets using Xia, Geronimo, Hardin and Suter, 1996. The method takes a data vector of length 2^J*M, and preprocesses it. This has two effects, firstly it puts the data into matrix form and then filters it so that the DMWT can operate more efficiently Most of the technical details are similar to the single wavelet transform except for the matrix algebra considerations, and the prefiltering process. See Downie and Silverman (1998) for further details and how this transform can be used in a statistical context.

See Also

accessC.mwd, accessD.mwd, draw.mwd, mfirst.last, mfilter.select, mwd.object, mwr, plot.mwd, print.mwd, putC.mwd, putD.mwd, summary.mwd, threshold.mwd, wd, wr.mwd.

Examples

Run this code
#
# Generate some test data
#
test.data <- example.1()$y
if (FALSE) ts.plot(test.data)
#
# Decompose test.data with multiple wavelet transform and
# plot the wavelet coefficients
#
tdmwd <- mwd(test.data)
if (FALSE) plot(tdmwd)
#[1] 1.851894 1.851894 1.851894 1.851894 1.851894 1.851894 1.851894
#
# You should see a plot with wavelet coefficients like in
#\code{\link{plot.wd}} but at each coefficient position
# there are two coefficients in two different colours one for each of
# the wavelets at that position.
#
# Note the scale for each level is returned by the function.

Run the code above in your browser using DataLab