implemented FFT wrapper in naive_DFT.py. It imports FFT func from FFT.py and calculates data throw it
This commit is contained in:
12
FFT.py
Normal file
12
FFT.py
Normal 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
|
||||
|
||||
BIN
__pycache__/FFT.cpython-312.pyc
Normal file
BIN
__pycache__/FFT.cpython-312.pyc
Normal file
Binary file not shown.
25
naive_DFT.py
25
naive_DFT.py
@ -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
|
||||
@ -150,19 +152,18 @@ def DFT_naive_FP(inp_float, out):
|
||||
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)]
|
||||
|
||||
Reference in New Issue
Block a user