首页 > 解决方案 > 为什么偶函数的傅里叶变换会产生奇怪的结果(scipy.fft/numpy.fft)?

问题描述

我试图获得一个以零为中心的简单高斯函数的傅里叶变换。当我 FT 函数的正(或负)一半时,我得到了预期的高斯变换,但是当我尝试 FT 对称(偶数)高斯时,我在形成高斯包络的实部和虚部中得到奇怪的快速振荡. 为什么我会看到这个?顺便说一句,我在任何对称函数中都看到了这一点,而不仅仅是高斯函数。理想情况下,虚部应该为零,因为函数是偶数,但我看到快速振荡。这是怎么回事?

import numpy as np
import matplotlib.pyplot as plt
import scipy.fft as sfft


def gaussian(t, sigma):
    return np.exp(-0.5 * (t**2 / sigma**2))


N = 10000
t = np.array([i for i in range(N)])
fx = [gaussian(t[i], 1000) for i in range(N)]

# t_rev = -t[::-1][:-1]
# t = np.array(list(t_rev) + list(t))
fx_rev = fx[::-1][:-1]
fx = list(fx_rev) + list(fx)

ft = np.fft.fftshift(sfft.fft(fx))

plt.plot(fx)
plt.show()
plt.plot(ft.real)
plt.plot(ft.imag)
plt.show()

结果具有快速正弦振荡

标签: pythonnumpyscipyfft

解决方案


推荐阅读