Main Content

ifft2

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

説明

X = ifft2(Y) は、高速フーリエ変換アルゴリズムを使用して行列の 2 次元離散逆フーリエ変換を返します。Y が多次元配列の場合、ifft2 は、2 より高い各次元の 2 次元逆変換を計算します。出力 X は、Y と同じサイズです。

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

X = ifft2(___,symflag) は、前述の構文の任意の入力引数の組み合わせに加えて、Y の対称性を指定します。たとえば、ifft2(Y,'symmetric')Y を共役対称として扱います。

すべて折りたたむ

関数 ifft2 を使用して、周波数でサンプリングされた 2 次元信号を、時間または空間でサンプリングされた信号に変換できます。また、関数 ifft2 により変換のサイズも制御できます。

3 行 3 列の行列を作成し、そのフーリエ変換を計算します。

X = magic(3)
X = 3×3

     8     1     6
     3     5     7
     4     9     2

Y = fft2(X)
Y = 3×3 complex

  45.0000 + 0.0000i   0.0000 + 0.0000i   0.0000 + 0.0000i
   0.0000 + 0.0000i  13.5000 + 7.7942i   0.0000 - 5.1962i
   0.0000 - 0.0000i   0.0000 + 5.1962i  13.5000 - 7.7942i

Y の逆変換を計算します。これは、丸め誤差を除けば元の行列 X と同じです。

ifft2(Y)
ans = 3×3

    8.0000    1.0000    6.0000
    3.0000    5.0000    7.0000
    4.0000    9.0000    2.0000

Y の両方の次元の末尾をゼロでパディングして、変換のサイズを 8 行 8 列にします。

Z = ifft2(Y,8,8);
size(Z)
ans = 1×2

     8     8

ほぼ共役対称の行列の場合、'symmetric' オプションを指定することで逆フーリエ変換をより高速で計算できます。これにより出力も確実に実数になります。

ほぼ共役対称の行列の 2 次元逆フーリエ変換を計算します。

Y = [3+1e-15*i 5;
     5 3];
X = ifft2(Y,'symmetric')
X = 2×2

     4     0
     0    -1

入力引数

すべて折りたたむ

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

データ型: 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

対称性のタイプ。'nonsymmetric' または 'symmetric' として指定します。丸め誤差により Y が厳密には共役対称でない場合、ifft2(Y,'symmetric') は、(負の周波数スペクトルにある) 後半の要素を無視することによって Y が共役対称であるかのように扱います。共役対称性の詳細については、アルゴリズムを参照してください。

詳細

すべて折りたたむ

2 次元逆フーリエ変換

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

Xp,q=1mj=1m1nk=1nωm(j1)(p1)ωn(k1)(q1)Yj,k

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

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

i は虚数単位です。p の範囲は 1 から m まで、q の範囲は 1 から n までです。

アルゴリズム

  • 関数 ifft2 は行列 Y が共役対称であるかどうかをテストします。Y が共役対称である場合、逆変換の計算がより高速になり、出力は実数になります。

    関数 g(a,b)g(a,b)=g*(a,b) の場合に共役対称です。ただし、2 次元時間領域信号の高速フーリエ変換では、スペクトルの半分が正の周波数、残りの半分が負の周波数となり、最初の行と列はゼロ周波数用に予約されています。このため、行列 Y は、次の条件がすべて満たされる場合に共役対称です。

    • Y(1,2:end) が共役対称であるか、Y(1,2:end) = conj(Y(1,end:-1:2)) である

    • Y(2:end,1) が共役対称であるか、Y(2:end,1) = conj(Y(end:-1:2,1)) である

    • Y(2:end,2:end) が共役中心対称であるか、Y(2:end,2:end) = conj(Y(end:-1:2,end:-1:2)) である

拡張機能

バージョン履歴

R2006a より前に導入

参考

| | | |