File Exchange

image thumbnail

Time frequency distribution of a signal using S-transform (stockwell transform)

version 1.0.0.0 (221 KB) by Aditya Sundar
This function gives the time-frequency distribution using S-transform in matlab

25 Downloads

Updated 23 Sep 2015

View License

This function gives the time-frequency distribution using S-transform in matlab. Credits to :
[1] Stockwell, R.G., "Localization of the complex spectrum: the S transform", IEEE Transactions on Signal Processing, Volume 44, Issue 4, Pg. 998 - 1001, doi : 10.1109/78.492555
This function is useful for implementation of papers such as :
[2] M.K. Das, S, Ari, "Analysis of ECG signal denoising method based on S-transform", Elsevier IRBM, Volume 34, Issue 6, Pg. 362-270, 2013, doi :doi:10.1016/j.irbm.2013.07.012

Cite As

Aditya Sundar (2021). Time frequency distribution of a signal using S-transform (stockwell transform) (https://www.mathworks.com/matlabcentral/fileexchange/51808-time-frequency-distribution-of-a-signal-using-s-transform-stockwell-transform), MATLAB Central File Exchange. Retrieved .

Comments and Ratings (10)

V RAJINIKANTH

Kartheek Akurati

Hello Maria Aurora Natale Castillo,

You can use signalAnalyzer to visualize the signal in a better way.

Thanks and regards,
Kartheek.

Could anyone be so kind as to help me? I'm trying to transform an ultrasonic signal. I 've applied the S-transform and I obtain a 4 rows x (length(timeseries) columns. I would like to visualize as a frequency-time map of the transformed signal. Can anyone tell me how to achieve it? Work on progress regarding ultrasonic seismic attenuation.

Thanks in advance!

Aurora

Haobin Wen

Thanks for the demo. But i think 'samplingrate' is the time interval between samples, rather than fs.
BTW wondering if you have ever used "generalized S-trans" ? Met some troubles coding it.

Thx.

Hamdullah Livaoglu

Aditya Sundar

Yes, the rows represent frequencies (whose number depends on the freq resolution or freq sampling rate) and the columns represent time.

marie vill

marie vill

Thanks for your reply, used this function:
Vtrain=[];
[sig,fs]=wavread('0Wheez01.wav')
frame =1024;
hamwin=hamming(frame);
for i=1:frame:length(sig)-frame;
s=sig(i:i+frame-1).*hamwin;
% stoklow function
[trainingSet,st_times,st_frequencies]=st(s,200,400,1024,6000);
Vtrain = [Vtrain ; trainingSet];
end
the size of the st-matrix is 39*1024 ;39=length(sig)/frame dose is the same th number of frequence and 1024 the number of time???

Aditya Sundar

This function needs a time series input. SO please feed in the same, but define the correct frequency range for which you wish to extract the ST matrix

marie vill

Hi i wish use this function to classify sounds but i don't know how to define variables: a,minfreq,maxfreq,samplingrate,
for me a is a frame composed by 1024 sample , fs= 6000 hz , th fmin =200hz and the max =400hz. should i convert it to time values please help me

MATLAB Release Compatibility
Created with R2014a
Compatible with any release
Platform Compatibility
Windows macOS Linux

Community Treasure Hunt

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

Start Hunting!