Use of fftshift in Matlab

Preparing a test case


>> x = [ 1 1 1 0.5 zeros(1,9) 0.5 1 1]

x =

  Columns 1 through 7 

    1.0000    1.0000    1.0000    0.5000         0         0         0

  Columns 8 through 14 

         0         0         0         0         0         0    0.5000

  Columns 15 through 16 

    1.0000    1.0000

>> z = x'*x

z =

  Columns 1 through 7 

    1.0000    1.0000    1.0000    0.5000         0         0         0
    1.0000    1.0000    1.0000    0.5000         0         0         0
    1.0000    1.0000    1.0000    0.5000         0         0         0
    0.5000    0.5000    0.5000    0.2500         0         0         0
         0         0         0         0         0         0         0
         0         0         0         0         0         0         0
         0         0         0         0         0         0         0
         0         0         0         0         0         0         0
         0         0         0         0         0         0         0
         0         0         0         0         0         0         0
         0         0         0         0         0         0         0
         0         0         0         0         0         0         0
         0         0         0         0         0         0         0
    0.5000    0.5000    0.5000    0.2500         0         0         0
    1.0000    1.0000    1.0000    0.5000         0         0         0
    1.0000    1.0000    1.0000    0.5000         0         0         0

  Columns 8 through 14 

         0         0         0         0         0         0    0.5000
         0         0         0         0         0         0    0.5000
         0         0         0         0         0         0    0.5000
         0         0         0         0         0         0    0.2500
         0         0         0         0         0         0         0
         0         0         0         0         0         0         0
         0         0         0         0         0         0         0
         0         0         0         0         0         0         0
         0         0         0         0         0         0         0
         0         0         0         0         0         0         0
         0         0         0         0         0         0         0
         0         0         0         0         0         0         0
         0         0         0         0         0         0         0
         0         0         0         0         0         0    0.2500
         0         0         0         0         0         0    0.5000
         0         0         0         0         0         0    0.5000

  Columns 15 through 16 

    1.0000    1.0000
    1.0000    1.0000
    1.0000    1.0000
    0.5000    0.5000
         0         0
         0         0
         0         0
         0         0
         0         0
         0         0
         0         0
         0         0
         0         0
    0.5000    0.5000
    1.0000    1.0000
    1.0000    1.0000


>> z = fftshift(z)

z =

  Columns 1 through 7 

         0         0         0         0         0         0         0
         0         0         0         0         0         0         0
         0         0         0         0         0         0         0
         0         0         0         0         0         0         0
         0         0         0         0         0         0         0
         0         0         0         0         0    0.2500    0.5000
         0         0         0         0         0    0.5000    1.0000
         0         0         0         0         0    0.5000    1.0000
         0         0         0         0         0    0.5000    1.0000
         0         0         0         0         0    0.5000    1.0000
         0         0         0         0         0    0.5000    1.0000
         0         0         0         0         0    0.2500    0.5000
         0         0         0         0         0         0         0
         0         0         0         0         0         0         0
         0         0         0         0         0         0         0
         0         0         0         0         0         0         0

  Columns 8 through 14 

         0         0         0         0         0         0         0
         0         0         0         0         0         0         0
         0         0         0         0         0         0         0
         0         0         0         0         0         0         0
         0         0         0         0         0         0         0
    0.5000    0.5000    0.5000    0.5000    0.2500         0         0
    1.0000    1.0000    1.0000    1.0000    0.5000         0         0
    1.0000    1.0000    1.0000    1.0000    0.5000         0         0
    1.0000    1.0000    1.0000    1.0000    0.5000         0         0
    1.0000    1.0000    1.0000    1.0000    0.5000         0         0
    1.0000    1.0000    1.0000    1.0000    0.5000         0         0
    0.5000    0.5000    0.5000    0.5000    0.2500         0         0
         0         0         0         0         0         0         0
         0         0         0         0         0         0         0
         0         0         0         0         0         0         0
         0         0         0         0         0         0         0

  Columns 15 through 16 

         0         0
         0         0
         0         0
         0         0
         0         0
         0         0
         0         0
         0         0
         0         0
         0         0
         0         0
         0         0
         0         0
         0         0
         0         0
         0         0

fft2 without fftshift

>> z1 = real(fft2(z))

