[SciPy-User] Help with fast fourier transform

Oscar Gerardo Lazo Arjona algebraicamente at gmail.com
Thu Apr 29 12:17:09 EDT 2010


Hello! I'm new to this mailing list and to numpy in general.
I need to calculate fft for my optics class. But I'm having trouble.

This is the code I'm using (commented):

import pylab
import numpy as np

def g(x):
   if x>450 and x<550:
       return 1
   else:
       return 0
      f=[g(x) for x in range(0,1000)]
f=np.array(f)

#this funtion can be ploted as
#http://i41.tinypic.com/k0shnk.png
#which is a step function "centered" at 500


F=np.fft.fft(f)
#when calculate the fft of f i get an array of complex numbers
#whose absolute value can be ploted as
#http://i40.tinypic.com/1zcecxx.png

#But that is not the desired output.
#Instead of that i expect something that can be ploted like this
#http://i39.tinypic.com/1zmch0g.png


#what i think must be happening because my function f
#has an offset of 500 (it's supposed to be centereed at 500)

#So i think it all reduces to two options:
#somehow telling fft to consider the origin at 500
#(indicate thetell the offset)

#Or make fft accept a list of points like
#[[-2,0],[-1,1],[0,1],[1,1],[2,0]]
#so that it can know the position of the step relative to the origin

Please help!

Oscar



More information about the SciPy-User mailing list