This is documentation for Mathematica 8, which was
based on an earlier version of the Wolfram Language.

# DiscreteWaveletPacketTransform

 DiscreteWaveletPacketTransform[data] gives the discrete wavelet packet transform (DWPT) of an array of data. DiscreteWaveletPacketTransformgives the discrete wavelet packet transform using the wavelet wave. DiscreteWaveletPacketTransformgives the discrete wavelet packet transform using r levels of refinement. DiscreteWaveletPacketTransformgives the discrete wavelet packet transform of an image. DiscreteWaveletPacketTransformgives the discrete wavelet packet transform of sampled sound.
• 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 wavelet 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
• 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.
• With refinement level Full, r is given by .
• 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 low-pass filter coefficients and are high-pass filter coefficients that are defined for each wavelet family.
• The dimensions of and are given by where is the input data dimension and fl is the filter length for the corresponding wspec.
• The following options can be given:
 Method Automatic method to use Padding "Periodic" how to extend data beyond boundaries WorkingPrecision MachinePrecision precision to use in internal computations
Compute a wavelet packet transform:
The resulting DiscreteWaveletData represents a full tree of wavelet coefficients:
The inverse transform reconstructs the input:
Transform an Image object:
Use to extract coefficient images:
Compute the inverse transform:
Transform a sampled Sound object:
Compute a wavelet packet transform:
 Out[1]=
The resulting DiscreteWaveletData represents a full tree of wavelet coefficients:
 Out[2]=
The inverse transform reconstructs the input:
 Out[3]=

Transform an Image object:
 Out[1]=
Use to extract coefficient images:
 Out[2]=
Compute the inverse transform:
 Out[3]=

Transform a sampled Sound object:
 Out[1]=
 Out[2]=
 Out[3]=
 Scope   (34)
Useful properties can be extracted from the DiscreteWaveletData object:
Get a full list of properties:
Get data and coefficient dimensions:
Use Normal to get all wavelet coefficients explicitly:
Also use All as an argument to get all coefficients:
Use Automatic to get only the coefficients used in the inverse transform:
Use the or to find out what wavelet coefficients are available:
Extract specific coefficient arrays:
Extract several wavelet coefficients corresponding to a list of wavelet index specifications:
Extract all coefficients whose wavelet indexes match a pattern:
Use WaveletBestBasis to compute an optimal basis of wavelet packet coefficients:
Highlight the best basis in a block grid of all coefficients:
Extract the best basis using :
The computed best basis is used by default in functions like WaveletListPlot:
Use a higher refinement level to increase the frequency resolution:
With a smaller refinement level, more of the signal energy is left in :
With further refinement, is resolved into further components:
Compute the wavelet packet transform using different wavelet families:
Compare the coefficients:
Use different families of wavelets to capture different features:
HaarWavelet (default):
Plot the coefficients over a common horizontal axis using WaveletListPlot:
Plot against a common vertical axis:
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:
WaveletScalogram of the best tree representation of the data:
Constant data:
All coefficients are small except coarse coefficients :
Data oscillating at the highest resolvable frequency (Nyquist frequency):
Only the first detail coefficient and its coarse child coefficients are not small:
Data with large discontinuities:
Coarse coefficients have the same large-scale structure as the data:
Detail coefficients are sensitive to discontinuities:
Data with both spatial and frequency structure:
Coarse coefficients track the local mean of the data:
First detail coefficient and its coarse child coefficients represent the oscillations:
All coefficients on a common vertical axis:
Compute a two-dimensional wavelet packet transform:
View the tree of wavelet coefficients:
Inverse transform to get back the original signal:
Use WaveletMatrixPlot to visualize the different wavelet coefficients:
WaveletMatrixPlot of best tree representation:
In two dimensions, the vector of filtering operations in each direction can be computed:
Interpreting these vectors as binary digit expansions results in wavelet index numbers:
Get the low-pass and high-pass filters for a Haar wavelet:
The resulting 2D filters are outer products of filters in the two directions:
Wavelet transform of step data:
Data with a vertical discontinuity:
All horizontal and diagonal detail coefficients, wavelet index , are zero:
Data with horizontal discontinuity:
All vertical and diagonal detail coefficients, wavelet index , are zero:
Data with diagonal discontinuity:
All horizontal and vertical detail coefficients, wavelet index , are zero:
Compute a three-dimensional wavelet packet transform:
Block grid view of all coefficients:
Wavelet transform of a three-dimensional cross array:
Visualize low-pass wavelet coefficients :
Energy of the original data is conserved within the transformed coefficients:
Transform an Image object:
The inverse transform yields a reconstructed Image object:
Wavelet coefficients are normally given as lists of data for each image channel:
Get all coefficients as Image objects instead:
Get raw Image objects with no rescaling of color levels:
Get the inverse transform of the coefficient as an Image object:
Compute a best tree of coefficients from a packet transform of image data:
Plot the best tree in a hierarchical grid using WaveletImagePlot:
Transform a Sound object:
The inverse transform yields a reconstructed Sound object:
By default, coefficients are given as lists of data for each sound channel:
Get the coefficient as a Sound object:
Inverse transform of coefficient as a Sound object:
Compute a best tree of coefficients from a packet transform of sound data:
Browse the best tree coefficients using a MenuView:
DiscreteWaveletPacketTransform works on arrays of symbolic quantities:
Inverse transform recovers the input exactly:
Specify any internal working precision:
Use complex-valued data:
The wavelets coefficients are complex:
 Options   (5)
