-2

I'm dealing with CWT, and I have a big problem converting scales to frequencies. In the MAtlab Wavelet Tutorial they use this expression to convert scales to frequenciesenter image description here

But if i use the default function scal2freq I obtain different result. I don't understand the role of the Morlet Fourier Factor

Thanks in advance

  • 3
    Please don't post pictures of code, see [How do I ask a good question?](https://stackoverflow.com/help/how-to-ask) for more information. – HansHirse Sep 30 '19 at 10:50

1 Answers1

0

It is a pretty complicated concept, which I somewhat understand it. I'll write some points here so that you might figure it out yourself, rather easier.

A simple fact is that:

Scale is inversely proportional to frequency.

For example, imagine we have a 1-100 Hz range of frequencies in some time series data such as stock markets data or earthquake data. Scale is "supposed to be" the inverse of that. For instance, if scale would be in range of 1 to 100, we'd have had:

Scale(1/Hz)      Frequency (Hz)
1                100
50               50
100              1

Therefore,

The frequency is not the real frequency of those time series data (e.g., stock market, earthquake) that we know of. They are only related, inversely.

And we can safely say that here we are calculating some "pseudo-frequencies", which MATLAB does that (by approximating that). You can read about the approximation process in the documentation in the section pseudo-frequencies:

MATlAB does calculate those pseudo-frequencies based on:

In wavelet analysis, the way to relate scales to frequencies is to determine the center frequency of the wavelet function:

which you can visually see in this image and of-course it would differ, when we would change the types of our function in the calculation. Thus, that center frequency will change everytime in our approximation process:

enter image description here

That "MorletFourierFactor" is a variable to approximate a constant so that when you would do the 1/scale, it would closely approximate those "pseudo-frequencies".


I thought this image about shifting (time axis) and scaling (frequency axis) might be a little helpful to look into as well:

enter image description here

The bottom line is that don't worry about pseudo-frequencies, you wouldn't probably need those. If you would want any frequency spectrum, you can likely go towards applying some of those frequency methods (such as Fast Fourier Transform) on whatever time series data that you have.

If you really really want to map that, you can also try to design some methods to approximate it yourself.

Source

Harvard Seismology

Community
  • 1
  • 1
Emma
  • 27,428
  • 11
  • 44
  • 69