1
2次元データのForward Fourie Transformを計算しようとすると、結果が異なります。 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の結果:以下の3x3の行列のため
簡易試験例
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の場合の出力ストレージ構成であるディスクリプタによって発生する可能性があることがわかりました。しかし、私はこの記述子を設定する正しい方法を見つけることができません。
私は間違っていますか?私にいくつかのヒントを与えてください。