Main Content

fixed.Quantizer

固定小数点数の量子化

fixed.Quantizer は推奨されません。代わりに castzerosoneseye、または subsasgn を使用してください。詳細については、互換性についての考慮事項を参照してください。

説明

fixed.Quantizer オブジェクトは、量子化に使用するデータ型プロパティを記述します。fixed.Quantizer オブジェクトを作成した後、quantize を使用して fi の値を量子化します。

作成

説明

q = fixed.Quantizer は、q の固定小数点の設定を使用して、固定小数点数を量子化する量子化器オブジェクト q を作成します。

q = fixed.Quantizer(nt,rm,oa) は、numerictype nt、丸め手法 rm、およびオーバーフロー アクション oa をもつ固定小数点の量子化器オブジェクトを作成します。

numerictype、丸め手法およびオーバーフロー アクションは、量子化中にのみ適用されます。出力 qfimath は付加されません。

q = fixed.Quantizer(s,wl,fl,rm,oa) は、符号属性 s、語長 wl、小数部の長さ fl、丸め手法 rm、およびオーバーフロー アクション oa をもつ、2 進小数点でスケーリングされた固定小数点の量子化器オブジェクトを作成します。

q = fixed.Quantizer(Name,Value) は、1 つ以上の Name,Value の引数のプロパティで指定されたプロパティ オプションをもつ量子化器オブジェクトを作成します。

入力引数

すべて展開する

2 進小数点でスケーリングされた固定小数点または勾配とバイアスでスケーリングされた固定小数点のデータ型を記述する numerictype オブジェクト。numerictype オブジェクトとして指定します。

fixed.Quantizer で使用する numerictype オブジェクトに AutoSignedness が存在するか、Scaling が指定されていないかのいずれかの場合は、エラーが発生します。

量子化に使用する丸め手法。次のいずれかとして指定します。

  • 'Ceiling' — 許容される次の量子化値に切り上げます。

  • 'Convergent' — 許容される最も近くの量子化値に丸めます。許容される最も近い 2 つの量子化値のちょうど中間にある数値は、丸め後の最下位ビットが 0 になる場合のみ上方に丸められます。

  • 'Floor' — 許容される次の量子化値に切り下げます。

  • 'Nearest' — 許容される最も近くの量子化値に丸めます。許容される最も近くの 2 つの量子化値の中間にある値は、切り上げられます。

  • 'Round' — 許容される最も近くの量子化値に丸めます。許容される最も近くの 2 つの量子化値の中間にある値は、絶対値に切り上げられます。

  • 'Zero' — 許容される次の量子化値まで、負の数は切り上げ、正の数は切り下げます。

オーバーフロー時のアクション。次の値のいずれかとして指定します。

  • 'Saturate' — オーバーフローは飽和されます。

    量子化するデータの値が数値型プロパティで指定される表示可能な数字の最大値から最小値までの範囲の外にある場合、これらの値は、どちらに近いかにより、表示可能な最大値または最小値のどちらかの値に量子化されます。

  • 'Wrap' — オーバーフローはラップされます。

    量子化するデータの値が数値型プロパティで指定される表示可能な数字の最大値から最小値までの範囲の外にある場合、これらの値は、表示可能な最小値に関連するモジュラー演算を使用し、指定された範囲内に戻るようにラップされます。

出力が符号付きであるかどうか。次のいずれかとして指定します。

  • 1 または true — 符号付き

  • 0 または false — 符号なし

出力データの格納整数値の語長 (ビット)。正のスカラー整数として指定します。

出力データの格納整数値の小数部の長さ (ビット)。スカラー整数として指定します。

プロパティ

すべて展開する

量子化器オブジェクトに関連付けられるバイアス。スカラー整数として指定します。

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

量子化器オブジェクトに関連付けられる固定小数点指数。スカラー整数として指定します。指数は、固定小数点数の解釈に使用される数値表現の一部です。固定小数点数の指数は小数部の長さの負の値に等しくなります。詳細については、固定小数点数を参照してください。

オブジェクトの格納整数値の小数部の長さ (ビット)。スカラー整数として指定します。

