WaveThresh Help

wd3D


Three-dimensional discrete wavelet transform

DESCRIPTION

This function performs the 3D version of Mallat's discrete wavelet transform (see Mallat, 1989, although this paper does not describe in detail the 3D version the extension is trivial). The function assumes periodic boundary conditions.

USAGE

wd3D(a, filter.number=10, family="DaubLeAsymm")

REQUIRED ARGUMENTS

a
A three-dimensional array constructed using the S-Plus array() function. Each dimension of the array should be equal to the same power of two.

OPTIONAL ARGUMENTS

filter.number
This selects the smoothness of wavelet that you want to use in the decomposition. By default this is 10, the Daubechies least-asymmetric orthonormal compactly supported wavelet with 10 vanishing moments.
family
specifies the family of wavelets that you want to use. Two popular options are "DaubExPhase" and "DaubLeAsymm" but see the help for filter.select for more possibilities.

VALUE

An object of class wd3D.

SIDE EFFECTS

None

DETAILS

This function implements a straightforward extension of Mallat's, (1989) one- and two-dimensional DWT. The algorithm recursively applies all possible combinations of the G and H detail and smoothing filters to each of the dimensions thus forming 8 different sub-blocks which we label HHH, GHH, HGH, GGH, HHG, GHG, HGG, and GGG. The algorithm recurses on the HHH component of each level (these are the father wavelet coefficients).

Making an analogy to the 2D transform where HH, HG, HG and GG is produced at each resolution level: the HG and GH correspond to "horizontal" and "vertical" detail and GG corresponds to "diagonal detail". The GGG corresponds to the 3D "diagonal" version, HGG corresponds to smoothing in dimension 1 and "diagonal" detail in dimensions 2 and 3, and so on. I don't think there are words in the English language which adequately describe "diagonal" in 3D --- maybe cross detail?

RELEASE

Version 3.9.6 Copyright Guy Nason 1997

SEE ALSO

wd, imwd, accessD.wd3D, print.wd3D, putD.wd3D, putDwd3Dcheck, summary.wd3D, threshold.wd3D, wd3D object, wr3D.

EXAMPLES

#
# Generate some test data: 512 standard normal observations in an 8x8x8
# array.
#
test.data.3D <- array(rnorm(8*8*8), dim=c(8,8,8))
#
# Now do the 3D wavelet transform
#
tdwd3D <- wd3D(test.data.3D)
#
# See example explaining  the 3D wavelet transform.
#