The settings for Padding are the same as the methods for ArrayPad, including :
:
:
:
:
:
:
padding lessens boundary effects for non-periodic data:
By default, WorkingPrecision is used:
Use higher-precision computation:
With numbers close to zero, accuracy is the better indicator of the number of correct digits:
Use WorkingPrecision for exact computation:
 Applications   (3)
The default reconstruction tree contains the coefficients at the maximum refinement level:
Choose a reconstruction tree with energy concentrated in a small number of coefficients:
Plot the best tree coefficients against a common vertical axis:
Visualize default reconstruction tree coefficients for image data:
Compute the reconstruction tree whose coefficients have the smallest total log energy:
Lossless compression of matrix data:
In the best tree wavelet packet representation many coefficients are zero:
Count nonzero coefficients as a measure of compressed size:
Nonzero values in original data:
Length of data:
DiscreteWaveletPacketTransform computes the full tree of wavelet coefficients:
DiscreteWaveletTransform computes a subset of the full tree of coefficients:
DiscreteWaveletPacketTransform coefficients halve in length with each level of refinement:
Rotated data gives different coefficients:
StationaryWaveletPacketTransform coefficients have the same length as the original data:
Rotated data gives rotated coefficients:
Multidimensional discrete wavelet transform is related to one-dimensional packet transform:
For Haar wavelet (default) and data length , the computed coefficients are identical:
The default refinement is given by Min[Round[Log2[Min[Dimensions[data]]]], 4]:
In higher dimensions:
The energy norm is conserved for orthogonal wavelet families:
The energy norm is approximately conserved for biorthogonal wavelet families:
The mean of the data is captured at the maximum refinement level of the transform:
Extract the coefficient for the maximum refinement level:
Compensate for the normalization at each refinement level:
The sum of inverse transforms from individual coefficient arrays gives the original data:
Individually inverse transform each wavelet coefficient array:
The sum gives the original data:
HaarWavelet corresponds to averaging (low-pass filter) and differencing (high-pass filter):
Compute and wavelet coefficients:
In two dimensions a separate filter is applied in each dimension:
Low-pass and high-pass filters for Haar wavelet:
Haar wavelet transform of matrix data:
Image channels are transformed individually:
Combine coefficients of separately transformed image channels:
Compare with coefficient of DiscreteWaveletPacketTransform of original image:
The images are identical:
Padding can affect the total energy of wavelet coefficients:
Energy is not conserved:
Pad with 0s to ensure energy conservation in the coefficients:
New in 8