栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

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

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

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()



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/647054.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号