Inverse Short-Time Fourier Transform.


x = istft(x)

x = istft(st,fs)

x = istft(st,fs,window)

x = istft(st,fs,window,overlap)

x = istft(st,fs,window,overlap,nfft)

x = istft(st,fs,window,overlap,nfft)

x = istft(st,fs,window,overlap,nfft,range)

[st,t] = istft(...)


The short-time fourier transform input, with segments stored by column.
The window size, or the window column vector.
Default: hann(256, 'periodic').
Type: integer | vec
Dimension: scalar | vector
The number of overlapping points in adjacent windows.
Default: 0.
Type: integer
Dimension: scalar
The size of the (two-sided) fft.
Default: the window length.
Required for range = 'onesided'.
Ignored for range = 'twosided'.
Type: integer
Dimension: scalar
The sampling frequency.
Default: 1 Hz.
Type: double
Dimension: scalar
The spectrum type. The options are as follows:
  • 'onesided'
  • 'twosided' (default)
Type: string


The generated time domain signal.
Type: double
Dimension: vector
The vector of times corresponding to the start of each column of st.
Type: vector


Use stft/istft to remove frequency components with low magnitudes from a linear chirp signal.

f0 = 0;
f1 = 5;
T = 4;
c = (f1 - f0) / T;
t = [0:0.01:T-0.01];
x1 = sin(2 * pi * ((c/2)*t.^2 + f0*t));
[st, t_st, f] = stft(x1, 100, 20, 10, 32, 'onesided');
idx = (abs(st) > 2.5);
st = st .* idx;
x2 = istft(st, 100, 20, 10, 32, 'onesided');
plot(t, x1);
hold on;
plot(t, x2);
legend('original', 'filtered');
Figure 1. istft figure 1


stft and istft are not true inverses. Once the spectrum is modified in some way there may be no time signal that exactly corresponds to it due to overlap. The time signal produced is a least squares fit based on analysis in the following paper: Daniel W. Griffin and Jae S. Lim "Signal Estimation from Modified Short - Time Fourier Transform", IEEE 1984, 10.1109.

Default values are assigned to arguments with a [] input.

The fs, window, overlap, nfft, and range inputs should correspond to those used when calling stft.

With no return arguments the function will automatically plot the result.

The window type and overlap should be chosen to meet the constant-overlap-add (COLA) criterion. Examples of this include the Hann window when overlapped by 1/2 or 2/3.