fb.RdAnalysis 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