StationaryWaveletTransform
✖
StationaryWaveletTransform
gives the stationary wavelet transform (SWT) of an array of data.
gives the stationary wavelet transform using the wavelet wave.
gives the stationary wavelet transform using r levels of refinement.
Details and Options



- StationaryWaveletTransform is similar to DiscreteWaveletTransform except that no subsampling occurs at any refinement level and the resulting coefficient arrays all have the same dimensions as the original data.
- StationaryWaveletTransform gives a DiscreteWaveletData object.
- 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 any of the following:
-
list arbitrary-rank numerical array image arbitrary Image object audio an Audio or sampled Sound object - 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 wave is HaarWavelet[].
- With higher settings for the refinement level r, larger-scale features are resolved.
- The default refinement level r is given by
, 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
, where
is the filter length for the corresponding wspec and
is the length of input data. »
- 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 the same as input data dimensions.
- The following options can be given:
-
Method Automatic method to use WorkingPrecision MachinePrecision precision to use in internal computations - StationaryWaveletTransform uses periodic padding of data.
- InverseWaveletTransform gives the inverse transform.

Examples
open allclose allBasic Examples (3)Summary of the most common use cases
Compute a stationary wavelet transform using the HaarWavelet:

https://wolfram.com/xid/0bsv1gx2v9710xb0ia-zjig9d

Use Normal to view all coefficients:

https://wolfram.com/xid/0bsv1gx2v9710xb0ia-s766la


https://wolfram.com/xid/0bsv1gx2v9710xb0ia-c4c4hc


https://wolfram.com/xid/0bsv1gx2v9710xb0ia-i79gyn

Use dwd[…,"Audio"] to extract coefficient signals:

https://wolfram.com/xid/0bsv1gx2v9710xb0ia-bxhoqo

Verify lengths of all coefficient signals:

https://wolfram.com/xid/0bsv1gx2v9710xb0ia-qrq5z9

Compute the inverse transform:

https://wolfram.com/xid/0bsv1gx2v9710xb0ia-ds1g1n

Transform an Image object:

https://wolfram.com/xid/0bsv1gx2v9710xb0ia-jza1au

Use dwd[…,"Image"] to extract coefficient images:

https://wolfram.com/xid/0bsv1gx2v9710xb0ia-lg7vnk

Compute the inverse transform:

https://wolfram.com/xid/0bsv1gx2v9710xb0ia-xasr81

Scope (34)Survey of the scope of standard use cases
Basic Uses (6)
Compute a stationary wavelet transform:

https://wolfram.com/xid/0bsv1gx2v9710xb0ia-h8yn3f

The resulting DiscreteWaveletData represents a tree of transform coefficients:

https://wolfram.com/xid/0bsv1gx2v9710xb0ia-hic6us

The inverse transform reconstructs the input:

https://wolfram.com/xid/0bsv1gx2v9710xb0ia-f3afir

Useful properties can be extracted from the DiscreteWaveletData object:

https://wolfram.com/xid/0bsv1gx2v9710xb0ia-f5g3t

Get a full list of properties:

https://wolfram.com/xid/0bsv1gx2v9710xb0ia-che078

Get data and coefficient dimensions:

https://wolfram.com/xid/0bsv1gx2v9710xb0ia-svmo5


https://wolfram.com/xid/0bsv1gx2v9710xb0ia-dtl7ea

Use Normal to get all wavelet coefficients explicitly:

https://wolfram.com/xid/0bsv1gx2v9710xb0ia-4pudeo

https://wolfram.com/xid/0bsv1gx2v9710xb0ia-pngz6t

Also use All as an argument to get all coefficients:

https://wolfram.com/xid/0bsv1gx2v9710xb0ia-fy98zc

Use Automatic to get only the coefficients used in the inverse transform:

https://wolfram.com/xid/0bsv1gx2v9710xb0ia-o4zzzw

Use the "TreeView" or "IndexMap" to find out what wavelet coefficients are available:

https://wolfram.com/xid/0bsv1gx2v9710xb0ia-8z5pdm

https://wolfram.com/xid/0bsv1gx2v9710xb0ia-7vy1zr


