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

1 visualización (últimos 30 días)
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

Respuestas (1)

Simon Hofmann
Simon Hofmann el 16 de Mayo de 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.

Categorías

Más información sobre Continuous Wavelet Transforms en Help Center y File Exchange.

Etiquetas

Community Treasure Hunt

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

Start Hunting!

Translated by