Interface WaveletShrinkage


public interface WaveletShrinkage
The wavelet shrinkage is a signal denoising technique based on the idea of thresholding the wavelet coefficients. Wavelet coefficients having small absolute value are considered to encode mostly noise and very fine details of the signal. In contrast, the important information is encoded by the coefficients having large absolute value. Removing the small absolute value coefficients and then reconstructing the signal should produce signal with lesser amount of noise. The wavelet shrinkage approach can be summarized as follows:
  1. Apply the wavelet transform to the signal.
  2. Estimate a threshold value.
  3. The so-called hard thresholding method zeros the coefficients that are smaller than the threshold and leaves the other ones unchanged. In contrast, the soft thresholding scales the remaining coefficients in order to form a continuous distribution of the coefficients centered on zero.
  4. Reconstruct the signal (apply the inverse wavelet transform).
The biggest challenge in the wavelet shrinkage approach is finding an appropriate threshold value. In this class, we use the universal threshold T = σ sqrt(2*log(N)), where N is the length of time series and σ is the estimate of standard deviation of the noise by the so-called scaled median absolute deviation (MAD) computed from the high-pass wavelet coefficients of the first level of the transform.

Note: the scaling coefficient at index 0 (the global mean) is always preserved and never thresholded.

  • Method Summary

    Static Methods
    Modifier and Type
    Method
    Description
    static void
    denoise(double[] t, Wavelet wavelet)
    Adaptive hard-thresholding denoising a time series with given wavelet.
    static void
    denoise(double[] t, Wavelet wavelet, boolean soft)
    Adaptive denoising a time series with given wavelet.
    static void
    denoise2D(double[][] matrix, Wavelet wavelet)
    Adaptive hard-thresholding denoising of a 2-D signal (e.g.
    static void
    denoise2D(double[][] matrix, Wavelet wavelet, boolean soft)
    Adaptive denoising of a 2-D signal (e.g.
  • Method Details

    • denoise

      static void denoise(double[] t, Wavelet wavelet)
      Adaptive hard-thresholding denoising a time series with given wavelet.
      Parameters:
      t - the time series array. The size should be a power of 2. For time series of size no power of 2, 0 padding can be applied.
      wavelet - the wavelet to transform the time series.
    • denoise

      static void denoise(double[] t, Wavelet wavelet, boolean soft)
      Adaptive denoising a time series with given wavelet.
      Parameters:
      t - the time series array. The size should be a power of 2. For time series of size no power of 2, 0 padding can be applied.
      wavelet - the wavelet to transform the time series.
      soft - true if apply soft thresholding.
    • denoise2D

      static void denoise2D(double[][] matrix, Wavelet wavelet)
      Adaptive hard-thresholding denoising of a 2-D signal (e.g. an image) by applying the 1-D wavelet transform independently to each row and then each column.
      Parameters:
      matrix - the 2-D signal. Each dimension must be a power of 2.
      wavelet - the wavelet to use.
    • denoise2D

      static void denoise2D(double[][] matrix, Wavelet wavelet, boolean soft)
      Adaptive denoising of a 2-D signal (e.g. an image) by applying the 1-D wavelet transform independently to each row and then each column.
      Parameters:
      matrix - the 2-D signal. Each dimension must be a power of 2.
      wavelet - the wavelet to use.
      soft - true if apply soft thresholding.