https://wolfram.com/xid/0bsv1gx2v9710xb0ia-dbjopc

Extract specific coefficient arrays:

https://wolfram.com/xid/0bsv1gx2v9710xb0ia-limxd1


https://wolfram.com/xid/0bsv1gx2v9710xb0ia-ukcyo5

Extract several wavelet coefficients corresponding to the list of wavelet index specifications:

https://wolfram.com/xid/0bsv1gx2v9710xb0ia-bw6a2j

Extract all coefficients whose wavelet indexes match a pattern:

https://wolfram.com/xid/0bsv1gx2v9710xb0ia-57sk78


https://wolfram.com/xid/0bsv1gx2v9710xb0ia-u5etdi

The Automatic coefficients are used by default in functions like WaveletListPlot:

https://wolfram.com/xid/0bsv1gx2v9710xb0ia-c115g

https://wolfram.com/xid/0bsv1gx2v9710xb0ia-b2d2ce


https://wolfram.com/xid/0bsv1gx2v9710xb0ia-lb6dy9

Use a higher refinement level to increase the frequency resolution:

https://wolfram.com/xid/0bsv1gx2v9710xb0ia-e0tfo1

https://wolfram.com/xid/0bsv1gx2v9710xb0ia-d8rad6

With a smaller refinement level, more of the signal energy is left in {0,0,0}:

https://wolfram.com/xid/0bsv1gx2v9710xb0ia-qhxfy

https://wolfram.com/xid/0bsv1gx2v9710xb0ia-b7oh62

With further refinement, {0,0,0} is resolved into further components:

https://wolfram.com/xid/0bsv1gx2v9710xb0ia-pcyr03

https://wolfram.com/xid/0bsv1gx2v9710xb0ia-ox23n

Wavelet Families (10)
Compute the stationary wavelet transform using different wavelet families:

https://wolfram.com/xid/0bsv1gx2v9710xb0ia-gavf2f

https://wolfram.com/xid/0bsv1gx2v9710xb0ia-b3h8vd

https://wolfram.com/xid/0bsv1gx2v9710xb0ia-lu64r

Use different families of wavelets to capture different features:

https://wolfram.com/xid/0bsv1gx2v9710xb0ia-iax26u

https://wolfram.com/xid/0bsv1gx2v9710xb0ia-6jwo5u

HaarWavelet (default):

https://wolfram.com/xid/0bsv1gx2v9710xb0ia-nm4160

https://wolfram.com/xid/0bsv1gx2v9710xb0ia-7up01x


https://wolfram.com/xid/0bsv1gx2v9710xb0ia-022m3l

https://wolfram.com/xid/0bsv1gx2v9710xb0ia-5guii

https://wolfram.com/xid/0bsv1gx2v9710xb0ia-588xab


https://wolfram.com/xid/0bsv1gx2v9710xb0ia-64i349

https://wolfram.com/xid/0bsv1gx2v9710xb0ia-8g8wur

https://wolfram.com/xid/0bsv1gx2v9710xb0ia-myg47y


https://wolfram.com/xid/0bsv1gx2v9710xb0ia-874w84

https://wolfram.com/xid/0bsv1gx2v9710xb0ia-3itphu

https://wolfram.com/xid/0bsv1gx2v9710xb0ia-7q8w5p


https://wolfram.com/xid/0bsv1gx2v9710xb0ia-klv9q6

https://wolfram.com/xid/0bsv1gx2v9710xb0ia-7eaj36

https://wolfram.com/xid/0bsv1gx2v9710xb0ia-kmt3r3


https://wolfram.com/xid/0bsv1gx2v9710xb0ia-q6etlg

https://wolfram.com/xid/0bsv1gx2v9710xb0ia-9nicex

https://wolfram.com/xid/0bsv1gx2v9710xb0ia-6c9di7

ReverseBiorthogonalSplineWavelet:

https://wolfram.com/xid/0bsv1gx2v9710xb0ia-fs79sv

https://wolfram.com/xid/0bsv1gx2v9710xb0ia-gmiqe8

https://wolfram.com/xid/0bsv1gx2v9710xb0ia-hthxz8


