The pyramid of coefficients in a wavelet decomposition (returned from the
wd3D function, say) are packed into a single array in
WaveThresh3
.
accessD.wd3D(obj, level = nlevels(obj)-1, block)
block
block
is missing then a list containing all of the
wavelet coefficient blocks GGG, GGH, GHG, GHH, HGG, HGH, HHG
(and HHH, if level=0
) is returned.
Otherwise block
should be one of the character strings
GGG, GGH, GHG, GHH, HGG, HGH, HHG and then only that sub-block
is returned from the resolution level
specified.
block
is missing then a list is returned containing
all the sub-blocks of coefficients for the specificed resolution
level
.
Otherwise the block
character string specifies which
sub-block of coefficients to return.
Note that this function is a method for the generic function accessD.
# # Generate some test data # a <- array(rnorm(8*8*8), dim=c(8,8,8)) # # Perform the 3D DWT # awd3D <- wd3D(a) # # How many levels does this object have? # nlevels(awd3D) # [1] 3 # # So conceivably we could access levels 0, 1 or 2. # # Ok. Let's get the level 1 HGH sub-block coefficients: # accessD(awd3D, level=1, block="HGH") # #, , 1 # [,1] [,2] #[1,] 0.8359289 1.3596832 #[2,] -0.1771688 0.2987303 # #, , 2 # [,1] [,2] #[1,] -1.2633313 1.00221652 #[2,] -0.3004413 0.04728019 # # This was a 3D array of dimension size 2 (8 -> 4 -> 2, level 3, 2 and then 1) # # # Let's do the same call except this time don't specify the block arg. # alllev1 <- accessD(awd3D, level=1) # # This new object should be a list containing all the subblocks at this level. # What are the components? # names(alllev1) #[1] "GHH" "HGH" "GGH" "HHG" "GHG" "HGG" "GGG" # # O.k. Let's look at HGH again # alllev1$HGH # #, , 1 # [,1] [,2] #[1,] 0.8359289 1.3596832 #[2,] -0.1771688 0.2987303 # #, , 2 # [,1] [,2] #[1,] -1.2633313 1.00221652 #[2,] -0.3004413 0.04728019 # # Same as before. #