Returns the discrete wavelet transform matrix for the specified wavelet and decomposition level.
wavDWTMatrix(wavelet="d4", J=4, J0=J)
character string defining Daubechies wavelet filter.
integer scalar defining maximum decomposition level.
integer scaling defining the partial decomposition level. Note that necessarily J0 <= J, otherwise an error will be thrown.
discrete wavelet transform matrix
The discrete wavelet transform of a real-valued uniformly-sampled time series
wavDWT
.
Note that the length of the time series is taken to be N=2^J. You can obtain the discrete wavelet transform matrix for a partial transform by setting J0 < J. By default, J0=J.
D. B. Percival and A. T. Walden, Wavelet Methods for Time Series Analysis, Cambridge University Press, 2000.
# NOT RUN {
# Plot some rows of the wavelet transform matrix for the Haar filter
B <- wavDWTMatrix(wavelet = 'haar', J = 4)
wavStemPlot(B[1,])
wavStemPlot(B[15,])
wavStemPlot(B[16,])
# Compare the wavelet transform coefficients via the efficient
# wavDWT and non-efficient matrix multiplaction methods
N <- 256
X <- rnorm(N)
J0 <- 3
J <- as.integer(log2(N))
wavelet <- 's8'
W <- wavDWT(x = X, wavelet = wavelet, n.levels = J0)
B <- wavDWTMatrix(wavelet = wavelet, J = J, J0 = J0)
all.equal.numeric(as.vector(unlist(W$data)), as.vector(B %*% X))
# }
Run the code above in your browser using DataLab