我正在使用 numpy 和 matplotlib 从我的模拟中分析数据输出。有一个(明显的)不一致之处,我找不到其根源。如下:
我有一个具有给定能量 a^2~1 的信号。当我使用 rfft 进行 FFT 并计算傅里叶空间中的能量时,它会明显更大。为了避免提供我的数据等的详细信息,这里有一个简单的正弦波示例:
from pylab import *
xx=np.linspace(0.,2*pi,128)
a=np.zeros(128)
for i in range(0,128):
a[i]=sin(xx[i])
aft=rfft(a)
print mean(abs(aft)**2),mean(a**2)
原则上,这两个数字应该是相同的(至少在数字意义上),但这就是我从这段代码中得到的:
62.523081632 0.49609375
我试图通过 numpy.fft 文档但找不到任何东西。这里的搜索给出了以下内容,但我无法理解那里的解释:
我错过了什么/误解了什么?在这方面的任何帮助/指针将不胜感激。
谢谢!