https://wolfram.com/xid/0bsv1gx2v9710xb0ia-ntfv84

https://wolfram.com/xid/0bsv1gx2v9710xb0ia-2ydklr

https://wolfram.com/xid/0bsv1gx2v9710xb0ia-fe4q6k


https://wolfram.com/xid/0bsv1gx2v9710xb0ia-l4xlsf

https://wolfram.com/xid/0bsv1gx2v9710xb0ia-ovf86t

https://wolfram.com/xid/0bsv1gx2v9710xb0ia-qly5se

Vector Data (6)
Plot the coefficients over a common horizontal axis using WaveletListPlot:

https://wolfram.com/xid/0bsv1gx2v9710xb0ia-gypdz4

https://wolfram.com/xid/0bsv1gx2v9710xb0ia-xm5ld4

Plot against a common vertical axis:

https://wolfram.com/xid/0bsv1gx2v9710xb0ia-ez6l51

Visualize coefficients as a function of time and refinement level using WaveletScalogram:

https://wolfram.com/xid/0bsv1gx2v9710xb0ia-c1j4n5
The coefficient indexes appear as tooltips when the mouse pointer is moved over a coefficient:

https://wolfram.com/xid/0bsv1gx2v9710xb0ia-di3ww


https://wolfram.com/xid/0bsv1gx2v9710xb0ia-i9a5e9

https://wolfram.com/xid/0bsv1gx2v9710xb0ia-kwq8bn

All coefficients are small except coarse coefficients {0,0,…}:

https://wolfram.com/xid/0bsv1gx2v9710xb0ia-bfxyna

https://wolfram.com/xid/0bsv1gx2v9710xb0ia-lji86v

Data oscillating at the highest resolvable frequency (Nyquist frequency):

https://wolfram.com/xid/0bsv1gx2v9710xb0ia-c7n0wl

https://wolfram.com/xid/0bsv1gx2v9710xb0ia-ne0a67

Only the first detail coefficient {1} is nonzero:

https://wolfram.com/xid/0bsv1gx2v9710xb0ia-cxc4yt

https://wolfram.com/xid/0bsv1gx2v9710xb0ia-nyp7xn

Data with large discontinuities:

https://wolfram.com/xid/0bsv1gx2v9710xb0ia-gl9hci

https://wolfram.com/xid/0bsv1gx2v9710xb0ia-fp30

Coarse coefficients {0,…} have the same large-scale structure as the data:

https://wolfram.com/xid/0bsv1gx2v9710xb0ia-fqn4ul

https://wolfram.com/xid/0bsv1gx2v9710xb0ia-g46hdy

Detail coefficients are sensitive to discontinuities:

https://wolfram.com/xid/0bsv1gx2v9710xb0ia-bi93r6

Data with both spatial and frequency structure:

https://wolfram.com/xid/0bsv1gx2v9710xb0ia-qcsku6

https://wolfram.com/xid/0bsv1gx2v9710xb0ia-c0drk1

Coarse coefficients {0,…} track the local mean of the data:

https://wolfram.com/xid/0bsv1gx2v9710xb0ia-dot1jc

https://wolfram.com/xid/0bsv1gx2v9710xb0ia-imnl1l

The first detail coefficient identifies the oscillatory region:

https://wolfram.com/xid/0bsv1gx2v9710xb0ia-72xvt

All coefficients on a common vertical axis:

https://wolfram.com/xid/0bsv1gx2v9710xb0ia-gxq0kb

Matrix Data (5)
Compute a two-dimensional stationary wavelet transform:

https://wolfram.com/xid/0bsv1gx2v9710xb0ia-gflx0m

View the tree of wavelet coefficients:

https://wolfram.com/xid/0bsv1gx2v9710xb0ia-q2twv6

Inverse transform to get back the original signal:

https://wolfram.com/xid/0bsv1gx2v9710xb0ia-xz2n41

Use dwd[…,"MatrixPlot"] to visualize each coefficient as a MatrixPlot:

https://wolfram.com/xid/0bsv1gx2v9710xb0ia-tj6pke


https://wolfram.com/xid/0bsv1gx2v9710xb0ia-svtxpu

Visualize wavelet coefficients at higher refinement levels:

