mfirst.last            package:wavethresh            R Documentation

_B_u_i_l_d _a _f_i_r_s_t/_l_a_s_t _d_a_t_a_b_a_s_e _f_o_r _m_u_l_t_i_p_l_e _w_a_v_e_l_e_t _t_r_a_n_s_f_o_r_m_s.

_D_e_s_c_r_i_p_t_i_o_n:

     This function is not intended for user use, but is used by various
     functions involved in computing and displaying multiple wavelet
     transforms.

_U_s_a_g_e:

     mfirst.last(LengthH, nlevels, ndecim, type = "wavelet", bc = "periodic")

_A_r_g_u_m_e_n_t_s:

 LengthH: Number of filter matrix coefficients.

 nlevels: Number of levels in the decomposition

  ndecim: The decimation scale factor for the multiple wavelet basis.

    type: Whether the transform is non-decimated or ordinary (wavelet).
          The non-decimated multiple wavelet transform is not yet
          supported.

      bc: This argument determines how the boundaries of the the
          function are to be handled. The permitted values are periodic
          or 'symmetric' 

_D_e_t_a_i_l_s:

     Suppose you begin with '2^m'=2048 coefficient vectors. At the next
     level you would expect 1024 smoothed data vectors, and 1024
     wavelet vectors, and if '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 20 

     The `position' of the coefficient vectors 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 column 20 of the $C
     component matrix 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. 

     The numbers in first last databases were worked out from
     inequalities derived from: Daubechies, I. (1988).

_V_a_l_u_e:

     A first/last database structure, a list containing the following
     information: 

first.last.c: A '(m+1)x3' matrix. The first column specifies the real
          index of the first coefficient vector of the smoothed data at
          a level, the 2nd column is the real index of the last
          coefficient vector, the last column specifies the offset of
          the first smoothed datum at that level. The offset is used by
          the C code to work out where the beginning of the sequence is
          within a packed vector of the pyramid structure. The first
          and 2nd columns can be used to work out how many numbers
          there are at a level. If 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.

 nvecs.c: The number of C coefficient vectors.

first.last.d: A 'mx3' matrix. As for 'first.last.c' but for the wavelet
          coefficients packed as the D component of a wavelet
          structure.

 nvecs.d: The number of 'D' coefficient vectors.

_R_E_L_E_A_S_E:

     Version 3.9.6 (Although Copyright Tim Downie 1995-6)

_S_e_e _A_l_s_o:

     'accessC.mwd', 'accessD.mwd', 'draw.mwd', 'mwd.object', 'mwd',
     'mwr', 'plot.mwd', 'print.mwd', 'putC.mwd', 'putD.mwd',
     'summary.mwd', 'threshold.mwd', 'wd', 'wr.mwd'.

_E_x_a_m_p_l_e_s:

     #
     #To see the housekeeping variables for a decomposition with
     # 4 filter coefficient matices
     # 5 resolution levels and a decimation scale of two
     # use:
     #mfirst.last(4,5,2)
     # $first.last.c:
     #        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
     # 
     # $nvecs.c:
     # [1] 63
     # 
     # $first.last.d:
     #        First Last Offset
     # [1,]     0    0     30
     # [2,]     0    1     28
     # [3,]     0    3     24
     # [4,]     0    7     16
     # [5,]     0   15      0
     # 
     # $nvecs.d:
     # [1] 31

