AForge FFT2和matlab FFT2结果不匹配

时间:2017-12-26 09:02:21

标签: c# matlab fft

我尝试使用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#: enter image description here

for mathlab:

  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结果根据输入矩阵大小进行缩放!

1 个答案:

答案 0 :(得分:0)

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

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