ドキュメンテーション

最新のリリースでは、このページがまだ翻訳されていません。 このページの最新版は英語でご覧になれます。

fixed.Quantizer

固定小数点数の量子化

構文

q = fixed.Quantizer
q = fixed.Quantizer(nt,rm,oa)
q = fixed.Quantizer(s,wl,fl,rm,oa)
q = fixed.Quantizer(Name,Value)

説明

q = fixed.Quantizer は、既定の固定小数点の設定を使用して、固定小数点 (fi) 数を量子化する量子化器 q を作成します。

q = fixed.Quantizer(nt,rm,oa)numerictype (nt) オブジェクト情報と RoundingMethod (rm) および OverflowAction (oa) プロパティを使用します。

numerictype、丸め手法およびオーバーフロー アクションは、量子化中にのみ適用されます。結果的に量子化された値となる q には、fimath が付加されていません。

q = fixed.Quantizer(s,wl,fl,rm,oa) は、Signed (s)、WordLength (wl)、FractionLength (fl)、RoundingMethod (rm) および OverflowAction (oa) プロパティを使用します。

q = fixed.Quantizer(Name,Value) は、1 つ以上の Name,Value の引数ペアで指定されたプロパティ オプションをもつ量子化器を作成します。Name,Value の引数ペアはコンマで区切ります。Name は引数名で、Value はそれに対応する値です。Name は単一引用符 ('') で囲まなければなりません。Name1,Value1,…,NameN,ValueN のように、複数の名前/値の引数ペアを任意の順番で指定できます。

入力引数

nt

2 進小数点でスケーリングされた numerictype オブジェクトまたは勾配とバイアスでスケーリングされた固定小数点 numerictype オブジェクト。fixed.Quantizer で使用する numerictype オブジェクトに AutoSignedness が存在するか、Scaling が指定されていないかのいずれかの場合は、エラーが発生します。

rm

出力データに適用する丸め手法。有効な丸め手法は、CeilingConvergentFloorNearestRound および Zero です。関連付けられたプロパティ名は RoundingMethod です。

既定値: Floor

oa

データがオーバーフローしたときに行うオーバーフロー アクション。有効なオーバー フローアクションは SaturateWrap です。関連付けられたプロパティ名は OverflowAction です。

既定値: Wrap

s

論理値 true または false。それぞれ出力が符号付きか符号なしかを示します。関連付けられたプロパティ名は Signed です。

既定値: true

wl

出力データの語長 (ビット数)。関連付けられたプロパティ名は WordLength です。

既定値: 16

fl

出力データの小数部の長さ。関連付けられたプロパティ名は FractionLength です。

既定値: 15

名前/値の引数ペア

オプションの Name,Value 引数ペアをコンマ区切りで指定します。ここで、Name は引数名で、Value は対応する値です。Name は単一引用符 (' ') で囲まなければなりません。Name1,Value1,...,NameN,ValueN のように、複数個の名前/値ペアの引数を、任意の順番で指定できます。

'Bias'

バイアスは、固定小数点数の解釈に使用される数値表現の一部です。勾配とバイアスで、数値をスケーリングします。

既定値: 0

'FixedExponent'

オブジェクトに関連付けられた固定小数点指数。指数は、固定小数点数の表現に使用される数値表現の一部です。

固定小数点数の指数は小数部の長さの負の値に等しくなります。FixedExponent は整数でなければなりません。

既定値: -15

'FractionLength'

オブジェクトの格納整数値の小数部の長さ (ビット)。小数部の長さは、整数値です。

このプロパティの既定値は、自動的に fi オブジェクトの語長の値および実際値に基づく最高の精度をもたらす値となります。

既定値: 15

'OverflowAction'

データがオーバーフローしたときに行うアクション。有効なオーバー フローアクションは SaturateWrap です。 .

既定値: Wrap

'RoundingMethod'

出力データに適用する丸め手法。有効な丸め手法は、CeilingConvergentFloorNearestRound および Zero です。

既定値: Floor

'Signed'

オブジェクトが符号付きであるかどうかを指定します。このプロパティには、次の値を設定できます。

  • 1 — 符号付き

  • 0 — 符号なし

  • true — 符号付き

  • false — 符号なし

    メモ:   Signed プロパティは引き続きサポートされていますが、numerictype オブジェクトの表示には常に Signedness プロパティが表示されます。Signed プロパティを使用して numerictype オブジェクトの符号の有無の変更または設定を選択すると、MATLAB®Signedness プロパティの対応する値を更新します。

既定値: true

'Signedness'

オブジェクトが符号付き、符号なし、または符号の指定なしのいずれであるかを示します。このプロパティには、次の値を設定できます。

  • Signed — 符号付き

  • Unsigned — 符号なし

既定値: Signed

'Slope'

オブジェクトに関連付らけれている勾配。勾配は、固定小数点数の表現に使用される数値表現の一部です。バイアスと勾配で、固定小数点数をスケーリングします。

既定値: 2^-15

'SlopeAdjustmentFactor'

オブジェクトに関連付けられている勾配調整。勾配調整は、固定小数点数の小数部の勾配と同義です。小数部の勾配は、固定小数点数の表現に使用される数値表現の一部です。

SlopeAdjustmentFactor は 1 以上かつ 2 未満でなければなりません。

既定値: 1

'WordLength'

オブジェクトの格納整数値の語長 (ビット)。語長には、任意の正の整数値を設定できます。

既定値: 16

出力引数

q

fi 入力数を量子化する量子化器

fixed.Quantizer を使用して、2 つの固定小数点数の加算結果によって生じた語長を短くします。

q = fixed.Quantizer;
x1 = fi(0.1,1,16,15);
x2 = fi(0.8,1,16,15);
y  = quantize(q,x1+x2); 

fixed.Quantizer オブジェクトを使用して、2 進小数点でスケーリングされた固定小数点 fi を勾配とバイアスでスケーリングされた固定小数点 fi に変更します。

qsb = fixed.Quantizer(numerictype(1,7,1.6,0.2),...
  'Round','Saturate');
ysb = quantize(qsb,fi(pi,1,16,13));

詳細

すべて折りたたむ

固定小数点数

固定小数点数は以下のように表現することができます。

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

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

slope=fractional slope×2fixed exponent

ヒント

  • 量子化器 q の固定小数点の設定を使用し、y = quantize(q,x) で入力配列 x を量子化します。x には、ブール値以外の任意の固定小数点数 fi を指定できます。x がスケーリングされた double の場合、xy のデータは同じになりますが、y は固定小数点の設定をもつことになります。x が double または single の場合、y = x です。この機能により、量子化器が存在する場合、浮動小数点データ型および fi オブジェクトに対して同一のコードを共有できます。

  • n = numerictype(q) を使用して、量子化器 q の現在の設定に対する numerictype を取得します。

  • clone(q) を使用して、q と同じプロパティ値をもつ量子化器オブジェクトを作成します。

  • fixed.quantizer は、コード生成で使用する場合、ハンドル オブジェクトであり persistent として宣言しなければならないことに注意してください。

この情報は役に立ちましたか?