- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
早上好,我正在尝试将 2D FFT
作为 2 1-Dimensional FFT
执行。
问题设置如下:
实数数组上有一个逆FFT
生成的复数矩阵,我们称它为arr[-nx..+nx] [-nz..+nz]
.
现在,由于原始数组由实数组成,我利用对称性将我的数组简化为 arr[0..nx][-nz..+nz]
。
我的问题从这里开始,提供了 arr[0..nx][-nz..nz]
。现在我应该回到实数领域。问题是我应该在 2 个方向上使用什么样的转换?
在 x
中,我使用 fftw_plan_r2r_1d( .., .., .., FFTW_HC2R, ..)
,称为 Half complex to Real
转换,因为在那个方向上我已经利用了对称性,我认为这没问题。但是在 z
方向上,我不知道我是应该使用相同的转换还是 Complex to complex (C2C)
转换?一次正确的是多少?为什么?
如果需要here , 在第 11 页,简要描述了 HC2R 转换
谢谢
最佳答案
"To easily retrieve a result comparable to that of
fftw_plan_dft_r2c_2d()
, you can chain a call tofftw_plan_dft_r2c_1d()
and a call to the complex-to-complex dftfftw_plan_many_dft()
. The argumentshowmany
andistride
can easily be tuned to match the pattern of the output offftw_plan_dft_r2c_1d()
. Contrary tofftw_plan_dft_r2c_1d()
, the r2r_1d(...FFTW_HR2C...) separates the real and complex component of each frequency. A secondFFTW_HR2C
can be applied and would be comparable tofftw_plan_dft_r2c_2d()
but not exactly similar.As quoted on the page 11 of the documentation that you judiciously linked,
'Half of these column transforms, however, are of imaginary parts, and should therefore be multiplied by I and combined with the r2hc transforms of the real columns to produce the 2d DFT amplitudes; ... Thus, ... we recommend using the ordinary r2c/c2r interface.'
由于您有一个复数数组,您可以使用 c2r 变换或展开实部/虚部并尝试使用 HC2R 变换。前一个选项似乎最实用。哪个可以解决您的问题?”
-@弗朗西斯
关于c - 我应该使用 Halfcomplex2Real 还是 Complex2Complex,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54550015/
我是一名优秀的程序员,十分优秀!