InverseWaveletTransform
gives the inverse wavelet transform of a DiscreteWaveletData object dwd.
InverseWaveletTransform[dwd,wave]
gives the inverse transform using the wavelet wave.
InverseWaveletTransform[dwd,wave,wind]
gives the inverse transform from the wavelet coefficients specified by wind.
Details and Options
- InverseWaveletTransform computes the inverse transform of discrete forward transforms such as DiscreteWaveletTransform etc.
- The possible wavelets wave are the same as for the forward wavelet transforms.
- The default wave is Automatic, which is taken to be dwd["Wavelet"].
- The possible specifications for wind are the same as used by DiscreteWaveletData.
- The default wind is Automatic, which is taken to be dwd["BasisIndex"].
- InverseWaveletTransform[dwd,wave,wind] computes the inverse transform using only the wavelet coefficients specified by wind; other coefficients are set to be zero.
- The inverse transform works recursively by computing coefficients with wavelet index {w1,…,wn-1} from coefficients with wavelet index {w1,…,wn-1,wn}.
- An explicit wind specification needs to be consistent. A wind specification is consistent if for each {w1,…,wn} that is included no {w1,…,wk} for k<n is included.
- InverseWaveletTransform[dwd,wave,r] can be used to inverse transform the r lowest levels of the wavelet tree.
- The default level r is given by the number of refinement levels n in dwd. With r<n a new DiscreteWaveletData object is returned with n-r refinement levels.
Examples
open allclose allBasic Examples (3)
Perform a discrete wavelet transform:
Inverse transform recovers the original data:
DiscreteWaveletData representing modified wavelet image coefficients:
Inverse transform gives filtered image:
DiscreteWaveletData representing an audio signal:
Inverse transform using refinement level 5 coefficients only:
Scope (14)
Basic Uses (8)
Inverse wavelet transform DiscreteWaveletData from any discrete forward transform:
The inverse transform is exact for data directly from the forward transform:
Inverse wavelet transform modified DiscreteWaveletData:
The inverse is computed from the modified wavelet coefficients:
Inverse wavelet transform using specified wavelet coefficients only:
Inverse transform only the detail coefficient {0,1}:
Inverse transform all wavelet coefficients matching {0,_}, setting other coefficients to zero:
Inverse transform an explicitly constructed DiscreteWaveletData object:
The type of wavelet transform is inferred from the form of the specified coefficients:
Unspecified coefficients are taken to be zero:
Specify a different wavelet to use in the inverse transform:
By default, the wavelet used in the forward transform is chosen:
For array data, the inverse transform is an array with the same dimensions:
For image data, the inverse transform is given as an Image object:
The image has the same dimensions and number of color channels as the original data:
For sound data, the inverse transform is given as a Sound object:
The sound has the same duration, sampling rate, and number of channels as the original data:
Reconstruction Basis (6)
A subset of the available coefficients is used in the inverse transform:
dwd["BasisIndex"] gives the coefficients used by default in the inverse transform:
Use dwd["TreeView"] to get a tree plot of all coefficients with the default basis highlighted:
Compute the inverse transform using the default basis of coefficients:
Compute the inverse transform using a specific basis:
Use a specific subset of a basis, with the other coefficients taken to be zero:
Compute the inverse transform of a single coefficient:
A standard basis is chosen as the default for all non-packet DiscreteWaveletData:
The basis includes the detail coefficients {…,1} and the last coarse coefficient {…,0}:
The default basis for packet transform data uses coefficients at the highest refinement level:
For packet transform data, the wavelet basis can be changed using WaveletBestBasis:
Choose the basis that minimizes the information entropy of the coefficients:
Highlight each basis in a tree plot of all coefficients:
For data directly from packet transforms, the inverse transform is independent of the basis:
Compare the inverse transform for several different full wavelet basis specifications:
For modified wavelet data, the inverse transform can depend on the basis chosen:
Generalizations & Extensions (2)
Partial inverse wavelet transform:
Obtain a DiscreteWaveletData with 1 less level of refinement:
Visualize wavelet coefficients remaining after inverting the lowest levels of refinement:
InverseWaveletTransform[dwd] is equivalent to inverting all levels of refinement:
Inverse transform of complex wavelet coefficients:
InverseWaveletTransform gives the exact inverse transform:
Applications (8)
Wavelet Synthesis (2)
Discrete wavelet data consisting of noise in detail coefficient {0,…,1} at refinement level :
Use inverse wavelet transform to synthesize noise on a single specific scale:
Stationary wavelet matrix data consisting of noise in vertical detail coefficient {2,2} only:
Use inverse wavelet transform to synthesize noisy data:
Noise in different wavelet coefficients leads to different kinds of synthesized noisy data:
Inverse Discrete Wavelet Transform (3)
Discrete wavelet transform data with the first coarse coefficient equal to :
Visualize the inverse transform for different coarse coefficients:
Discrete wavelet transform data with the first detail coefficient equal to :
Visualize the inverse transform for different detail coefficients:
Discrete wavelet packet transform data with wavelet coefficients :
Visualize the inverse transform of each coefficient separately:
The set of inverse transforms forms a basis for the signal space :
Inverse Stationary Wavelet Transform (3)
Stationary wavelet transform data with the first coarse coefficient equal to :
Visualize the inverse transform for different coarse coefficients:
Stationary wavelet transform data with the first detail coefficient equal to :
Visualize the inverse transform for different detail coefficients:
Stationary wavelet packet transform data with wavelet coefficients :
Visualize the inverse transform of each component of each coefficient separately:
Properties & Relations (7)
InverseWaveletTransform is the exact inverse of transforms using an orthogonal wavelet:
Use the orthogonal HaarWavelet:
The inverse is inexact for nonorthogonal wavelet families such as ShannonWavelet:
By default, coefficients in dwd["BasisIndex"] are used in the inverse:
Set all other coefficients to zero:
The inverse using the default basis is unaffected:
InverseWaveletTransform[…,…,wind] effectively sets other wavelet coefficients to zero:
Explicitly set other wavelet coefficients to zero:
InverseWaveletTransform[…,…,wind] computes the inverse from the coefficients wind:
dwd[wind,"Inverse"] computes the inverse of each coefficient separately:
The total gives the same result as InverseWaveletTransform:
Use ListLinePlot to plot inverse transforms of individual vector coefficients:
dwd[wind,{"Inverse","ListPlot"}] gives a simple list plot of each inverse transform:
WaveletListPlot[dwd,wind,Method->"Inverse"->True] plots inverses together:
Use MatrixPlot to plot inverse transforms of individual matrix coefficients:
dwd[wind,{"Inverse","MatrixPlot"}] gives a simple matrix plot of each inverse:
Inverse transforms of individual coefficients from image data are given as Image objects:
Text
Wolfram Research (2010), InverseWaveletTransform, Wolfram Language function, https://reference.wolfram.com/language/ref/InverseWaveletTransform.html.
CMS
Wolfram Language. 2010. "InverseWaveletTransform." Wolfram Language & System Documentation Center. Wolfram Research. https://reference.wolfram.com/language/ref/InverseWaveletTransform.html.
APA
Wolfram Language. (2010). InverseWaveletTransform. Wolfram Language & System Documentation Center. Retrieved from https://reference.wolfram.com/language/ref/InverseWaveletTransform.html