JSci.maths.wavelet
Class Signal

java.lang.Object
  extended by JSci.maths.wavelet.MultiscaleFunction
      extended by JSci.maths.wavelet.splines.Spline
          extended by JSci.maths.wavelet.splines.LinearSpline
              extended by JSci.maths.wavelet.Signal
All Implemented Interfaces:
java.lang.Cloneable, NumericalConstants, Filter

public class Signal
extends LinearSpline
implements NumericalConstants, java.lang.Cloneable

This class use the linear spline as a general model for a signal. While this is a reasonnable design choice, this can certainly be overwritten if necessary. Basic operations on signal are supported.


Field Summary
(package private) static double normalisation
           
 
Fields inherited from class JSci.maths.wavelet.splines.LinearSpline
filtretype
 
Fields inherited from interface JSci.maths.NumericalConstants
GAMMA, GOLDEN_RATIO, LOG10, SQRT2, SQRT2PI, TWO_PI
 
Constructor Summary
Signal()
           
Signal(double[] v)
           
Signal(Filter f)
           
Signal(Filter f, double[] v)
           
Signal(Filter f, double[] v, double[] p)
           
 
Method Summary
 double[] absFFT()
          Return the absolute value of the FFT
static double[] absFFT(double[] data)
           
 java.lang.Object clone()
          Return a copy of this object
 void denoiseByFFT(int k)
          Simplistic FFT denoising.
 Signal denoiseShortPeaks(double p, int n)
          This denoising method will identify "short peaks" in the signal and take them away.
 double entropy()
          Return the entropy of the signal
 boolean equals(Signal b)
          Check if another object is equal to this Signal object
 Complex[] fft()
           
static Complex[] fft(Complex[] data)
          Performs the Fourier transform.
static Complex[] fft(double[] data)
          Performs the Fourier transform.
static Complex[] fftInverse(Complex[] data)
          Also noted iFFT in other packages.
 Signal filter(double[] f)
          Apply the given array as a convolution Filter and return a new Signal.
 FWTCoef fwt(int J)
          Fast Wavelet Transform
 FWTPacketCoef fwtPacket(int J, MappingND cout)
          The Fast Wavelet Transform with Wavelet packets
 double[] getValues()
          Get the sampled values of the sample as an array.
 double[] highpassProject()
          Project the signal according the the highpass Filter
 double[] lowpassProject()
          Project the data according to the lowpass Filter
 Signal medianFilter(int n)
          Apply the median Filter of a window of size 2*n+1.
 double norm()
          Compute the L2 norm of the signal
 void removeParameters()
          Throws away the parameters of the Filter
 void resample(int newl)
          Resample the signal using linear interpolation
 void setData(double[] v)
          Set the data for the signal
 void setDimensionFromBeginning(int dimension)
          Will make the signal a given dimension
 void setDimensionFromEnd(int dimension)
          Will make the signal a given dimension
 void setFilter(Filter f)
          set the signal associated Filter
 void setLengthFromBeginning(int longueur)
          Set the Signal to the specified length scraping or padding the end if necessary
 void setLengthFromEnd(int longueur)
          Set the Signal to the specified length scraping or padding the beginning if necessary
 void setParameters(double[] p)
          Set the parameter of the Filter (if it applies).
 void setParameters(java.lang.Double[] p)
          Set the parameters of the Filter (if it applies).
 
Methods inherited from class JSci.maths.wavelet.splines.LinearSpline
derive, derive, dimension, dimension, equals, evaluate, getFilterType, getValue, highpass, highpass, interpolate, lowpass, lowpass, previousDimension, setValue, setValues, toString
 
Methods inherited from class JSci.maths.wavelet.MultiscaleFunction
mass, mass
 
Methods inherited from class java.lang.Object
finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

normalisation

static final double normalisation
See Also:
Constant Field Values
Constructor Detail

Signal

public Signal()

Signal

public Signal(double[] v)

Signal

public Signal(Filter f,
              double[] v,
              double[] p)

Signal

public Signal(Filter f)

Signal

public Signal(Filter f,
              double[] v)
Method Detail

clone

public java.lang.Object clone()
Return a copy of this object

Overrides:
clone in class LinearSpline

getValues

public double[] getValues()
Get the sampled values of the sample as an array.


setFilter

public void setFilter(Filter f)
set the signal associated Filter


setParameters

public void setParameters(double[] p)
Set the parameter of the Filter (if it applies).


setParameters

public void setParameters(java.lang.Double[] p)
Set the parameters of the Filter (if it applies).


removeParameters

public void removeParameters()
Throws away the parameters of the Filter


setLengthFromEnd

public void setLengthFromEnd(int longueur)
Set the Signal to the specified length scraping or padding the beginning if necessary


resample

public void resample(int newl)
Resample the signal using linear interpolation


setLengthFromBeginning

public void setLengthFromBeginning(int longueur)
Set the Signal to the specified length scraping or padding the end if necessary


setData

public void setData(double[] v)
Set the data for the signal


fwt

public FWTCoef fwt(int J)
Fast Wavelet Transform


fwtPacket

public FWTPacketCoef fwtPacket(int J,
                               MappingND cout)
The Fast Wavelet Transform with Wavelet packets

Parameters:
J - number of iterations
cout - cost function

lowpassProject

public double[] lowpassProject()
Project the data according to the lowpass Filter


highpassProject

public double[] highpassProject()
Project the signal according the the highpass Filter


norm

public double norm()
Compute the L2 norm of the signal


fft

public Complex[] fft()

fft

public static Complex[] fft(double[] data)
Performs the Fourier transform. Convenience method for FourierMath.transform.


fft

public static Complex[] fft(Complex[] data)
Performs the Fourier transform. Convenience method for FourierMath.transform.


absFFT

public double[] absFFT()
Return the absolute value of the FFT


absFFT

public static double[] absFFT(double[] data)

fftInverse

public static Complex[] fftInverse(Complex[] data)
Also noted iFFT in other packages. This is the inverse to the FFT.


equals

public boolean equals(Signal b)
Check if another object is equal to this Signal object


setDimensionFromEnd

public void setDimensionFromEnd(int dimension)
Will make the signal a given dimension


setDimensionFromBeginning

public void setDimensionFromBeginning(int dimension)
Will make the signal a given dimension


denoiseByFFT

public void denoiseByFFT(int k)
Simplistic FFT denoising.

Parameters:
k - frequency to denoised

entropy

public double entropy()
Return the entropy of the signal


filter

public Signal filter(double[] f)
Apply the given array as a convolution Filter and return a new Signal. As one often want to compare the result to the original signal, this method is "safe", that is, it won't change the current object.

Parameters:
f - an array containing the coefficients of the convolution Filter

medianFilter

public Signal medianFilter(int n)
Apply the median Filter of a window of size 2*n+1. exception IllegalArgumentException if the parameter n is negative


denoiseShortPeaks

public Signal denoiseShortPeaks(double p,
                                int n)
This denoising method will identify "short peaks" in the signal and take them away. Short peaks are defined from a comparison with the median filtered signal. Only "significative" peaks are detected (see parameter p). This method won't denoise near the boundaries. "Short" refers here to the time-domain and not the amplitude. param p percentage of the range (max-min) considered as a significative step param n length of the peak in the time domain exception IllegalArgumentException if p is not between 0 and 1 exception IllegalArgumentException if the parameter n is negative