スケーリング
固定小数点数の動的範囲は、同等のワード サイズの浮動小数点をはるかに下回ります。オーバーフロー状態を防ぎ、量子化誤差を最低限に抑えるには、固定小数点数をスケーリングしなければなりません。
Fixed-Point Designer™ ソフトウェアでは、2 進小数点でスケーリングが定義される固定小数点データ型を選択するか、ニーズに合った任意の線形スケーリングを選択することができます。この節では、固定小数点データ型で使用できるスケーリングの選択肢を示します。
固定小数点数は、一般的な勾配とバイアスのエンコード スキームにより表すことができます。
この場合、勾配は次のように表現できます。
整数は "格納された整数" と呼ばれることがあります。これは生の 2 進数の数で、2 進小数点はワードの右端にあると想定されています。Fixed-Point Designer のドキュメンテーションでは、固定小数点の指数の負の数値を "小数部の長さ" と呼ぶことがあります。
勾配とバイアスは共に固定小数点数のスケーリングを表します。ゼロ バイアスの数では、勾配のみがスケーリングに影響します。2 進小数点位置でのみスケーリングされる固定小数点数は、バイアスがゼロで勾配調整係数が 1 となる勾配バイアス表現の数値に相当します。これは「2 進小数点専用スケーリング」または「2 のべき乗スケーリング」と呼ばれます。
または
2 進小数点のみのスケーリング
2 進小数点のみのスケーリングまたは 2 のべき乗のスケーリングでは、固定小数点のワード内で 2 進小数点を移動しなければなりません。このスケーリング モードの利点は、プロセッサ算術演算の数を最少にすることです。
2 進小数点のみのスケーリングでは、一般勾配とバイアス公式の要素は以下の値をもちます。
量子化された実際数値は勾配 S で定義されますが、これは 2 のべき乗に制限されています。負の 2 のべき乗の指数は小数部の長さと呼ばれます。小数部の長さは 2 進小数点の右側のビット数です。2 進小数点のみのスケーリングの場合、固定小数点データ型を以下のように指定します。
符号付きタイプ -
fixdt(1,WordLength,FractionLength)
符号なしタイプ -
fixdt(0,WordLength,FractionLength)
整数は、固定小数点データ型の特殊ケースです。整数は、勾配 1 およびバイアス 0、または小数部の長さ 0 と等価な自明のスケーリングをもちます。整数は以下のように指定します。
符号付き整数 -
fixdt(1,WordLength,0)
符号なし整数 -
fixdt(0,WordLength,0)
勾配およびバイアス スケーリング
勾配とバイアスでスケールする場合、量子化された実際数値の勾配 S とバイアス B には任意の値を使用できます。勾配は正数でなければなりません。勾配とバイアスを使用して固定小数点データ型を以下のように指定します。
fixdt(Signed,WordLength,Slope,Bias)
指定なしのスケーリング
スケーリングが指定されていない固定小数点データ型は以下のように指定します。
fixdt(Signed,WordLength)
Simulink® 信号、パラメーター、状態には、スケーリングを必ず指定しなければなりません。スケーリングが指定されていない場合、自動最高精度スケーリングなどの他のメカニズムを使用して Simulink ソフトウェアで使用するスケーリングを決定しなければなりません。