ShortTimeFFT.istft(S, k0=0, k1=None, *, f_axis=-2, t_axis=-1)[source]#

Inverse short-time Fourier transform.

It returns an array of dimension S.ndim - 1 which is real if onesided_fft is set, else complex. If the STFT is not invertible, or the parameters are out of bounds a ValueError is raised.


A complex valued array where f_axis denotes the frequency values and the t-axis dimension the temporal values of the STFT values.

k0, k1

The start and the end index of the reconstructed signal. The default (k0 = 0, k1 = None) assumes that the maximum length signal should be reconstructed.

f_axis, t_axis

The axes in S denoting the frequency and the time dimension.

See also


Check if STFT is invertible.


Perform Short-time Fourier transform.


Class this method belongs to.


It is required that S has f_pts entries along the f_axis. For the t_axis it is assumed that the first entry corresponds to p_min * delta_t (being <= 0). The length of t_axis needs to be compatible with k1. I.e., S.shape[t_axis] >= self.p_max(k1) must hold, if k1 is not None. Else k1 is set to k_max with:

q_max = S.shape[t_range] + self.p_min
k_max = (q_max - 1) * self.hop + self.m_num - self.m_num_mid

The Short-Time Fourier Transform section of the SciPy User Guide discussed the slicing behavior by means of an example.