Вы ошибаетесь в "Ifft
должен вернуть реальный массив".Если вы хотите получить реальный вывод (т. Е. У вас есть полные значения реальных данных, и теперь вы хотите выполнить ifft), вы должны использовать irfft
.
См. Этот пример из документов :
>>> np.fft.ifft([1, -1j, -1, 1j])
array([ 0.+0.j, 1.+0.j, 0.+0.j, 0.+0.j]) #Output is complex which is correct
>>> np.fft.irfft([1, -1j, -1])
array([ 0., 1., 0., 0.]) #Output is real valued