Main Content

fft2

2 次元の高速フーリエ変換

説明

Y = fft2(X) は、高速フーリエ変換アルゴリズムを使用して行列 X2 次元フーリエ変換を返します。これは fft(fft(X).').' を計算することと等価です。

X が多次元配列の場合、fft2 は、2 次元以上の次元では 2 次元行列として扱うことができる X の各サブ配列の最初の 2 つの次元について 2 次元フーリエ変換を計算します。たとえば、Xm×n×1×2 の配列の場合、Y(:,:,1,1) = fft2(X(:,:,1,1)) および Y(:,:,1,2) = fft2(X(:,:,1,2)) になります。出力 Y は、X と同じサイズです。

Y = fft2(X,m,n) は、変換を計算する前に X を切り捨てるか、X の末尾をゼロでパディングして、mn 列の行列を形成します。X が行列である場合、Ymn 列の行列です。X が多次元配列の場合、fft2mn に従って X の最初の 2 次元を形成します。

すべて折りたたむ

2 次元フーリエ変換は、2 次元信号やイメージなどその他の 2 次元データを処理する場合に役立ちます。

ブロックの繰り返しを含む 2 次元データを作成してプロットします。

P = peaks(20);
X = repmat(P,[5 10]);
imagesc(X)

Figure contains an axes object. The axes object contains an object of type image.

データの 2 次元フーリエ変換を計算します。ゼロ周波数成分を出力の中心にシフトし、結果の 100 行 200 列の行列をプロットします。これは X と同じサイズです。

Y = fft2(X);
imagesc(abs(fftshift(Y)))

Figure contains an axes object. The axes object contains an object of type image.

X をゼロでパディングして、128 行 256 列の変換を計算します。

Y = fft2(X,2^nextpow2(100),2^nextpow2(200));
imagesc(abs(fftshift(Y)));

Figure contains an axes object. The axes object contains an object of type image.

入力引数

すべて折りたたむ

入力配列。行列または多次元配列として指定します。X の型が single である場合、fft2 はネイティブ レベルの単精度で計算し、Y の型も single になります。それ以外の場合、Ydouble 型として返されます。

データ型: double | single | int8 | int16 | int32 | uint8 | uint16 | uint32 | logical
複素数のサポート: あり

変換する行数。正の整数スカラーとして指定します。

データ型: double | single | int8 | int16 | int32 | uint8 | uint16 | uint32 | logical

変換する列数。正の整数スカラーとして指定します。

データ型: double | single | int8 | int16 | int32 | uint8 | uint16 | uint32 | logical

詳細

すべて折りたたむ

2 次元フーリエ変換

次の式は、m 行 n 列の行列 X の離散フーリエ変換 Y を定義します。

Yp+1,q+1=j=0m1k=0n1ωmjpωnkqXj+1,k+1

ωm と ωn は 1 の複素根です。

ωm=e2πi/mωn=e2πi/n

i は虚数単位、p と j は 0 から m–1 までのインデックス、q と k は 0 から n–1 までのインデックスです。この式では、MATLAB® の行列インデックスを反映して、X と Y のインデックスを 1 シフトしています。

拡張機能

GPU コード生成
GPU Coder™ を使用して NVIDIA® GPU のための CUDA® コードを生成します。

バージョン履歴

R2006a より前に導入

参考

| | |