public class PolynomialWavelets extends LiftingSchemeBaseWavelet
Polynomial wavelets
This wavelet transform uses a polynomial interpolation wavelet (e.g., the function used to calculate the differences). A HaarWavelet scaling function (the calculation of the average for the even points) is used.
This wavelet transform uses a two stage version of the lifting scheme. In the "classic" two stage Lifting Scheme wavelet the predict stage preceeds the update stage. Also, the algorithm is absolutely symetric, with only the operators (usually addition and subtraction) interchanged.
The problem with the classic Lifting Scheme transform is that it can be difficult to determine how to calculate the smoothing (scaling) function in the update phase once the predict stage has altered the odd values. This version of the wavelet transform calculates the update stage first and then calculates the predict stage from the modified update values. In this case the predict stage uses 4-point polynomial interpolation using even values that result from the update stage.
In this version of the wavelet transform the update stage is no longer perfectly symetric, since the forward and inverse transform equations differ by more than an addition or subtraction operator. However, this version of the transform produces a better result than the HaarWavelet transform extended with a polynomial interpolation stage.
This algorithm was suggested to me from my reading of Wim Sweldens' tutorial Building Your Own Wavelets at Home.
http://www.bearcave.com/misl/misl_tech/wavelets/lifting/index.html
You may use this source code without limitation and without fee as long as you include:
This software was written and is copyrighted by Ian Kaplan, Bear Products International, www.bearcave.com, 2001.
This software is provided "as is", without any warrenty or claim as to its usefulness. Anyone who uses this source code uses it at their own risk. Nor is any support provided by Ian Kaplan and Bear Products International.
Please send any bug fixes or suggested source changes to:
iank@bearcave.com
Constructor and Description |
---|
PolynomialWavelets()
PolynomialWavelets class constructor
|
Modifier and Type | Method and Description |
---|---|
void |
forwardTrans(float[] vec)
Polynomial wavelet lifting scheme transform.
|
void |
inverseTrans(float[] vec)
Polynomial wavelet lifting Scheme inverse transform.
|
public PolynomialWavelets()
public void forwardTrans(float[] vec)
Polynomial wavelet lifting scheme transform.
This version of the forwardTrans function overrides the function in the LiftingSchemeBaseWavelet base class. This function introduces an extra polynomial interpolation stage at the end of the transform.
forwardTrans
in class LiftingSchemeBaseWavelet
vec
- the vectorpublic void inverseTrans(float[] vec)
Polynomial wavelet lifting Scheme inverse transform.
This version of the inverseTrans function overrides the function in the LiftingSchemeBaseWavelet base class. This function introduces an inverse polynomial interpolation stage at the start of the inverse transform.
inverseTrans
in class LiftingSchemeBaseWavelet
vec
- the vector