| afb {waveslim} | R Documentation |
Filter Banks for Dual-Tree Wavelet Transforms
Description
Analysis and synthesis filter banks used in dual-tree wavelet algorithms.
Usage
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)
Arguments
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 |
Details
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
- lo
low-pass subband
- hi
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.
Value
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.
Author(s)
Matlab: S. Cai, K. Li and I. Selesnick; R port: B. Whitcher
Examples
## 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))