Learn R Programming

wavethresh (version 4.7.3)

getpacket.wp: Get packet of coefficients from a wavelet packet object (wp).

Description

This function extracts and returns a packet of coefficients from a wavelet packet (wp) object.

Usage

# S3 method for wp
getpacket(wp, level, index, ... )

Value

A vector containing the packet of wavelet packet coefficients that you wished to extract.

Arguments

wp

Wavelet packet object from which you wish to extract the packet from.

level

The resolution level of the coefficients that you wish to extract.

index

The index number within the resolution level of the packet of coefficients that you wish to extract.

...

any other arguments

RELEASE

Version 3.9 Copyright Guy Nason 1998

Author

G P Nason

Details

The wp produces a wavelet packet object. 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 extracted 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}\).

See Also

wp, putpacket.wp, basisplot.wp, draw.wp, InvBasis.wp, MaNoVe.wp, nlevelsWT.wp, plot.wp. threshold.wp.

Examples

Run this code
#
# 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
#
if (FALSE) 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)
#
#[1]  0.72871405  0.04356728 -0.43175307  1.77291483
#
# There will be 127 packets at this level.
#

Run the code above in your browser using DataLab