我试图计算三角傅里叶系数(即使用numpy中的FFT算法从Fourier series Wikipedia page)得到的等式(1)。从numpy文档中可以看出,DFT的逆函数如this math stack exchange answer所示,因此如果Xm是DFT,n是点数,则Am =(1/n)Re[Xm],Bm = -(1/n)Im[Xm]。
然而,当我实际尝试计算这些时,三角傅立叶系数偏离了2倍。我试图通过使用numpy的逆DFT来检查归一化,但这会返回原始输入。Here's a github gist,它试图证明这个问题。我在这里做错了什么,2的因子是从哪里来的?
1条答案
按热度按时间tgabmvqs1#
差异的原因与numpy实现无关,只是一个数学事实。在链接的答案中,j <= N/2对应于正频率分量,j > N/2对应于负频率分量。这可以通过从j -> N-m改变后一个和的变量来验证。对于实值函数,负频率分量必然是正频率分量的复共轭。然而,这也意味着我所定义的分量仅考虑正频率分量,因此必须按2缩放。