Files
FFT_and_FP_math/FFT.py

33 lines
532 B
Python

import numpy as np
def FFT_backup(inp):
inp = np.array(inp)
out = np.fft.fft(inp)
out = [val for val in np.abs(out)]
print(out)
return out
def FFT_real(inp):
inp = np.array(inp)
out = FFT(inp)
out = [val for val in np.abs(out)]
print(out)
return out
def FFT(inp):
inp = np.array(inp)
N = inp.shape[0]
if N == 1:
return inp
X_even = FFT(inp[::2])
X_odd = FFT(inp[1::2])
k = np.arange(N // 2)
tw = np.exp(-2j * np.pi * k / N) * X_odd
return np.concatenate((X_even + tw, X_even - tw))