ドキュメンテーション

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

ifft

逆フーリエ高速変換

構文

X = ifft(Y)
X = ifft(Y,n)
X = ifft(Y,n,dim)
X = ifft(___,symflag)

説明

X = ifft(Y) は、高速フーリエ変換アルゴリズムを使用して Y の逆離散フーリエ変換を計算します。X のサイズは Y と同じです。

  • Y がベクトルの場合、ifft(Y) はそのベクトルの逆変換を返します。

  • Y が行列の場合、ifft(Y) は行列の各列の逆変換を返します。

  • Y が多次元配列の場合、ifft(Y) は、サイズが 1 ではない最初の次元に沿った値をベクトルとして扱い、各ベクトルの逆変換を返します。

X = ifft(Y,n) は、長さが n になるように Y の末尾をゼロでパディングして、Yn 点の逆フーリエ変換を返します。

X = ifft(Y,n,dim) は、次元 dim に沿った逆フーリエ変換を返します。たとえば、Y が行列の場合、ifft(Y,n,2) は、各行の n 点の逆変換を返します。

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

すべて折りたたむ

フーリエ変換とその逆変換は、時間と空間でサンプリングされたデータと周波数でサンプリングされたデータを変換します。

ベクトルを作成してそのフーリエ変換を計算します。

X = [1 2 3 4 5];
Y = fft(X)

Y の逆変換を計算します。これは元のベクトル X と同じです。

ifft(Y)
ans = 1×5

     1     2     3     4     5

関数 ifft により変換のサイズを制御できます。

3 行 5 列の乱数行列を作成し、各行の 8 点の逆フーリエ変換を計算します。結果の各行の長さは 8 です。

Y = rand(3,5);
n = 8;
X = ifft(Y,n,2);
size(X)
ans = 1×2

     3     8

ほぼ共役対称のベクトルの場合、'symmetric' オプションを指定することで逆フーリエ変換をより高速で計算できます。これにより出力も確実に実数になります。計算によって丸め誤差が生じると、ほぼ共役対称のデータが発生する可能性があります。

ほぼ共役対称のベクトル Y を作成し、逆フーリエ変換を計算します。その場合、'symmetric' オプションを指定する逆変換を計算し、ほぼゼロの虚数部を削除します。

Y = [1 2:4+eps(4) 4:-1:2]
Y = 1×7

    1.0000    2.0000    3.0000    4.0000    4.0000    3.0000    2.0000 ⋯

X = ifft(Y)
Xsym = ifft(Y,'symmetric')
Xsym = 1×7

    2.7143   -0.7213   -0.0440   -0.0919   -0.0919   -0.0440   -0.7213 ⋯

入力引数

すべて折りたたむ

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

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

逆変換の長さ。[]、または非負の整数スカラーとして指定します。変換の長さを Y の長さより大きく指定し、Y をゼロでパディングすることにより、ifft のパフォーマンスを改善できます。長さは通常 2 のべき乗、または小さい素数の積として指定します。n が信号の長さ未満である場合、ifftn 番目の要素から後の残りの信号値を無視し、切り捨て後の結果を返します。n が 0 の場合、ifft は空の行列を返します。

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

演算の対象の次元。正の整数のスカラーとして指定します。既定では、dim はサイズが 1 でない最初の配列次元です。たとえば、行列 Y を考えます。

  • ifft(Y,[],1) は各列の逆フーリエ変換を返します。

  • ifft(Y,[],2) は各行の逆フーリエ変換を返します。

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

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

詳細

すべて折りたたむ

ベクトルの離散フーリエ変換

Y = fft(X) はフーリエ変換、X = ifft(Y) は逆フーリエ変換の実装です。長さ nX および Y の変換は、次式で定義されます。

Y(k)=j=1nX(j)Wn(j1)(k1)X(j)=1nk=1nY(k)Wn(j1)(k1),

ここで、

Wn=e(2πi)/n

は 1 の n 乗根の 1 つです。

アルゴリズム

  • 関数 ifftY のベクトルが共役対称であるかどうかをテストします。ベクトル vconj(v([1,end:-1:2])) と等しい場合に共役対称です。Y のベクトルが共役対称である場合、逆変換の計算がより高速になり、出力は実数になります。

拡張機能

参考

| | | |

R2006a より前に導入