The present code is a Matlab function that provides an Inverse Short-Time Fourier Transform (ISTFT) of a given spectrogram STFT(k, l) with time across columns and frequency across rows. The output of the function is:
1) the reconstructed signal in time domain;
2) a time vector.
For convenience, the input and output arguments are given in the beginning of the function
An example is given in order to clarify the usage of the function. It represents the time-frequency analysis and then the perfect reconstruction of a given signal x[n], using Blackman and Hamming windows for the analysis and resynthesis, respectively. Also, a GUI named OLAExam is supplied to represent the perfect reconstruction via overlap-add (OLA) method and to assist the choice of the analysis/resynthesis window(s) (their length and hop size).
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). Inverse Short-Time Fourier Transform (ISTFT) with Matlab (https://www.mathworks.com/matlabcentral/fileexchange/45577-inverse-short-time-fourier-transform-istft-with-matlab), MATLAB Central File Exchange. Retrieved .
MATLAB Release Compatibility
Platform CompatibilityWindows macOS Linux
Inspired by: Short-Time Fourier Transform (STFT) with Matlab
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!Start Hunting!