jsci.maths.wavelet
Class MatchingPursuit
- java.lang.Object
-
- jsci.maths.wavelet.BasisFunctionLibrary
-
- jsci.maths.wavelet.MatchingPursuit
-
- All Implemented Interfaces:
- java.lang.Cloneable
public class MatchingPursuit extends BasisFunctionLibrary implements java.lang.Cloneable
A Wavelet (and more) matching pursuit class Uses adaptative Morse coding for better performance. The MatchingPursuit is used to obtain a Time-Frequency representation (TF) through a fast algorithm.
-
-
Constructor Summary
Constructors Constructor and Description MatchingPursuit(DiscreteFunction f)Constructor
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method and Description voidadd(MultiscaleFunction fprimary, MultiscaleFunction fdual)Add a clone of the given MultiscaleFunctions to the internal arrays of MultiscaleFunctions.java.lang.Objectclone()voiddiagnostic(double tol)Check the validity of the current matching algorithm.double[][]forcedMatch(int pos)Force the system to select the given element as the best match.double[]getCoefs()Recover the matching coefficients.int[]getRecord()all matches are recorded so one can trace them backdouble[]getRecordedNorms()Trace back how much of the norm was taken out at each match.double[][]match()Does the matching 1 time and return the TF representation.double[][]match(int j)Does the matching j times and return the TF representation.double[][]matchAll(double tol)Repeatly match until it remains less than tol * 100 percent of the original L2 norm; no matter what, at least one match will be done.voidsetData(DiscreteFunction f)Allows the user to change the DiscreteFunction (see constructor).-
Methods inherited from class jsci.maths.wavelet.BasisFunctionLibrary
add, add, add, checkBiorthogonality, getData, getDual, getMorseThreshold, getPrimary, getResidue, getResidues, getSize, getWeigth, getWeigths, includeFourier, includeMasslessFourier, norm, setMorseThreshold
-
-
-
-
Constructor Detail
-
MatchingPursuit
public MatchingPursuit(DiscreteFunction f)
Constructor
-
-
Method Detail
-
add
public void add(MultiscaleFunction fprimary, MultiscaleFunction fdual)
Description copied from class:BasisFunctionLibraryAdd a clone of the given MultiscaleFunctions to the internal arrays of MultiscaleFunctions.- Overrides:
addin classBasisFunctionLibrary
-
clone
public java.lang.Object clone()
- Overrides:
clonein classBasisFunctionLibrary
-
getRecord
public int[] getRecord()
all matches are recorded so one can trace them back
-
getRecordedNorms
public double[] getRecordedNorms()
Trace back how much of the norm was taken out at each match.
-
getCoefs
public double[] getCoefs()
Recover the matching coefficients.
-
setData
public void setData(DiscreteFunction f)
Description copied from class:BasisFunctionLibraryAllows the user to change the DiscreteFunction (see constructor).- Overrides:
setDatain classBasisFunctionLibrary
-
diagnostic
public void diagnostic(double tol) throws MaximumIterationsExceededExceptionCheck the validity of the current matching algorithm. Will return an exception if the diagnostic fails. This makes sense: the software should stop if the algorithm isn't safely within the given tolerance.- Throws:
java.lang.IllegalArgumentException- if the matching failsMaximumIterationsExceededException- if it can't match one of the elements of the dictionnaryjava.lang.IllegalArgumentException- if tol is is negative
-
match
public double[][] match()
Does the matching 1 time and return the TF representation. The TF representation may contain negative values and so, taking the absolute value of the result will often be useful.
-
matchAll
public double[][] matchAll(double tol) throws MaximumIterationsExceededExceptionRepeatly match until it remains less than tol * 100 percent of the original L2 norm; no matter what, at least one match will be done. It will return the TF representaiton. The TF representation may contain negative values and so, taking the absolute value of the result will often be useful.- Parameters:
tol- percentile of energy- Throws:
java.lang.IllegalArgumentException- if tol is not within the interval [0,1]MaximumIterationsExceededException- if the number of required match exceeds 5 times the size of the dictionnary (it should be a more than confortable margin unless the problem is ill-posed, change the dictionnary if it doesn't work)
-
forcedMatch
public double[][] forcedMatch(int pos)
Force the system to select the given element as the best match. It will return the TF representaiton. The TF representation may contain negative values and so, taking the absolute value of the result will often be useful.
-
match
public double[][] match(int j)
Does the matching j times and return the TF representation. The TF representation may contain negative values and so, taking the absolute value of the result will often be useful.- Parameters:
j- number of iterations- Throws:
java.lang.IllegalArgumentException- if j is not positive
-
-
DMelt 3.0 © DataMelt by jWork.ORG