InverseContinuousWaveletTransform[cwd]
gives the inverse continuous wavelet transform of a ContinuousWaveletData object cwd.
InverseContinuousWaveletTransform[cwd,wave]
gives the inverse transform using the wavelet wave.
InverseContinuousWaveletTransform[cwd,wave,octvoc]
gives the inverse transform from the wavelet coefficients specified by octvoc.
InverseContinuousWaveletTransform
InverseContinuousWaveletTransform[cwd]
gives the inverse continuous wavelet transform of a ContinuousWaveletData object cwd.
InverseContinuousWaveletTransform[cwd,wave]
gives the inverse transform using the wavelet wave.
InverseContinuousWaveletTransform[cwd,wave,octvoc]
gives the inverse transform from the wavelet coefficients specified by octvoc.
Details and Options
- InverseContinuousWaveletTransform computes the inverse transform of continuous forward transforms such as ContinuousWaveletTransform.
- The possible wavelets wave are the same as for ContinuousWaveletTransform.
- The default wave is Automatic, which is taken to be cwd["Wavelet"].
- The possible specifications for octvoc are the same as used by ContinuousWaveletData.
- The default octvoc is Automatic, which is taken to be cwd["WaveletIndex"].
- InverseContinuousWaveletTransform[cwd,wave,octvoc] computes the inverse transform using only the wavelet coefficients specified by octvoc; other coefficients are set to be zero.
Examples
open all close allBasic 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]]}Scope (5)
Basic Uses (5)
Inverse transform 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 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}]//ListLinePlotInverse transform the first octave {1,_}, setting other coefficients to zero:
InverseContinuousWaveletTransform[cwd, Automatic, {1, _}]//ListLinePlotInverse transform an explicitly constructed ContinuousWaveletData object:
cwd = ContinuousWaveletData[{{1, 3} -> {1, 0, -1, 0, 2, 0, -2, 0, 3, 0, -3, 0}}]InverseContinuousWaveletTransform[cwd]//ListLinePlotUnspecified 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[]]Options (4)
Method (4)
By default, Method option "LeastSquares" is used for data less than length 512:
cwd = ContinuousWaveletTransform[Range[10]]InverseContinuousWaveletTransform[cwd] == InverseContinuousWaveletTransform[cwd, Method -> "LeastSquares"]By default, Method option "DeltaFunction" is used for data greater than length 512:
cwd = ContinuousWaveletTransform[Range[513]]InverseContinuousWaveletTransform[cwd] == InverseContinuousWaveletTransform[cwd, Method -> "DeltaFunction"]Method option "LeastSquares" performs an exact inverse transform:
cwd = ContinuousWaveletTransform[Range[12]]InverseContinuousWaveletTransform[cwd, Method -> "LeastSquares"]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}]Applications (2)
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, _}]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]]}Properties & Relations (2)
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]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 HaarWavelet[]:
InverseWaveletTransform[dwd]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[%]Related Guides
History
Text
Wolfram Research (2010), InverseContinuousWaveletTransform, Wolfram Language function, https://reference.wolfram.com/language/ref/InverseContinuousWaveletTransform.html.
CMS
Wolfram Language. 2010. "InverseContinuousWaveletTransform." Wolfram Language & System Documentation Center. Wolfram Research. https://reference.wolfram.com/language/ref/InverseContinuousWaveletTransform.html.
APA
Wolfram Language. (2010). InverseContinuousWaveletTransform. Wolfram Language & System Documentation Center. Retrieved from https://reference.wolfram.com/language/ref/InverseContinuousWaveletTransform.html
BibTeX
@misc{reference.wolfram_2026_inversecontinuouswavelettransform, author="Wolfram Research", title="{InverseContinuousWaveletTransform}", year="2010", howpublished="\url{https://reference.wolfram.com/language/ref/InverseContinuousWaveletTransform.html}", note=[Accessed: 13-June-2026]}
BibLaTeX
@online{reference.wolfram_2026_inversecontinuouswavelettransform, organization={Wolfram Research}, title={InverseContinuousWaveletTransform}, year={2010}, url={https://reference.wolfram.com/language/ref/InverseContinuousWaveletTransform.html}, note=[Accessed: 13-June-2026]}