From b880c599ef39ebcab03bdf7160a531d294312e76 Mon Sep 17 00:00:00 2001 From: Mark Borgerding Date: Wed, 10 Dec 2003 05:20:21 +0000 Subject: [PATCH] optimizing --- fft.py | 20 +++++++++++++------- 1 file changed, 13 insertions(+), 7 deletions(-) diff --git a/fft.py b/fft.py index 7f7b3ad..f533312 100644 --- a/fft.py +++ b/fft.py @@ -68,15 +68,21 @@ def real_fft( f,inv ): Fp = fft( fp ,0 ) print 'fft output ', Fp - F = [] - for k in range(N): - F1k = Fp[k] + Fp[-k].conjugate() - F2k = -j*(Fp[k] - Fp[-k].conjugate()) - print 'F2k[%d]=%s' % (k,F2k) + F = [ complex(0,0) ] * ( N+1 ) + + F[0] = complex( Fp[0].real + Fp[0].imag , 0 ) - F.append( ( F1k + e ** ( -j*pi*k/N ) * F2k ) * .5 ) + for k in range(1,N/2+1): + tw = e ** ( -j*pi*(.5+float(k)/N ) ) + + F1k = Fp[k] + Fp[N-k].conjugate() + F2k = Fp[k] - Fp[N-k].conjugate() + F[k] = ( F1k + tw * F2k ) * .5 + + #F[N-k] = ( F1kp + e ** ( -j*pi*(.5+float(N-k)/N ) ) * F2kp ) * .5 + F[N-k] = ( F1k.conjugate() - tw.conjugate() * F2k.conjugate() ) * .5 - F.append( complex( Fp[0].real - Fp[0].imag , 0 ) ) + F[N] = complex( Fp[0].real - Fp[0].imag , 0 ) return F def main():