WOLFRAM

gives the stationary wavelet packet transform (SWPT) of an array of data.

gives the stationary wavelet packet transform using the wavelet wave.

gives the stationary wavelet packet transform using r levels of refinement.

Details and Options

Examples

open allclose all

Basic Examples  (3)Summary of the most common use cases

Compute a stationary wavelet packet transform:

Out[1]=1

The resulting DiscreteWaveletData represents a full tree of wavelet coefficients:

Out[2]=2

The inverse transform reconstructs the input:

Out[3]=3

Transform an audio signal:

Out[1]=1
Out[2]=2

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

Out[3]=3
Out[4]=4

Compute the inverse transform:

Out[5]=5

Transform an Image object:

Out[1]=1

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

Out[2]=2

Compute the inverse transform:

Out[3]=3

Scope  (33)Survey of the scope of standard use cases

Basic Uses  (4)

Useful properties can be extracted from the DiscreteWaveletData object:

Out[1]=1

Get a full list of properties:

Out[2]=2

Get data and coefficient dimensions:

Out[3]=3
Out[4]=4

Use Normal to get all wavelet coefficients explicitly:

Out[2]=2

Also use All as an argument to get all coefficients:

Out[3]=3

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

Out[4]=4

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

Out[2]=2
Out[3]=3

Extract specific coefficient arrays:

Out[4]=4
Out[5]=5

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

Out[6]=6

Extract all coefficients whose wavelet indexes match a pattern:

Out[7]=7
Out[8]=8

Use a higher refinement level to increase the frequency resolution:

Out[2]=2

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

Out[4]=4

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

Out[6]=6

Wavelet Families  (10)

Compute the wavelet packet transform using different wavelet families:

Compare the coefficients:

Out[3]=3

Use different families of wavelets to capture different features:

Out[2]=2

HaarWavelet (default):

Out[4]=4

DaubechiesWavelet:

Out[3]=3

BattleLemarieWavelet:

Out[3]=3

BiorthogonalSplineWavelet:

Out[3]=3

CoifletWavelet:

Out[3]=3

MeyerWavelet:

Out[3]=3

ReverseBiorthogonalSplineWavelet:

Out[3]=3

ShannonWavelet:

Out[3]=3

SymletWavelet:

Out[3]=3

1-Dimensional Data  (6)

Plot the coefficients over a common horizontal axis using WaveletListPlot:

Out[2]=2

Plot against a common vertical axis:

Out[3]=3

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

The coefficient indexes appear as tooltips when the mouse pointer is moved over a coefficient:

Out[2]=2

Constant data:

Out[2]=2

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

Out[4]=4

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

Out[2]=2

Only the first detail coefficient {1} and its coarse child coefficients {1,0,0,} are not small:

Out[4]=4

Data with large discontinuities:

Out[2]=2

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

Out[4]=4

Detail coefficients are sensitive to discontinuities:

Out[5]=5

Data with both spatial and frequency structure:

Out[2]=2

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

Out[4]=4

First detail coefficient {1} and its coarse child coefficients {1,0,} represent the oscillations:

Out[5]=5

All coefficients on a common vertical axis:

Out[6]=6

2-Dimensional Data  (5)

Compute a two-dimensional stationary wavelet packet transform:

Out[1]=1

View the tree of wavelet coefficients:

Out[2]=2

Inverse transform to get back the original signal:

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

Out[1]=1
Out[2]=2

Visualize diagonal detail coefficient {3} and its child coefficients {3,__}:

Out[4]=4

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

Out[1]=1

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

Out[2]=2

Get the lowpass and highpass filters for a Haar wavelet:

Out[1]=1

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

Out[2]=2
Out[3]=3

Wavelet transform of step data:

Data with a vertical discontinuity:

Out[2]=2

All horizontal and diagonal detail coefficients, wavelet index {___,2|3,___}, are zero:

Out[3]=3

Data with horizontal discontinuity:

Out[4]=4

All vertical and diagonal detail coefficients, wavelet index {___,1|3,___}, are zero:

Out[5]=5

Higher-Dimensional Data  (2)

Compute a three-dimensional wavelet packet transform:

Out[2]=2

List all computed wavelet coefficients:

Out[3]=3

Inverse transform to get back the original signal:

Out[4]=4

Wavelet transform of a three-dimensional cross array:

Out[2]=2
Out[3]=3

Visualize lowpass wavelet coefficients {___,0}:

Out[4]=4

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

Out[5]=5

Audio Data  (2)

Transform an Audio object:

Out[2]=2

The inverse transform yields a reconstructed audio:

Out[3]=3

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

Out[2]=2

Get the {1,1} coefficient as an Audio object:

Out[3]=3

Inverse transform of {1,1} coefficient as an Audio object:

Out[4]=4

Sound Data  (2)

Transform a Sound object:

Out[1]=1
Out[2]=2

The inverse transform yields a reconstructed audio object:

Out[3]=3

Browse all coefficients using a MenuView:

Out[2]=2

Image Data  (2)

Transform an Image object:

Out[1]=1
Out[2]=2

The inverse transform yields a reconstructed Image object:

Out[3]=3

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

Out[2]=2

Get all coefficients as Image objects instead:

Get raw Image objects with no rescaling of color levels:

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

Out[5]=5

Generalizations & Extensions  (3)Generalized and extended use cases

StationaryWaveletPacketTransform works on arrays of symbolic quantities:

Out[2]=2

