メインコンテンツ

uencode

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

説明

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

y = uencode(x,n,v) は、入力 x のエントリが飽和するのを防ぐため、エントリを範囲 [-v,v] の浮動小数点値にします。

y = uencode(x,n,v,outputSign) は、符号付きまたは符号なしの整数出力を生成するためのオプション outputSign を指定します。

すべて折りたたむ

[-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 = 1×9 uint8 row vector

    0    0    0    8   16   24   31   31   31

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

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

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

入力引数

すべて折りたたむ

浮動小数点入力。ベクトル、行列、または多次元配列として指定します。uencode 関数は、範囲 [-v, v] から外れた x の要素をオーバーフローとして扱い、次のように飽和させます。

  • -v より小さい入力要素の場合、uencode は、0 (符号なし出力の場合) または -2^n/2 (符号付き出力の場合) の出力値を返します。

  • v より大きい入力要素の場合、uencode は、2^n-1 (符号なし出力の場合) または 2^n/2-1 (符号付き出力の場合) の出力値を返します。

uencode 関数は、複素数値入力 x の実数部と虚数部を個別に符号化します。

データ型: single | double
複素数のサポート: あり

量子化レベルの数の測定。正の整数スカラーとして指定します。n は 2 ~ 32 の整数でなければなりません。2n の値は、量子化された配列 y に対して確立された量子化レベルの数を示し、y の量子化範囲を定義します。

量子化範囲は、n の値と y の符号の性質によって決まります。

  • 符号付き入力 — 2n/2 ~ (2n/2)–1。

  • 符号なし入力 — 0 ~ (2n–1)。

飽和しない振幅。正のスカラーとして指定します。この関数は、範囲 [-v,v] から外れた x の要素を飽和として扱い、次のように符号化します。

  • -v より小さい入力要素の場合、uencode は、0 (符号なし出力の場合) または -2^n/2 (符号付き出力の場合) の出力値を返します。

  • v より大きい入力要素の場合、uencode は、2^n-1 (符号なし出力の場合) または 2^n/2-1 (符号付き出力の場合) の出力値を返します。

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

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

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

出力引数

すべて折りたたむ

符号化された整数出力。ベクトル、行列、または多次元配列として返されます。出力配列 y の次元は、x と同じになります。

アルゴリズム

関数 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 より前に導入

すべて展開する

参考