DiscreteTransforms
InverseDiscreteWaveletTransform
compute the inverse discrete wavelet transform of data
Calling Sequence
Parameters
Options
Description
Examples
InverseDiscreteWaveletTransform(A1, A2, w1, w2)
InverseDiscreteWaveletTransform(A1, A2, w1, w2, options)
InverseDiscreteWaveletTransform(A1, A2, Wavelet, WaveletParams, options)
InverseDiscreteWaveletTransform(n, A1, A2, dim, w1, w1, A, options)
InverseDiscreteWaveletTransform(n, m, A1, A2, dim, w1, w1, A, options)
InverseDiscreteWaveletTransform(n, A1, A2, dim, Wavelet, WaveletParams, A, options)
InverseDiscreteWaveletTransform(n, m, A1, A2, dim, Wavelet, WaveletParams, A, options)
A1, A2
-
Vector, Matrix, or Array of datatype=float[8]; the data to be inverse transformed
w1, w2
Vectors of datatype=float[8] of the same length; the high and low pass synthesis filters
Wavelet
string or name; the name of a supported wavelet family
WaveletParams
positive integer or list of two positive integers; the parameters to the family Wavelet
n
(optional) positive integer; the number of data points transformed in the original data
dim
(optional) integer; the dimension to be inverse transformed in A, if A has more than one dimension
A
(optional) Vector, Matrix, or Array of datatype=float[8]; an rtable in which to store the inverse transformed data
m
(optional) positive integer; the number of inverse transforms to be done
options
(optional) equation(s) of the form keyword = value, where keyword is endconditions or storagetype
endconditions can be periodic, zeros, or reflection.
endconditions determines how data was generated to deal with convolutions near the end of the signal in the forward transform. Data must always be inverted with the same setting of endconditions as it was transformed with.
See DiscreteWaveletTransform for a description of end conditions.
Warning: With almost all orthogonal and biorthogonal wavelets, DiscreteWaveletTransform can only be inverted with endconditions=periodic.
The default value of this option is endconditions=periodic.
storagetype can be standard or singlearray.
Note that the option storagetype=nodownsample is not available for InverseDiscreteWaveletTransform.
Data should always be inverse transformed with the same setting of storagetype as it was transformed with.
If storagetype=standard, both A1 and A2 must be provided.
If storagetype=singlearray, only A1 should be provided.
The default value of this option is storagetype=standard.
The InverseDiscreteWaveletTransform command inverts DiscreteWaveletTransform on data A1 and A2. If A is provided, the inverse transformed data is stored in it and it is returned. Otherwise, A is created before it is returned.
If A is created, then it is created to be of the same type, and have the same options, as A1.
If provided, Wavelet and WaveletParams must be supported by WaveletCoefficients.
If Wavelet is an orthogonal family, then
InverseDiscreteWaveletTransform(A, Wavelet, WaveletParams)
is equivalent to
InverseDiscreteWaveletTransform(A, WaveletCoefficients(Wavelet,WaveletParams))
If Wavelet is a biorthogonal family, then
InverseDiscreteWaveletTransform(A, op(1..2,[WaveletCoefficients(Wavelet,op(WaveletParams))]))
If A has more than one dimension, dim must be provided.
Note that n is the size of the original data, not the transformed data. Specifying n indicates that n points were transformed, so if storagetype=standard, then n/2 points in each of A1 and A2 are considered in the inverse.
If A1 and A2 have more than one dimension, specifying m potentially stops InverseDiscreteWaveletTransform from transforming all the data in A1 and A2 along dimension dim. Instead, only m inverse transforms are performed. So, for example, if A1 and A2 are Matrices and m=1, then only the first row or column of A1 and A2 is inverse transformed.
m can only be specified if n is also provided.
Note: Currently, only Arrays of 1 or 2 dimensions can be transformed.
with⁡DiscreteTransforms
DiscreteWaveletTransform,FourierTransform,InverseDiscreteWaveletTransform,InverseFourierTransform,WaveletCoefficients,WaveletPlot
V≔Vector⁡10,i↦i,datatype=float8:
w1,w2≔WaveletCoefficients⁡Daubechies,4:
V1,V2≔DiscreteWaveletTransform⁡V,w1,w2:
InverseDiscreteWaveletTransform⁡V1,V2,w1,w2
1.2.000000000000003.000000000000004.000000000000005.000000000000006.000000000000007.000000000000008.9.10.0000000000000
V1≔DiscreteWaveletTransform⁡V,w1,w2,storagetype=singlearray:
InverseDiscreteWaveletTransform⁡V1,w1,w2,storagetype=singlearray
Here is an example of how the columns and then the rows of a Matrix can be transformed and then inverted, using a biorthogonal wavelet. To illustrate the use of the n and m parameters, transform a 6 by 6 block of a 7 by 7 Matrix.
M≔Matrix⁡7,7,datatype=float8,i,j↦i+10⋅j:
temp≔Matrix⁡7,7,datatype=float8:
T≔Matrix⁡7,7,datatype=float8:
w1a,w2a,w1s,w2s≔WaveletCoefficients⁡BiorthogonalSpline,2,2:
DiscreteWaveletTransform⁡6,6,M,1,w1a,w2a,temp,storagetype=singlearray:
DiscreteWaveletTransform⁡6,6,temp,2,w1a,w2a,T,storagetype=singlearray:
InverseDiscreteWaveletTransform⁡6,6,T,2,w1s,w2s,temp,storagetype=singlearray:
InverseDiscreteWaveletTransform⁡6,6,temp,1,w1s,w2s,T,storagetype=singlearray:
Matrix⁡T
11.21.000000000000031.000000000000041.51.61.0.12.000000000000022.000000000000032.000000000000042.52.62.0.13.000000000000023.000000000000033.000000000000043.53.000000000000063.0.14.000000000000024.000000000000034.44.54.64.0.15.25.35.45.000000000000055.65.0.16.26.36.000000000000046.000000000000056.66.0.0.0.0.0.0.0.0.
See Also
DiscreteWaveletTransform
SignalProcessing[InverseDWT]
Wavelet Examples and Applications
WaveletCoefficients
WaveletPlot
Wavelets
Download Help Document