Why is the returning frequency range and scale range inconsistent using CWTFT?
1 次查看(过去 30 天)
显示 更早的评论
I have a signal with a sampling period dt. The scale-vs-frequency relation for wavelets is approximately sc = fc/(f*dt), where fc is the center-freq of the mother wavelet. However, using cwtft - the returned structure (including both scales and frequency) does not have this relation. There is some weird stuff going on with 'scale'- input.
sig.val = mySig;
sig.period = dt;
cS = cwtft(sig,'wavelet','morl','scales',{0.001,100*dt,200});
disp([min(cS.frequencies),max(cS.frequencies)]);
disp([min(cS.scales),max(cS.scales)]);
disp(scal2frq([min(cS.scales),max(cS.scales)],'morl',dt));
240.38 954.93
0.0010 0.0040
8124753.85 2045231.02
Also, the output coefficients yields a scalogram that differs a lot from that obtained by coefficients resulting from using CWT.
Recall the syntax for CWTFT - using cell-arrays:
...'scale',{s0,ds,ns},...
where s0: smallest scale, ds: scale spacing, ns: number of scales
0 个评论
回答(1 个)
Simon Hofmann
2017-5-16
Hey Ronny, it could be that cwtft.m used another relationship between the equivalent Fourier period and the wavelet scale than scal2freq (Meyers et al. 1993) The relationship between Fourier wavelength and morlet wavelet scale is:
lambda = 4*pi*scales / (omega0 + sqrt(2+omega0^2)); frequencies = 1/lambda; from: http://paos.colorado.edu/research/wavelets/bams_79_01_0061.pdf
Default from morlet wavelet: omega0 = 6;
Best Regards Simon
Meyers, S. D., B. G. Kelly, and J. J. O’Brien, 1993: An introduc- tion to wavelet analysis in oceanography and meteorology: With application to the dispersion of Yanai waves. Mon. Wea.Rev., 121,2858–2866.
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!