wavMODWT( x, wavelet = ``s8", n.levels = 3 )
d(j,t) = sum( h(l) s(j-1, t - 2^(j-1) l mod N ) ),
ands(j,t) = sum( g(l) s(j-1, t - 2^(j-1) l mod N ) ).
The variable L is the length of both the scaling filter (g) and wavelet filter (h). The d(j,t) and s(j,t) are the wavelet and scaling coefficients, respectively, at decomposition level j and time index t. The MODWT is a collection of all wavelet coefficients and the scaling coefficients at the last level: d(1),d(2),...,d(J),s(J) where d(j) and s(j) denote a collection of wavelet and scaling coefficients, respectively, at level j.The MODWT is a non-decimated form of the discrete wavelet transform (DWT) having many advantages over the DWT including the ability to handle arbitrary length sequences and shift invariance (while the wavDWT function can handle arbitrary length sequences, it does so by means of an ad hoc storage sytem for odd length scaling coefficient crystals. The MODWT needs no such scheme and is more robust in this respect). The cost of the MODWT is in its redundancy. For an N point input sequence, there are N wavelet coefficients per scale. However, the number of multiplication operations is O(N log2(N)) which is the same as the fast Fourier transform, and is acceptably fast for most situations.
(1) D. B. Percival and A. T. Walden, ``Wavelet Methods for Time Series Analysis'', Cambridge University Press, 2000.
## calculate the MODWT of an electrocardiogram ## sequence out to 4 levels result <- wavMODWT( ecg, wavelet = "s8", n.levels = 4 ) ## plot the transform plot( result ) ## summarize the transform summary( result )