getpacket.wp(wp, level, index )
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}.
# # 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. #