ipndacw(J, filter.number = 10, family = "DaubLeAsymm", tol = 1e-100, verbose = F)
tol
which
effectively defines how long the inner product/autocorrelation products
are.
T
then informative messages are printed. Some of these
can be quite fun as the function tells you whether precomputed matrices
are being used, how much computation needs to be done and so forth.
ipndacw
is the one called A in
the paper by Nason, von Sachs and Kroisandt.
For the Haar wavelet the matrix is computed by using the analytical formulae in the paper by Nason, von Sachs and Kroisandt and is hence very fast and efficient and can be used for large values of -J.
For other Daubechies compactly supported wavelets the matrix is
computed directly by autocorrelating discrete non-decimated wavelets
at different scales and then forming the inner products of these.
A function that computes the autocorrelation wavelets themselves
is PsiJ.
This brute force computation is slow and memory inefficient
hence ipndacw
contains a mechanism that stores any
inner product matrix that it creates according to a naming scheme
defined by the convention defined in
rmname.
The stored matrices are assigned to the current data directory.
These stored matrices can be used
in future computations by the following automatic procedure:
search()
) is searched for any previously computed
inner product matrices. This search is performed by the
rmget function.
Nason, G.P., von Sachs, R. and Kroisandt, G. (1998). Wavelet processes and adaptive estimation of the evolutionary wavelet spectrum. Technical Report, Department of Mathematics University of Bristol/ Fachbereich Mathematik, Kaiserslautern.
# # Let us create the 4x4 inner product matrix for the Haar wavelet. # We'll turn on the jolly verbose messages as well. # > ipndacw(-4, filter.number=1, family="DaubExPhase", verbose=T) Computing ipndacw Calling haarmat Took 0.0699999 seconds -1 -2 -3 -4 -1 1.5000 0.7500 0.3750 0.1875 -2 0.7500 1.7500 1.1250 0.5625 -3 0.3750 1.1250 2.8750 2.0625 -4 0.1875 0.5625 2.0625 5.4375 # # If we do this again it will use the precomputed version # > ipndacw(-4, filter.number=1, family="DaubExPhase", verbose=T) Computing ipndacw Returning precomputed version: using 4 Took 0.08 seconds -1 -2 -3 -4 -1 1.5000 0.7500 0.3750 0.1875 -2 0.7500 1.7500 1.1250 0.5625 -3 0.3750 1.1250 2.8750 2.0625 -4 0.1875 0.5625 2.0625 5.4375 # # Let's use a smoother wavelet from the least-asymmetric family # and generate the 6x6 version. # > ipndacw(-6, filter.number=10, family="DaubLeAsymm", verbose=T) Computing ipndacw Took 0.95 seconds -1 -2 -3 -4 -5 -1 1.839101e+00 3.215934e-01 4.058155e-04 8.460063e-06 4.522125e-08 -2 3.215934e-01 3.035353e+00 6.425188e-01 7.947454e-04 1.683209e-05 -3 4.058155e-04 6.425188e-01 6.070419e+00 1.285038e+00 1.589486e-03 -4 8.460063e-06 7.947454e-04 1.285038e+00 1.214084e+01 2.570075e+00 -5 4.522125e-08 1.683209e-05 1.589486e-03 2.570075e+00 2.428168e+01 -6 5.161675e-10 8.941666e-08 3.366416e-05 3.178972e-03 5.140150e+00 -6 -1 5.161675e-10 -2 8.941666e-08 -3 3.366416e-05 -4 3.178972e-03 -5 5.140150e+00 -6 4.856335e+01