Perform basis averaging for (packet-ordered) 2D non-decimated wavelet transform. Note: This is a copy of the function from wavethresh, but this version uses the LS2W C code implementation.
## S3 method for class 'wst2D' AvBasis(wst2D, ...)
An object of class
any other arguments
The packet-ordered 2D non-decimated wavelet transform computed by
wst2D computes the coefficients of an input matrix with respect to a library of all shifts of wavelet basis functions at all scales. Here "all shifts" means all integral shifts with respect to the finest scale coefficients with shifts in both the horizontal and vertical directions, and "all scales" means all dyadic scales from 0 (the coarsest) to J-1 (the finest) where
2^J = n where
n is the dimension of the input matrix. As such the packet-ordered 2D non-decimated wavelet transform contains a library of all possible shifted wavelet bases.
Basis averaging. Rather than select a basis it is often useful to preserve information from all of the bases. For examples, in curve estimation, after thresholding, the coefficients are coefficients of an estimate of the truth with respect to all of the shifted basis functions. Rather than select one of them we can average over all estimates. This sometimes gives a better curve estimate and can, for examples, get rid of Gibbs effects. See Coifman and Donoho (1995) for more information on how to do curve estimation using the packet ordered non-decimated wavelet transform, thresholding and basis averaging. See Lang et al. (1995) for further details of surface/image estimation using the 2D non-decimated DWT.
A square matrix of dimension $2^nlevels$ containing the average-basis “reconstruction” of the
Version 3.9 Copyright Guy Nason 1998
G P Nason
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
# # Generate some test data # #test.data <- matrix(rnorm(16), 4,4) # # Now take the 2D packet ordered DWT # #tdwst2D <- wst2D(test.data) # # Now "invert" it using basis averaging # #tdwstAB <- AvBasis(tdwst2D) # # Let's compare it to the original # #sum( (tdwstAB - test.data)^2) # #  1.61215e-17 # # Very small. They're essentially same. #
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.