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

FFT

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

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

説明

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

ユーザー指定の FFT 長 (P と等しくない) では、ゼロ パディングまたは切り捨て、あるいは長さを法とするデータ ラッピングが FFT 演算の前に発生します。P ≤ M の FFT の場合、次のようになります。

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

ラッピング:

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

切り捨て:

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

ヒント

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

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

端子

入力

すべて展開する

FFT を計算する入力信号。ブロックは N 次元の入力信号の最初の次元に沿って FFT を計算します。

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

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

出力

すべて展開する

FFT。N 次元の入力配列の最初の次元全体で計算されます。ブロックの出力に整数または小数点データ型が含まれている場合、常に符号付きです。

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

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

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

データ型: 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 のホスト コンピューターに制限します。

入力要素の順序に対する出力チャネル要素の順序を指定します。このチェック ボックスをオンにすると、出力チャネル要素が入力順序に対してビット反転した順序で表示されます。このチェック ボックスをオフにすると、出力チャネル要素が入力順序に対して線形順に表示されます。

メモ

FFT ブロックは出力をビット反転した順序で計算します。FFT ブロックの出力を線形順にするには、追加のビット反転演算が必要になります。多くの状況では [Output in bit-reversed order] チェック ボックスをオンにすると FFT ブロックの速度を上げることができます。

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

依存関係

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

このパラメーターを選択すると、ブロックは FFT 長によって FFT の出力を分割します。このオプションは、FFT の出力をその入力と同じ振幅範囲内に留める必要がある場合に役立ちます。これは特に、固定小数点データ型での作業に役立ちます。

入力次元から FFT 長を継承する場合に選択します。このチェック ボックスをオンにする場合、入力の長さは 2 のべき乗でなければなりません。

依存関係

このチェック ボックスをオフにする場合、長さを指定する [FFT length] パラメーターが使用できるようになります。

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 | single | base integer | fixed point

多次元信号

あり

可変サイズの信号

あり[a]

[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 より前に導入