How to adjust the calculated frequency range in Continuous Wavelet Transforms
3 次查看(过去 30 天)
显示 更早的评论
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 个评论
David Sokalski
2021-5-4
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!
回答(0 个)
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Continuous Wavelet Transforms 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!