How to adjust the calculated frequency range in Continuous Wavelet Transforms
3 views (last 30 days)
Show older comments
Hello,
I'm currently sampling a wave at 20,000Hz, with the frequency I'm interested in occuring around 8,000Hz. This works well for FFT, with the output range for frequency occuring between 0 and 10,000Hz. However, using the cwt function, the output results in the range of 0 (or near 0) to 8, 682.5 Hz. I do not understand the math AT ALL behind this, but I assumed since wavelet transform used FFT function 'somewhere' within, I would have an output frequency MAX of 10,000 Hz.
Is there a way to have up to 10,000 Hz output range using cwt?
Thanks!
1 Comment
David Sokalski
on 4 May 2021
Hey there,
when creating the cwtfilterbank there is a flag called "FrequencyLimits" where you can set a range like so:
fb = cwtfilterbank('SignalLength', your_signal_length,...
'SamplingFrequency', 20000, ...
'FrequencyLimits',[500 9000]);
Following the Matlab Documentation you can then plot the result by using:
[cfs,frq] = wt(fb,sig);
t = (0:(your_signal_length - 1)/Fs;
figure;
pcolor(t,frq,abs(cfs))
set(gca,'yscale','log');shading interp;axis tight;
title('Scalogram');xlabel('Time (s)');ylabel('Frequency (Hz)')
Hope this helps!
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!