変換と算術演算
次の例では、パラメーターが double から固定小数点数に変換される場合、入力データ型が出力データ型に変換される場合、および適用される加算、減算、乗算の規則が適用される場合について、Discrete FIR Filter ブロックを使用して説明します。
メモ
ブロックが 4 種類の算術演算すべてを実行できる場合は、乗算と除算の規則が最初に適用されます。Discrete FIR Filter ブロックはこの例です。
Discrete FIR Filter ブロックに 2 つの出力値を設定するとします。最初の出力値は
で与えられ、2 番目の出力値は下記で与えられます。
さらに、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 ブロックは、パラメーター変換とブロック操作を次の順序で実行します。
最も近い整数への丸めと飽和を使用して、[Coefficients] パラメーターが doubles から [Coefficients] データ型の値にオフラインで変換されます。
最も近い整数への丸めと飽和を使用して、[初期状態] パラメーターが doubles から入力データ型にオフラインで変換されます。
係数と入力が両方の出力の初期タイム ステップで一緒に乗算されます。y1(0) については、演算 13·u(0)、11·0.8、および –7·1.1 が実行されますが、y2(0) については、演算 6·u(0) と –5·0.8 が実行されます。
これらの演算の結果は [乗算出力] として格納されます。
合計は [アキュムレータ] で実行されます。その後、最終総和の結果が [出力] に変換されます。
以降のタイム ステップで手順 2 と 3 を繰り返します。