V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
sneezry
V2EX  ›  问与答

二维 FFT 的计算问题

  •  
  •   sneezry · 2014-08-14 11:54:50 +08:00 · 2046 次点击
    这是一个创建于 3564 天前的主题,其中的信息可能已经有所发展或是发生改变。
    用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] ]

    问题出在哪里呢?
    2 条回复    2014-08-14 12:43:09 +08:00
    madeye
        1
    madeye  
       2014-08-14 12:27:59 +08:00   ❤️ 1
    > 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
        2
    sneezry  
    OP
       2014-08-14 12:43:09 +08:00
    @madeye 原来是matlab用错了,二维数组应该是 [1 2; 3 4],感谢已送出 :)
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1765 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 00:06 · PVG 08:06 · LAX 17:06 · JFK 20:06
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.