JSci.maths.wavelet
Class BasisFunctionLibrary

java.lang.Object
  extended by JSci.maths.wavelet.BasisFunctionLibrary
All Implemented Interfaces:
java.lang.Cloneable
Direct Known Subclasses:
MatchingPursuit

public class BasisFunctionLibrary
extends java.lang.Object
implements java.lang.Cloneable

This class is meant to be used for Fast Wavelet Transform, Matching Pursuit and related signal processing algorithm. The basic idea is to automatically build and compress a library of "basis functions". Using Morse Coding this class delivers very fast code without sacrificing anything. The only fee is the one you pay to build the object, and it is a one time fee. Note : this class should be rewritten to use the java.util collections starting with jdk1.2. This class is not meant to be used directly but rather, you should build on it. It supports only 1D data.


Field Summary
protected  DiscreteFunction DFunction
           
protected  DiscreteFunction[] Fdual
           
protected  DiscreteFunction[] Fprimary
           
 
Constructor Summary
protected BasisFunctionLibrary()
           
  BasisFunctionLibrary(DiscreteFunction f)
           
 
Method Summary
protected static double[][] add(double[][] v, double[][] w)
           
 void add(Multiresolution mr)
          Attempt to add every possible functions belonging to a multiresolution.
 void add(MultiscaleFunction f)
          Add the MultiscaleFunction to both the primary and dual internal arrays.
 void add(MultiscaleFunction[] f)
          Add the array of MultiscaleFunction to both the primary and dual internal arrays.
 void add(MultiscaleFunction fprimary, MultiscaleFunction fdual)
          Add a clone of the given MultiscaleFunctions to the internal arrays of MultiscaleFunctions.
 double[] checkBiorthogonality()
          Checks whether whether or not the biorthogonality is satisfied If so, the return array should roughly be filled with ones.
 java.lang.Object clone()
           
protected static DiscreteFunction[] cloneArrayDiscreteFunction(MultiscaleFunction[] a)
          Clone an arry of DiscreteFunction.
 DiscreteFunction getData()
          get a copy of the data object (no direct access)
 DiscreteFunction getDual(int k)
           
 double getMorseThreshold()
           
 DiscreteFunction getPrimary(int k)
           
 double getResidue(int k)
           
 double[] getResidues()
           
 int getSize()
          We will now attempt to match each MultiscaleFunction to the length of the data.
 double getWeigth(int k)
           
 double[] getWeigths()
           
 void includeFourier()
           
 void includeMasslessFourier()
           
 double norm()
           
protected static double norm(double a, double b)
           
 void setData(DiscreteFunction f)
          Allows the user to change the DiscreteFunction (see constructor).
 void setMorseThreshold(double p)
           
 
Methods inherited from class java.lang.Object
equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

Fprimary

protected DiscreteFunction[] Fprimary

Fdual

protected DiscreteFunction[] Fdual

DFunction

protected DiscreteFunction DFunction
Constructor Detail

BasisFunctionLibrary

protected BasisFunctionLibrary()

BasisFunctionLibrary

public BasisFunctionLibrary(DiscreteFunction f)
Method Detail

clone

public java.lang.Object clone()
Overrides:
clone in class java.lang.Object

setMorseThreshold

public void setMorseThreshold(double p)

getMorseThreshold

public double getMorseThreshold()

includeFourier

public void includeFourier()

includeMasslessFourier

public void includeMasslessFourier()

getPrimary

public DiscreteFunction getPrimary(int k)

getDual

public DiscreteFunction getDual(int k)

setData

public void setData(DiscreteFunction f)
Allows the user to change the DiscreteFunction (see constructor).

Throws:
java.lang.IllegalArgumentException - if you try to change the number of data values (dimension of the DiscreteFunction)

getData

public DiscreteFunction getData()
get a copy of the data object (no direct access)


cloneArrayDiscreteFunction

protected static DiscreteFunction[] cloneArrayDiscreteFunction(MultiscaleFunction[] a)
Clone an arry of DiscreteFunction. This method is needed to handle eventual null object.


add

public void add(MultiscaleFunction fprimary,
                MultiscaleFunction fdual)
Add a clone of the given MultiscaleFunctions to the internal arrays of MultiscaleFunctions.


add

public void add(MultiscaleFunction f)
Add the MultiscaleFunction to both the primary and dual internal arrays.


add

public void add(MultiscaleFunction[] f)
Add the array of MultiscaleFunction to both the primary and dual internal arrays.


add

public void add(Multiresolution mr)
Attempt to add every possible functions belonging to a multiresolution. Entirely automatic! Limited to dyadic multiresolutions.


getResidues

public double[] getResidues()

getResidue

public double getResidue(int k)

getWeigths

public double[] getWeigths()

getWeigth

public double getWeigth(int k)

norm

public double norm()

getSize

public int getSize()
We will now attempt to match each MultiscaleFunction to the length of the data.


norm

protected static double norm(double a,
                             double b)

checkBiorthogonality

public double[] checkBiorthogonality()
Checks whether whether or not the biorthogonality is satisfied If so, the return array should roughly be filled with ones.


add

protected static double[][] add(double[][] v,
                                double[][] w)