Main Content

udecode

2n レベルの量子化された整数入力を浮動小数点出力に復号化

構文

y = udecode(u,n)
y = udecode(u,n,v)
y = udecode(u,n,v,'SaturateMode')

説明

y = udecode(u,n) は、uencode を逆演算し、符号化された多次元整数配列 u から、量子化浮動小数点値を再構成します。入力引数 n は 2 ~ 32 の整数でなければなりません。整数 n は、入力に対する 2n の量子化レベルを指定し、したがって u 内のエントリは以下のいずれかでなければなりません。

  • [-2n/2, (2n/2) – 1] の範囲の符号付き整数

  • [0, 2n – 1] の範囲の符号なし整数

入力には、任意の整数データ型 (uint8uint16uint32int8int16int32) の実数または複素数を使用できます。オーバーフロー (u 内のエントリが、上で指定した範囲を超えている) した場合は、範囲区間の端の点に飽和されます。結果として得られる y の次元は、u と同じになります。そのエントリは範囲 [-1,1] の値をとります。

y = udecode(u,n,v) では、出力 y の値が範囲 [-v,v] 内になるように u が復号化されます。ここで、v の既定の値は 1 です。

y = udecode(u,n,v,'SaturateMode') では、u を復号化し、'saturatemode' (以下のいずれかが設定可能) に従って、入力のオーバーフロー ([-v,v] の範囲外にある u のエントリ) を処理します。

  • 'saturate' — オーバーフローを飽和させます。これは、オーバーフロー処理の既定の方法です。

    • 値が範囲 [-2n/2, (2n/2) - 1] 外の符号付き入力 u のエントリには、この区間で最も近い端点により決定される値が割り当てられます。

    • 値が範囲 [0, 2n-1] 外の符号なし入力 u のエントリには、この区間で最も近い端点により決定される値が割り当てられます。

  • 'wrap' — 以下に従ってオーバーフローをラップします。

    • 値が範囲 [-2n/2, (2n/2) – 1] 外の符号付き入力 u のエントリは、2n を法とする算術演算 (u = mod(u+2^n/2,2^n)-(2^n/2) を使用した計算) によりラップされてその範囲内に戻されます。

    • 値が範囲 [0, 2n – 1] 外の符号なし入力 u のエントリは、2n を法とする算術演算 (u = mod(u,2^n) を使用した計算) によりラップされて必要とされる範囲内に戻された後、復号化されます。

すべて折りたたむ

8 ビット符号付き整数のベクトルを作成します。3 ビットで復号化します。

u = int8([-1 1 2 -5]);
ysat = udecode(u,3)
ysat = 1×4

   -0.2500    0.2500    0.5000   -1.0000

u 内の最後のエントリが飽和され、既定のピーク入力振幅 1 になっていることに注意してください。ピーク入力振幅を 6 に変更します。

ysatv = udecode(u,3,6)
ysatv = 1×4

   -1.5000    1.5000    3.0000   -6.0000

これでも、最後の入力エントリはまだ飽和状態です。オーバーフローをラップします。

ywrap = udecode(u,3,6,'wrap')
ywrap = 1×4

   -1.5000    1.5000    3.0000    4.5000

量子化レベルを上げます。

yprec = udecode(u,5)
yprec = 1×4

   -0.0625    0.0625    0.1250   -0.3125

アルゴリズム

このアルゴリズムでは、ITU-T Recommendation G.701 に設定されている一様復号化の定義が忠実に実現されています。整数入力値は、2n 個の一様分布している整数値の 1 つから、範囲 [-v,v] の量子化された浮動小数点数に、一意にマッピング (復号化) されます。許容される最小の整数入力値は -v に、最大の整数入力値は v にマッピングされます。オーバーフローしている値は、指定に従って処理されます。

複素数入力の実数部と虚数部は別々に復号化されます。

参考文献

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

参考