Python中Gaussian和Lorentzian函数的FFT

时间:2017-04-13 14:51:36

标签: python scipy fft

我需要计算高斯函数和洛伦兹函数的傅立叶变换并绘制结果。我知道两者的结果,但我似乎无法让它们正确,我真的不明白fft如何在Python中运行...

这是我迄今为止对lorentzian函数所拥有的

CUSTOMER (PK CUST_ID, CUST_NAME, CUST_ADDRESS)

INVOICE (PK INVOICE_ID, FK CUST_ID, INVOICE_AMOUNT)

PRODUCT (PK PRODUCT_ID, PRODUCT_NAME, PRODUCT_COST)

INVOICE_ITEM (PK FK INVOICE_ID, PK FK PRODUCT_ID, 
INVOICE_ITEM_QUANTITY, INVOICE_ITEM_PRICE)

enter image description here

我真的迷失了。我应该得到像exp(-pi | k |)这样的东西,我不知道我应该怎么做才能让它看起来更像我想要的东西。

1 个答案:

答案 0 :(得分:0)

fft()函数没有给出你期望的结果有很多原因:

  • 首先,fft()函数仅计算离散傅里叶变换,其被定义为有限数量的规则间隔点上的求和,并且隐含地需要周期函数。连续时间傅里叶变换被定义为无限长时间内的积分,而不假设信号是周期性的。
  • 其次,你有效地定义你的洛伦兹时间序列的方式使得它以一个偏离原点的时间为中心。这将为所有傅立叶系数引入相位旋转(这可能是您在生成绘图之前采用绝对值的原因?)。

如果您采用足够多的采样点,并充分延长输入波形的时间范围,我相信您确实应该收敛到正确的"回答,例如由contour integration获得。例如,如果您使用

x = numpy.linspace(-50, 50, 5000)

你得到的离散傅立叶变换看起来更像: (unnormalized) Fourier transform