Main Content

スケーリング、精度、範囲

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

スケーリング

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

勾配およびバイアス スケーリング

固定小数点数は、一般的な勾配とバイアスのエンコード スキームにより表すことができます。勾配バイアスのスケーリングされた数値の実際値は以下のように表現できます。

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

slope=slope adjustment factor×2fixed exponent

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

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

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

real world value=2fraction length×integer

精度

固定小数点数の精度は、そのデータ型とスケーリングで表現できる連続値間の差異で、最下位ビットの値と等価です。最下位ビットの値、つまり数値の精度は小数部のビット数によって決まります。固定小数点値は、そのデータ型とスケーリングの精度の半分以内で表現できます。

たとえば、2 進小数点の右側が 4 ビットの固定小数点の表現は、精度が 2-4、つまり 0.0625 であり、最下位ビットの値になります。このデータ型とスケーリングの範囲内の数値はすべて (2-4)/2、つまり 0.03125 以内で表現でき、これは精度が半分になります。

丸め手法

数値を有限精度で表す場合、使用可能な範囲のすべての数値を正確に表すことができるとは限りません。指定したデータ型とスケーリングで数値を正確に表すことができない場合は、丸め手法を使用して値を表現可能な数値にキャストします。丸め演算では精度が失われますが、演算のコストと生じるバイアスの量は丸め手法によって異なります。Fixed-Point Designer で利用できる丸め手法の詳細については、丸め手法 (Fixed-Point Designer)を参照してください。

範囲

範囲とは、固定小数点データ型とスケーリングで表現できる数値の範囲です。以下に、語長 ws、スケーリング S およびバイアス B の符号なしの 2 の補数の固定小数点数で表現可能な数値の範囲を示します。

次の図は、2 の補数の符号付き固定小数点数で表現可能な数値の範囲を示します。

任意のデータ型の符号付きと符号なしの固定小数点数のどちらでも、異なるビット パターン数は 2wl です。

たとえば、2 の補数では、ゼロと同様に負の数値も表現しなければならないので、最大値は 2wl-1-1 です。ゼロの表現は 1 つしかないため、正の数値と負の数値の数が異なります。つまり、-2wl-1 の表現はありますが、2wl-1 の表現はありません。

関連するトピック