R: Put wavelet coefficients into multiple wavelet structure

putD.mwd {wavethresh} | R Documentation

## Put wavelet coefficients into multiple wavelet structure

### Description

The wavelet coefficients from a multiple wavelet decomposition structure, `mwd.object`, (e.g. returned from `mwd`) are packed into a single matrix in that structure. This function copies the `mwd.object`, replaces some wavelet coefficients in the copy, and then returns the copy.

### Usage

    ## S3 method for class 'mwd'
    putD(mwd, level, M, boundary = FALSE, index = FALSE, ...)

### Arguments

`mwd` | Multiple wavelet decomposition structure whose coefficients you wish to replace.
`level` | The level that you wish to replace.
`M` | Matrix of replacement coefficients.
`boundary` | If `boundary` is `FALSE` then only the "real" data is replaced (and it is easy to predict the required length of `M`). If `boundary` is `TRUE` then you can replace the boundary values at a particular level as well (but it is hard to predict the required length of`M`, and the information has to be obtained from the `mfirst.last` database component of `mwd`).
`index` | If index is `TRUE` then the index numbers into the `mwd$D` array where the matrix `M` would be stored is returned. Otherwise, (default) the modified `mwd.object` is returned.
`...` | any other arguments

### Details

The `mwd` function produces a wavelet decomposition structure.

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 matrix of coefficients. PutD obtains information about where the wavelet coefficients appear from the fl.dbase component of mwd, in particular the array `fl.dbase$first.last.d` which gives a complete specification of index numbers and offsets for `mwd$D`.

Note also that this function only puts information into mwd class objects. To extract coefficients from mwd structures you have to use the accessD.mwd function.

See Downie and Silverman, 1998.

### Value

An object of class `mwd.object` if index is `FALSE`, otherwise the index numbers indicating where the `M` matrix would have been inserted into the `mwd$D` object are returned.

### RELEASE

Version 3.9.6 (Although Copyright Tim Downie 1995-6).

### Author(s)

Tim Downie

### See Also

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

### Examples

    #
    # Generate an mwd object
    #
    tmp <- mwd(rnorm(32))
    #
    # Now let's examine the finest resolution detail...
    #
    accessD(tmp, level=3)
    #          [,1]       [,2]       [,3]      [,4]       [,5]        [,6]
    #[1,] 0.8465672  0.4983564  0.3408087 0.1340325  0.5917774 -0.06804291
    #[2,] 0.6699962 -0.2535760 -1.0344445 0.2068644 -0.4912086  1.16039885
    #           [,7]       [,8]
    #[1,] -0.6226445  0.2617596
    #[2,] -0.4956576 -0.5555795
    #
    #
    # A matrix. There are two rows one for each mother wavelet in this
    # two-ple multiple wavelet transform and at level 3 there are 2^3 columns.
    #
    # Let's set the coefficients of the first mother wavelet all equal to zero
    # for this examples
    #
    newdmat <- accessD(tmp, level=3)
    newdmat[1,] <- 0
    #
    # Ok, let's insert it back at level 3
    #
    tmp2 <- putD(tmp, level=3, M=newdmat)
    #
    # And check it
    #
    accessD(tmp2, level=3)
    #          [,1]      [,2]      [,3]      [,4]       [,5]     [,6]       [,7]
    #[1,] 0.0000000  0.000000  0.000000 0.0000000  0.0000000 0.000000  0.0000000
    #[2,] 0.6699962 -0.253576 -1.034445 0.2068644 -0.4912086 1.160399 -0.4956576
    #           [,8]
    #[1,]  0.0000000
    #[2,] -0.5555795
    #
    #
    # Yep, all the first mother wavelet coefficients at level 3 are now zero.

[Package wavethresh version 4.6.8 Index]