Dual-tree Filter Banks {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

References

WAVELET SOFTWARE AT POLYTECHNIC UNIVERSITY, BROOKLYN, NY
http://taco.poly.edu/WaveletSoftware/

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))

[Package waveslim version 1.6.4 Index]