【发布时间】:2016-05-29 16:38:47
【问题描述】:
所以,在 iPython 中,我运行以下命令,
In [1]: from pylab import *;
In [2]: x = np.array([4.,3.,2.,1.,0.,1.,2.,3.,4.]);
In [3]: rfft(x)
Out[3]:
array([ 20.00000000+0.j , 7.79085937+2.83564091j,
-0.21688142-0.18198512j, 0.50000000+0.8660254j ,
-0.07397795-0.41954982j])
变量x 是数组中间元素周围的偶数函数,但它的fft 并不完全真实。这是为什么?如何在 numpy/scipy 的 fft 函数中输入偶数函数,以便将其解释为应为的偶数函数?
【问题讨论】:
-
您是否希望原点位于数组的中间?
-
你确定numpy使用的是原点是中间的约定吗?我相信原点是第一个元素是很常见的,试着让你的数组 [0, 1, 2, 1] 看看是否可行。
-
N点覆盖一段频谱,不包括最后一个频点,即第一个频点的重复。因此,根据该约定,您应该将
np.array([4.,3.,2.,1.,0.,1.,2.,3.])用于对称光谱。 -
@SleuthEye 这应该是一个答案而不是评论