I search to display a time-frequency signal with an original discrete temporal signal (sampling step = 0.001sec). I use Python and the library Scipy.signal. I use the function cwt(data, wavelet, widths)
to do a continuous wavelet transform, with the complex morlet wavelet (or gabor wavelet).
First step: Obtain a scale-translation signal. In doubt, I associate directly the array “widths” with the array of the possible different scales. Because, I don’t understand what is parameter width if it’s not scale. Perhaps, you will tell me “it’s the width of your current wavelet”! But, even if it is, I don’t know how linked width with scale…
My second problem is to find and display the equivalent with frequency. In literature, I find this formula: Fa = Fc / (s*delta), where Fa is the final frequency, Fc the center frequency of a wavelet in Hz, s the scale and delta the sampling period. So, ok for scale (if I find the link with the width) and delta (=0.001sec), but it’s more complicated with center frequency of the wavelet. In scipy documentation, I find that: “The fundamental frequency of this wavelet [morlet wavelet] in Hz is given by f = 2*s*w*r / M, where r is the sampling rate [s is here Scaling factor, windowed from -s*2*pi to +s*2*pi. Default is 1; w the width; and M the length of the wavelet].” I think it’s the center frequency, is it? Maybe the solution to my first problem is here also (scaling factor and scale..?)..?
Thank you
cwt
docstring says thatricker
is meant to be used with it, so try that first? "The first argument is the number of points that the returned vector will have (len(wavelet(width,length)) == length). The second is a width parameter, defining the size of the wavelet"morlet
has separate parameters for both frequency and scale, while ricker's second parameter is "width". I don't know if morlet's "frequency" or "scale" is compatible with "width", but I'd guess that "scale" is the one, which meansmorlet
is not compatible withcwt
. $\endgroup$