Main Content

fixptbestprec

値を固定小数点で表現する際に可能な最高精度の導出

構文

out = fixptbestprec(RealWorldValue,TotalBits,IsSigned)
out = fixptbestprec(RealWorldValue,FixPtDataType)

説明

out = fixptbestprec(RealWorldValue,TotalBits,IsSigned) は、RealWorldValue で指定された実際の値を固定小数点で表現する際の最高の精度を求めます。固定小数点数のビット数を TotalBits で指定し、固定小数点数に符号を付けるかどうかを IsSigned で指定します。IsSigned1 の場合は数値に符号が付けられ、IsSigned0 の場合は数値に符号が付けられません。最高精度は、out に設定されて返されます。

out = fixptbestprec(RealWorldValue,FixPtDataType) は、FixPtDataType で指定されたデータ型に基づいて最高の精度を求めます。

すべて折りたたむ

次のコマンドは、実際の値 4/3 を符号付き 8 ビット数を使用して表現する場合の最高精度を返します。

out = fixptbestprec(4/3,8,1)
out =
   0.015625

また、次のように固定小数点データ型を指定することもできます。

out = fixptbestprec(4/3,sfix(8))
out =
   0.015625

この値は、2-6 が 0.015625 に等しいことから、2 進小数点の右側に 6 つのビットがあると、4/3 に対して最高精度が得られることを示します。

最高精度の値を、固定小数点ブロックでスケーリングとして使用することができます。このため、シミュレーションの既知の範囲を指定したい場合に、fixptbestprec を使用してオートスケーリングのタイプを実行することができます。たとえば、既知の範囲が -13 ~ 22 であり、30% の安全マージンを使用する場合は、次のようになります。

knownMax = 22;
knownMin = -13;
localSafetyMargin = 30;
slope = max( fixptbestprec( (1+localSafetyMargin/100)* ...
 [knownMax,knownMin], sfix(16) ) );

ブロック マスクの中で Output data type パラメーターに変数 slope を使用することができます。固定小数点ツールがスケーリングをオーバーライドしないように、同じブロックで必ず [固定小数点ツールによる変更に対して出力データ型の設定をロックする] チェック ボックスをオンにしてください。範囲がわかっている場合は、autofixexp (Fixed-Point Designer) に示されているように、モデル シミュレーションに基づいてオートスケーリング ツールに与える範囲を指定する代わりに、この方法を使用することができます。

バージョン履歴

R2006a より前に導入