I need some information about Stockwell transform (also known as the S-transform):

  1. How can I implement it in MATLAB?
  2. *Does it give you the damping ratio $\zeta$ of a signal like the complex Morlet continuous wavelet? $$x(t)= e^{-\omega_{n}\zeta}\sin(\omega_{d}t+\theta )$$
  3. What are its advantages compared to CWT?

The S-transform defined as follows: $$s( \tau ,f)= \int_{-\infty}^\infty h(t) \frac{\ |f|}{\ \sqrt{2 \pi } } e^{ \frac{-(t- \tau )^{2} f^{2}}{2} } e^{-j 2 \pi f} dt$$ (This is a good tutorial about the S-Transform)

These are the first few question that I can think about at the moment. It seems no one asked about the S-transform before, so put your questions in this post by editing it, and answer them if you know them. Someone with enough reputation put a tag for S-transform please. Thanks a lot.

  • $\begingroup$ This time-frequency representation (not a wavelet) is very similar to the Gabor transform. If you like to implement it, you can start by adapting Gabor's code. $\endgroup$ – Hasan Oct 16 '13 at 6:12
  • $\begingroup$ @Hasan I used direct cwt function in matlab.so I don't have gabor code in detail. where can I find it? $\endgroup$ – Electricman Oct 16 '13 at 6:44
  • $\begingroup$ tftb.nongnu.org . $\endgroup$ – Hasan Oct 16 '13 at 6:50
  • $\begingroup$ @Electricman, just FYI, if someone has other questions about S-transforms, they should open new questions and not add them to this question. $\endgroup$ – dshapiro Jan 21 '15 at 14:31

The Matlab code of the S-transform can be found here for example: http://en.verysource.com/code/1180181_1/st.m.html

The main advantage compared to CWT is its simplicity. In fact, it can be seen as equivalent to a Morlet wavelet, see for example paper by Ventosa, Schimmel, Simon, Dañobeitia and Mànuel "The S-transform from a wavelet point of view", IEEE Trans on Signal Processing, 2008.

|improve this answer|||||
  • $\begingroup$ thanks for the code, here en.pudn.com/downloads107/sourcecode/math/detail442126_en.html you can find a better package, It includes inverse Stockwell transform as well. and it works even better. Now I am trying to compare S-T with other similar methods. I will try to post a complete answer when I understand it well. tnx for ur answer $\endgroup$ – Electricman Oct 18 '13 at 15:19


1) The ST does the phase of the TFR. For instance, if you have a constant cosine function i.e., $h(t) = Acos(2 \pi f t + \theta),$ then the phase of the ST result for that voice (frequency f) is exactly equal to theta for all time.

2) you can get the FFT spectrum (the complex values) by averaging the ST over time. Which makes a lot of sense to me, if you have the time varying spectrum you average over time to get the global or FFT spectrum.

Localization of the complex spectrum: the S transform RG Stockwell, L Mansinha, RP Lowe, Signal Processing, IEEE Transactions on 44 (4), 998-1001

Why use the S-transform Authors RG Stockwell Publication date 2007 Journal Pseudo-differential operators: partial differential equations and time-frequency analysis

|improve this answer|||||
  • $\begingroup$ Thanks for answer @bob-stockwell . As you know There is are very good approximation for wavelet to extract the damping ratio {check here: dsp.stackexchange.com/questions/10231/… , I wrote a complete script for extracting the damping ratio and should answer my earlier question soon}. Would you please explain more how can I extract the damping ratio ($\zeta$) of a namely signal $x(t)= e^{-\omega_{n}\zeta}\sin(\omega_{d}t+\theta )$l with S-Transform ? $\endgroup$ – Electricman May 29 '15 at 11:55

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.