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

IFFT

入力の逆フーリエ高速変換 (IFFT)

  • ライブラリ:
  • DSP System Toolbox / 変換

説明

IFFT ブロックは、N 次元の入力配列の最初の次元全体において逆高速フーリエ変換 (IFFT) を計算します。ブロックは 2 つの可能な FFT 実装のどちらかを使用します。FFTW ライブラリを基にした実装か、基数 2 のアルゴリズムのコレクションを基にした実装を選択できます。ブロックで実装を選択できるように、[Auto] を選択できます。FFT 実装の詳細については、アルゴリズムを参照してください。

入力ベクトル (または入力配列の最初の次元) の長さと同じではない FFT 長を指定すると、ブロックはゼロ パディング、切り捨てまたは M を法とする (FFT 長) データ ラッピングを実装します。これが発生するのは IFFT 演算の前です。P ≤ M の IFFT の場合、次のようになります。

y = ifft(u,M) % P ≤ M

ラッピング:

y(:,L) = ifft(datawrap(u(:,L),M)) % P > M; L = 1,...,N

切り捨て:

y (:,L) = ifft(u,M) % P > M; L = 1,...,N

ヒント

入力の長さ P が FFT 長 M より大きい場合、IFFT 出力での振幅が増加することがあります。振幅が増加するのは、IFFT ブロックが M を法とするデータ ラッピングを使用してすべての使用可能な入力サンプルを保持するためです。

このような振幅の増加を避けるため、入力サンプル P の長さを FFT 長 M まで切り捨てることができます。これを行うには、Pad ブロックをモデル内の IFFT ブロックの前に配置します。

端子

入力

すべて展開する

IFFT を計算する入力信号。ブロックは N 次元の入力信号の最初の次元に沿って IFFT を計算します。入力には浮動小数点または固定小数点、実数または複素数、および共役対称を使用できます。

ブロックが IFFT を計算する方法の詳細については、説明およびアルゴリズムを参照してください。

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

出力

すべて展開する

IFFT。N 次元の入力配列の最初の次元全体で計算されます。ブロックが IFFT を計算する方法の詳細については、説明およびアルゴリズムを参照してください。

L 番目の出力チャネル y(k,L) の k 番目のエントリは、L 番目の入力チャネルにおける M 点の逆離散フーリエ変換 (IDFT) の k 番目の点と等価です。

y(k,L)=1Mp=1Pu(p,L)ej2π(p1)(k1)/Mk=1,,M

出力の次元は入力と同じです。入力信号のデータ型が浮動小数点である場合、出力信号のデータ型は同じ浮動小数点のデータ型を使用します。そうでない場合、出力はいずれかの符号付き固定小数点のデータ型になります。ブロックは、スケーリングされた IFFT およびスケーリングされていない IFFT を計算します。

データ型: single | double | int8 | int16 | int32 | fixed point

パラメーター

すべて展開する

メイン

このパラメーターを [FFTW] に設定して、任意の長さの入力信号をサポートします。ブロックは、FFTW 実装で生成されたコードを MATLAB® のホスト コンピューターに制限します。

ビット反転した処理、固定小数点データまたは浮動小数点データ、または Simulink® Coder™ を使った移植可能な C コード生成では、このパラメーターを [Radix-2] に設定します。M 行 N 列の入力行列の次元 M は、2 のべき乗でなければなりません。他の入力サイズで操作するには、Pad ブロックを使ってこれらの次元を 2 のべき乗にパディングまたは切り捨てをするか、可能な場合は FFTW 実装を選択します。[Radix-2] モードで使用されるアルゴリズムの詳細については、基数 2 の実装を参照してください。

このパラメーターを [Auto] に設定して、ブロックが FFT 実装を選択できるようにします。2 のべき乗でない変換の長さの浮動小数点の場合、FFTW アルゴリズムは自動的に選択されます。それ以外の場合は、Radix-2 アルゴリズムが自動的に選択されます。2 のべき乗でない変換の長さの場合、ブロックは生成したコードを MATLAB のホスト コンピューターに制限します。

このチェック ボックスをオンまたはオフにして、入力チャネル要素の順序を指定します。入力をビット反転順にする場合はこのチェック ボックスをオンにして、入力を線形順にする場合はオフにします。このパラメーターを正しく設定しないと、ブロックの出力は無効になります。

[Inherit FFT length from input dimensions] チェック ボックスをオフにして、[FFT length] パラメーターを使用して FFT 長を指定していると、このチェック ボックスをオンにできません。また、[FFT implementation] パラメーターを [FFTW] に設定するとオンにできません。