https://wolfram.com/xid/0bsv1gx2v9710xb0ia-c7lg5h

https://wolfram.com/xid/0bsv1gx2v9710xb0ia-ldtwbr

In two dimensions, the vector of filtering operations in each direction can be computed:

https://wolfram.com/xid/0bsv1gx2v9710xb0ia-lhs0ib

Interpreting these vectors as binary digit expansions, you get wavelet index numbers:

https://wolfram.com/xid/0bsv1gx2v9710xb0ia-e2sxk5

Get the lowpass and highpass filters for a Haar wavelet:

https://wolfram.com/xid/0bsv1gx2v9710xb0ia-lhi79n

The resulting 2D filters are outer products of filters in the two directions:

https://wolfram.com/xid/0bsv1gx2v9710xb0ia-dc3ief


https://wolfram.com/xid/0bsv1gx2v9710xb0ia-ljd94e

Wavelet transform of step data:

https://wolfram.com/xid/0bsv1gx2v9710xb0ia-hfdje4
Data with a vertical discontinuity:

https://wolfram.com/xid/0bsv1gx2v9710xb0ia-n155zh

Only the vertical detail coefficients, wavelet index {…,1}, are nonzero:

https://wolfram.com/xid/0bsv1gx2v9710xb0ia-fcnbpi

Data with horizontal discontinuity:

https://wolfram.com/xid/0bsv1gx2v9710xb0ia-yv487p

Only the horizontal detail coefficients, wavelet index {…,2}, are nonzero:

https://wolfram.com/xid/0bsv1gx2v9710xb0ia-bpz7u8

Array Data (2)
Compute a three-dimensional stationary wavelet transform:

https://wolfram.com/xid/0bsv1gx2v9710xb0ia-wgoboy

https://wolfram.com/xid/0bsv1gx2v9710xb0ia-f8249l

Tree view of all coefficients:

https://wolfram.com/xid/0bsv1gx2v9710xb0ia-0ek2ai

Inverse transform to get back the original signal:

https://wolfram.com/xid/0bsv1gx2v9710xb0ia-gsidhc

Wavelet transform of a three-dimensional cross array:

https://wolfram.com/xid/0bsv1gx2v9710xb0ia-q65ymx

https://wolfram.com/xid/0bsv1gx2v9710xb0ia-6gkgva


https://wolfram.com/xid/0bsv1gx2v9710xb0ia-sxjayp

Visualize wavelet coefficients:

https://wolfram.com/xid/0bsv1gx2v9710xb0ia-gzdpgu

Energy of the original data is conserved within the transformed coefficients:

https://wolfram.com/xid/0bsv1gx2v9710xb0ia-57obwt

Image Data (2)
Transform an Image object:

https://wolfram.com/xid/0bsv1gx2v9710xb0ia-gmw99b


https://wolfram.com/xid/0bsv1gx2v9710xb0ia-yzn8qe

The inverse transform yields a reconstructed Image object:

https://wolfram.com/xid/0bsv1gx2v9710xb0ia-xlen9k

Wavelet coefficients are normally given as arrays of data for each image channel:

https://wolfram.com/xid/0bsv1gx2v9710xb0ia-79t4z

https://wolfram.com/xid/0bsv1gx2v9710xb0ia-lmi7qq

Number of channels and dimensions of the original image are the same:

https://wolfram.com/xid/0bsv1gx2v9710xb0ia-kqf5in

Get all coefficients as Image objects instead of arrays of data:

https://wolfram.com/xid/0bsv1gx2v9710xb0ia-9oty5

Get raw Image objects with no rescaling of color levels:

https://wolfram.com/xid/0bsv1gx2v9710xb0ia-ctsnnz

Get the inverse transform of the {0,1} coefficient as an Image object:

https://wolfram.com/xid/0bsv1gx2v9710xb0ia-hbdon

Sound Data (3)
Transform a Sound object:

https://wolfram.com/xid/0bsv1gx2v9710xb0ia-mineo


https://wolfram.com/xid/0bsv1gx2v9710xb0ia-jtcd5x

The inverse transform yields a reconstructed Sound object:

