2D Fourier shift

Cyclically shift a 2D matrix or image using the Fourier shift theorem.

You are now following this Submission

This shifts cyclically shifts an image or other 2D matrix by an arbitrary number of pixels (which can be fractional). I haven't tested it much but the code is very short so it should be easy enough to adapt.

Usage:

y = FourierShift(x, [delta_x delta_y])

x is the input matrix. y is the output. delta_x and _y are the shift amounts in each dimension.

It takes about 1s to run for a 1024x1024 image on my PC. There are faster ways to shift images, but probably not any simpler sub-pixel methods.

Cite As

Tim (2026). 2D Fourier shift (https://uk.mathworks.com/matlabcentral/fileexchange/23440-2d-fourier-shift), MATLAB Central File Exchange. Retrieved .

General Information

MATLAB Release Compatibility

  • Compatible with any release

Platform Compatibility

  • Windows
  • macOS
  • Linux
Version Published Release Notes Action
1.1.0.0

Added small fix for even-length signals.

1.0.0.0