Я довольно новичок в обработке сигналов и хочу попробовать stft.
Я использую scipy's stft и istft, чтобы получить следующий результат: ORIGNIAL SIGNAL -> STFT -> ISTFT -> ORIGINAL SIGNAL
В качестве тестовых данных использовался Mono WAV-файл с Африкой от Toto.
Был выполнен следующий код:
rate, wav_data = read('./africa-toto.wav')
f, t, original_signal = stft(wav_data, fs=rate, return_onesided=True, window='hann')
t_inv, restored_signal = istft(original_signal, fs=rate, time_axis=0, freq_axis=1, window='hann')
write('./stft_example.wav', rate, np.int16(restored_signal))
Выходной WAV-файл содержит только шум. Однако я добился ожидаемого результата, используя fft / ifft.
Что я делаю не так? Может быть, какие-то манипуляции с nperseg и nfft требуются?