WaveThresh
uses for working out where coefficient
vectors begin and end.
first.last(LengthH, DataLength, bc="periodic")
periodic
or symmetric
.
bc="periodic"
then the pyramid is a true power of 2 pyramid, that is it starts
with a power of 2, and the next level is half of the
previous. If bc="symmetric"
then the pyramid is nearly
exactly a power of 2, but not quite, see the Details
section for why this is so.
first.last.c
but for the
wavelet coefficients packed as the D component of a
wavelet structure.
bc="periodic"
this
is indeed what happens. However, if bc="symmetric"
you
actually need more than 1024 (as the wavelets extend over
the edges). The first last database keeps track of where
all these "extras" appear and also where they are located
in the packed vectors C and D of pyramidal coefficients
within wavelet structures.
For example, given a first.last.c
row of
-2 3 20The actual coefficients would be
c_{-2}, c_{-1}, c_{0}, c_{1}, c_{2}, c_{3}(in LaTeX notation where _{x} denotes subscript x). In other words, there are 6 coefficients, starting at -2 and ending at 3, and the first of these (c_{-2}) appears at an offset of 20 from the beginning of the
$C
component vector
of the wavelet structure.
You can ``do'' first.last
in your head for
periodic
boundary handling but for more general boundary treatments
(e.g. symmetric
) first.last
is indispensable.
# #If you're twisted then you may just want to look at one of these. # > first.last(length(filter.select(2)), 64) $first.last.c: First Last Offset [1,] 0 0 126 [2,] 0 1 124 [3,] 0 3 120 [4,] 0 7 112 [5,] 0 15 96 [6,] 0 31 64 [7,] 0 63 0 $ntotal: [1] 127 $first.last.d: First Last Offset [1,] 0 0 62 [2,] 0 1 60 [3,] 0 3 56 [4,] 0 7 48 [5,] 0 15 32 [6,] 0 31 0 $ntotal.d: [1] 63