Main Content

スケーリング

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

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 ソフトウェアで使用するスケーリングを決定しなければなりません。

関連するトピック