Inverse transform recovers the input exactly:

Out[3]=3

Specify any internal working precision:

Out[2]=2

Use complex-valued data:

Out[2]=2

The wavelets coefficients are complex:

Out[3]=3

Options  (3)Common values & functionality for each option

WorkingPrecision  (3)

By default, WorkingPrecision->MachinePrecision is used:

Out[2]=2
Out[3]=3
Out[4]=4

Use higher-precision computation:

Out[2]=2
Out[3]=3

Use WorkingPrecision-> for exact computation:

Out[2]=2

Properties & Relations  (10)Properties of the function, and connections to other functions

StationaryWaveletPacketTransform computes the full tree of wavelet coefficients:

Out[2]=2

StationaryWaveletTransform computes a subset of the full tree of coefficients:

Out[4]=4

DiscreteWaveletPacketTransform coefficients halve in length with each level of refinement:

Out[1]=1

Rotated data gives different coefficients:

Out[2]=2

StationaryWaveletPacketTransform coefficients have the same length as the data:

Out[3]=3

Rotated data gives rotated coefficients:

Out[4]=4

The default refinement is given by Min[Round[Log2[Min[Dimensions[data]]]],4]:

Out[2]=2
Out[3]=3

In higher dimensions:

Out[5]=5
Out[6]=6

The energy norm is conserved for orthogonal wavelet families:

Out[3]=3

The energy norm is approximately conserved for biorthogonal wavelet families:

Out[3]=3
Out[4]=4

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

Extract the coefficient for the maximum refinement level:

Out[3]=3
Out[4]=4
Out[5]=5

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

Out[1]=1
Out[3]=3

Individually inverse transform each wavelet coefficient array:

Out[4]=4
Out[5]=5
Out[6]=6
Out[7]=7

The sum gives the original data:

Out[8]=8

Compute a Haar stationary wavelet packet transform in one dimension:

Compute {0} and {1} wavelet coefficients:

Out[3]=3

Compare with StationaryWaveletPacketTransform:

Out[4]=4

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

Lowpass and highpass filters for Haar wavelet:

Haar wavelet transform of matrix data:

Out[4]=4

Compare with StationaryWaveletPacketTransform using HaarWavelet:

Out[6]=6

Image channels are transformed individually:

Out[1]=1

Combine {0} coefficients of separately transformed image channels:

Out[2]=2

Compare with {0} coefficient of StationaryWaveletPacketTransform of original image:

Out[4]=4

The images are identical:

Out[5]=5
Wolfram Research (2010), StationaryWaveletPacketTransform, Wolfram Language function, https://reference.wolfram.com/language/ref/StationaryWaveletPacketTransform.html (updated 2017).
Wolfram Research (2010), StationaryWaveletPacketTransform, Wolfram Language function, https://reference.wolfram.com/language/ref/StationaryWaveletPacketTransform.html (updated 2017).

Text

Wolfram Research (2010), StationaryWaveletPacketTransform, Wolfram Language function, https://reference.wolfram.com/language/ref/StationaryWaveletPacketTransform.html (updated 2017).

Wolfram Research (2010), StationaryWaveletPacketTransform, Wolfram Language function, https://reference.wolfram.com/language/ref/StationaryWaveletPacketTransform.html (updated 2017).

CMS

Wolfram Language. 2010. "StationaryWaveletPacketTransform." Wolfram Language & System Documentation Center. Wolfram Research. Last Modified 2017. https://reference.wolfram.com/language/ref/StationaryWaveletPacketTransform.html.

Wolfram Language. 2010. "StationaryWaveletPacketTransform." Wolfram Language & System Documentation Center. Wolfram Research. Last Modified 2017. https://reference.wolfram.com/language/ref/StationaryWaveletPacketTransform.html.

APA

Wolfram Language. (2010). StationaryWaveletPacketTransform. Wolfram Language & System Documentation Center. Retrieved from https://reference.wolfram.com/language/ref/StationaryWaveletPacketTransform.html

Wolfram Language. (2010). StationaryWaveletPacketTransform. Wolfram Language & System Documentation Center. Retrieved from https://reference.wolfram.com/language/ref/StationaryWaveletPacketTransform.html

BibTeX

@misc{reference.wolfram_2025_stationarywaveletpackettransform, author="Wolfram Research", title="{StationaryWaveletPacketTransform}", year="2017", howpublished="\url{https://reference.wolfram.com/language/ref/StationaryWaveletPacketTransform.html}", note=[Accessed: 06-June-2025 ]}

@misc{reference.wolfram_2025_stationarywaveletpackettransform, author="Wolfram Research", title="{StationaryWaveletPacketTransform}", year="2017", howpublished="\url{https://reference.wolfram.com/language/ref/StationaryWaveletPacketTransform.html}", note=[Accessed: 06-June-2025 ]}

BibLaTeX

@online{reference.wolfram_2025_stationarywaveletpackettransform, organization={Wolfram Research}, title={StationaryWaveletPacketTransform}, year={2017}, url={https://reference.wolfram.com/language/ref/StationaryWaveletPacketTransform.html}, note=[Accessed: 06-June-2025 ]}

@online{reference.wolfram_2025_stationarywaveletpackettransform, organization={Wolfram Research}, title={StationaryWaveletPacketTransform}, year={2017}, url={https://reference.wolfram.com/language/ref/StationaryWaveletPacketTransform.html}, note=[Accessed: 06-June-2025 ]}