1
我有不同的结果试图计算用于2D数据的Forward Fourie变换。 MATLAB,列表:使用Matlab fft2和MKL的不同结果DftiComputeForward
fft2([25.6798, 26.0815, 29.0069; 33.5761 37.123 38.4696; 38.6358 38.0078 37.649])
Matlab的结果:低于3×3矩阵
简单测试例子
ans =
1.0e+02 *
3.0423 + 0.0000i -0.0528 + 0.0339i -0.0528 - 0.0339i
-0.3096 + 0.0444i 0.0112 + 0.0646i -0.0144 + 0.0225i
-0.3096 - 0.0444i -0.0144 - 0.0225i 0.0112 - 0.0646i
MKL,列表:
DFTI_DESCRIPTOR_HANDLE descriptor1;
double test[3][3] = {{25.6798, 26.0815, 29.0069},
{33.5761, 37.123, 38.4696},
{38.6358, 38.0078, 37.649}};
MKL_LONG status1, l1[2]; l1[0] = 3; l1[1] = 3;
MKL_Complex16 fftu1[3][3];
status1 = DftiCreateDescriptor(&descriptor1, DFTI_DOUBLE, DFTI_REAL, 2, l1);
status = DftiCommitDescriptor(descriptor1);
status = DftiComputeForward(descriptor1, test, fftu1);
MKL结果:
4.02248e-315+2.35325e-310i 6.42285e-323+6.95254e-310i 2.35325e-310+2.35325e-310i
6.95254e-310+6.95254e-310i 2.35308e-310+2.35325e-310i 0+2.35325e-310i
2.35325e-310+2.35325e-310i 2.35325e-310+2.35325e-310i 7.41098e-323+1.03754e-322i
我发现问题可能是由MKL情况下的输出存储配置描述符引起的。但是我找不到设置这个描述符的正确方法。
我在做什么错?请给我一些提示。