gives the discrete wavelet transform (DWT) of an array of data.

DiscreteWaveletTransform[data, wave]
gives the discrete wavelet transform using the wavelet wave.

DiscreteWaveletTransform[data, wave, r]
gives the discrete wavelet transform using r levels of refinement.

DiscreteWaveletTransform[image, ...]
gives the discrete wavelet transform of an image.

DiscreteWaveletTransform[sound, ...]
gives the discrete wavelet transform of sampled sound.

Details and OptionsDetails and Options

  • DiscreteWaveletTransform gives a DiscreteWaveletData object representing a tree of wavelet coefficient arrays.
  • Properties of the DiscreteWaveletData dwd can be found using dwd["prop"], and a list of available properties can be found using dwd["Properties"].
  • The data can be a rectangular array of any depth.
  • By default, input image is converted to an image of type .
  • The resulting wavelet coefficients are arrays of the same depth as the input data.
  • The possible wavelets wave include:
  • BattleLemarieWavelet[...]Battle-Lemarié wavelets based on B-spline
    BiorthogonalSplineWavelet[...]B-spline-based wavelet
    CoifletWavelet[...]symmetric variant of Daubechies wavelets
    DaubechiesWavelet[...]the Daubechies wavelets
    HaarWavelet[...]classic Haar wavelet
    MeyerWavelet[...]wavelet defined in the frequency domain
    ReverseBiorthogonalSplineWavelet[...]B-spline-based wavelet (reverse dual and primal)
    ShannonWavelet[...]sinc function-based wavelet
    SymletWavelet[...]least asymmetric orthogonal wavelet
  • The default is HaarWavelet[].
  • With higher settings for the refinement level r, larger-scale features are resolved.
  • The default refinement level r is given by TemplateBox[{{{InterpretationBox[{log, _, DocumentationBuild`Utils`Private`Parenth[2]}, Log2, AutoDelete -> True], (, n, )}, +, {1, /, 2}}}, Floor], where is the minimum dimension of data.  »
  • The tree of wavelet coefficients at level consists of coarse coefficients and detail coefficients , with representing the input data.
  • The forward transform is given by and .  »
  • The inverse transform is given by .  »
  • The are lowpass filter coefficients and are highpass filter coefficients that are defined for each wavelet family.
  • The dimensions of and are given by wd_(j+1)=TemplateBox[{{{1, /, 2},  , {(, {{wd, _, j}, +, fl, -, 2}, )}}}, Ceiling], where is the input data dimension and fl is the filter length for the corresponding wspec.  »
  • The following options can be given:
  • MethodAutomaticmethod to use
    Padding"Periodic"how to extend data beyond boundaries
    WorkingPrecisionMachinePrecisionprecision to use in internal computations
  • The settings for Padding are the same as those available in ArrayPad.
  • InverseWaveletTransform gives the inverse transform.
New in 8
New to Mathematica? Find your learning path »
Have a question? Ask support »