MatLab - Verschieben eines Bildes mit FFT

Ich möchte ein Bild (dargestellt durch eine 2D-Matrix) durch Multiplikation seines @ verschiebefft by exp (-j * 2 * pi * x * F), wobei x die Verschiebung ist. Ich habe

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)

Aber ich habe Probleme beim Identifizieren / Darstellen von F in H [F], da meine Eingabe ein zweidimensionales Array ist. Wie könnte ich das machen? Die gewünschte Ausgabe ist mein Originalbild, das in der horizontalen Achse (um x Einheiten) im selben Frame verschoben wird, sodass es bei x + 1 beginnt. Als Beispiel

Obinput=

1 2 3 4 5
6 7 8 9 0

und x = 2, ich möchte:

4 5 1 2 3
9 0 6 7 8

Antworten auf die Frage(1)

Ihre Antwort auf die Frage