8/28/2015
ContinuousWaveletTransformMATLAB&Simulink
ContinuousWaveletTransform
DefinitionoftheContinuousWaveletTransform
LiketheFouriertransform,thecontinuouswavelettransform(CWT)usesinnerproductstomeasurethesimilaritybetween
jt
[Link],theanalyzingfunctionsarecomplexexponentials, e
.The
resultingtransformisafunctionofasinglevariable,.IntheshorttimeFouriertransform,theanalyzingfunctionsare
jt
windowedcomplexexponentials, w(t)e
,[Link], F (, ),
representthematchbetweenthesignalandasinusoidwithangularfrequencyinanintervalofaspecifiedlength
centeredat.
IntheCWT,theanalyzingfunctionisawavelet,.TheCWTcomparesthesignaltoshiftedandcompressedorstretched
[Link]
[Link],youobtaina
[Link]
complexvalued,[Link],theCWTisareal
[Link],a>0,andposition,b,theCWTis:
C(a, b f (t), (t)) =
t b
) dt
a
f (t) G (
a
where [Link],the
choiceofwaveletalsoaffectsthevaluesofthecoefficients.
Bycontinuouslyvaryingthevaluesofthescaleparameter,a,andthepositionparameter,b,youobtainthecwtcoefficients
C(a,b).Notethatforconvenience,thedependenceoftheCWTcoefficientsonthefunctionandanalyzingwavelethasbeen
suppressed.
Multiplyingeachcoefficientbytheappropriatelyscaledandshiftedwaveletyieldstheconstituentwaveletsoftheoriginal
signal.
[Link]
manychoicesfortheanalyzingwavelet,[Link]
youaretryingtodetect,[Link],ifyouare
tryingtodetectabruptdiscontinuitiesinyoursignal,[Link],ifyouareinteresting
infindingoscillationswithsmoothonsetsandoffsets,youarefreetochooseawaveletthatmorecloselymatchesthat
behavior.
Scale
Liketheconceptoffrequency,[Link],youcananalyze
[Link],
youcanexaminefiner(daytoday),[Link]
time,[Link]
[Link]
portrait,orsmallphotograph.
[Link]
1/30
8/28/2015
ContinuousWaveletTransformMATLAB&Simulink
Togobeyondcolloquialdescriptionssuchas"stretching"or"shrinking"weintroducethescalefactor,oftendenotedbythe
[Link],a>[Link],theeffectofthescalefactorisveryeasyto
see.
Insin(at),thescaleistheinverseoftheradianfrequency,a.
[Link],themore"compressed"thewavelet.
Conversely,thelargerthescale,[Link]
1,2,and4.
[Link]
2/30
8/28/2015
ContinuousWaveletTransformMATLAB&Simulink
[Link]
TechniqueandScaleandFrequencyformoreinformationontherelationshipbetweenscaleandfrequency.
Notonlyisatimescalerepresentationadifferentwaytoviewdata,itisaverynaturalwaytoviewdataderivedfroma
greatnumberofnaturalphenomena.
ScaleandFrequency
[Link]"stretched"
[Link],thelongertheportionofthesignalwithwhichitisbeingcompared,and
thereforethecoarserthesignalfeaturesmeasuredbythewaveletcoefficients.
Tosummarize,thegeneralcorrespondencebetweenscaleandfrequencyis:
LowscaleaCompressedwaveletRapidlychangingdetailsHighfrequency.
HighscaleaStretchedwaveletSlowlychanging,coarsefeaturesLowfrequency.
Whilethereisageneralrelationshipbetweenscaleandfrequency,[Link]
Fourieranalysisoftenwanttodefineamappingbetweenawaveletatagivenscalewithaspecifiedsamplingperiodtoa
[Link],itisbettertotalkaboutthepseudofrequency
correspondingtoascale.TheWaveletToolboxsoftwareprovidestwofunctionscentfrqandscal2frq,whichenable
youtofindtheseapproximatescalefrequencyrelationshipsforspecifiedwaveletsandscales.
ThebasicapproachidentifiesthepeakpowerintheFouriertransformofthewaveletasitscenterfrequencyanddivides
[Link]
thematchbetweentheestimatedcenterfrequencyofthedb8waveletandasinusoidofthesamefrequency.
[Link]
3/30
8/28/2015
ContinuousWaveletTransformMATLAB&Simulink
TherelationshipbetweenscaleandfrequencyintheCWTisalsoexploredinCWTasaFilteringTechnique.
Shifting
Shiftingawaveletsimplymeansdelaying(oradvancing)[Link],delayingafunctionf(t)bykis
representedbyf(tk):
CWTasaWindowedTransform
InShortTimeFourierTransform,theSTFTisdescribedasawindowingofthesignaltocreatealocalfrequencyanalysis.A
[Link].A
longertimewindowimprovesfrequencyresolutionwhileresultinginpoorertimeresolutionbecausetheFouriertransform
[Link],ashortertimewindowimprovestimelocalization
whileresultinginpoorerfrequencyresolution.
Waveletanalysisrepresentsthenextlogicalstep:[Link]
allowstheuseoflongtimeintervalswhereyouwantmorepreciselowfrequencyinformation,andshorterregionswhere
youwanthighfrequencyinformation.
[Link]
4/30
8/28/2015
ContinuousWaveletTransformMATLAB&Simulink
Thefollowingfigurecontraststime,frequency,timefrequency,andtimescalerepresentationsofasignal.
CWTasaFilteringTechnique
Thecontinuouswavelettransform(CWT)computestheinnerproductofasignal, f (t) ,withtranslatedanddilatedversions
ofananalyzingwavelet, (t). ThedefinitionoftheCWTis:
C(a, b f (t), (t)) =
t b
) dt
a
f (t) G (
a
YoucanalsointerprettheCWTasafrequencybasedfilteringofthesignalbyrewritingtheCWTasaninverseFourier
transform.
C(a, b f (t), (t)) =
1
2
f ()
a ((a)) e
jb
where f () and ()
aretheFouriertransformsofthesignalandthewavelet.
Fromtheprecedingequations,youcanseethatstretchingawaveletintimecausesitssupportinthefrequencydomainto
[Link],thecenterfrequencyofthewaveletshiftstowardlowerfrequencies.
Thefollowingfiguredemonstratesthiseffectforahypotheticalwaveletandscale(dilation)factorsof1,2,and4.
[Link]
5/30
8/28/2015
ContinuousWaveletTransformMATLAB&Simulink
[Link]
inputsignalathigherfrequencies,whileCWTcoefficientsathigherscalesrepresentenergyintheinputsignalatlower
[Link],unlikeFourierbandpassfiltering,thewidthofthebandpassfilterintheCWTisinversely
[Link]
relationshipsbetweenthetimeandfrequencysupportofasignal:thebroaderthesupportofasignalintime,thenarrower
[Link].
Inthewavelettransform,thescale,[Link]
[Link],orQfactorofafilteristheratioofits
[Link]
increasesordecreasesinitspeakenergy,waveletsareoftenreferredtoasconstantQfilters.
DFTBasedContinuousWaveletTransform
TheequationintheprecedingsectiondefinedtheCWTastheinverseFouriertransformofaproductofFouriertransforms.
C(a, b f (t), (t)) =
1
2
f ()
a (a)e
jb
ThetimevariableintheinverseFouriertransformisthetranslationparameter,b.
[Link]
thecomputationofthediscreteFouriertransformanditsinverse,youcanoftenachieveconsiderablesavingsbyusingfft
andifftwhenpossible.
ToobtainapictureoftheCWTintheFourierdomain,startwiththedefinitionofthewavelettransform:
[Link]
6/30
8/28/2015
ContinuousWaveletTransformMATLAB&Simulink
< f (t), a,b(t) >= G
t b
)dt
a
f (t)(
Ifyoudefine:
1
a(t) = G (t/a)
a
youcanrewritethewavelettransformas
(f a)(b) =
f (t) a(b t)dt
whichexplicitlyexpressestheCWTasaconvolution.
ToimplementthediscretizedverionoftheCWT,assumethattheinputsequenceisalengthNvector,x[n].Thediscrete
versionoftheprecedingconvolutionis:
W a[b] =
N1
n=0
x[n] a[b n]
ToobtaintheCWT,itappearsyouhavetocomputetheconvolutionforeachvalueoftheshiftparameter,b,andrepeatthis
processforeachscale,a.
However,ifthetwosequencesarecircularlyextended(periodizedtolengthN),youcanexpressthecircularconvolution
[Link]
W a(b) =
1
N
2a
t
N1
X (2k/Nt) (a2k/Nt)e
j2kb/N
k=0
wheretisthesamplinginterval(period).
ExpressingtheCWTasaninverseFouriertransformenablesyoutousethecomputationallyefficientfftandifft
algorithmstoreducethecostofcomputingconvolutions.
[Link]
supportedanalyzingwavelets.
InverseContinuousWaveletTransform
[Link]
WaveletToolboxdoesnotsupporttheinverseCWTforageneralCWTobtainedusingcwt.
BecausetheCWTisaredundanttransform,[Link]
intheWaveletToolboxutilizesadiscreteversionofthesingleintegralformuladuetoMorlet.
[Link]
thatsatisfiestheadmissibilitycondition:
C =
2
|()|
d
||
<
Forwaveletssatisfyingtheadmissibilityconditionandfiniteenergyfunctions,f(t),youcandefinetheinverseCWTas:
f (t) =
1
C
< f (t), a,b(t) > a,b(t) db
da
2
a
Foranalyzingwaveletsandfunctionssatisfyingthefollowingconditions,asingleintegralformulafortheinverseCWT
[Link]:
[Link]
7/30
8/28/2015
ContinuousWaveletTransformMATLAB&Simulink
Theanalyzedfunction,f(t),isrealvaluedandtheanalyzingwavelethasarealvaluedFouriertransform.
Theanalyzedfunction,f(t),isrealvaluedandtheFouriertransformoftheanalyzingwavelethassupportonlyontheset
[Link]
supportonthesetofnonnegativefrequenciesmustbecomplexvalued.
[Link]
cwtft,[Link]
analysisofrealvaluedfunctions,therealvaluedconditionontheanalyzedfunctionisalwayssatisfied.
Tomotivatethesingleintegralformula,let 1and 2betwowaveletsthatsatisfythefollowingtwowaveletadmissibility
condition:
() ()
1 2
d <
Definetheconstant:
() ()
1
2 d
C , =
1 2
[Link](t)andg(t)[Link]
admissibilityconditionissatisfied,thefollowingequalityholds:
,
1 2
< f, g >=
< f, 1 >< g, 2 > db
da
2
a
where<,>denotestheinnerproduct,*denotesthecomplexconjugate,andthedependenceof 1and 2onscaleand
positionhasbeensuppressedforconvenience.
ThekeytothesingleintegralformulafortheinverseCWTistorecognizethatthetwowaveletadmissibilityconditioncan
[Link],itisnotnecessarythatboth 1and 2be
[Link]
[Link](t)betheDiracdeltafunction(adistribution)andalsoallowing 2tobetheDiracdelta
function,youcanderivethesingleintegralformulafortheinverseCWT
f (t) = 2 Re
C
,
1
< f (t), 1(t) >
whereRe{}denotestherealpart.
da
3/2
a
TheprecedingequationdemonstratesthatyoucanreconstructthesignalbysummingthescaledCWTcoefficientsoverall
scales.
BysummingthescaledCWTcoefficientsfromselectscales,[Link]
usefulinsituationswhereyourphenomenonofinterestislocalizedinscale.
icwtftimplementsadiscretizedversionoftheaboveintegral.
ContinuousWaveletTransformAlgorithm
ThefollowingoutlinesthebasicalgorithmfortheCWT:
1. Takeawaveletandcompareittoasectionatthestartoftheoriginalsignal.
[Link]
8/30
8/28/2015
ContinuousWaveletTransformMATLAB&Simulink
2. Calculateanumber,C,[Link]
thenumberCisinabsolutevalue,[Link]
[Link]
energyandthewaveletenergyareequaltoone,[Link],in
general,thesignalenergydoesnotequaloneandtheCWTcoefficientsarenotdirectlyinterpretableascorrelation
coefficients.
AsdescribedinDefinitionoftheContinuousWaveletTransform,theCWTcoefficientsexplicitlydependonthe
[Link],theCWTcoefficientsaredifferentwhenyoucomputetheCWTforthesamesignalusing
differentwavelets.
3. Shiftthewavelettotherightandrepeatsteps1and2untilyou'vecoveredthewholesignal.
4. Scale(stretch)thewaveletandrepeatsteps1through3.
5. Repeatsteps1through4forallscales.
InterpretingCWTCoefficients
BecausetheCWTisaredundanttransformandtheCWTcoefficientsdependonthewavelet,itcanbechallengingto
interprettheresults.
TohelpyouininterpretingCWTcoefficients,itisbesttostartwithasimplesignaltoanalyzeandananalyzingwaveletwith
asimplestructure.
Asignalfeaturethatwaveletsareverygoodatdetectingisadiscontinuity,[Link]
inwaveletcoefficientswithlargeabsolutevalues.
Forthesignalcreateashiftedimpulse.Theimpulseoccursatpoint500.
x=zeros(1000,1);
x(500)=1;
Forthewavelet,picktheHaarwavelet.
[~,psi,xval]=wavefun('haar',10);
plot(xval,psi);axis([011.51.5]);
title('HaarWavelet');
[Link]
9/30
8/28/2015
ContinuousWaveletTransformMATLAB&Simulink
TocomputetheCWTusingtheHaarwaveletatscales1to128,enter:
CWTcoeffs=cwt(x,1:128,'haar');
[Link].Thereare128
rowsbecausetheSCALESinputtocwtis1:[Link].
[Link]
coefficients,plotpositionalongthexaxis,scalealongtheyaxis,andencodethemagnitude,orsizeoftheCWT
coefficientsascolorateachpointinthexy,ortimescaleplane.
Youcanproducethisplotusingcwtwiththeoptionalinputargument'plot'.
cwt(x,1:128,'haar','plot');
colormapjet;colorbar;
[Link]
10/30
8/28/2015
ContinuousWaveletTransformMATLAB&Simulink
TheprecedingfigurewasmodifiedwithtextlabelstoexplicitlyshowwhichcolorsindicatelargeandsmallCWT
coefficients.
YoucanalsoplotthesizeoftheCWTcoefficientsin3Dwith
cwt(x,1:64,'haar','3Dplot');colormapjet;
wherethenumberofscaleshasbeenreducedtoaidinvisualization.
ExaminingtheCWToftheshiftedimpulsesignal,youcanseethatthesetoflargeCWTcoefficientsisconcentratedina
[Link],thesetoflarge
CWTcoefficientsbecomeswider,[Link],itresembles
thefollowingfigure.
[Link]
11/30
8/28/2015
ContinuousWaveletTransformMATLAB&Simulink
Thisregionisreferredtoastheconeofinfluenceofthepointt=[Link],theconeof
influenceshowsyouwhichCWTcoefficientsareaffectedbythesignalvalueatthatpoint.
Tounderstandtheconeofinfluence,assumethatyouhaveawaveletsupportedon[C,C].Shiftingthewaveletbyband
scalingbyaresultsinawaveletsupportedon[Ca+b,Ca+b].Forthesimplecaseofashiftedimpulse, (t ) ,theCWT
[Link]
consideringtheformalexpressionoftheCWToftheshiftedimpulse.
C(a, b (t ), (t)) =
t b
)dt
a
(t ) G (
a
b
)
a
= G (
a
Fortheimpulse,theCWTcoefficientsareequaltotheconjugated,timereversed,andscaledwaveletasafunctionofthe
shiftparameter,[Link].
subplot(311)
plot(CWTcoeffs(10,:));title('Scale10');
subplot(312)
plot(CWTcoeffs(50,:));title('Scale50');
subplot(313)
plot(CWTcoeffs(90,:));title('Scale90');
[Link]
12/30
8/28/2015
ContinuousWaveletTransformMATLAB&Simulink
[Link]
conofinf.
Thenextexamplefeaturesthesuperpositionoftwoshiftedimpulses, (t 300) + (t 500) .Inthiscase,usethe
Daubechies'extremalphasewaveletwithfourvanishingmoments,[Link]
forthepoints300and500usingthedb4wavelet.
[Link]
13/30
8/28/2015
ContinuousWaveletTransformMATLAB&Simulink
[Link],[Link],
[Link],300
and500,[Link]
entering:
x=zeros(1000,1);
x([300500])=1;
CWTcoeffs=cwt(x,1:128,'db4');
plot(CWTcoeffs(20,:));gridon;
[Link]
14/30
8/28/2015
ContinuousWaveletTransformMATLAB&Simulink
Next,lookatthepoint400atscale80.Atscale80,theconesofinfluenceforbothpoints300and500includethepoint
400.Eventhoughthesignaliszeroatpoint400,[Link]
nonzerobecausethesupportofthewavelethasbecomesufficientlylargeatthatscaletoallowsignalvalues100points
[Link]:
plot(CWTcoeffs(80,:));
gridon;
[Link]
15/30
8/28/2015
ContinuousWaveletTransformMATLAB&Simulink
Intheprecedingexample,[Link]
[Link]
[Link],thesmallsupportofthewaveletensuresthatthe
singularityonlyaffectsasmallsetofwaveletcoefficients.
Todemonstratewhythewavelettransformissoadeptatdetectingabruptchangesinthesignal,considerashifted
Heaviside,orunitstepsignal.
x=[zeros(500,1);ones(500,1)];
CWTcoeffs=cwt(x,1:64,'haar','plot');colormapjet;
[Link]
16/30
8/28/2015
ContinuousWaveletTransformMATLAB&Simulink
Similartotheshiftedimpulseexample,theabrupttransitionintheshiftedstepfunctionresultsinlargeCWTcoefficientsat
[Link].
[Link]
17/30
8/28/2015
ContinuousWaveletTransformMATLAB&Simulink
Intheprecedingfigure,[Link],B,andCdepictHaar
[Link]
signaliszerointhatneighborhoodandthereforethewavelettransformisalsozerobecauseanywaveletintegratesto
zero.
[Link]
[Link]
[Link].
[Link].
[Link].
Thisisthezeromomentpropertyofwavelets.
AtpositionB,theHaarwavelethasalreadyshiftedintothenonzeroportionofthestepfunctionby1/[Link]
soonasthesupportofthewaveletintersectswiththeunityportionofthestepfunction,[Link]
fact,thesituationillustratedinthepreviousfigurecoincideswiththeCWTcoefficientsachievingtheirlargestabsolute
[Link]
[Link]
deflectionoverlapswiththeunitstep,[Link]
stillnegative(thenegativeportionoftheintegralislargerinarea),buttheyaresmallerinabsolutevaluethanthose
obtainedatpositionB.
Thefollowingfigureillustratestwootherpositionswherethewaveletintersectstheunityportionoftheunitstep.
[Link]
18/30
8/28/2015
ContinuousWaveletTransformMATLAB&Simulink
Inthetopfigure,[Link],theCWT
coefficientsarenegative,[Link],the
[Link]
coefficientsarestillnegative,butnotaslargeinabsolutevalueasthoseobtainedatpositionB.
[Link]
[Link]
thatthisbehaviordiffersforotherwavelets.
x=[zeros(500,1);ones(500,1)];
CWTcoeffs=cwt(x,1:64,'haar','plot');colormapjet;
%plotafewscalesforvisualization
subplot(311);
plot(CWTcoeffs(5,:));title('Scale5');
subplot(312);
plot(CWTcoeffs(10,:));title('Scale10');
subplot(313);
plot(CWTcoeffs(50,:));title('Scale50');
[Link],this
[Link],considerthesym4wavelet
ataspecificscalesuperimposedonasinewave.
[Link]
19/30
8/28/2015
ContinuousWaveletTransformMATLAB&Simulink
RecallthattheCWTcoefficientsareobtainedbycomputingtheproductofthesignalwiththeshiftedandscaledanalyzing
[Link]
precedingfigure.
[Link]
[Link]
[Link]
deflectionsofboththewaveletandsinusoid.
Thefollowingfigureshiftsthewavelet1/2oftheperiodofthesinewave.
[Link]
20/30
8/28/2015
ContinuousWaveletTransformMATLAB&Simulink
Examinetheproductoftheshiftedwaveletandthesinusoid.
[Link]
21/30
8/28/2015
ContinuousWaveletTransformMATLAB&Simulink
YoucanseethatintegratingoverthisproductproducesanegativeCWTcoefficient.Thatresultsbecausethewaveletis1/2
[Link]
[Link].
Finally,shiftthewaveletapproximatelyonequartercycleofthesinewave.
[Link]
22/30
8/28/2015
ContinuousWaveletTransformMATLAB&Simulink
Thefollowingfigureshowstheproductoftheshiftedwaveletandthesinusoid.
[Link]
23/30
8/28/2015
ContinuousWaveletTransformMATLAB&Simulink
IntegratingoverthisproductproducesaCWTcoefficientmuchsmallerinabsolutevaluethaneitherofthetwoprevious
[Link]
[Link],themainpositivedeflectionofthewaveletapproximatelyalignswithapositivedeflectionofthesinewave.
[Link],the
integralwouldbezero.
Atscaleswheretheoscillationinthewaveletoccursoneitheramuchlargerorsmallerscalethantheperiodofthesine
wave,[Link]
muchsmallerscalethanthesinusoid.
[Link]
24/30
8/28/2015
ContinuousWaveletTransformMATLAB&Simulink
[Link]
coefficientnearzero.
Thefollowingexampleconstructsa60HzsinewaveandobtainstheCWTusingthesym8wavelet.
t=linspace(0,1,1000);
x=cos(2*pi*60*t);
CWTcoeffs=cwt(x,1:64,'sym8','plot');colormapjet;
[Link]
25/30
8/28/2015
ContinuousWaveletTransformMATLAB&Simulink
[Link]
correspondingtothesescalesusingthecommand:
freq=scal2frq(9:21,'sym8',1/1000);
[Link]
patternintheCWTcoefficientsatthesescaleswiththefollowingcode.
surf(CWTcoeffs);colormapjet;
shading('interp');view(60,12);
[Link]
26/30
8/28/2015
ContinuousWaveletTransformMATLAB&Simulink
Thefinalexampleconstructsasignalconsistingofbothabrupttransitionsandsmoothoscillations.Thesignalisa4Hz
sinusoidwithtwointroduceddiscontinuities.
N=1024;
t=linspace(0,1,1024);
x=4*sin(4*pi*t);
x=xsign(t.3)sign(.72t);
plot(t,x);xlabel('t');ylabel('x');
gridon;
[Link]
27/30
8/28/2015
ContinuousWaveletTransformMATLAB&Simulink
Notethediscontinuitiesneart=0.3andt=0.7.
ObtainandplottheCWTusingthesym4wavelet.
CWTcoeffs=cwt(x,1:180,'sym4');
imagesc(t,1:180,abs(CWTcoeffs));
colormapjet;axisxy;
xlabel('t');ylabel('Scales');
[Link]
28/30
8/28/2015
ContinuousWaveletTransformMATLAB&Simulink
[Link]
[Link],
themaximaandminimaofthe2HzsinusoidareevidentintheCWTcoefficientsatlargescalesandnotapparentatsmall
scales.
ThefollowinggeneralprinciplesareimportanttokeepinmindwheninterpretingCWTcoefficients.
ConeofinfluenceDependingonthescale,theCWTcoefficientatapointcanbeaffectedbysignalvaluesatpoints
[Link]
[Link],theHaarwavelethassmallersupportatall
scalesthanthesym4wavelet.
[Link]
signalproducerelativelylargewaveletcoefficients(inabsolutevalue)centeredaroundthediscontinuityatallscales.
Becauseofthesupportofthewavelet,thesetofCWTcoefficientsaffectedbythesingularityincreaseswithincreasing
[Link]
theCWTcoefficientsisobtainedatthesmallestscales.
DetectingsmoothsignalfeaturesSmoothsignalfeaturesproducerelativelylargewaveletcoefficientsatscales
[Link],theCWT
coefficientsdisplayanoscillatorypatternatscaleswheretheoscillationinthewaveletapproximatestheperiodofthe
sinewave.
RedundancyintheContinuousWaveletTransform
Anysignalprocessingperformedonacomputerusingrealworlddatamustbeperformedonadiscretesignalthatis,on
[Link]"continuous"abouttheCWT?
[Link]
29/30
8/28/2015
ContinuousWaveletTransformMATLAB&Simulink
What's"continuous"abouttheCWT,andwhatdistinguishesitfromthediscretewavelettransform(tobediscussedinthe
followingsection),isthesetofscalesandpositionsatwhichitoperates.
Unlikethediscretewavelettransform,theCWTcanoperateateveryscale,fromthatoftheoriginalsignaluptosome
maximumscalethatyoudeterminebytradingoffyourneedfordetailedanalysiswithavailablecomputationalhorsepower.
TheCWTisalsocontinuousintermsofshifting:duringcomputation,theanalyzingwaveletisshiftedsmoothlyoverthefull
domainoftheanalyzedfunction.
[Link]
30/30