z1 =

  Columns 1 through 7 

   36.0000  -27.8679   10.2426    3.4364   -6.0000    1.5342    1.7574
  -27.8679   21.5728   -7.9289   -2.6601    4.6447   -1.1876   -1.3604
   10.2426   -7.9289    2.9142    0.9777   -1.7071    0.4365    0.5000
    3.4364   -2.6601    0.9777    0.3280   -0.5727    0.1464    0.1677
   -6.0000    4.6447   -1.7071   -0.5727    1.0000   -0.2557   -0.2929
    1.5342   -1.1876    0.4365    0.1464   -0.2557    0.0654    0.0749
    1.7574   -1.3604    0.5000    0.1677   -0.2929    0.0749    0.0858
   -1.1026    0.8536   -0.3137   -0.1053    0.1838   -0.0470   -0.0538
         0         0         0         0         0         0         0
   -1.1026    0.8536   -0.3137   -0.1053    0.1838   -0.0470   -0.0538
    1.7574   -1.3604    0.5000    0.1677   -0.2929    0.0749    0.0858
    1.5342   -1.1876    0.4365    0.1464   -0.2557    0.0654    0.0749
   -6.0000    4.6447   -1.7071   -0.5727    1.0000   -0.2557   -0.2929
    3.4364   -2.6601    0.9777    0.3280   -0.5727    0.1464    0.1677
   10.2426   -7.9289    2.9142    0.9777   -1.7071    0.4365    0.5000
  -27.8679   21.5728   -7.9289   -2.6601    4.6447   -1.1876   -1.3604

  Columns 8 through 14 

   -1.1026         0   -1.1026    1.7574    1.5342   -6.0000    3.4364
    0.8536         0    0.8536   -1.3604   -1.1876    4.6447   -2.6601
   -0.3137         0   -0.3137    0.5000    0.4365   -1.7071    0.9777
   -0.1053         0   -0.1053    0.1677    0.1464   -0.5727    0.3280
    0.1838         0    0.1838   -0.2929   -0.2557    1.0000   -0.5727
   -0.0470         0   -0.0470    0.0749    0.0654   -0.2557    0.1464
   -0.0538         0   -0.0538    0.0858    0.0749   -0.2929    0.1677
    0.0338         0    0.0338   -0.0538   -0.0470    0.1838   -0.1053
         0         0         0         0         0         0         0
    0.0338         0    0.0338   -0.0538   -0.0470    0.1838   -0.1053
   -0.0538         0   -0.0538    0.0858    0.0749   -0.2929    0.1677
   -0.0470         0   -0.0470    0.0749    0.0654   -0.2557    0.1464
    0.1838         0    0.1838   -0.2929   -0.2557    1.0000   -0.5727
   -0.1053         0   -0.1053    0.1677    0.1464   -0.5727    0.3280
   -0.3137         0   -0.3137    0.5000    0.4365   -1.7071    0.9777
    0.8536         0    0.8536   -1.3604   -1.1876    4.6447   -2.6601

  Columns 15 through 16 

   10.2426  -27.8679
   -7.9289   21.5728
    2.9142   -7.9289
    0.9777   -2.6601
   -1.7071    4.6447
    0.4365   -1.1876
    0.5000   -1.3604
   -0.3137    0.8536
         0         0
   -0.3137    0.8536
    0.5000   -1.3604
    0.4365   -1.1876
   -1.7071    4.6447
    0.9777   -2.6601
    2.9142   -7.9289
   -7.9289   21.5728

fft2 with fftshift

>> z2 = real(fft2(fftshift(z)))

z2 =

  Columns 1 through 7 

   36.0000   27.8679   10.2426   -3.4364   -6.0000   -1.5342    1.7574
   27.8679   21.5728    7.9289   -2.6601   -4.6447   -1.1876    1.3604
   10.2426    7.9289    2.9142   -0.9777   -1.7071   -0.4365    0.5000
   -3.4364   -2.6601   -0.9777    0.3280    0.5727    0.1464   -0.1677
   -6.0000   -4.6447   -1.7071    0.5727    1.0000    0.2557   -0.2929
   -1.5342   -1.1876   -0.4365    0.1464    0.2557    0.0654   -0.0749
    1.7574    1.3604    0.5000   -0.1677   -0.2929   -0.0749    0.0858
    1.1026    0.8536    0.3137   -0.1053   -0.1838   -0.0470    0.0538
         0         0         0         0         0         0         0
    1.1026    0.8536    0.3137   -0.1053   -0.1838   -0.0470    0.0538
    1.7574    1.3604    0.5000   -0.1677   -0.2929   -0.0749    0.0858
   -1.5342   -1.1876   -0.4365    0.1464    0.2557    0.0654   -0.0749
   -6.0000   -4.6447   -1.7071    0.5727    1.0000    0.2557   -0.2929
   -3.4364   -2.6601   -0.9777    0.3280    0.5727    0.1464   -0.1677
   10.2426    7.9289    2.9142   -0.9777   -1.7071   -0.4365    0.5000
   27.8679   21.5728    7.9289   -2.6601   -4.6447   -1.1876    1.3604

  Columns 8 through 14 

    1.1026         0    1.1026    1.7574   -1.5342   -6.0000   -3.4364
    0.8536         0    0.8536    1.3604   -1.1876   -4.6447   -2.6601
    0.3137         0    0.3137    0.5000   -0.4365   -1.7071   -0.9777
   -0.1053         0   -0.1053   -0.1677    0.1464    0.5727    0.3280
   -0.1838         0   -0.1838   -0.2929    0.2557    1.0000    0.5727
   -0.0470         0   -0.0470   -0.0749    0.0654    0.2557    0.1464
    0.0538         0    0.0538    0.0858   -0.0749   -0.2929   -0.1677
    0.0338         0    0.0338    0.0538   -0.0470   -0.1838   -0.1053
         0         0         0         0         0         0         0
    0.0338         0    0.0338    0.0538   -0.0470   -0.1838   -0.1053
    0.0538         0    0.0538    0.0858   -0.0749   -0.2929   -0.1677
   -0.0470         0   -0.0470   -0.0749    0.0654    0.2557    0.1464
   -0.1838         0   -0.1838   -0.2929    0.2557    1.0000    0.5727
   -0.1053         0   -0.1053   -0.1677    0.1464    0.5727    0.3280
    0.3137         0    0.3137    0.5000   -0.4365   -1.7071   -0.9777
    0.8536         0    0.8536    1.3604   -1.1876   -4.6447   -2.6601

  Columns 15 through 16 

   10.2426   27.8679
    7.9289   21.5728
    2.9142    7.9289
   -0.9777   -2.6601
   -1.7071   -4.6447
   -0.4365   -1.1876
    0.5000    1.3604
    0.3137    0.8536
         0         0
    0.3137    0.8536
    0.5000    1.3604
   -0.4365   -1.1876
   -1.7071   -4.6447
   -0.9777   -2.6601
    2.9142    7.9289
    7.9289   21.5728

Maintained by John Loomis, last updated June 24, 1997