出力の順序の詳細については、Linear and Bit-Reversed Output Orderを参照してください。

依存関係

このパラメーターを有効にするには、[FFT implementation][Auto] または [Radix-2] に設定します。

ブロックで共役対称データを入力して実数値の出力が必要な場合に、このオプションをオンにします。このチェック ボックスをオンにすると、ブロックの計算方法が最適化されます。

実数値データを入力すると、FFT ブロックの出力は共役対称になります。共役対称の入力行列の IFFT を受け取ると、実数値出力が生成されます。したがって、ブロックへの入力が浮動小数点および共役対称の両方である場合に、このチェック ボックスをオンにすると、ブロックでは実数値出力が生成されます。

[Inherit FFT length from input dimensions] チェック ボックスをオフにして、[FFT length] パラメーターを使用して FFT 長を指定していると、このチェック ボックスをオンにできません。

共役対称データを IFFT ブロックに入力して、このチェック ボックスをオンにしないと、IFFT ブロックは小さな虚数部を持つ複素数値の信号を出力します。非共役対称の入力データを使用する場合にこのオプションをオンにすると、ブロックは無効なデータを出力します。

このチェック ボックスを選択すると、説明の節で説明されているように、ブロックはその出力を IDFT 方程式に従って計算します。

このチェック ボックスをオフにすると、ブロックは次の方程式で定義される、変更した IDFT My(k,l)を使用して出力を計算します。

My(k,l)=p=1Pu(p,l)ej2π(p1)(k1)/Mk=1,...,M

変更した IDFT 方程式には乗算係数 1/M は含まれないことに注意してください。

入力次元から FFT 長を継承する場合に選択します。このパラメーターをオフにする場合、長さを指定する [FFT length] パラメーターが使用できるようになります。[Input is in bit-reversed order] パラメーターまたは [Input is conjugate symmetric] パラメーターのいずれかをオンにすると、このパラメーターをオフにできません。

FFT 長を 2 以上の整数で指定します。

[FFT implementation] パラメーターを Radix-2 に設定する場合または [Output in bit-reversed order] チェック ボックスをオンにする場合、この値は 2 のべき乗でなければなりません。

依存関係

このパラメーターを有効にするには、[Inherit FFT length from input dimensions] チェック ボックスをオフにします。

FFT 長に応じて入力をラップするか、切り捨てるかを選択します。このパラメーターをオンにすると、FFT 長が入力の長さよりも短い場合、FFT 演算の前に長さを法とするデータ ラッピングが発生します。このパラメーターをオフにすると、FFT 演算の前に入力データが FFT 長に切り捨てられます。

依存関係

このパラメーターを有効にするには、[Inherit FFT length from input dimensions] チェック ボックスをオフにします。

データ型

固定小数点演算の丸めモードを選択します。

制限

正弦表の値はこのパラメーターに従わず、常に [Nearest] に丸められます。

[Rounding mode] パラメーターは、以下のすべての条件に一致する場合、数値結果には影響しません。

  • [乗算出力] のデータ型が [Inherit: Inherit via internal rule] である。

  • [アキュムレータ] のデータ型が [Inherit: Inherit via internal rule] である。

これらのデータ型設定を使用すると、ブロックは完全精度モードで動作します。

このパラメーターをオンにすると、ブロックは固定小数点演算の結果を飽和させます。このパラメーターをオフにすると、ブロックは固定小数点演算の結果をラップします。saturate および wrap の詳細については、固定小数点演算のオーバーフロー モードを参照してください。

制限

[Saturate on integer overflow] のパラメーターは、以下のすべての条件に一致する場合、数値結果には影響しません。

  • [乗算出力] のデータ型が [Inherit: Inherit via internal rule] である。

  • [アキュムレータ] のデータ型が [Inherit: Inherit via internal rule] である。

これらのデータ型設定を使用すると、ブロックは完全精度モードで動作します。

正弦表の値の語長を指定する方法を選択します。正弦表の値の小数部の長さは常に語長から 1 を引いた値に等しくなります。このパラメーターは以下のように設定できます。

  • データ型継承ルール (例: [Inherit: Same word length as input])

  • 有効なデータ型として評価する式 (例: fixdt(1,16))

[データ型アシスタントを表示] ボタン をクリックして、[正弦表] パラメーターの設定を行うための [データ型アシスタント] を表示します。

詳細は、データ型アシスタントを利用したデータ型の指定 (Simulink)を参照してください。

制限

