What is this algorithm for computation of the convolution integral in continuous wavelet transform?
4 views (last 30 days)
Show older comments
Looking into demo of continous wavelet transform by waveletAnalyzer (Wavelet toolbox) I came across an unknown numerical method for computation of the convolution integral. It is specifed as numALG = 1 in the file cw1dmnr.m lines 537-576:
switch numALG
case 1
[psi,psi_xval] = intwave(wav_Name,precis);
psi_xval = psi_xval-psi_xval(1);
dxval = psi_xval(2);
xmax = psi_xval(length(psi_xval));
ind = 1;
for a = scales
msg = {' ',getWavMSG('Wavelet:divGUIRF:Str_CompSca',num2str(a,'%5.3f'))};
set(txt_msg,'String',msg);
drawnow
j = 1+floor((0:a*xmax)/(a*dxval));
if length(j)==1 , j = [1 1]; end
f = fliplr(psi(j));
varargout{1}(ind,:) = -sqrt(a)*wkeep1(diff(conv(sig_Anal,f)),len);
ind = ind+1;
end
case 2
switch wtype
case {1,3} , [~,psi,psi_xval] = wavefun(wav_Name,precis);
case 2 , [~,psi,~,~,psi_xval] = wavefun(wav_Name,precis);
case {4,5} , [psi,psi_xval] = wavefun(wav_Name,precis);
end
% if wtype==5 , psi = conj(psi); end
psi_xval = psi_xval-psi_xval(1);
dxval = psi_xval(2);
xmax = psi_xval(end);
ind = 1;
for a = scales
msg = {' ',getWavMSG('Wavelet:divGUIRF:Str_CompSca',num2str(a,'%5.3f'))};
set(txt_msg,'String',msg);
drawnow
j = 1 + floor((0:a*xmax)/(a*dxval));
if length(j)==1 , j = [1 1]; end
f = fliplr(psi(j));
varargout{1}(ind,:) = wkeep1(conv(sig_Anal,f),len);
ind = ind+1;
end
end
The second algorithm (case numALG == 2) straightforwardly computes the inner products between signal and translated wavelets by usual convolution:
psi = wavefun(wav_Name, precis)
out = conv(signal, fliplr(psi), 'same')
But I struggle to understand the first one, where signal is convolved with the integral of the wavelet and the result is differentiated:
integ_psi = intwave(wav_Name, precis)
out = diff(conv(signal,fliplr(integ_psi)))
Any insights into what is this method based on?
0 Comments
Answers (0)
See Also
Categories
Find more on Continuous Wavelet Transforms in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!