fb.Rd
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
Low frequecy output
High frequency output
low-pass subband
'lohi' subband
'hilo' subband
'hihi' subband
WAVELET SOFTWARE AT POLYTECHNIC UNIVERSITY, BROOKLYN, NY
http://taco.poly.edu/WaveletSoftware/
Matlab: S. Cai, K. Li and I. Selesnick; R port: B. Whitcher
## 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))
#> [1] 2.04281e-14
## 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))
#> [1] 5.395684e-14
## 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))
#> [1] 3.730349e-14