文档

udecode

解码2n程度的量化整数输入浮点输出

语法

y = udecode (u, n)
y = udecode (u n v)
n y = udecode (u, v,“SaturateMode”)

描述

y = udecode (u, n)颠倒的操作uencode并重建量子化的浮点值的整数编码的多维数组u。输入参数n必须是一个整数之间2和32。整数n指定有2n量子化水平的输入,所以条目u必须:

  • 有符号整数范围[2n/ 2 (2n/ 2)- 1)

  • 无符号整数范围在[0,2n- 1)

输入可以是真实的或复杂的任何整数数据类型的值(uint8,uint16,uint32,int8,int16,int32)。溢出(条目u上图)指定的范围之外的饱和区间的端点区间。输出y一样的尺寸吗u。其条目值范围内[1]

y = udecode (u n v)解码u这样的输出y值的范围吗(- v, v)的默认值v是1。

n y = udecode (u, v,“SaturateMode”)解码u和对输入溢出(条目u外的(- v, v))根据“saturatemode”,可以设置为下列之一:

  • “饱和”-饱和溢出。这是默认的方法治疗溢出。

    • 在签署输入条目u的范围之外的值[2n/ 2 (2n/ 2)- 1)分配的值由最接近这个区间的端点。

    • 在无符号输入条目u的范围之外的值(0,2n1]被分配的值由最接近这个区间的端点。

  • “包装”——包装所有溢出根据以下:

    • 在签署输入条目u的范围之外的值[2n/ 2 (2n/ 2)- 1)包裹范围使用模2回n算术(计算使用u=国防部(u + 2 ^ n / 2、2 ^ n) - (2 ^ n / 2))。

    • 在无符号输入条目u的范围之外的值(0,2n- 1)包裹回解码使用模2之前所需的范围n算术(计算使用u=国防部(u, 2 ^ n))。

例子

全部折叠

创建一个向量的8位有符号整数。解码有三位。

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、“包装”)
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

算法

统一的解码的算法遵循定义中指定G.701 ITU-T建议。整数输入值唯一地映射(解码)的2n均匀间隔的整数值量化的浮点值的范围(- v, v)。允许的最小整数输入值映射到-v最大的整数映射到输入值允许的v。允许输入范围以外的值可以是饱和或包装,根据规范。

的真实和虚构的成分复杂的输入是独立解码。

引用

国际电信联盟[1]。数字传输系统的一般方面:词汇数字传输和多路复用和脉冲编码调制(PCM)条款。G.701 ITU-T建议。1993年3月。

另请参阅

之前介绍过的R2006a