cwtfilterbank magnitude linear scale
2 views (last 30 days)
Show older comments
I am using the cwtfilterbank function to generate a scalogram from a signal. However, the frequencies on the Y-axis of the scalogram are not linear. I have read the documentation for cwtfilterbank, but I couldn't find a direct solution. What changes can I make to achieve a linear frequency scale on the scalogram?
fb = cwtfilterbank('SignalLength',signalLength,'Wavelet','amor','SamplingFrequency',Fs,'VoicesPerOctave',48, 'FrequencyLimits', [0 40])
[wt,f] = fb.wt(sig);
im = ind2rgb(im2uint8(rescale(abs(wt))),jet(256));
0 Comments
Answers (1)
Binaya
on 21 Aug 2024
Edited: Binaya
on 21 Aug 2024
Hello Jhon
I believe you have used the code provided here: https://www.mathworks.com/help/wavelet/ref/cwtfilterbank.html?searchHighlight=cwtfilterbank&s_tid=srchtitle_support_results_1_cwtfilterbank#:~:text=figure-,cwt(x%2CFilterBank%3Dfb),-title(%22Magnitude for plotting the scalogram when using the "cwtfilterbank".
The "cwt" command plots a scalogram with filterbank and signal as input. Here, the frequency scale is plotted in log scale to represent the frequency components present in the filterbank generated by "cwtfilterbank".
To get the frequency in the linear scale, you can use the output of "cwt" function and plot the scalogram manually. The following link shows how to plot the output of "cwt" function manually with a linear frequency scale: https://www.mathworks.com/help/wavelet/ref/cwt.html?searchHighlight=cwt&s_tid=srchtitle_support_results_1_cwt#mw_00e6791c-2525-4b09-9206-f20674403b99:~:text=Display%20the%20result.%20The%20scalogram%20values%20are%20now%20scaled%20by%20the%20maximum%20absolute%20value%20at%20each%20level.%20Frequencies%20are%20displayed%20on%20a%20linear%20scale.
0 Comments
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!