AForge FFT2 和 matlab FFT2 结果不匹配

AForge FFT2 and matlab FFT2 results dont match

我尝试使用 Aforge.Math 在 2D 复数矩阵上进行 FFT2,并在 matlab 上进行相同的尝试

在 C# 上,对于 AForge:

Complex[,] array2D = new Complex[,] { {  (Complex)1,  (Complex)2 }, {  (Complex)3,  (Complex)4 }, {  (Complex)5, (Complex) 6 }, {  (Complex)7,  (Complex)8 } };
FourierTransform.FFT2(array2D,FourierTransform.Direction.Forward);

在 Mathlab 上:

x =[1 2; 3 4; 5 6; 7 8]
fft2(x)

可惜结果不一样 对于 C#:

数学实验室:

  36.0000 + 0.0000i  -4.0000 + 0.0000i
  -8.0000 + 8.0000i   0.0000 + 0.0000i
  -8.0000 + 0.0000i   0.0000 + 0.0000i
  -8.0000 - 8.0000i   0.0000 + 0.0000i 

我不知道为什么结果不同,顺便说一下,我只能使用工具,不知道有关 FFT2 的详细信息。 更新:AForge 结果根据输入矩阵大小缩放!

要获得与在 matlab 中相同的结果,请将方向更改为 Backward:

FourierTransform.FFT2(array2D,FourierTransform.Direction.Backward);