https://wolfram.com/xid/0bsv1gx2v9710xb0ia-jx08w

By default, coefficients are given as lists of data for each sound channel:

https://wolfram.com/xid/0bsv1gx2v9710xb0ia-bj4f7m

https://wolfram.com/xid/0bsv1gx2v9710xb0ia-kp8pm

Number of channels and data length in the original sound are the same:

https://wolfram.com/xid/0bsv1gx2v9710xb0ia-chexw1

Get the {0,1} coefficient as a Sound object:

https://wolfram.com/xid/0bsv1gx2v9710xb0ia-hqd4o6

Inverse transform of {0,0,1} coefficient as a Sound object:

https://wolfram.com/xid/0bsv1gx2v9710xb0ia-d4evuw

Browse all coefficients using a MenuView:

https://wolfram.com/xid/0bsv1gx2v9710xb0ia-jhcy39

https://wolfram.com/xid/0bsv1gx2v9710xb0ia-c9wmlc

Generalizations & Extensions (3)Generalized and extended use cases
StationaryWaveletTransform works on arrays of symbolic quantities:

https://wolfram.com/xid/0bsv1gx2v9710xb0ia-iue08m

https://wolfram.com/xid/0bsv1gx2v9710xb0ia-cqhoa

Inverse transform recovers the input exactly:

https://wolfram.com/xid/0bsv1gx2v9710xb0ia-zu4y

Specify any internal working precision:

https://wolfram.com/xid/0bsv1gx2v9710xb0ia-daoo2p

https://wolfram.com/xid/0bsv1gx2v9710xb0ia-hlsinj


https://wolfram.com/xid/0bsv1gx2v9710xb0ia-noliik

https://wolfram.com/xid/0bsv1gx2v9710xb0ia-bmqscn

The wavelets coefficients are complex:

https://wolfram.com/xid/0bsv1gx2v9710xb0ia-pma2rw

Inverse transform recovers the input:

https://wolfram.com/xid/0bsv1gx2v9710xb0ia-l82pnk

Options (3)Common values & functionality for each option
WorkingPrecision (3)
By default, WorkingPrecision->MachinePrecision is used:

https://wolfram.com/xid/0bsv1gx2v9710xb0ia-btupk0

https://wolfram.com/xid/0bsv1gx2v9710xb0ia-fvcmsi


https://wolfram.com/xid/0bsv1gx2v9710xb0ia-iwm7rm


https://wolfram.com/xid/0bsv1gx2v9710xb0ia-bomt1d

Use higher-precision computation:

https://wolfram.com/xid/0bsv1gx2v9710xb0ia-e7oo7e

https://wolfram.com/xid/0bsv1gx2v9710xb0ia-6lkrhl


https://wolfram.com/xid/0bsv1gx2v9710xb0ia-cqyqyd

Use WorkingPrecision->∞ for exact computation:

https://wolfram.com/xid/0bsv1gx2v9710xb0ia-m5fvtb

https://wolfram.com/xid/0bsv1gx2v9710xb0ia-5ais8y

Applications (3)Sample problems that can be solved with this function
Inverse Halftoning (1)
A simple wavelet-based inverse halftoning:

https://wolfram.com/xid/0bsv1gx2v9710xb0ia-1xzz51


https://wolfram.com/xid/0bsv1gx2v9710xb0ia-6cn82n
Apply GaussianFilter on the detail coefficients:

https://wolfram.com/xid/0bsv1gx2v9710xb0ia-1hv5q1

Numerical Differentiation (1)
Differentiate noisy data using wavelet transform:

https://wolfram.com/xid/0bsv1gx2v9710xb0ia-08loxn

https://wolfram.com/xid/0bsv1gx2v9710xb0ia-lg248n

https://wolfram.com/xid/0bsv1gx2v9710xb0ia-7wollf

Translation-Rotation-Transform (TRT) is used to reduce boundary effects by subtracting a linear component from the input signal:

https://wolfram.com/xid/0bsv1gx2v9710xb0ia-9i8iun

https://wolfram.com/xid/0bsv1gx2v9710xb0ia-0e9yv5

