({{, (RefLink[InverseContinuousWaveletTransform, paclet:ref/InverseContinuousWaveletTransform])[cwd] 
gives the inverse continuous wavelet transform of a (RefLink[ContinuousWaveletData, paclet:ref/ContinuousWaveletData]) object cwd. }, {, (RefLink[InverseContinuousWaveletTransform, paclet:ref/InverseContinuousWaveletTransform])[cwd,wave]
gives the inverse transform using the wavelet wave.}, {, (RefLink[InverseContinuousWaveletTransform, paclet:ref/InverseContinuousWaveletTransform])[cwd,wave,octvoc]
gives the inverse transform from the wavelet coefficients specified by octvoc.}})

OpenersNotesSection(Spacer1)Details and Options

(RefLink[InverseContinuousWaveletTransform, paclet:ref/InverseContinuousWaveletTransform]) computes the inverse transform of continuous forward transforms such as (RefLink[ContinuousWaveletTransform, paclet:ref/ContinuousWaveletTransform]).

The possible wavelets wave are the same as for (RefLink[ContinuousWaveletTransform, paclet:ref/ContinuousWaveletTransform]).

The default wave is (RefLink[Automatic, paclet:ref/Automatic]), which is taken to be cwd["Wavelet"].

The possible specifications for octvoc are the same as used by (RefLink[ContinuousWaveletData, paclet:ref/ContinuousWaveletData]).

The default octvoc is (RefLink[Automatic, paclet:ref/Automatic]), which is taken to be cwd["WaveletIndex"].

(RefLink[InverseContinuousWaveletTransform, paclet:ref/InverseContinuousWaveletTransform])[cwd,wave,octvoc] computes the inverse transform using only the wavelet coefficients specified by octvoc; other coefficients are set to be zero.

OpenersPrimaryExamplesSection(Spacer1)Examples  (14)

OpenersExampleSection0(Spacer1)Basic Examples  (1)

Perform a continuous wavelet transform:

data=Table[BesselJ[0,x],{x,0,10,0.1}];

cwd=ContinuousWaveletTransform[data,MorletWavelet[],{7,4}]

Inverse transform resynthesizes data from continuous wavelet coefficients:

{ListLinePlot[data],ListLinePlot[InverseContinuousWaveletTransform[cwd]]}

OpenersExampleSection1(Spacer1)Scope  (5)

OpenersExampleSubsection0(Spacer1)Basic Uses  (5)

Inverse transform (RefLink[ContinuousWaveletData, paclet:ref/ContinuousWaveletData]) from the forward transform:

cwd=ContinuousWaveletTransform[Sin[((Range[100])/10)],GaborWavelet[],{10,6}]

ListLinePlot[InverseContinuousWaveletTransform[cwd]]

The quality of the reconstruction depends on the number of octaves and voices:

Table[ListLinePlot[InverseContinuousWaveletTransform[ContinuousWaveletTransform[Sin[((Range[100])/10)],GaborWavelet[],octvoc]],PlotLabel->octvoc],{octvoc,{{5,4},{6,4},{7,4}}}]

Inverse transform modified (RefLink[ContinuousWaveletData, paclet:ref/ContinuousWaveletData]):

cwd1=ContinuousWaveletTransform[Sin[((Range[100])/10)],GaborWavelet[],{10,6}];

cwd2=WaveletMapIndexed[c|->c ((Range[100])/100),cwd1]

Plot the inverse transform of original and modified coefficients:

{ListLinePlot[InverseContinuousWaveletTransform[cwd1],PlotLabel->"original"],ListLinePlot[InverseContinuousWaveletTransform[cwd2],PlotLabel->"modified"]}

Inverse transform selected octaves and voices only:

data=Cos[Range[100]^2/100];

ListLinePlot[data]

Inverse transform only the {2,5} coefficient:

cwd=ContinuousWaveletTransform[data,Automatic,{10,6}];

InverseContinuousWaveletTransform[cwd,Automatic,{2,5}]//ListLinePlot

Inverse transform the first octave {1,_}, setting other coefficients to zero:

InverseContinuousWaveletTransform[cwd,Automatic,{1,_}]//ListLinePlot

Inverse transform an explicitly constructed (RefLink[ContinuousWaveletData, paclet:ref/ContinuousWaveletData]) object:

cwd=ContinuousWaveletData[{{1,3}->{1,0,-1,0,2,0,-2,0,3,0,-3,0}}]

InverseContinuousWaveletTransform[cwd]//ListLinePlot

Unspecified coefficients are taken to be zero:

cwd[Except[{1,3}]]

Specify a different wavelet to use in the inverse transform:

cwd=ContinuousWaveletTransform[Range[6],MorletWavelet[]];

InverseContinuousWaveletTransform[cwd,MexicanHatWavelet[]]

By default, the wavelet used in the forward transform is chosen:

InverseContinuousWaveletTransform[cwd]==InverseContinuousWaveletTransform[cwd,MorletWavelet[]]

OpenersExampleSection2(Spacer1)Options  (4)

OpenersExampleSubsection1(Spacer1)Method  (4)

By default, (RefLink[Method, paclet:ref/Method]) option "LeastSquares" is used for data less than length 512:

cwd = ContinuousWaveletTransform[Range[10]]

