Can I "turn off" the CWT normalization, to directly compare the CWTs of different signals?

8 views (last 30 days)
I am looking to compare the CWT of different signals in time, and I would like there to be an equivalence on different CWT plots. I.e., a magnitude of 0.5 on one CWT plot is the same as a magnitude of 0.5 on another CWT plot, and they both show up at the same colour.
I see in the documentation that the CWT uses the L1 normalization, here is my attempt to "undo" that such that I can compare across different observations. I essentially multiply each row of the wavelet transform output by its corresponding frequency.
[wt,f,coi] = cwt(Q,'amor',VoicesPerOctave = 48); % Q is the timetable of my signal
f = f';
T = conj(wt).*wt;
% attempt to unscale the L1 normalization of the CWT
N_f = length(f);
T_scaled = T;
f_flip = flip(f); % frequency vector is backwards so need to flip
for i=1:1:N_f % multiply each row of T by its corresponding frequency
T_scaled(i,:)=f_flip(i)*T(i,:);
end
T = T_scaled;
Am I on the right track, or what would be a better method of doing this to compare CWTs of different signals? Is unscaling the normalization the right way to go?

Answers (0)

Products


Release

R2022a

Community Treasure Hunt

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

Start Hunting!