相关疑难解决方法(0)

高斯的傅立叶变换不是高斯变换,但这是错误的! - Python

我正在尝试利用Numpy的fft函数,但是当我给函数一个简单的gausian函数时,该gausian函数的fft不是gausian,它的接近但是它的一半使得每一半都在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 …
Run Code Online (Sandbox Code Playgroud)

python numpy fft

8
推荐指数
1
解决办法
9913
查看次数

实现 fftshift 和 ifftshift 的正确顺序(在 python 中)

我想对一个函数进行傅里叶变换psi(x),将其乘以 k 空间函数exp(-kx^2-ky^2),然后将乘积逆傅里叶变换回 x 空间。

但是我的 x 空间和 k 空间网格位于中心,并且我知道我需要fftshiftifftshift正确实现我的 k 空间乘法。但我不明白它们是如何工作的,所以我不知道按照什么顺序来实现它们。有人可以告诉我我在这里做得是否正确吗?

import scipy.fftpack as spfft
import numpy as np

#Create a centred k-space grid]

kxmax, kymax = 10,10
kxgrid = np.linspace(-kxmax/2, kxmax/2, NX)
kygrid = np.linspace(-kymax/2, kymax/2, NY)
KX, KY = np.meshgrid(kxgrid, kygrid, indexing='xy')

psi = spfft.ifft2(spfft.fftshift(np.exp(-(KX**2 + KY**2)) * spfft.fftshift(spfft.fft2(psi))))
Run Code Online (Sandbox Code Playgroud)

python fft scipy

8
推荐指数
1
解决办法
7903
查看次数

标签 统计

fft ×2

python ×2

numpy ×1

scipy ×1