From 9a8f75de19753419ccf8e9c5e45da25dd1dd0ade Mon Sep 17 00:00:00 2001 From: Theodor Chikin Date: Wed, 8 Oct 2025 16:23:27 +0300 Subject: [PATCH] impemented FFT with numpy and recursion --- FFT.py | 22 +++++++++++++++++++++- __pycache__/FFT.cpython-312.pyc | Bin 624 -> 1712 bytes naive_DFT.py | 4 ++-- 3 files changed, 23 insertions(+), 3 deletions(-) diff --git a/FFT.py b/FFT.py index 45ebfb5..61ec9a0 100644 --- a/FFT.py +++ b/FFT.py @@ -3,10 +3,30 @@ import numpy as np -def FFT(inp): +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)) + diff --git a/__pycache__/FFT.cpython-312.pyc b/__pycache__/FFT.cpython-312.pyc index 90dfc2c78af45d69968fb5bc1039dfb4ba5759d2..7ed90aa1e765975b6c3d8ef9833776a5aab6a668 100644 GIT binary patch literal 1712 zcmc&!&2Jk;6rT_8de=_U(4e+}6y>W3=THlrBUB1aD}f+tNI+Gk%G&I%UN)UP~m^J|))A2BDTgX5LE~C5HAP>=9Vo*S8BmfgtoRJQN>a31q zixWt|MqwTQ0kDPq&e?L?^NC)J0s8s>^BVFy@@3(phnA%t0kB=xxGRo)h9+*unL!&w zCrd~t_aI7*1Z0zZB_~h~*NCsSErX6eMgg7&Z49eM?xS5in~^xNT`p;iX;n@O1)o!G z(c_ZKEZg6uoLX>9oeIcTwX!F&F)}jpY%W`LR?KX{G_>r;AKYHZexezcbGzvHj&14r z`O2bavVx|Yd8Qc}%TCYS$m`CETk$P>DZ5ZKeJx*bD$Fuj_SUV1Yi^aNV9zgVda2^F z3lK*9y7v)4h+0Z&Lun|{P_sWA7mVDHH&TsMlxto9!Ijs)mmka9-nZ#Lm5FHR%b`7G zA{+;3kz}1doIFtb!pVP+B&1&TgxBBt)ai-D*_HkY&d*ipPAy+X1(|qV8HtHYF!5`g zLKc}KSn&Xu=#6&K*nm(_M4FkYmDxpLg~*!$cp=H@`i-V?&g6<~{Gv_|p3befSKLJg z^v8K}8=$kg$H1?F!x|2tk4taCKav2=BR>hkm;%w~$e>?Pq1Wye=!k9&a)t)&>N}Ca z9)fsu4f?+0G0~+T&!E!=Mxtv9^qoEv+!|ynNW_TO($D<{RLE*lmv>R69tubxt${4w zA$ozd?==q(VwQ;kbtvZ1q4=u85){UW(61S#>&-}BQFBf93LJ7-W178Wa%w(sIdLtX z)*V~deA9-Nkr`YRaXicAJ9%@}w7GOA?-&NhB~JYNad*LZ0E!=5>@tQ+VCH=X(DTj? zWc87?Zbf*#9F87Ha((pk&koW9;fJmCK;7HSMRQTE@u2x$_+~7K-j1dsEt+ano7cmu zEm=7+j^;Myefe@Y+DfXAR@YbS`q%Go-Q2v{C~Z$SoE`jRV01q@w)5$eqSW>MTL@sI2xHX;O~B+rz0 nR~(~KHm|dBU`4jQ%K-mSjPYOS;!#S%{YQfU$Ac=KiVgn*CZ0b; delta 147 zcmdnM`+