implemented FFT wrapper in naive_DFT.py. It imports FFT func from FFT.py and calculates data throw it

This commit is contained in:
2025-10-08 16:14:59 +03:00
parent d15f940da6
commit 601817e2b3
3 changed files with 25 additions and 12 deletions

12
FFT.py Normal file
View File

@ -0,0 +1,12 @@
import numpy as np
def FFT(inp):
inp = np.array(inp)
out = np.fft.fft(inp)
out = [val for val in np.abs(out)]
print(out)
return out

Binary file not shown.

View File

@ -3,6 +3,8 @@ from math import sin, cos, pi, sqrt
import plotly.graph_objs as go
from plotly.subplots import make_subplots
from FFT import FFT
FP_acc = 1e3
INP_L = 1024
@ -149,20 +151,19 @@ def DFT_naive_FP(inp_float, out):
print("F, val_abs:",f, val_abs)
out[f] = val_abs
def FFT_naive(inp, out):
for f in range(len(out)):
val_re = 0
val_im = 0
for n in range(len(inp)):
phi = 2*pi*f*n/INP_L
val_re += inp[n] * sin(phi) /INP_L
val_im += inp[n] * cos(phi) /INP_L
val_abs = abs_f(val_re, val_im)
print("F, val_abs:",f, val_abs)
out[f] = val_abs
fft_out = FFT(inp)
for i in range(len(fft_out)):
val = fft_out[i]/len(inp)
if (i < len(out)):
out[i] = val
else:
pass
#out.append(val)
def FFT_tester():
inp = [-1 + 0.01*i + sin(2*pi*i/10) + cos(2*pi*i/20) + sin(2*pi*i/250) + sin(2*pi*i/2.001) for i in range(INP_L)]