ドキュメンテーション

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

ifftn

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

説明

X = ifftn(Y) は、高速フーリエ変換アルゴリズムを使用して N 次元配列の多次元離散逆フーリエ変換を返します。N 次元逆変換は、Y の各次元に沿って 1 次元逆変換を計算することと等価です。出力 X は、Y と同じサイズです。

X = ifftn(Y,sz) は、ベクトル sz の要素に従って Y を切り捨てるか、Y の末尾をゼロでパディングしてから、逆変換を実行します。sz の各要素は、対応する変換の次元の長さを定義します。たとえば、Y が 5 x 5 x 5 の配列の場合、X = ifftn(Y,[8 8 8]) は各次元をゼロでパディングして、8 x 8 x 8 の逆変換 X を返します。

X = ifftn(___,symflag)Y の対称性を指定します。たとえば、ifftn(Y,'symmetric')Y を共役対称として扱います。

すべて折りたたむ

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

3 x 3 x 3 の配列を作成し、逆フーリエ変換を計算します。

Y = rand(3,3,3);
ifftn(Y);

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

X = ifftn(Y,[8 8 8]);
size(X)
ans = 1×3

     8     8     8

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

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

Y(:,:,1) = [1e-15*i 0; 1 0];
Y(:,:,2) = [0 1; 0 1];
X = ifftn(Y,'symmetric')
X = 
X(:,:,1) =

    0.3750   -0.1250
   -0.1250   -0.1250


X(:,:,2) =

   -0.1250    0.3750
   -0.1250   -0.1250

入力引数

すべて折りたたむ

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

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

逆変換の次元の長さ。正の整数のベクトルとして指定します。

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

対称性のタイプ。'nonsymmetric' または 'symmetric' として指定します。丸め誤差により Y が厳密には共役対称ではない場合、ifftn(Y,'symmetric')Y が共役対称であるかのように扱います。共役対称性の詳細については、アルゴリズムを参照してください。

詳細

すべて折りたたむ

N 次元逆フーリエ変換

N 次元配列 Y の離散逆フーリエ変換 X は次のように定義されます。

Xp1,p2,...,pN=j1=1m11m1ωm1p1j1j2=1m21m2ωm2p2j2...jN=1mN1mNωmNpNjNYj1,j2,...,jN.

k = 1,2,...,N の各次元の長さは mk であり、ωmk=e2πi/mk は 1 の複素根です。ここで i は虚数単位です。

アルゴリズム

  • 関数 ifftn は、配列 Y のベクトルがすべての次元で共役対称であるかどうかをテストします。ベクトル v は、i 番目の要素が v(i) = conj(v([1,end:-1:2])) を満たす場合に共役対称です。Y のベクトルがすべての次元で共役対称である場合、逆変換の計算がより高速になり、出力は実数になります。

拡張機能

参考

| | | |

R2006a より前に導入