Learn R Programming

wavethresh (version 4.7.3)

putD.wd: Puts a whole resolution level of mother wavelet coeffients into wd wavelet object.

Description

Makes a copy of the wd object, replaces some mother wavelet coefficients data in the copy, and then returns the copy.

Usage

# S3 method for wd
putD(wd, level, v, boundary=FALSE, index=FALSE, ...)

Value

A wd class object containing the modified mother wavelet coefficients.

Arguments

wd

Wavelet decomposition object into which you wish to insert the mother wavelet coefficients.

level

the resolution level at which you wish to replace the mother wavelet coefficients.

v

the replacement data, this should be of the correct length.

boundary

If boundary is FALSE then only "real" data is replaced. If boundary is TRUE then the boundary (bookeeping) elements are replaced as well. Information about the lengths of the vectors can be found in the first.last database function and Nason and Silverman, 1994.

index

If index is TRUE then the index numbers into the 1D array where the coefficient insertion would take place are returned. If index is FALSE (default) then the modified wavelet decomposition object is returned.

...

any other arguments

RELEASE

Version 3.5.3 Copyright Guy Nason 1994

Author

G P Nason

Details

The function accessD obtains the mother wavelet coefficients for a particular level. The function putD.wd replaces father wavelet coefficients at a particular resolution level and returns a modified wd object reflecting the change.

The need for this function is a consequence of the pyramidal structure of Mallat's algorithm and the memory efficiency gain achieved by storing the pyramid as a linear vector. PutD.wd obtains information about where the smoothed data appears from the fl.dbase component of an wd.object, in particular the array

fl.dbase$first.last.d

which gives a complete specification of index numbers and offsets for

wd.object$D.

Note that this function is method for the generic function putD. When the wd.object is definitely a wd class object then you only need use the generic version of this function.

Note also that this function only puts information into wd class objects. To extract coefficients from a wd object you have to use the accessD function (or more precisely, the accessD.wd method).

See Also

putD, wd.object, wd, accessD,putD, first.last,

Examples

Run this code
#
# Generate an EMPTY wd object:
#
zero <- rep(0, 16)
zerowd <- wd(zero)
#
# Put some random father wavelet coefficients into the object at
# resolution level 2. For the decimated wavelet transform there
# are always 2^i coefficients at resolution level i. So we have to
# insert 4 coefficients
#
mod.zerowd <- putD( zerowd, level=2, v=rnorm(4))
#
# If you plot mod.zerowd you will see that there are only 
# coefficients at resolution level 2 where you just put the coefficients.
#
# Now, for a time-ordered non-decimated wavelet transform object the
# procedure is exactly the same EXCEPT that there are going to be
# 16 coefficients at each resolution level. I.e.
#
# Create empty TIME-ORDERED NON-DECIMATED wavelet transform object
#
zerowdS <- wd(zero, type="station")
#
# Now insert 16 random coefficients at resolution level 2
#
mod.zerowdS <- putD(zerowdS, level=2, v=rnorm(16))
#
# Once more if you plot mod.zerowdS then there will only be
# coefficients at resolution level 2.

Run the code above in your browser using DataLab