The present code is a Matlab function that provides a Short-Time Fourier Transform (STFT) of a given signal x[n]. The function is an alternative of the Matlab command “spectrogram”. The output of the function is:
1) a matrix with the complex STFT coefficients with time across the columns and frequency across the rows;
2) a frequency vector;
3) a time vector.
An example is given in order to clarify the usage of the function. For convenience, the input and output arguments are given in the beginning of the function.
The code is based on the theory described in:
 H. Zhivomirov. On the Development of STFT-analysis and ISTFT-synthesis Routines and their Practical Implementation. TEM Journal, ISSN: 2217-8309, DOI: 10.18421/TEM81-07, Vol. 8, No. 1, pp. 56-64, Feb. 2019. (http://www.temjournal.com/content/81/TEMJournalFebruary2019_56_64.pdf)
H. Zhivomirov. On the Development of STFT-analysis and ISTFT-synthesis Routines and their Practical Implementation. TEM Journal, ISSN: 2217-8309, DOI: 10.18421/TEM81-07, Vol. 8, No. 1, pp. 56-64, Feb. 2019. (http://www.temjournal.com/content/81/TEMJournalFebruary2019_56_64.pdf)
Hristo Zhivomirov (2022). Short-Time Fourier Transform (STFT) with Matlab (https://www.mathworks.com/matlabcentral/fileexchange/45197-short-time-fourier-transform-stft-with-matlab), MATLAB Central File Exchange. Retrieved .
MATLAB Release Compatibility
Platform CompatibilityWindows macOS Linux
Inspired: Image Manipulation Toolbox, Short-time Cepstrum (Cepstrogram) with Matlab, Speech Recognition gui, Cross-Synthesis Example with Matlab Implementation, Inverse Short-Time Fourier Transform (ISTFT) with Matlab
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!Start Hunting!