Fast Fourier Transform (FFT)

DFT Formula

N = len(signal)
X = np.zeros(N)
for k in range(N):
	for n in range(N):
		X[k] += signal[n] * np.exp(-2j * np.pi * k * (n/N))

IDFT Formula

N = len(signal)
x = np.zeros(N)
for n in range(N):
	for k in range(N):
		x[n] += X[k] * np.exp(2j * np.pi * k * (n/N))
x /= N

DFT Effects