Signal Processing Toolbox    
uencode

浮動小数点入力を量子化、符号化して、整数出力にします。

表示

詳細

y = uencode(u,n) は、浮動小数点数 uの多次元配列の要素を量子化し、 2nレベルの量子化を使って、それらを符号化します。nは、2と32の間の整数です。入力は、実数、複素数、倍精度、単精度のいずれでも可能です。出力 y と入力 u は、同じサイズの配列です。出力yの要素は、範囲 [0, 2n-1]の内の大きさをもつ符号なしの整数です。範囲 [-1,1] に入らない入力 u は、オーバフローとして取り扱われ、飽和になります。

y = uencode(u,n,v) は、入力 u は、飽和する前に、範囲[-v,v] (1は、vに対するデフォルト値)内の浮動小数点値をもつ要素として扱えます。範囲[-v,v] 外の入力 u の要素は、オーバフローとして取り扱かわれ、飽和します。

y = uencode(u,n,v,'SignFlag') は、範囲 [-v,v] 内の値をもつ浮動小数点数 u 個の多次元配列の中の要素を、整数出力 y にマッピングします。この範囲外の入力要素は、飽和します。出力の整数タイプは、文字列'SignFlag' と量子化レベル 2n の数に依存します。文字列 'SignFlag'には、つぎのいずれかを設定することができます。

出力データタイプは、つぎの表に示されるビット数で最適化されます。

n

符号なし整数

符号付き整数

2 to 8

uint8

int8

9 to 16

uint16

int16

17 to 32

uint32

int32

例題

[-1,1] の中の浮動小数点スカラを uint8(符号なし)整数にマッピングし、階段状のプロットを作成しましょう。水平軸は、-1から1までの範囲で、垂直軸は、0から7 (2^3-1)までの範囲です。

さて、入力にピーク値を設定することで、飽和の影響をみることができます。

出力をみてみましょう。

アルゴリズム

uencode は、浮動小数点値を量子化の 2n レベルを基に決定される整数値にマッピングします。この符号化は、ITU-T Recommendation G.701に設定されている一様復号化の定義を忠実に実現しています。入力範囲 [-v,v] は、2n の等間隔に分割されます。[-v,v] の中の入力要素は、入力の範囲のサブ分割に従って、まず、量子化され、2n 個の整数のいずれかにマッピングされます。出力の範囲は、符号付きまたは符号なしのいずれかにより、依存します。

参考
udecode     2n レベルの量子化整数を浮動小数点に復号化

参考文献

General Aspects of Digital Transmission Systems: Vocabulary of Digital Transmission and Multiplexing, and Pulse Code Modulation (PCM) Terms, International Telecommunication Union, ITU-T Recommendation G.701, March, 1993.


 udecode unwrap