wavelet
Class Wavelet

java.lang.Object
  |
  +--wavelet.Wavelet

public class Wavelet
extends java.lang.Object

Main Wavelet Transform Class Description: Performs the wavelet transform on array of doubles

Since:
JDK 1.2.2

Field Summary
 javax.sound.sampled.AudioFormat audioFormat
           
 int depthT
           
 int inSignalCutoff
           
 double[][] wavTree
           
 
Constructor Summary
Wavelet(javax.sound.sampled.AudioInputStream audioIn)
          Constructs an Wavelet object using AudioInputStream
Wavelet(javax.sound.sampled.AudioInputStream audioIn, int length)
          Constructs an Wavelet object using AudioInputStream
Wavelet(double[] inputSig)
          Constructs an Wavelet object
Wavelet(double[] inputSig, int inputLength)
          Constructs an Wavelet object with length different than array size.
 
Method Summary
static WaveletFilter chooseFilter(int n)
          choose a wavelet filter from an ordered list.
 double detCoefCost(int level)
          computes the l1 norm of a level of detail coefficients
 double[] detCoefs(int level)
          returns a copy of one level's detail coefficients
static void fa1d(double[] a, int aStart, int nA, boolean isFwd, WaveletFilter wfltr, double[] aXf, int aXfStart)
          intermediate routine to compute discrete wavelet wavelet transform just calls oneDVarStep with a step size of 1
 void forwardTransform(int levels, int inSignalStart, WaveletFilter wFilter)
          perform a n level wavelet transform on the data in inDataArray
 byte[] getByteData(double[] dat)
          Utility routine: conversion routine from double to bytes
 void getByteData(double[] dat, byte[] byteArray)
          Utility routine: conversion routine from double to bytes
 double[] getDoubleData()
          Get a new copy of the input array.
 double[] getDoubleData(javax.sound.sampled.AudioInputStream audioIn)
          Get a new copy of the input array.
 double[] inverseMallatTree(WaveletFilter wFilter, double[] mtree)
          performs an inverse wavelet transform of a mallat tree.
static void main(java.lang.String[] args)
           
 double[] mallatTree(WaveletFilter wfilter)
          Performs the wavelet transform, and returns an array with all of the detail coef's, starting from the root
 double[] mix(Wavelet other, WaveletFilter wfilter)
          mixes two mallat trees.
 void mixDoub(double[] signalA, double[] signalB, double[] mixOut)
          mixes two arrays of doubles.
static void Othermain(java.lang.String[] args)
          miscallaneous old code
 void printTree(int level)
          debug utility: prints array to standard out
 double[] smoothCoefs(int level)
          returns a copy of one level's wavelet (smooth) coefficients
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

wavTree

public double[][] wavTree

depthT

public int depthT

inSignalCutoff

public int inSignalCutoff

audioFormat

public javax.sound.sampled.AudioFormat audioFormat
Constructor Detail

Wavelet

public Wavelet(double[] inputSig)
Constructs an Wavelet object
Parameters:
intputSignal - The one-dimensional input signal

Wavelet

public Wavelet(double[] inputSig,
               int inputLength)
Constructs an Wavelet object with length different than array size.
Parameters:
intputSignal - The one-dimensional input signal
intputLength - Length of signal to analyze (<= inputSignal.length)

Wavelet

public Wavelet(javax.sound.sampled.AudioInputStream audioIn)
Constructs an Wavelet object using AudioInputStream
Parameters:
audioIn - inputSignal to analyze

Wavelet

public Wavelet(javax.sound.sampled.AudioInputStream audioIn,
               int length)
Constructs an Wavelet object using AudioInputStream
Parameters:
audioIn - inputSignal to analyze
length - Length of signal to analyze (<= audioIn length)
Method Detail

getDoubleData

public double[] getDoubleData()
Get a new copy of the input array.
Returns:
array copy of input signal

getDoubleData

public double[] getDoubleData(javax.sound.sampled.AudioInputStream audioIn)
Get a new copy of the input array.
Returns:
array copy of input signal

getByteData

public void getByteData(double[] dat,
                        byte[] byteArray)
Utility routine: conversion routine from double to bytes
Parameters:
dat - (double array to convert (for instance, the inverse wavelet inverse transform)
byteArray - input double array converted to bytes.

getByteData

public byte[] getByteData(double[] dat)
Utility routine: conversion routine from double to bytes
Parameters:
dat - (double array to convert (for instance, the inverse wavelet inverse transform)
Returns:
input double array converted to new array of bytes.

mallatTree

public double[] mallatTree(WaveletFilter wfilter)
Performs the wavelet transform, and returns an array with all of the detail coef's, starting from the root
Parameters:
wfilter - wavelet filter to use.
Returns:
input double array converted to new array of bytes.

inverseMallatTree

public double[] inverseMallatTree(WaveletFilter wFilter,
                                  double[] mtree)
performs an inverse wavelet transform of a mallat tree.
Parameters:
wfilter - wavelet filter to use
mtree - mallat tree
Returns:
reconstitued signal

forwardTransform

public void forwardTransform(int levels,
                             int inSignalStart,
                             WaveletFilter wFilter)
perform a n level wavelet transform on the data in inDataArray
Parameters:
levels - number of levels of the wavelet transform to do.
inSignalStart - place to start in the input signal
wFilter - wavelet filter to use.

printTree

public void printTree(int level)
debug utility: prints array to standard out
Parameters:
level - level of wavelet transform to print out.

smoothCoefs

public double[] smoothCoefs(int level)
returns a copy of one level's wavelet (smooth) coefficients
Parameters:
level - specify level wavelet transform to return
Returns:
copy of specified level's average coefficients

detCoefs

public double[] detCoefs(int level)
returns a copy of one level's detail coefficients
Parameters:
level - specify level wavelet transform to return
Returns:
copy of specified level's average coefficients

detCoefCost

public double detCoefCost(int level)
computes the l1 norm of a level of detail coefficients
Parameters:
level - specify level wavelet transform to use
Returns:
l1 norm of a level of detail cofficients

fa1d

public static void fa1d(double[] a,
                        int aStart,
                        int nA,
                        boolean isFwd,
                        WaveletFilter wfltr,
                        double[] aXf,
                        int aXfStart)
intermediate routine to compute discrete wavelet wavelet transform just calls oneDVarStep with a step size of 1
Parameters:
a - original array
aStart - index to start on in original array
nA - size of portion of input array to use
isFwd - TRUE <=> forward transform FALSE - inverse
wfltr - wavelet filter to use
aXf - space for transformed array
aXfStart - index to start from in transformed array

mix

public double[] mix(Wavelet other,
                    WaveletFilter wfilter)
mixes two mallat trees.
Parameters:
other - oher mallat tree to mix with (one is implicit)
wflilter - wavelet filter to use
Returns:
new mallat tree which is a mix of the first two

mixDoub

public void mixDoub(double[] signalA,
                    double[] signalB,
                    double[] mixOut)
mixes two arrays of doubles. just a linear crossfade right now.
Parameters:
signalA - first signal
signalB - second signal
mixOut - space to put the result

chooseFilter

public static WaveletFilter chooseFilter(int n)
choose a wavelet filter from an ordered list.
Parameters:
n - wavelet filter number
Returns:
the wavelet filter associated with this number

Othermain

public static void Othermain(java.lang.String[] args)
miscallaneous old code
Parameters:
args - input args

main

public static void main(java.lang.String[] args)