https://wolfram.com/xid/0bsv1gx2v9710xb0ia-w2krwf
Since HaarWavelet has one vanishing moment, choose it to perform a wavelet transform on :

https://wolfram.com/xid/0bsv1gx2v9710xb0ia-5v5pvi

https://wolfram.com/xid/0bsv1gx2v9710xb0ia-yhyx6q
Detail coefficients give the differentiation of the data. Coefficients at refinement level 4 are chosen to minimize noise:

https://wolfram.com/xid/0bsv1gx2v9710xb0ia-le9d3k
Rescale the differentiated values:

https://wolfram.com/xid/0bsv1gx2v9710xb0ia-8yk1yj

https://wolfram.com/xid/0bsv1gx2v9710xb0ia-hyr1f
Compare wavelet-based numerical differentiation with exact differentiation:

https://wolfram.com/xid/0bsv1gx2v9710xb0ia-hm2ezh

Compare with standard Wolfram Language numerical differentiation:

https://wolfram.com/xid/0bsv1gx2v9710xb0ia-842g6d

https://wolfram.com/xid/0bsv1gx2v9710xb0ia-orceoc

Image Fusion (1)
Add texture to an existing image:

https://wolfram.com/xid/0bsv1gx2v9710xb0ia-smhiig
Perform wavelet transform on both images:

https://wolfram.com/xid/0bsv1gx2v9710xb0ia-tzko9p

https://wolfram.com/xid/0bsv1gx2v9710xb0ia-b10r6p
Combine detail coefficients of the two images by taking their mean:

https://wolfram.com/xid/0bsv1gx2v9710xb0ia-3bn18q

https://wolfram.com/xid/0bsv1gx2v9710xb0ia-4yojav

https://wolfram.com/xid/0bsv1gx2v9710xb0ia-vw7m1m

https://wolfram.com/xid/0bsv1gx2v9710xb0ia-mzgj7z

https://wolfram.com/xid/0bsv1gx2v9710xb0ia-wrzk24
Append the coarse coefficient of the first image:

https://wolfram.com/xid/0bsv1gx2v9710xb0ia-gvwllb
Construct a new DiscreteWaveletData of the combined wavelet coefficients:

https://wolfram.com/xid/0bsv1gx2v9710xb0ia-lq3bzd

Reconstruct the combined image:

https://wolfram.com/xid/0bsv1gx2v9710xb0ia-fhr7kh

Properties & Relations (12)Properties of the function, and connections to other functions
StationaryWaveletPacketTransform computes the full tree of wavelet coefficients:

https://wolfram.com/xid/0bsv1gx2v9710xb0ia-cgjhd3

https://wolfram.com/xid/0bsv1gx2v9710xb0ia-e4t1li

StationaryWaveletTransform computes a subset of the full tree of coefficients:

https://wolfram.com/xid/0bsv1gx2v9710xb0ia-p3dq

https://wolfram.com/xid/0bsv1gx2v9710xb0ia-wochi

DiscreteWaveletTransform coefficients halve in length with each level of refinement:

https://wolfram.com/xid/0bsv1gx2v9710xb0ia-geoy4j

Rotated data gives different coefficients:

https://wolfram.com/xid/0bsv1gx2v9710xb0ia-fspmhk

StationaryWaveletTransform coefficients have the same length as the original data:

https://wolfram.com/xid/0bsv1gx2v9710xb0ia-ce5j56

Rotated data gives rotated coefficients:

https://wolfram.com/xid/0bsv1gx2v9710xb0ia-f9p8kx

The default refinement is given by :

https://wolfram.com/xid/0bsv1gx2v9710xb0ia-nvnob0

https://wolfram.com/xid/0bsv1gx2v9710xb0ia-k74t7s


https://wolfram.com/xid/0bsv1gx2v9710xb0ia-ccu2mo


https://wolfram.com/xid/0bsv1gx2v9710xb0ia-dzom29

https://wolfram.com/xid/0bsv1gx2v9710xb0ia-nqp5e2


https://wolfram.com/xid/0bsv1gx2v9710xb0ia-lsny6n

The energy norm is conserved for orthogonal wavelet families:

https://wolfram.com/xid/0bsv1gx2v9710xb0ia-40jjuu