小数部の長さの既定値は、自動的に量子化する fi オブジェクトの語長の値および実際値に基づく最高の精度をもたらす値となります。

オーバーフロー時のアクション。次の値のいずれかとして指定します。

  • 'Saturate' — オーバーフローは飽和されます。

    量子化するデータの値が数値型プロパティで指定される表示可能な数字の最大値から最小値までの範囲の外にある場合、これらの値は、どちらに近いかにより、表示可能な最大値または最小値のどちらかの値に量子化されます。

  • 'Wrap' — オーバーフローはラップされます。

    量子化するデータの値が数値型プロパティで指定される表示可能な数字の最大値から最小値までの範囲の外にある場合、これらの値は、表示可能な最小値に関連するモジュラー演算を使用し、指定された範囲内に戻るようにラップされます。

データ型: char

量子化に使用する丸め手法。次のいずれかとして指定します。

  • 'Ceiling' — 許容される次の量子化値に切り上げます。

  • 'Convergent' — 許容される最も近くの量子化値に丸めます。許容される最も近い 2 つの量子化値のちょうど中間にある数値は、丸め後の最下位ビットが 0 になる場合のみ上方に丸められます。

  • 'Floor' — 許容される次の量子化値に切り下げます。

  • 'Nearest' — 許容される最も近くの量子化値に丸めます。許容される最も近くの 2 つの量子化値の中間にある値は、切り上げられます。

  • 'Round' — 許容される最も近くの量子化値に丸めます。許容される最も近くの 2 つの量子化値の中間にある値は、絶対値に切り上げられます。

  • 'Zero' — 許容される次の量子化値まで、負の数は切り上げ、正の数は切り下げます。

データ型: char

出力が符号付きであるかどうか。次のいずれかとして指定します。

  • 1 または true — 符号付き

  • 0 または false — 符号なし

メモ

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

出力が符号付きであるかどうか。'Signed' または 'Unsigned' として指定します。

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

オブジェクトに関連付けられる勾配調整。1 以上 2 未満のスカラーとして指定します。勾配調整は、固定小数点数の小数部の勾配と同義です。小数部の勾配は、固定小数点数の表現に使用される数値表現の一部です。詳細については、固定小数点数を参照してください。

出力データの格納整数値の語長 (ビット)。正のスカラー整数として指定します。

オブジェクト関数

quantizefixed.Quantizer オブジェクトを使用した 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)
q = 

  fixed.Quantizer with properties:

                   Signed: 1
               WordLength: 16
    SlopeAdjustmentFactor: 1
            FixedExponent: -15
                     Bias: 0
               Signedness: 'Signed'
                    Slope: 3.0518e-05
           FractionLength: 15
           RoundingMethod: 'Floor'
           OverflowAction: 'Wrap'


y = 

    0.9000

          DataTypeMode: Fixed-point: binary point scaling
            Signedness: Signed
            WordLength: 16
        FractionLength: 15

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

x = fi(pi,1,16,13)
q = fixed.Quantizer(numerictype(1,7,1.6,0.2),'Round','Saturate')
y = quantize(q,x)
x = 

    3.1416

          DataTypeMode: Fixed-point: binary point scaling
            Signedness: Signed
            WordLength: 16
        FractionLength: 13

q = 

  fixed.Quantizer with properties:

                   Signed: 1
               WordLength: 7
    SlopeAdjustmentFactor: 1.6000
            FixedExponent: 0
                     Bias: 0.2000
               Signedness: 'Signed'
                    Slope: 1.6000
           FractionLength: 0
           RoundingMethod: 'Round'
           OverflowAction: 'Saturate'


y = 

    3.4000

          DataTypeMode: Fixed-point: slope and bias scaling
            Signedness: Signed
            WordLength: 7
                 Slope: 1.6
                  Bias: 0.2

詳細

すべて展開する

ヒント

  • 量子化器オブジェクト 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 と同じプロパティ値をもつ量子化器オブジェクトを作成します。

拡張機能

バージョン履歴

R2011b で導入

すべて展開する