【发布时间】:2011-03-22 21:52:12
【问题描述】:
我正在尝试利用 Numpy 的 fft 函数,但是当我给该函数一个简单的高斯函数时,该高斯函数的 fft 不是高斯函数,它接近但减半,因此每一半都位于 x 轴的任一端.
我正在计算的高斯函数是 y = exp(-x^2)
这是我的代码:
from cmath import *
from numpy import multiply
from numpy.fft import fft
from pylab import plot, show
""" Basically the standard range() function but with float support """
def frange (min_value, max_value, step):
value = float(min_value)
array = []
while value < float(max_value):
array.append(value)
value += float(step)
return array
N = 256.0 # number of steps
y = []
x = frange(-5, 5, 10/N)
# fill array y with values of the Gaussian function
cache = -multiply(x, x)
for i in cache: y.append(exp(i))
Y = fft(y)
# plot the fft of the gausian function
plot(x, abs(Y))
show()
结果不太对,因为高斯函数的FFT应该是高斯函数本身...
【问题讨论】:
-
你可能想看看
numpy.arange()。