https://wolfram.com/xid/0bsv1gx2v9710xb0ia-fgbdya

https://wolfram.com/xid/0bsv1gx2v9710xb0ia-ks8c24

The energy norm is approximately conserved for biorthogonal wavelet families:

https://wolfram.com/xid/0bsv1gx2v9710xb0ia-ihj98y

https://wolfram.com/xid/0bsv1gx2v9710xb0ia-hz2t90

https://wolfram.com/xid/0bsv1gx2v9710xb0ia-etc633


https://wolfram.com/xid/0bsv1gx2v9710xb0ia-bm042g

The mean of the data is captured at the maximum refinement level of the transform:

https://wolfram.com/xid/0bsv1gx2v9710xb0ia-zu45nt

https://wolfram.com/xid/0bsv1gx2v9710xb0ia-7tclnf
Extract the coefficient for the maximum refinement level:

https://wolfram.com/xid/0bsv1gx2v9710xb0ia-hqx9zn


https://wolfram.com/xid/0bsv1gx2v9710xb0ia-t3qkc


https://wolfram.com/xid/0bsv1gx2v9710xb0ia-5slunz

The sum of inverse transforms from individual coefficient arrays gives the original data:

https://wolfram.com/xid/0bsv1gx2v9710xb0ia-8csip2


https://wolfram.com/xid/0bsv1gx2v9710xb0ia-uwqql4

https://wolfram.com/xid/0bsv1gx2v9710xb0ia-sacrp

Individually inverse transform each wavelet coefficient array:

https://wolfram.com/xid/0bsv1gx2v9710xb0ia-f3ljg7


https://wolfram.com/xid/0bsv1gx2v9710xb0ia-bh52zs


https://wolfram.com/xid/0bsv1gx2v9710xb0ia-u8p9i

The sum gives the original data:

https://wolfram.com/xid/0bsv1gx2v9710xb0ia-fuhvs4

Compute stationary wavelet coefficients for periodic data:

https://wolfram.com/xid/0bsv1gx2v9710xb0ia-81usyq

https://wolfram.com/xid/0bsv1gx2v9710xb0ia-c6pxyh

https://wolfram.com/xid/0bsv1gx2v9710xb0ia-8059v1

https://wolfram.com/xid/0bsv1gx2v9710xb0ia-8xpc58

https://wolfram.com/xid/0bsv1gx2v9710xb0ia-nbr339
Coarse coefficients at level are given by
:

https://wolfram.com/xid/0bsv1gx2v9710xb0ia-nmsfh7

https://wolfram.com/xid/0bsv1gx2v9710xb0ia-iqmt4l

https://wolfram.com/xid/0bsv1gx2v9710xb0ia-8kw0h5

Detail coefficients at level are given by
:

https://wolfram.com/xid/0bsv1gx2v9710xb0ia-ofmhs6

https://wolfram.com/xid/0bsv1gx2v9710xb0ia-ccnq2x

https://wolfram.com/xid/0bsv1gx2v9710xb0ia-wl5c72

Compute partial stationary inverse wavelet transform:

https://wolfram.com/xid/0bsv1gx2v9710xb0ia-knxsvp

https://wolfram.com/xid/0bsv1gx2v9710xb0ia-115wba

https://wolfram.com/xid/0bsv1gx2v9710xb0ia-u99tzo

https://wolfram.com/xid/0bsv1gx2v9710xb0ia-hive0q

https://wolfram.com/xid/0bsv1gx2v9710xb0ia-rsdr3f
Coarse coefficients at level are given:

https://wolfram.com/xid/0bsv1gx2v9710xb0ia-24erqj

https://wolfram.com/xid/0bsv1gx2v9710xb0ia-moxip
Detail coefficients at level are given:

https://wolfram.com/xid/0bsv1gx2v9710xb0ia-qejkrz

https://wolfram.com/xid/0bsv1gx2v9710xb0ia-kpgqsd
Inverse wavelet transform at level is given by
:

https://wolfram.com/xid/0bsv1gx2v9710xb0ia-xu196g

https://wolfram.com/xid/0bsv1gx2v9710xb0ia-j987r4
Reconstruct coarse coefficients {0,0} at refinement level :