InverseContinuousWaveletTransform[cwd]==InverseContinuousWaveletTransform[cwd,Method->"LeastSquares"]

By default, (RefLink[Method, paclet:ref/Method]) option "DeltaFunction" is used for data greater than length 512:

cwd = ContinuousWaveletTransform[Range[513]]

InverseContinuousWaveletTransform[cwd]==InverseContinuousWaveletTransform[cwd,Method->"DeltaFunction"]

(RefLink[Method, paclet:ref/Method]) option "LeastSquares" performs an exact inverse transform:

cwd = ContinuousWaveletTransform[Range[12]]

InverseContinuousWaveletTransform[cwd,Method->"LeastSquares"]

(RefLink[Method, paclet:ref/Method]) option "DeltaFunction" performs an approximate inverse transform:

InverseContinuousWaveletTransform[cwd,Method->"DeltaFunction"]

Compare efficiency and accuracy of the two methods:

data = Table[Sin[100 (t^2)],{t,0,1,1./700}];

cwd = ContinuousWaveletTransform[data,MexicanHatWavelet[1],{12,4},Padding->0.0,SampleRate->700]

For large data, "LeastSquares" is slow:

AbsoluteTiming[rdata1=InverseContinuousWaveletTransform[cwd,Method->"LeastSquares"];]

Compare with the original data:

ListLinePlot[{data,rdata1}]

Use "DeltaFunction" for large data:

AbsoluteTiming[rdata2=InverseContinuousWaveletTransform[cwd,Method->"DeltaFunction"];]

Compare with the original data:

ListLinePlot[{data,rdata2}]

OpenersExampleSection3(Spacer1)Applications  (2)

OpenersExampleSubsection2(Spacer1)Scale & Time Filtering  (2)

Filter one scale or frequency from a signal:

data=Table[Sin[x]+5Sin[10x],{x,0,20,0.05}];

ListLinePlot[data]

Identify separate signal components on a scalogram:

cwd=ContinuousWaveletTransform[data,MorletWavelet[],{12,8}];

WaveletScalogram[cwd]

Remove the feature at small scales {3|4|5,_}:

filt=WaveletMapIndexed[c|->0c,cwd,{3|4|5,_}]

Synthesize filtered data:

ListLinePlot[InverseContinuousWaveletTransform[filt]]

Filter data with both time- and scale-dependent features:

data=Table[Boole[13<x<17]Sin[4x]+Sin[(2^(3+x/3))],{x,0,20,0.01}];

ListLinePlot[data]

Identify signal components as a function of scale and time:

cwd=ContinuousWaveletTransform[data,MorletWavelet[],{12,8}]

WaveletScalogram[cwd]

Excise transient feature using a step filter:

step=Table[Boole[¬950<n<1900],{n,Length[data]}];

filt=WaveletMapIndexed[c|->step c,cwd,{7|8|9,_}]

Show altered scalogram and synthesized filtered data:

{WaveletScalogram[filt],ListLinePlot[InverseContinuousWaveletTransform[filt]]}

OpenersExampleSection4(Spacer1)Properties & Relations  (2)

(RefLink[InverseContinuousWaveletTransform, paclet:ref/InverseContinuousWaveletTransform]) synthesizes data from continuous wavelet coefficients:

cwd=ContinuousWaveletTransform[{1,1,2,2,3,3},MorletWavelet[],{6,10}]

The synthesis operation is approximately the inverse of the forward continuous transform:

InverseContinuousWaveletTransform[cwd]

(RefLink[InverseWaveletTransform, paclet:ref/InverseWaveletTransform]) gives the inverse of discrete forward transforms:

dwd=DiscreteWaveletTransform[{1,1,2,2,3,3},HaarWavelet[]]

The inverse is exact for all orthogonal wavelets including (RefLink[HaarWavelet, paclet:ref/HaarWavelet])[]:

InverseWaveletTransform[dwd]

(RefLink[InverseContinuousWaveletTransform, paclet:ref/InverseContinuousWaveletTransform])[…,…,octvoc] effectively zeros other coefficients:

cwd=ContinuousWaveletTransform[RandomReal[1,10]];

InverseContinuousWaveletTransform[cwd,Automatic,{1,3}]

Explicitly set other wavelet coefficients to zero:

WaveletMapIndexed[c|->0c,cwd,Except[{1,3}]]

InverseContinuousWaveletTransform[%]

({{DocumentationFooterIconsRelatedFunction.png, ({{See Also}, {(RefLink[ContinuousWaveletTransform, paclet:ref/ContinuousWaveletTransform])  ▪  (RefLink[WaveletScalogram, paclet:ref/WaveletScalogram])  ▪  (RefLink[WaveletMapIndexed, paclet:ref/WaveletMapIndexed])  ▪  (RefLink[ContinuousWaveletData, paclet:ref/ContinuousWaveletData])  ▪  (RefLink[InverseWaveletTransform, paclet:ref/InverseWaveletTransform])}})}})

({{DocumentationFooterIconsRelatedGuide.png, ({{Related Guides}, {▪(RefLinkPlain[Wavelet Analysis, paclet:guide/Wavelets])}, {▪(RefLinkPlain[Integral Transforms, paclet:guide/IntegralTransforms])}})}})