Filter Banks for Dual-Tree Wavelet Transforms
Analysis and synthesis filter banks used in dual-tree wavelet algorithms.
afb(x, af) afb2D(x, af1, af2 = NULL) afb2D.A(x, af, d) sfb(lo, hi, sf) sfb2D(lo, hi, sf1, sf2 = NULL) sfb2D.A(lo, hi, sf, d)
x |
vector or matrix of observations |
af |
analysis filters. First element of the list is the low-pass filter, second element is the high-pass filter. |
af1,af2 |
analysis filters for the first and second dimension of a 2D array. |
sf |
synthesis filters. First element of the list is the low-pass filter, second element is the high-pass filter. |
sf1,sf2 |
synthesis filters for the first and second dimension of a 2D array. |
d |
dimension of filtering (d = 1 or 2) |
lo |
low-frequecy coefficients |
hi |
high-frequency coefficients |
The functions afb2D.A
and sfb2D.A
implement the
convolutions, either for analysis or synthesis, in one dimension
only. Thus, they are the workhorses of afb2D
and
sfb2D
. The output for the analysis filter bank along one
dimension (afb2D.A
) is a list with two elements
low-pass subband
high-pass subband
where the dimension of analysis will be half its original length. The
output for the synthesis filter bank along one dimension
(sfb2D.A
) will be the output array, where the dimension of
synthesis will be twice its original length.
In one dimension the output for the analysis filter bank (afb
)
is a list with two elements
lo |
Low frequecy output |
hi |
High frequency output |
and the output for the synthesis filter bank (sfb
) is the
output signal.
In two dimensions the output for the analysis filter bank
(afb2D
) is a list with four elements
lo |
low-pass subband |
hi[[1]] |
'lohi' subband |
hi[[2]] |
'hilo' subband |
hi[[3]] |
'hihi' subband |
and the output for the synthesis filter bank (sfb2D
) is the
output array.
Matlab: S. Cai, K. Li and I. Selesnick; R port: B. Whitcher
WAVELET SOFTWARE AT POLYTECHNIC UNIVERSITY, BROOKLYN, NY
http://eeweb.poly.edu/iselesni/WaveletSoftware/
## EXAMPLE: afb, sfb af = farras()$af sf = farras()$sf x = rnorm(64) x.afb = afb(x, af) lo = x.afb$lo hi = x.afb$hi y = sfb(lo, hi, sf) err = x - y max(abs(err)) ## EXAMPLE: afb2D, sfb2D x = matrix(rnorm(32*64), 32, 64) af = farras()$af sf = farras()$sf x.afb2D = afb2D(x, af, af) lo = x.afb2D$lo hi = x.afb2D$hi y = sfb2D(lo, hi, sf, sf) err = x - y max(abs(err)) ## Example: afb2D.A, sfb2D.A x = matrix(rnorm(32*64), 32, 64) af = farras()$af sf = farras()$sf x.afb2D.A = afb2D.A(x, af, 1) lo = x.afb2D.A$lo hi = x.afb2D.A$hi y = sfb2D.A(lo, hi, sf, 1) err = x - y max(abs(err))
Please choose more modern alternatives, such as Google Chrome or Mozilla Firefox.