python - 为什么偶函数的傅里叶变换会产生奇怪的结果(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()
解决方案
推荐阅读
- javascript - 我如何从 mysql 获取数据并使用 nodejs 和 javascript 呈现它?
- c - How to print the path to the place where program was compiled in c
- regex - 正则表达式以针对 workbox.routing / service worker 文件夹及其子文件夹中的所有文件
- apache-kafka - kafka客户端使用log4j通信
- python - 为什么我的 stacksize 函数返回 NONE
- java - 无法启动 Eclipse - JVM 已终止。退出代码=1
- python - 将集合的 ndArray 转换为矩阵
- outlook - 我在哪里可以找到 Outlook 2019 中的 Outlook 日历权限?
- sql-server - 如果结束日期在一个间隔处为空,我如何合并它们之间的日期差异
- elasticsearch - Elasticsearch 按选定的聚合值过滤数据