DiscreteTransforms - Maple Programming Help

Home : Support : Online Help : Mathematics : Discrete Mathematics : DiscreteTransforms : DiscreteTransforms/InverseDiscreteWaveletTransform

DiscreteTransforms

 InverseDiscreteWaveletTransform
 compute the inverse discrete wavelet transform of data

 Calling Sequence 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)

Parameters

 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

Options

 • 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.

Description

 • 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, Wavelet, WaveletParams)
 is equivalent to
 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.

Examples

 > $\mathrm{with}\left(\mathrm{DiscreteTransforms}\right)$
 $\left[{\mathrm{DiscreteWaveletTransform}}{,}{\mathrm{FourierTransform}}{,}{\mathrm{InverseDiscreteWaveletTransform}}{,}{\mathrm{InverseFourierTransform}}{,}{\mathrm{WaveletCoefficients}}{,}{\mathrm{WaveletPlot}}\right]$ (1)
 > $V≔\mathrm{Vector}\left(10,i→i,\mathrm{datatype}=\mathrm{float}[8]\right):$
 > $\mathrm{w1},\mathrm{w2}≔\mathrm{WaveletCoefficients}\left(\mathrm{Daubechies},4\right):$
 > $\mathrm{V1},\mathrm{V2}≔\mathrm{DiscreteWaveletTransform}\left(V,\mathrm{w1},\mathrm{w2}\right):$
 > $\mathrm{InverseDiscreteWaveletTransform}\left(\mathrm{V1},\mathrm{V2},\mathrm{w1},\mathrm{w2}\right)$
 $\left[\begin{array}{c}{1.}\\ {2.00000000000000}\\ {3.00000000000000}\\ {4.00000000000000}\\ {5.00000000000000}\\ {6.00000000000000}\\ {7.00000000000000}\\ {8.}\\ {9.}\\ {10.0000000000000}\end{array}\right]$ (2)
 > $\mathrm{V1}≔\mathrm{DiscreteWaveletTransform}\left(V,\mathrm{w1},\mathrm{w2},\mathrm{storagetype}=\mathrm{singlearray}\right):$
 > $\mathrm{InverseDiscreteWaveletTransform}\left(\mathrm{V1},\mathrm{w1},\mathrm{w2},\mathrm{storagetype}=\mathrm{singlearray}\right)$
 $\left[\begin{array}{c}{1.}\\ {2.00000000000000}\\ {3.00000000000000}\\ {4.00000000000000}\\ {5.00000000000000}\\ {6.00000000000000}\\ {7.00000000000000}\\ {8.}\\ {9.}\\ {10.0000000000000}\end{array}\right]$ (3)

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≔\mathrm{Matrix}\left(7,7,\mathrm{datatype}=\mathrm{float}[8],\left(i,j\right)→i+10j\right):$
 > $\mathrm{temp}≔\mathrm{Matrix}\left(7,7,\mathrm{datatype}=\mathrm{float}[8]\right):$
 > $T≔\mathrm{Matrix}\left(7,7,\mathrm{datatype}=\mathrm{float}[8]\right):$
 > $\mathrm{w1a},\mathrm{w2a},\mathrm{w1s},\mathrm{w2s}≔\mathrm{WaveletCoefficients}\left(\mathrm{BiorthogonalSpline},2,2\right):$
 > $\mathrm{DiscreteWaveletTransform}\left(6,6,M,1,\mathrm{w1a},\mathrm{w2a},\mathrm{temp},\mathrm{storagetype}=\mathrm{singlearray}\right):$
 > $\mathrm{DiscreteWaveletTransform}\left(6,6,\mathrm{temp},2,\mathrm{w1a},\mathrm{w2a},T,\mathrm{storagetype}=\mathrm{singlearray}\right):$
 > $\mathrm{InverseDiscreteWaveletTransform}\left(6,6,T,2,\mathrm{w1s},\mathrm{w2s},\mathrm{temp},\mathrm{storagetype}=\mathrm{singlearray}\right):$
 > $\mathrm{InverseDiscreteWaveletTransform}\left(6,6,\mathrm{temp},1,\mathrm{w1s},\mathrm{w2s},T,\mathrm{storagetype}=\mathrm{singlearray}\right):$
 > $\mathrm{Matrix}\left(T\right)$
 $\left[\begin{array}{ccccccc}{11.}& {21.0000000000000}& {31.0000000000000}& {41.}& {51.}& {61.}& {0.}\\ {12.0000000000000}& {22.0000000000000}& {32.0000000000000}& {42.}& {52.}& {62.}& {0.}\\ {13.0000000000000}& {23.0000000000000}& {33.0000000000000}& {43.}& {53.0000000000000}& {63.}& {0.}\\ {14.0000000000000}& {24.0000000000000}& {34.}& {44.}& {54.}& {64.}& {0.}\\ {15.}& {25.}& {35.}& {45.0000000000000}& {55.}& {65.}& {0.}\\ {16.}& {26.}& {36.0000000000000}& {46.0000000000000}& {56.}& {66.}& {0.}\\ {0.}& {0.}& {0.}& {0.}& {0.}& {0.}& {0.}\end{array}\right]$ (4)