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.
#