Main Content

変換と算術演算

次の例では、パラメーターが double から固定小数点数に変換される場合、入力データ型が出力データ型に変換される場合、および適用される加算、減算、乗算の規則が適用される場合について、Discrete FIR Filter ブロックを使用して説明します。

メモ

ブロックが 4 種類の算術演算すべてを実行できる場合は、乗算と除算の規則が最初に適用されます。Discrete FIR Filter ブロックはこの例です。

Discrete FIR Filter ブロックに 2 つの出力値を設定するとします。最初の出力値は

y1(k)=13u(k)+11u(k1)7u(k2),

で与えられ、2 番目の出力値は下記で与えられます。

y2(k)=6u(k)5u(k1).

さらに、u(k–1)u(k–2) の初期値はそれぞれ 0.8 と 1.1 で与えられ、すべての入力値、パラメーター、出力値には 2 進小数点のみのスケーリングがあります。

この状況で Discrete FIR Filter ブロックを設定するには、以下に示すように、そのダイアログ ボックスの [メイン] ペインで [係数] パラメーターを [13 11 -7; 6 -5 0] と指定し、[初期状態] パラメーターを [0.8 1.1] と指定しなければなりません。

同様に、このブロックのダイアログ ボックスの [データ型] ペインでオプションを次のように設定します。

Discrete FIR Filter ブロックは、パラメーター変換とブロック操作を次の順序で実行します。

  1. 最も近い整数への丸めと飽和を使用して、[Coefficients] パラメーターが doubles から [Coefficients] データ型の値にオフラインで変換されます。

    最も近い整数への丸めと飽和を使用して、[初期状態] パラメーターが doubles から入力データ型にオフラインで変換されます。

  2. 係数と入力が両方の出力の初期タイム ステップで一緒に乗算されます。y1(0) については、演算 13·u(0)11·0.8、および –7·1.1 が実行されますが、y2(0) については、演算 6·u(0)–5·0.8 が実行されます。

    これらの演算の結果は [乗算出力] として格納されます。

  3. 合計は [アキュムレータ] で実行されます。その後、最終総和の結果が [出力] に変換されます。

  4. 以降のタイム ステップで手順 2 と 3 を繰り返します。

参考

関連するトピック