## Documentation Center |

Quantize and encode floating-point inputs to integer outputs

`y = uencode(u,n)y = uencode(u,n,v)y = uencode(u,n,v,`

`y = uencode(u,n)` quantizes the entries in
a multidimensional array of floating-point numbers `u` and
encodes them as integers using 2^{n}-level
quantization. `n` must
be an integer between 2 and 32 (inclusive). Inputs can be real or
complex, double- or single-precision. The output y and the input `u` are
arrays of the same size. The elements of the output y are unsigned
integers with magnitudes in the range [0, 2^{n}-1].
Elements of the input `u` outside of the range `[-1,1]` are
treated as overflows and are saturated.

For entries in the input

`u`that are less than -1, the value of the output of`uencode`is 0.For entries in the input

`u`that are greater than 1, the value of the output of`uencode`is 2^{n}-1.

`y = uencode(u,n,v)` allows
the input `u` to have entries with floating-point
values in the range `[-v,v]` before saturating them
(the default value for `v` is 1).
Elements of the input `u` outside of the range `[-v,v]` are
treated as overflows and are saturated:

For input entries less than -

`v`, the value of the output of`uencode`is 0.For input entries greater than

`v`, the value of the output of`uencode`is 2^{n}-1.

`y = uencode(u,n,v,'SignFlag')` maps
entries in a multidimensional array of floating-point numbers

`'signed'`: Outputs are signed integers with magnitudes in the range [-2^{n}/2, (2^{n}/2) - 1].`'unsigned'`(default): Outputs are unsigned integers with magnitudes in the range [0, 2^{n}-1].

The output data types are optimized for the number of bits as shown in the table below.

n | Unsigned Integer | Signed Integer |
---|---|---|

2 to 8 | ||

9 to 16 | ||

17 to 32 |

[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.

Was this topic helpful?