Why is the returning frequency range and scale range inconsistent using CWTFT?

11 Ansichten (letzte 30 Tage)
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

Antworten (1)

Simon Hofmann
Simon Hofmann am 16 Mai 2017
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.

Kategorien

Mehr zu Continuous Wavelet Transforms finden Sie in Help Center und File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by