package pl.edu.fuw.fid.signalanalysis.wavelet;
import org.apache.commons.math.complex.Complex;
/**
* Implementation of a Morlet (aka Gabor) wavelet.
* This wavelet is implemented as <code>f(t) = exp(iwt) exp(-t²/2)</code>.
*
* @author ptr@mimuw.edu.pl
*/
public class GaborWavelet extends ParamWavelet {
public static final double DEFAULT_WIDTH = 5.0;
public GaborWavelet() {
this(DEFAULT_WIDTH);
}
public GaborWavelet(Double w) {
super(w);
}
@Override
public double getBasicFrequency() {
return 0.5*param/Math.PI;
}
@Override
public double getHalfWidth() {
return 0.5*param;
}
@Override
public String getLabel() {
return "Morlet";
}
@Override
public Complex value(double t) {
double exp = Math.exp(-0.5*t*t);
return new Complex(0.0, param*t).exp().multiply(exp);
}
}