У меня есть функция быстрого преобразования Фурье в Python для версий 2.x. Я хочу сделать это в Python 3.x, но у меня есть некоторые проблемы с «xrange» и идентификаторами списков (как сказал мой компилятор). Я также не знаю, как вычислить Inversed FFT из моего БПФ без использования каких-либо нестандартных библиотек. Код ниже. Заранее спасибо ...Перевод функции FFT из Python 2.x в Python 3.x и вычисление IFFT из него
from cmath import exp,pi
def FFT(X):
n = len(X)
w = exp(-2*pi*1j/n)
if n > 1:
X = FFT(X[::2]) + FFT(X[1::2])
for k in xrange(n/2):
xk = X[k]
X[k] = xk + w**k*X[k+n/2]
X[k+n/2] = xk - w**k*X[k+n/2]
return X
UPD: Полностью реконструирован, мой БПФ и построены IFFT из-за ваших советов. P.S. Как закрыть сообщение?
не доверять 'rfft' и' irfft' в 'numpy.fft'? – dbliss
должно быть достаточно, чтобы заменить 'xrange' на' range', чтобы код работал с python 3. – jepio
Не видел их. Но я хочу знать, как переписать этот код. Потому что очень коротко и легко запоминать. Потому что мне нужно запомнить этот код перед программированием. И в этих библиотеках коды довольно длинные. – Reodont