ドキュメンテーション

最新のリリースでは、このページがまだ翻訳されていません。 このページの最新版は英語でご覧になれます。

fftshift

DC 成分をスペクトルの中心に移動

構文

Y = fftshift(X)
Y = fftshift(X,dim)

説明

Y = fftshift(X) は、ゼロ周波数成分を配列の中央に移動して、関数 fft、関数 fft2、および 関数 fftn の出力を再配置します。スペクトルの中心に、DC 成分を配置することで、フーリエ変換の可視化が有効になります。

ベクトルの場合、fftshift(X) は、X の右半分と左半分を入れ替えます。行列の場合、fftshift(X) は、第 1 象限と第 3 象限を、第 2 象限と第 4 象限を入れ替えます。

多次元配列の場合、fftshift(X) は、それぞれの次元に沿って X の空間の半分を交換します。

Y = fftshift(X,dim) は、次元 dim に沿って、fftshift 演算を適用します。

    メモ:    関数 ifftshift は、関数 fftshift の結果を元に戻します。行列 X に奇数個の要素が含まれる場合、ifftshift(fftshift(X)) により、元の X を取得しなければなりません。fftshift(X) を 2 回実行するだけの場合、X は生成されません。

任意の行列 X に対して、次を実行します。

Y = fft2(X)

上記の結果は Y(1,1) = sum(sum(X)) で、信号の DC 成分が 2 次元 FFT の左上隅に現れます。

Z = fftshift(Y)

この場合、この DC 成分は、行列の中心近くに現れます。

関数 fftshift と 関数 ifftshift の差異は、奇数長の入力引数列で重要となります。

N = 5;
X = 0:N-1;
Y = fftshift(fftshift(X));
Z = ifftshift(fftshift(X));

Z は、X の適正な複製ですが、Y はそうでないことに注意してください。

isequal(X,Y),isequal(X,Z)

ans =

     0

ans =

     1
この情報は役に立ちましたか?