numpy的fft结果的幅度要乘以采样周期吗?

numpy的fft结果的幅度要乘以采样周期吗?,第1张

numpy的fft结果的幅度要乘以采样周期吗?

请注意,您不是在计算连续时间的傅立叶变换,计算机是处理离散数据的,Numpy也是如此,如果您看一下

numpy.fft.fft
说明以下内容的文档:

numpy.fft.fft(a,n = None,axis = -1)[源代码]

计算一维离散傅立叶变换

此函数使用高效的快速傅立叶变换(FFT)算法计算一维n点离散傅立叶变换(DFT)

这意味着您正在计算方程式定义的DFT:

连续时间傅立叶变换的定义为:

如果您进行数学运算以查找它们之间的关系:

如您所见,有一个常数因子

1/N
正好是您的标度值
dt
x[n] - x[n-1]
其中n在[0,T]区间中等于
1/N
)。


只是对您的代码进行注释,导入所有内容

from numpy import *
而不是使用以下方法不是一个好习惯:

import numpy as npimport matplotlib.pyplot as plt# create dataN = 4097T = 100.0t = np.linspace(-T/2,T/2,N)f = np.exp(-np.pi*t**2)# perform FT and multiply by dtdt = t[1]-t[0]ft = np.fft.fft(f) * dt      freq = np.fft.fftfreq(N, dt)freq = freq[:N/2+1]# plot resultsplt.plot(freq, np.abs(ft[:N/2+1]),'o')plt.plot(freq, np.exp(-np.pi * freq**2),'r')plt.legend(('numpy fft * dt', 'exact solution'), loc='upper right')plt.xlabel('f')plt.ylabel('amplitude')plt.xlim([0, 1.4])plt.show()



欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5649249.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-16
下一篇 2022-12-16

发表评论

登录后才能评论

评论列表(0条)

保存