https://wolfram.com/xid/0bsv1gx2v9710xb0ia-t9kl1n

Reconstruct coarse coefficients {0} at refinement level :

https://wolfram.com/xid/0bsv1gx2v9710xb0ia-vxh7ou

Compute a Haar stationary wavelet transform in one dimension:

https://wolfram.com/xid/0bsv1gx2v9710xb0ia-kywxlf

https://wolfram.com/xid/0bsv1gx2v9710xb0ia-f0nc2a
Compute {0} and {1} wavelet coefficients:

https://wolfram.com/xid/0bsv1gx2v9710xb0ia-bzen0a

Compare with DiscreteWaveletPacketTransform:

https://wolfram.com/xid/0bsv1gx2v9710xb0ia-zcrryy

In two dimensions, a separate filter is applied in each dimension:

https://wolfram.com/xid/0bsv1gx2v9710xb0ia-cq5vc4
Lowpass and highpass filters for a Haar wavelet:

https://wolfram.com/xid/0bsv1gx2v9710xb0ia-bzl44r
Haar wavelet transform of matrix data:

https://wolfram.com/xid/0bsv1gx2v9710xb0ia-5n59bt

https://wolfram.com/xid/0bsv1gx2v9710xb0ia-6zl4c

Compare with DiscreteWaveletPacketTransform using HaarWavelet:

https://wolfram.com/xid/0bsv1gx2v9710xb0ia-maqks4

https://wolfram.com/xid/0bsv1gx2v9710xb0ia-s166s

Image channels are transformed individually:

https://wolfram.com/xid/0bsv1gx2v9710xb0ia-gfhws8
Combine {0} coefficients of separately transformed image channels:

https://wolfram.com/xid/0bsv1gx2v9710xb0ia-kh8lp

Compare with {0} coefficient of StationaryWaveletTransform of the original image:

https://wolfram.com/xid/0bsv1gx2v9710xb0ia-t91ou

https://wolfram.com/xid/0bsv1gx2v9710xb0ia-byduzg


https://wolfram.com/xid/0bsv1gx2v9710xb0ia-kbuh9g

Wolfram Research (2010), StationaryWaveletTransform, Wolfram Language function, https://reference.wolfram.com/language/ref/StationaryWaveletTransform.html (updated 2017).
Text
Wolfram Research (2010), StationaryWaveletTransform, Wolfram Language function, https://reference.wolfram.com/language/ref/StationaryWaveletTransform.html (updated 2017).
Wolfram Research (2010), StationaryWaveletTransform, Wolfram Language function, https://reference.wolfram.com/language/ref/StationaryWaveletTransform.html (updated 2017).
CMS
Wolfram Language. 2010. "StationaryWaveletTransform." Wolfram Language & System Documentation Center. Wolfram Research. Last Modified 2017. https://reference.wolfram.com/language/ref/StationaryWaveletTransform.html.
Wolfram Language. 2010. "StationaryWaveletTransform." Wolfram Language & System Documentation Center. Wolfram Research. Last Modified 2017. https://reference.wolfram.com/language/ref/StationaryWaveletTransform.html.
APA
Wolfram Language. (2010). StationaryWaveletTransform. Wolfram Language & System Documentation Center. Retrieved from https://reference.wolfram.com/language/ref/StationaryWaveletTransform.html
Wolfram Language. (2010). StationaryWaveletTransform. Wolfram Language & System Documentation Center. Retrieved from https://reference.wolfram.com/language/ref/StationaryWaveletTransform.html
BibTeX
@misc{reference.wolfram_2025_stationarywavelettransform, author="Wolfram Research", title="{StationaryWaveletTransform}", year="2017", howpublished="\url{https://reference.wolfram.com/language/ref/StationaryWaveletTransform.html}", note=[Accessed: 29-March-2025
]}
BibLaTeX
@online{reference.wolfram_2025_stationarywavelettransform, organization={Wolfram Research}, title={StationaryWaveletTransform}, year={2017}, url={https://reference.wolfram.com/language/ref/StationaryWaveletTransform.html}, note=[Accessed: 29-March-2025
]}