dualtree | R Documentation |
One- and two-dimensional dual-tree complex discrete wavelet transforms developed by Kingsbury and Selesnick et al.
dualtree(x, J, Faf, af)
idualtree(w, J, Fsf, sf)
dualtree2D(x, J, Faf, af)
idualtree2D(w, J, Fsf, sf)
x |
N-point vector or MxN matrix. |
J |
number of stages. |
Faf |
analysis filters for the first stage. |
af |
analysis filters for the remaining stages. |
w |
DWT coefficients. |
Fsf |
synthesis filters for the last stage. |
sf |
synthesis filters for the preceeding stages. |
In one dimension N
is divisible by 2^J
and
N\ge2^{J-1}\cdot\mbox{length}(\mbox{\code{af}})
.
In two dimensions, these two conditions must hold for both M
and
N
.
For the analysis of x
, the output is
w |
DWT coefficients. Each wavelet scale is a list containing the real and imaginary parts. The final scale (J+1) contains the low-pass filter coefficients. |
For the synthesis of w
, the output is
y |
output signal |
Matlab: S. Cai, K. Li and I. Selesnick; R port: B. Whitcher
FSfarras
, farras
,
convolve
, cshift
, afb
,
sfb
.
## EXAMPLE: dualtree
x = rnorm(512)
J = 4
Faf = FSfarras()$af
Fsf = FSfarras()$sf
af = dualfilt1()$af
sf = dualfilt1()$sf
w = dualtree(x, J, Faf, af)
y = idualtree(w, J, Fsf, sf)
err = x - y
max(abs(err))
## Example: dualtree2D
x = matrix(rnorm(64*64), 64, 64)
J = 3
Faf = FSfarras()$af
Fsf = FSfarras()$sf
af = dualfilt1()$af
sf = dualfilt1()$sf
w = dualtree2D(x, J, Faf, af)
y = idualtree2D(w, J, Fsf, sf)
err = x - y
max(abs(err))
## Display 2D wavelets of dualtree2D.m
J <- 4
L <- 3 * 2^(J+1)
N <- L / 2^J
Faf <- FSfarras()$af
Fsf <- FSfarras()$sf
af <- dualfilt1()$af
sf <- dualfilt1()$sf
x <- matrix(0, 2*L, 3*L)
w <- dualtree2D(x, J, Faf, af)
w[[J]][[1]][[1]][N/2, N/2+0*N] <- 1
w[[J]][[1]][[2]][N/2, N/2+1*N] <- 1
w[[J]][[1]][[3]][N/2, N/2+2*N] <- 1
w[[J]][[2]][[1]][N/2+N, N/2+0*N] <- 1
w[[J]][[2]][[2]][N/2+N, N/2+1*N] <- 1
w[[J]][[2]][[3]][N/2+N, N/2+2*N] <- 1
y <- idualtree2D(w, J, Fsf, sf)
image(t(y), col=grey(0:64/64), axes=FALSE)
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.