Main Content

このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。

uencode

浮動小数点入力の量子化および符号化による整数出力

説明

y = uencode(u,n) は、浮動小数点数 u から成る多次元配列のエントリを量子化し、2n レベルの量子化を使用して整数として符号化します。出力 y と入力 u は、同じサイズの配列です。出力 y の要素は、振幅が範囲 [0, 2n-1] 内にある、符号なしの整数です。

y = uencode(u,n,v) では、飽和を行う前に、入力 u が範囲 [-v,v] の浮動小数点値をもつエントリをもつことができます (v の既定値は 1 です)。

y = uencode(u,n,v,'SignFlag') では、範囲 [-v,v] 内の値をもつ浮動小数点数 u の多次元配列内のエントリが整数出力 y にマッピングされます。この範囲外の入力エントリは飽和されます。

すべて折りたたむ

[-1, 1] の浮動小数点スカラーを uint8 (符号なし) 整数にマッピングします。階段型プロットを作成します。横軸は -1 ~ 1、縦軸は 0 ~ 7 (23-1) の範囲となります。

u = -1:0.01:1;
y = uencode(u,3);
plot(u,y,'.')

Figure contains an axes object. The axes contains a line object which displays its values using only markers.

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

u = -2:0.5:2;
y = uencode(u,5,1)
y = 1x9 uint8 row vector

    0    0    0    8   16   24   31   31   31

符号付きの出力が必要であることを指定します。

u = -2:0.5:2;
y = uencode(u,5,2,'signed')
y = 1x9 int8 row vector

   -16   -12    -8    -4     0     4     8    12    15

入力引数

すべて折りたたむ

浮動小数点入力。行列またはベクトルとして指定します。入力は実数または複素数を受け入れます。範囲 [-1,1] に入らない入力 u の要素は、オーバーフローとして取り扱われ、飽和されます。

  • 入力 u のエントリが -1 より小さい場合、関数 uencode の出力は 0 になります。

  • 入力 u のエントリが 1 より大きい場合、関数 uencode の出力は 2n-1 になります。

データ型: single | double

量子化レベルの数の測定。正の整数スカラーとして指定します。n は 2 ~ 32 の整数でなければなりません。

ピーク値。正の実数スカラーとして指定します。範囲 [-v,v] に入らない u の要素は、オーバーフローとして取り扱われ、次のように飽和されます。

  • 入力のエントリが -v より小さい場合、関数 uencode の出力値は 0 になります。

  • 入力のエントリが v より大きい場合、関数 uencode の出力値は 2n - 1 になります。

出力符号。"unsigned" または "signed" として指定します。出力の整数タイプは、量子化レベル 2n の数と 'SignFlag' の値に依存し、次のいずれかになります。

  • "signed" — 出力は範囲 [-2n/2, (2n/2) - 1] の大きさをもつ符号付き整数。

  • "unsigned" — 出力は範囲 [0, 2n – 1] の大きさをもつ符号なし整数。

出力引数

すべて折りたたむ

符号化された整数出力。ベクトルまたは行列として返されます。

アルゴリズム

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

出力データ型は、次の表に示すビット数に対して最適化されています。

n

符号なし整数

符号付き整数

2 ~ 8

uint8

int8

9 ~ 16

uint16

int16

17 ~ 32

uint32

int32

参照

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

拡張機能

バージョン履歴

R2006a より前に導入

すべて展開する

参考