[SciPy-user] comparisions of fft / inverse fft algorithms

michael biester Michael.Biester at t-online.de
Sun Jan 13 12:45:56 CST 2002

For filter design program I experimented with Fast Fourier Tranforms ( and their inverse).
I used algorithms from the  Numeric module and from Scipy.fft .

It seems, that FFT.fft from Numeric and fft.FFT2.fft perform similar (except for
speed of execution and round off errors)

However when applying the inverse transformations
FFT.inverse_fft(...)  from Numeric



to the same sequence, results are not the same. While 
FFT.inverse_fft(...)  from Numeric performs as expected ( compared with MATLABs ifft() )
fft.FFT2.ifft gives a sequence which is somehow shifted ...

I used this sample script  :

------ sample script ---------------------------------------------------------

#--- test different versions of fft and its inverse

from Numeric import *
import FFT
from scipy import *
import win32com.client

L = 500
N = 512

# create sequences with L complex 1's

x1 = ones(L)*(1+1j)

# use fft from Numeric
y1 = FFT.fft(x1,N)  #  since x1 has L samples transform x1 with zero padding
x1i = FFT.inverse_fft(y1) # transform back

#-- except for round off errors we expect x1i[0:L] = x1[0:L]
#   (indeed they are ...)

# now use fft and inverse fft from Scipy.fft
y2 = fft.FFT2.fft(x1,N)  #  transform x1 with zero padding
x2i = fft.FFT2.ifft(y2)  # transform back

#-- except for round off errors we expect x2i[0:L] = x1[0:L]
#   this time however the samples differ; plotting them reveals that
#   these sequences are similar but shifted versions of each other



-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://projects.scipy.org/pipermail/scipy-user/attachments/20020113/23c421bf/attachment.html 

More information about the SciPy-user mailing list