メインコンテンツ

スケーリング

固定小数点数のダイナミック レンジは、同等のワード サイズの浮動小数点をはるかに下回ります。オーバーフロー状態を防ぎ、量子化誤差を最低限に抑えるには、固定小数点数をスケーリングしなければなりません。

Fixed-Point Designer™ ソフトウェアでは、2 進小数点でスケーリングが定義される固定小数点データ型を選択するか、ニーズに合った任意の線形スケーリングを選択することができます。この節では、固定小数点データ型で使用できるスケーリングの選択肢を示します。

固定小数点数は、一般的な傾きとバイアスのエンコード スキームにより表すことができます。

real-world value=(slope×integer)+bias

この場合、傾きは次のように表現できます。

slope=slope adjustment factor × 2fixed exponent

整数は "格納された整数" と呼ばれることがあります。これは生の 2 進数の数で、2 進小数点はワードの右端にあると想定されています。Fixed-Point Designer のドキュメンテーションでは、固定小数点の指数の負の数値を "小数部の長さ" と呼ぶことがあります。

傾きとバイアスは共に固定小数点数のスケーリングを表します。ゼロ バイアスの数では、傾きのみがスケーリングに影響します。2 進小数点位置でのみスケーリングされる固定小数点数は、バイアスがゼロで傾き調整係数が 1 となる傾きバイアス表現の数値に相当します。これは「2 進小数点専用スケーリング」または「2 のべき乗スケーリング」と呼ばれます。

real-world value=2fixed exponent×integer

または

real-world value=2-fraction length×integer

2 進小数点のみのスケーリング

2 進小数点のみのスケーリングまたは 2 のべき乗のスケーリングでは、固定小数点のワード内で 2 進小数点を移動しなければなりません。このスケーリング モードの利点は、プロセッサ算術演算の数を最少にすることです。

2 進小数点のみのスケーリングでは、一般傾きとバイアス公式の要素は以下の値をもちます。

  • bias = 0

  • slope adjustment factor = 1

  • slope = slope adjustment factor × 2fixed exponent = 2fixed exponent

量子化された実際数値は傾き 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 ソフトウェアで使用するスケーリングを決定しなければなりません。

参考

トピック