二维 FFT 的计算问题

2014-08-14 11:54:50 +08:00
 sneezry
用matlab计算 fft2( [ [1 2] [3 4] ] )所得结果为 [ [10 -2+2i] [-2 -2-2i] ]

但是我自己计算的结果如下:

先横向做一维FFT,有

fft( [1 2] ) = [3 -1]
fft( [3 4] ) = [7 -1]

得到矩阵 [ [3 -1] [7 -1] ]

再纵向做一维FFT,有

fft( [3 7] ) = [10 -4]
fft( [-1 -1] ) = [-2 0]

最后所得结果为 [ [10 -2] [-4 0] ]

问题出在哪里呢?
2101 次点击
所在节点    问与答
2 条回复
madeye
2014-08-14 12:27:59 +08:00
> c <- array(1:4, c(2,2))
> c
[,1] [,2]
[1,] 1 3
[2,] 2 4
> fft(c)
[,1] [,2]
[1,] 10+0i -4+0i
[2,] -2+0i 0+0i

> d <- c(1,2,3,4)
> d
[1] 1 2 3 4
> fft(d)
[1] 10+0i -2+2i -2+0i -2-2i
sneezry
2014-08-14 12:43:09 +08:00
@madeye 原来是matlab用错了,二维数组应该是 [1 2; 3 4],感谢已送出 :)

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/127827

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX