【发布时间】:2017-09-09 18:22:15
【问题描述】:
我需要计算高斯和洛伦兹函数的傅里叶变换并绘制结果。我知道两者的结果,但我似乎无法正确处理它们,而且我不太了解 fft 在 Python 中的工作原理......
这就是我目前所拥有的洛伦兹函数
import numpy as np
from scipy import fftpack
import matplotlib.pyplot as plt
a = 1.0
N = 500 #number of points
x = np.linspace(-5,5,N)
lorentz = (a/np.pi) * (1/(a**2 + x**2)) #lorentzian function
fourier = fftpack.rfft(lorentz)
fourier = (2 * np.pi**2 / N)* abs(fourier[0:N/4]) #supposed to normalize
plt.plot(fourier)
plt.show()
我真的迷路了。我应该得到类似 exp(-pi|k|) 的东西,我不知道该怎么做才能让它看起来更像我想要的。
【问题讨论】:
-
FFT 计算离散傅里叶变换,这与(解析/连续)傅里叶变换不同。