From 63e7df14cf16ea12b700f48ed73360db050d03ef Mon Sep 17 00:00:00 2001 From: Mark Borgerding Date: Fri, 14 Nov 2003 02:11:57 +0000 Subject: [PATCH] fft prototype code for real fft works --- fft.py | 22 ++++++++++++++++++++-- 1 file changed, 20 insertions(+), 2 deletions(-) diff --git a/fft.py b/fft.py index b2c5233..6420555 100644 --- a/fft.py +++ b/fft.py @@ -42,10 +42,27 @@ def fft(f,inv): return Fout +def rifft(F): + N = len(F) - 1 + Z = [0] * (N) + for k in range(N): + Fek = ( F[k] + F[-k-1].conjugate() ) + Fok = ( F[k] - F[-k-1].conjugate() ) * e ** (j*pi*k/N) + Z[k] = Fek + j*Fok + + #print 'Z', Z + + fp = fft(Z , 1) + + f = [] + for c in fp: + f.append(c.real) + f.append(c.imag) + return f + def real_fft( f,inv ): if inv: - sys.stderr.write('not impl\n') - sys.exit(1) + return rifft(f) N = len(f) / 2 @@ -54,6 +71,7 @@ def real_fft( f,inv ): fp = [ complex(r,i) for r,i in zip(res,ims) ] Fp = fft( fp ,0 ) + #print 'F=',Fp F = [] for k in range(N):