What is this algorithm for computation of the convolution integral in continuous wavelet transform?

1 次查看(过去 30 天)
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 个)

类别

Help CenterFile Exchange 中查找有关 Continuous Wavelet Transforms 的更多信息

产品


版本

R2019a

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by