我尝试使用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)
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结果根据输入矩阵大小进行缩放!
答案 0 :(得分:0)
要获得与matlab相同的结果,请将方向更改为Backward
:
FourierTransform.FFT2(array2D,FourierTransform.Direction.Backward);