fixed.Quantizer
固定小数点数の量子化
fixed.Quantizer
は推奨されません。代わりに cast
、zeros
、ones
、eye
、または subsasgn
を使用してください。詳細については、互換性についての考慮事項を参照してください。
説明
fixed.Quantizer
オブジェクトは、量子化に使用するデータ型プロパティを記述します。fixed.Quantizer
オブジェクトを作成した後、quantize
を使用して fi
の値を量子化します。
作成
構文
説明
は、q
= fixed.Quantizerq
の固定小数点の設定を使用して、固定小数点数を量子化する量子化器オブジェクト q
を作成します。
は、q
= fixed.Quantizer(nt
,rm
,oa
)numerictype
nt
、丸め手法 rm
、およびオーバーフロー アクション oa
をもつ固定小数点の量子化器オブジェクトを作成します。
numerictype
、丸め手法およびオーバーフロー アクションは、量子化中にのみ適用されます。出力 q
に fimath
は付加されません。
は、1 つ以上の q
= fixed.Quantizer(Name,Value
)Name,Value
の引数のプロパティで指定されたプロパティ オプションをもつ量子化器オブジェクトを作成します。
入力引数
nt
— numerictype
オブジェクト
numerictype(true,16,15)
(既定値) | numerictype
オブジェクト
2 進小数点でスケーリングされた固定小数点または勾配とバイアスでスケーリングされた固定小数点のデータ型を記述する numerictype
オブジェクト。numerictype
オブジェクトとして指定します。
fixed.Quantizer
で使用する numerictype
オブジェクトに Auto
の Signedness
が存在するか、Scaling
が指定されていないかのいずれかの場合は、エラーが発生します。
rm
— 丸め手法
'Floor'
(既定値) | 'Ceiling'
| 'Convergent'
| 'Nearest'
| 'Round'
| 'Zero'
量子化に使用する丸め手法。次のいずれかとして指定します。
'Ceiling'
— 許容される次の量子化値に切り上げます。'Convergent'
— 許容される最も近くの量子化値に丸めます。許容される最も近い 2 つの量子化値のちょうど中間にある数値は、丸め後の最下位ビットが 0 になる場合のみ上方に丸められます。'Floor'
— 許容される次の量子化値に切り下げます。'Nearest'
— 許容される最も近くの量子化値に丸めます。許容される最も近くの 2 つの量子化値の中間にある値は、切り上げられます。'Round'
— 許容される最も近くの量子化値に丸めます。許容される最も近くの 2 つの量子化値の中間にある値は、絶対値に切り上げられます。'Zero'
— 許容される次の量子化値まで、負の数は切り上げ、正の数は切り下げます。
oa
— オーバーフロー時のアクション
'Wrap'
(既定値) | 'Saturate'
オーバーフロー時のアクション。次の値のいずれかとして指定します。
'Saturate'
— オーバーフローは飽和されます。量子化するデータの値が数値型プロパティで指定される表示可能な数字の最大値から最小値までの範囲の外にある場合、これらの値は、どちらに近いかにより、表示可能な最大値または最小値のどちらかの値に量子化されます。
'Wrap'
— オーバーフローはラップされます。量子化するデータの値が数値型プロパティで指定される表示可能な数字の最大値から最小値までの範囲の外にある場合、これらの値は、表示可能な最小値に関連するモジュラー演算を使用し、指定された範囲内に戻るようにラップされます。
s
— 出力が符号付きであるかどうか
1
または true
(既定値) | 0
または false
出力が符号付きであるかどうか。次のいずれかとして指定します。
1
またはtrue
— 符号付き0
またはfalse
— 符号なし
wl
— 語長
16 (既定値) | 正のスカラー整数
出力データの格納整数値の語長 (ビット)。正のスカラー整数として指定します。
fl
— 小数部の長さ
15 (既定値) | スカラー整数
出力データの格納整数値の小数部の長さ (ビット)。スカラー整数として指定します。
プロパティ
Bias
— バイアス
0 (既定値) | スカラー整数
量子化器オブジェクトに関連付けられるバイアス。スカラー整数として指定します。
バイアスは、固定小数点数の解釈に使用される数値表現の一部です。勾配とバイアスで、数値をスケーリングします。詳細については、固定小数点数を参照してください。
FixedExponent
— 固定小数点指数
-15 (既定値) | スカラー整数
量子化器オブジェクトに関連付けられる固定小数点指数。スカラー整数として指定します。指数は、固定小数点数の解釈に使用される数値表現の一部です。固定小数点数の指数は小数部の長さの負の値に等しくなります。詳細については、固定小数点数を参照してください。
FractionLength
— 小数部の長さ
15 (既定値) | スカラー整数
オブジェクトの格納整数値の小数部の長さ (ビット)。スカラー整数として指定します。
小数部の長さの既定値は、自動的に量子化する fi
オブジェクトの語長の値および実際値に基づく最高の精度をもたらす値となります。
OverflowAction
— オーバーフロー時のアクション
'Wrap'
(既定値) | 'Saturate'
オーバーフロー時のアクション。次の値のいずれかとして指定します。
'Saturate'
— オーバーフローは飽和されます。量子化するデータの値が数値型プロパティで指定される表示可能な数字の最大値から最小値までの範囲の外にある場合、これらの値は、どちらに近いかにより、表示可能な最大値または最小値のどちらかの値に量子化されます。
'Wrap'
— オーバーフローはラップされます。量子化するデータの値が数値型プロパティで指定される表示可能な数字の最大値から最小値までの範囲の外にある場合、これらの値は、表示可能な最小値に関連するモジュラー演算を使用し、指定された範囲内に戻るようにラップされます。
データ型: char
RoundingMethod
— 丸め手法
'Floor'
(既定値) | 'Ceiling'
| 'Convergent'
| 'Nearest'
| 'Round'
| 'Zero'
量子化に使用する丸め手法。次のいずれかとして指定します。
'Ceiling'
— 許容される次の量子化値に切り上げます。'Convergent'
— 許容される最も近くの量子化値に丸めます。許容される最も近い 2 つの量子化値のちょうど中間にある数値は、丸め後の最下位ビットが 0 になる場合のみ上方に丸められます。'Floor'
— 許容される次の量子化値に切り下げます。'Nearest'
— 許容される最も近くの量子化値に丸めます。許容される最も近くの 2 つの量子化値の中間にある値は、切り上げられます。'Round'
— 許容される最も近くの量子化値に丸めます。許容される最も近くの 2 つの量子化値の中間にある値は、絶対値に切り上げられます。'Zero'
— 許容される次の量子化値まで、負の数は切り上げ、正の数は切り下げます。
データ型: char
Signed
— 出力が符号付きであるかどうか
1
または true
(既定値) | 0
または false
出力が符号付きであるかどうか。次のいずれかとして指定します。
1
またはtrue
— 符号付き0
またはfalse
— 符号なし
メモ
Signed
プロパティは引き続きサポートされていますが、fixed.Quantizer
オブジェクトの表示には常に Signedness
プロパティが表示されます。Signed
プロパティを使用して fixed.Quantizer
オブジェクトの符号属性の変更または設定を選択すると、MATLAB® は Signedness
プロパティの対応する値を更新します。
Signedness
— 出力が符号付きであるかどうか
'Signed'
(既定値) | 'Unsigned'
出力が符号付きであるかどうか。'Signed'
または 'Unsigned'
として指定します。
Slope
— オブジェクトに関連付けられる勾配
2^-15
(既定値) | 正のスカラー
オブジェクトに関連付らけれている勾配。勾配は、固定小数点数の表現に使用される数値表現の一部です。バイアスと勾配で、固定小数点数をスケーリングします。詳細については、固定小数点数を参照してください。
SlopeAdjustmentFactor
— オブジェクトに関連付けられる勾配調整
1 (既定値) | 1 以上 2 未満のスカラー
オブジェクトに関連付けられる勾配調整。1 以上 2 未満のスカラーとして指定します。勾配調整は、固定小数点数の小数部の勾配と同義です。小数部の勾配は、固定小数点数の表現に使用される数値表現の一部です。詳細については、固定小数点数を参照してください。
WordLength
— 語長
16 (既定値) | 正のスカラー整数
出力データの格納整数値の語長 (ビット)。正のスカラー整数として指定します。
オブジェクト関数
quantize | fixed.Quantizer オブジェクトを使用した fi の値の量子化 |
例
2 つの固定小数点数の加算結果によって生じた語長を短縮
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
2 進小数点でスケーリングされた固定小数点 fi
を勾配とバイアスでスケーリングされた固定小数点 fi
に量子化
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 の場合、x
とy
のデータは同じになりますが、y
は固定小数点の設定をもつことになります。x
が double または single の場合、y = x
です。この機能により、量子化器が存在する場合、浮動小数点データ型および fi オブジェクトに対して同一のコードを共有できます。n = numerictype(q)
を使用して、量子化器オブジェクトq
の現在の設定に対するnumerictype
を取得します。clone(q)
を使用して、q
と同じプロパティ値をもつ量子化器オブジェクトを作成します。
拡張機能
C/C++ コード生成
MATLAB® Coder™ を使用して C および C++ コードを生成します。
fixed.Quantizer
はハンドル オブジェクトであり、コード生成では永続として宣言する必要があります。
バージョン履歴
R2011b で導入R2013a: fixed.Quantizer
は非推奨
fixed.Quantizer
は推奨されません。代わりに cast
、zeros
、ones
、eye
、または subsasgn
を使用してください。fixed.Quantizer
を削除する予定はありません。
R2013a 以降では、代わりに cast
、zeros
、ones
、eye
、または subsasgn
を使用してください。関数 cast
、zeros
、ones
、eye
、および subsasgn
では、fi
オブジェクトに加え、他のデータ型にも量子化できます。
非推奨 | 推奨 |
---|---|
x = fi(pi,1,16,13); q = fixed.Quantizer(numerictype(1,7,1.6,0.2),'Round','Saturate'); y = quantize(q,x) y = 3.4000 DataTypeMode: Fixed-point: slope and bias scaling Signedness: Signed WordLength: 7 Slope: 1.6 Bias: 0.2 |
x = fi(pi,1,16,13); F = fimath('RoundingMethod','Round','OverflowAction','Saturate'); nt = fi([],1,7,1.6,0.2,F); y = cast(x,'like',nt) y = 3.4000 DataTypeMode: Fixed-point: slope and bias scaling Signedness: Signed WordLength: 7 Slope: 1.6 Bias: 0.2 |
参考
quantize
| fi
| numerictype
MATLAB コマンド
次の MATLAB コマンドに対応するリンクがクリックされました。
コマンドを MATLAB コマンド ウィンドウに入力して実行してください。Web ブラウザーは MATLAB コマンドをサポートしていません。
Select a Web Site
Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: .
You can also select a web site from the following list:
How to Get Best Site Performance
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.
Americas
- América Latina (Español)
- Canada (English)
- United States (English)
Europe
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)