4

私は現在、2次元フーリエシフト定理を理解しようとしています。

私がこれまでに学んだことによると、画像空間での変換は位相の違いにつながりますが、周波数空間の大きさにはつながりません。

少し例を挙げてこれを実証しようとしましたが、行のシフトに対してのみ機能し、列のシフトに対しては機能しませんでした。これが小さなデモです(ここではマグニチュードプロットのみを示しています)

clear all
close all
Iin = zeros(128);
Iin(10:20,10:20)=1;
figure,imagesc(Iin)
Y = fft(Iin);
figure, imagesc(fftshift(log10(abs(Y))));

Iin = zeros(128);
Iin(10:20,20:30)=1;
figure,imagesc(Iin)
Y = fft(Iin);
figure, imagesc(fftshift(log10(abs(Y))));

Iin = zeros(128);
Iin(20:30,10:20)=1;
figure,imagesc(Iin)
Y = fft(Iin);
figure, imagesc(fftshift(log10(abs(Y))));

私の意見では、3つのマグニチュードプロットすべてで同じ結果が得られるはずです。私がここで間違っていることを誰かが私に説明できますか?

ご助力ありがとうございます、

よろしくお願いします、

ミニ

4

1 に答える 1

3

これにはfftではなくfft2を使用したいと思います。

fft2は、2次元フーリエ変換を計算します。これは、学習していると述べたものです。fftは、各行のフーリエ変換のみを計算します。

コードでfftの代わりにfft2を使用すれば、すべてが機能するはずです。

于 2012-12-10T23:40:38.043 に答える