R: Inserts a packet of coefficients into a wavelet packet object...

putpacket.wp {wavethresh} | R Documentation

## Inserts a packet of coefficients into a wavelet packet object (wp).

### Description

This function inserts a packet of coefficients into a wavelet packet (`wp`) object.

### Usage

    ## S3 method for class 'wp'
    putpacket(wp, level, index, packet , ...)

### Arguments

`wp` | Wavelet packet object into which you wish to put the packet.
`level` | The resolution level of the coefficients that you wish to insert.
`index` | The index number within the resolution level of the packet of coefficients that you wish to insert.
`packet` | a vector of coefficients which is the packet you wish to insert.
`...` | any other arguments

### Details

The coefficients in this structure can be organised into a binary tree with each node in the tree containing a packet of coefficients.

Each packet of coefficients is obtained by chaining together the effect of the two packet operators DG and DH: these are the high and low pass quadrature mirror filters of the Mallat pyramid algorithm scheme followed by decimation (see Mallat (1989b)).

Starting with data c^J at resolution level J containing 2^J data points the wavelet packet algorithm operates as follows. First DG and DH are applied to c^J producing d^{J-1} and c^{J-1} respectively. Each of these sets of coefficients is of length one half of the original data: i.e. 2^{J-1}. Each of these sets of coefficients is a set of wavelet packet coefficients. The algorithm then applies both DG and DH to both d^{J-1} and c^{J-1} to form a four sets of coefficients at level J-2. Both operators are used again on the four sets to produce 8 sets, then again on the 8 sets to form 16 sets and so on. At level j=J,...,0 there are 2^{J-j} packets of coefficients each containing 2^j coefficients.

This function enables whole packets of coefficients to be inserted at any resolution level. The `index` argument chooses a particular packet within each level and thus ranges from 0 (which always refer to the father wavelet coefficients), 1 (which always refer to the mother wavelet coefficients) up to 2^{J-j}.

### Value

An object of class `wp.object` which is the same as the input `wp.object` except it now has a modified packet of coefficients.

### RELEASE

Version 3.9 Copyright Guy Nason 1998

### Author(s)

G P Nason

### See Also

`wp`, `getpacket.wp`. `putpacket`.

### Examples

    #
    # Take the wavelet packet transform of some random data
    #
    MyWP <- wp(rnorm(1:512))
    #
    # The above data set was 2^9 in length. Therefore there are
    # coefficients at resolution levels 0, 1, 2, ..., and 8.
    #
    # The high resolution coefficients are at level 8.
    # There should be 256 DG coefficients and 256 DH coefficients
    #
    length(getpacket(MyWP, level=8, index=0))
    # [1] 256
    length(getpacket(MyWP, level=8, index=1))
    # [1] 256
    #
    # The next command shows that there are only two packets at level 8
    #
    #getpacket(MyWP, level=8, index=2)
    # Index was too high, maximum for this level is  1
    # Error in getpacket.wp(MyWP, level = 8, index = 2): Error occured
    # Dumped
    #
    # There should be 4 coefficients at resolution level 2
    #
    # The father wavelet coefficients are (index=0)
    getpacket(MyWP, level=2, index=0)
    # [1] -0.9736576  0.5579501  0.3100629 -0.3834068
    #
    # The mother wavelet coefficients are (index=1)
    #
    getpacket(MyWP, level=2, index=1)
    # [1]  0.72871405  0.04356728 -0.43175307  1.77291483
    #
    # Well, that exercised the getpacket.wp
    # function. Now that we know that level 2 coefficients have 4 coefficients
    # let's insert some into the MyWP object.
    #
    MyWP <- putpacket(MyWP, level=2, index=0, packet=c(21,32,67,89))
    #
    # O.k. that was painless. Now let's check that the correct coefficients
    # were inserted.
    #
    getpacket(MyWP, level=2, index=0)
    #[1] 21 32 67 89
    #
    # Yep. The correct coefficients were inserted.

[Package wavethresh version 4.6.8 Index]