wp
) object.## S3 method for class 'wp':
getpacket(wp, level, index, \dots )
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}$.
wp
, putpacket.wp
, basisplot.wp
, draw.wp
, InvBasis.wp
, MaNoVe.wp
, nlevelsWT.wp
, plot.wp
. threshold.wp
.#
# 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)
#
#[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