Chapter Contents
Chapter Contents
Previous
Previous
Next
Next
Wavelet Analysis

WAVFT Call

computes fast wavelet transform

CALL WAVFT( decomp, data, opt <, levels> );

The Fast Wavelet Transform (WAVFT) subroutine computes a specified discrete wavelet transform of the input data, using the algorithm of Mallat (1989). This transform decomposes the input data into sets of detail and scaling coefficients defined at a number of scales or "levels."

The input data are used as scaling coefficients at the top level in the decomposition. The fast wavelet transform then recursively computes a set of detail and a set of scaling coefficients at the next lower level by respectively applying "low pass" and "high pass" conjugate mirror filters to the scaling coefficients at the current level. The number of coefficients in each of these new sets is approximately half the number of scaling coefficients at the level above them. Depending on the filters being used, a number of additional scaling coefficients, known as boundary coefficients, may be involved. These boundary coefficients are obtained by extending the sequence of interior scaling coefficients using a specified method.

Details of the discrete wavelet transform and the fast wavelet transformation algorithm are available in many references, including Mallat (1989), Daubechies (1992), and Ogden (1997).

The inputs to the WAVFT subroutine are as follows:

data
specifies the data to transform. This data must be either a row or column vector.

opt
refers to an options vector with the following components:

opt[1]
specifies the boundary handling used in computing the wavelet transform. At each level of the wavelet decomposition, necessary boundary scaling coefficients are obtained by extending the interior scaling coefficients at that level as follows:
opt[1]=0
specifies extension by zero.
opt[1]=1
specifies periodic extension.
opt[1]=2
specifies polynomial extension.
opt[1]=3
specifies extension by reflection.
opt[1]=4
specifies extension by anti-symmetric reflection.

opt[2]
specifies the polynomial degree that is used for polynomial extension. The value of opt[2] is ignored if opt[1]{\neq 2}.

opt[2]=0
specifies constant extension.
opt[2]=1
specifies linear extension.
opt[2]=2
specifies quadratic extension.

opt[3]
specifies the wavelet family.
opt[3]=1
specifies the Daubechies Extremal phase family (Daubechies 1992).
opt[3]=2
specifies the Daubechies Least Asymmetric family (also known as the Symmlet family) (Daubechies 1992).

opt[4]
specifies the wavelet family member. Valid values are
opt[4]=1 through 10,
if opt[3]=1
opt[4]=4 through 10,
if opt[3]=2

Some examples of wavelet specifications are
opt={1 . 1 1};
specifies the first member (more commonly known as the Haar system) of the Daubechies extremal phase family with periodic boundary handling.

opt={2 1 2 5};
specifies the fifth member of the Symmlet family with linear extension boundary handling.

levels
is an optional scalar argument that specifies the number of levels from the top level to be computed in the decomposition. If you do not specify this argument, then the decomposition terminates at level 0. Usually, you will not need to specify this optional argument. You use this option to avoid unneeded computations in situations where you are interested in the detail and scaling coefficients at only higher levels.

The WAVFT subroutine returns

decomp
a row vector that encapsulates the specified wavelet transform. The information that is encoded in this vector includes:

Note: decomp is a private representation of the specified wavelet transform and is not intended to be interpreted in its raw form. Rather, you should use this vector as an input argument to the WAVIFT, WAVPRINT, WAVGET, and WAVTHRSH subroutines.

Chapter Contents
Chapter Contents
Previous
Previous
Next
Next
Top
Top

Copyright © 2001 by SAS Institute Inc., Cary, NC, USA. All rights reserved.