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

Difference

指定した入力の次元に沿った要素単位での差分の計算

ライブラリ

Math Functions / Math Operations

dspmathops

説明

Difference ブロックは、入力配列 u の行、列または指定した次元において隣接する要素間の差分を計算します。現在の入力内のみでの差分、または連続する入力全体での差分 (累積差分) を計算するようにブロックを構成することができます。

基本処理

[Running difference] パラメーターを [No] に設定すると、ブロックは現在の入力の指定した次元に隣接する要素間の差分を計算します。このモードでは、ブロックは入力の列、行または指定した次元に沿って差分を計算できます。

列単位での相違

[Difference along] パラメーターを [Columns] に設定すると、ブロックは入力の各列で隣接する要素間の差分を計算します。

y = diff(u)						% Equivalent MATLAB code

M 行 N 列の入力の場合、出力は (M-1) 行 N 列の行列となり、その j 番目の列は次の要素をもちます。

yi,j=ui+1,jui,j1i(M1)

行単位での相違

[Difference along] パラメーターを [Rows] に設定すると、ブロックは入力の各行で隣接する要素間の差分を計算します。

y = diff(u,[],2)						% Equivalent MATLAB code

出力は M 行 (N-1) 列の行列となり、その i 番目の行は次の要素をもちます。

yi,j=ui,j+1ui,j1j(N1)

任意の次元に沿った相違

[Difference along] パラメーターを [Specified dimension] に設定すると、ブロックの動作は前述した行単位の差分を拡張した形になります。ブロックは [Dimension] パラメーターで指定する次元に沿って、隣接する要素間の差分を計算します。

y = diff(u,[],d) % Equivalent MATLAB code where d is the dimension

出力は指定した次元での長さが入力の長さよりも 1 つ少ない配列となり、他の次元での長さは変更されません。たとえば、要素 u(i,j,k,l) をもつ M x N x P x R の入力配列で、[Dimension]3 の場合を考えます。ブロックの出力は次の要素をもつ M x N x (P–1) x R の配列となります。

yi,j,k,l=ui,j,k+1,lui,j,k,l1k(P1)

連続処理

[Running difference] パラメーターを [Yes] に設定すると、ブロックは入力の列に沿った累積差分を計算します。

M 行 N 列の入力行列の場合、出力は M 行 N 列の行列となり、その j 番目の列は次の要素をもちます。

yi,j=ui+1,jui,j2i(M1)

実行モードでは、各列の出力の最初の要素は、最初の入力要素から前のフレームにおいて最後の入力要素を引いたものになります。最初のフレームでは、ブロックは最初の入力要素からゼロを減算します。

y1,j(t)=u1,j(t)uM,j(tTf)

固定小数点データ型

次の図は、Difference ブロック内で固定小数点信号に使用されるデータ型を示します。

パラメーターで説明されているように、アキュムレータおよび出力データ型をブロック ダイアログで設定することができます。

Difference ブロックのモードを説明する例として、ex_difference を開きます。

次の図は、非実行モードで、列に沿って相違を計算しているブロックの出力を示します。

次の図は、非実行モードで、行に沿って相違を計算しているブロックの出力を示します。

次の図は、ブロックが累積差分を計算するときのブロック出力の 2 番目のフレームを示します。

パラメーター

[メイン] タブ

Running difference

ブロックが累積差分を計算するかどうかを指定します。[No] を選択すると、ブロックは現在の入力で隣接する要素間の差分を計算します。[Yes] を選択すると、ブロックは連続する入力全体の累積差分を計算します。実行モードでは、ブロックは常に入力の列に沿って差分を計算します。詳細は、連続処理を参照してください。

Difference along

ブロックの列または行、つまり入力に指定した次元に沿って差分を計算するかどうかを指定します。

Dimension

要素単位での差分を計算する対象の 1 ベースの次元を指定します。

このパラメーターは、[Difference along] パラメーターで [Specified dimension] を選択した場合にのみ表示されます。

[データ型] タブ

メモ

浮動小数点の継承は、このペインで定義されるデータ型の設定よりも優先されます。入力が浮動小数点の場合、ブロックはこれらの設定を無視し、すべての内部データ型は浮動小数点になります。

丸めモード

固定小数点演算の丸めモードを次のいずれかに指定します。

  • Floor

  • Ceiling

  • Convergent

  • Nearest

  • Round

  • Simplest

  • Zero

詳細については、丸めモードを参照してください。

整数オーバーフローで飽和

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

アキュムレータ

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

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

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

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

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

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

出力

出力データ型を指定します。このブロックの出力データ型の使い方を示す図は、固定小数点データ型を参照してください。以下を指定可能です。

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

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

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

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

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

最小値

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

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

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

最大値

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

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

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

固定小数点ツールによる変更に対してデータ型の設定をロックする

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

サポートされているデータ型

端子サポートされているデータ型

入力

  • 倍精度浮動小数点

  • 単精度浮動小数点

  • 固定小数点

  • 8、16、32 ビット符号付き整数

  • 8、16、32 ビット符号なし整数

出力

  • 倍精度浮動小数点

  • 単精度浮動小数点

  • 固定小数点

  • 8、16、32 ビット符号付き整数

  • 8、16、32 ビット符号なし整数

拡張機能

C/C++ コード生成
Simulink® Coder™ を使用して C および C++ コードを生成します。

固定小数点の変換
Fixed-Point Designer™ を使用して固定小数点システムの設計とシミュレーションを行います。

参考

関数

ブロック

R2006a より前に導入