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.7.5.1 Index]