MatLab: desplazamiento de una imagen con FFT

Quiero cambiar una imagen (representada por una matriz 2D) usando la multiplicación de sufft por exp (-j * 2 * pi * x * F), donde x es el desplazamiento. Yo tengo:

input=peaks(200);
H=fftshift(fft2(fftshift(input)));
x=19;
H=H*exp(-1i*x*2*pi*F);
IF_image=fftshift(ifft2(fftshift(H)));
imshow(IF_image)

Pero tengo problemas para identificar / representar la F en H [F] ya que mi entrada es una matriz bidimensional. ¿Cómo podría hacer esto? La salida deseada será mi imagen original desplazada en el eje horizontal (por x unidades) en el mismo cuadro, por lo que comenzaría en x + 1. Como ejemplo:

Siinput=

1 2 3 4 5
6 7 8 9 0

yx = 2, quiero:

4 5 1 2 3
9 0 6 7 8

Respuestas a la pregunta(1)

Su respuesta a la pregunta