我有以下代码:
Ga=rfft2(A)
A
的类型为float32
,但Ga
的格式为complex128
,有效地使我的数据倍增。如何获取complex64
数据?当然,这不是fftw
的默认功能吗?
答案 0 :(得分:2)
好吧,似乎在C代码中定义了相当深的类型。 fftpack_litemodule.c使用NPY_CDOUBLE
作为数组类型,基本上是您的complex128
。我看到的唯一解决方案是使用complex64
将数组转换为astype(np.complex64)
或使用scipy.fftpack包返回一个float64
数组,将复数值编码为:< / p>
[y(0),Re(y(1)),Im(y(1)),...,Re(y(n/2))] if n is even
[y(0),Re(y(1)),Im(y(1)),...,Re(y(n/2)),Im(y(n/2))] if n is odd