正弦表の値は [丸めモード] パラメーターおよび [整数オーバーフローで飽和] パラメーターには従わず、常に飽和して [Nearest] に丸められます。

乗算出力のデータ型を指定します。このブロックの乗算出力データ型の使い方を示す図は、固定小数点およびMultiplication Data Typesを参照してください。このパラメーターは以下のように設定できます。

  • データ型継承ルール (例: [Inherit: Inherit via internal rule]このルールの詳細は、Inherit via Internal Ruleを参照してください。

  • 有効なデータ型として評価する式 (例: fixdt(1,16,0))

[データ型アシスタントを表示] ボタン をクリックして、[乗算出力] パラメーターの設定を行うための [データ型アシスタント] を表示します。

詳細は、データ型アシスタントを利用したデータ型の指定 (Simulink)を参照してください。

アキュムレータのデータ型を指定します。このブロックのアキュムレータ データ型の使い方を示す図は、固定小数点を参照してください。このパラメーターは以下のように設定できます。

  • データ型継承ルール (例: [Inherit: Inherit via internal rule]このルールの詳細は、Inherit via Internal Ruleを参照してください。

  • 有効なデータ型として評価する式 (例: fixdt(1,16,0))

[データ型アシスタントを表示] ボタン をクリックして、[アキュムレータ] パラメーターの設定を行うための [データ型アシスタント] を表示します。

詳細は、データ型アシスタントを利用したデータ型の指定 (Simulink)を参照してください。

出力データ型を指定します。このブロックの出力データ型の使い方を示す図は、固定小数点を参照してください。このパラメーターは以下のように設定できます。

  • データ型継承ルール (例: [Inherit: Inherit via internal rule]

    [継承: 内部ルールによる継承] を選択すると、ブロックは出力の語長と小数部の長さを自動的に計算します。理想的な出力の語長と小数部の長さを計算するためにブロックが使用する方程式は、[Divide output by FFT length] チェック ボックスの設定によって異なります。

    • [Divide output by FFT length] チェック ボックスをオンにした場合、理想的な出力の語長と小数部の長さは入力の語長と小数部の長さと同じになります。

    • [Divide output by FFT length] チェック ボックスをオフにした場合、ブロックは次の方程式に従って理想的な出力の語長と小数部の長さを計算します。

      WLideal output=WLinput+floor(log2(FFT length1))+1

      FLideal output=FLinput

    これらの理想的な結果を使用して、内部ルールによって、使用しているハードウェアに適した語長と小数部の長さが選択されます。詳細は、Inherit via Internal Ruleを参照してください。

  • 有効なデータ型として評価する式 (例: fixdt(1,16,0))

[データ型アシスタントを表示] ボタン をクリックして、[出力] パラメーターの設定を行うための [データ型アシスタント] を表示します。

詳細は、信号のデータ型の制御 (Simulink)を参照してください。

ブロックが出力する最小値を指定します。既定値は [] (指定なし) です。Simulink ソフトウェアは、以下を行う際にこの値を使用します。

  • シミュレーション範囲のチェック (信号範囲 (Simulink)を参照)

  • 固定小数点データ型の自動スケーリング

ブロックが出力する最大値を指定します。既定値は [] (指定なし) です。Simulink ソフトウェアは、以下を行う際にこの値を使用します。

  • シミュレーション範囲のチェック (信号範囲 (Simulink)を参照)

  • 固定小数点データ型の自動スケーリング

ブロック ダイアログ ボックスで指定するデータ型が固定小数点ツールによってオーバーライドされないようにするには、このパラメーターを選択します。

ブロックの特性

データ型

double | fixed point | 整数 | single

直接フィードスルー

no

多次元信号

yes

可変サイズの信号

limited[a]

ゼロクロッシング検出

no

[a] 可変サイズの信号は、[Inherit FFT length from input dimensions] チェックボックスが選択されている場合にのみサポートされます。

アルゴリズム

すべて展開する

参照

[1] Orfanidis, S. J. Introduction to Signal Processing. Upper Saddle River, NJ: Prentice Hall, 1996, p. 497.

[2] Proakis, John G. and Dimitris G. Manolakis. Digital Signal Processing, 3rd ed. Upper Saddle River, NJ: Prentice Hall, 1996.

[4] Frigo, M. and S. G. Johnson, “FFTW: An Adaptive Software Architecture for the FFT,”Proceedings of the International Conference on Acoustics, Speech, and Signal Processing, Vol. 3, 1998, pp. 1381-1384.

拡張機能

参考

System object

関数

ブロック

R2006a より前に導入