Quantize and encode floating-point inputs to integer outputs.
uencode(u, n, v =1, signed =FALSE)
Arguments
u: Input, a multidimensional array of numbers, real or complex, single or double precision.
n: Number of levels used in 2n-level quantization. n
must be between 2 and 32
v: Limit on the range of u to the range from -v to v before saturating them. Default 1.
signed: Logical indicating signed or unsigned output. See Details. Default: FALSE.
Returns
Multidimensional array of the same size as u containing signed or unsigned integers.
Details
y <- uencode(u, n) quantizes the entries in a multidimensional array of floating-point numbers u and encodes them as integers using 2n-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 to 2n−1. Elements of the input u outside of the range -1 to 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 2n−1.
y <- uencode(u, n, v) allows the input u to have entries with floating-point values in the range -v to v before saturating them (the default value for v is 1). Elements of the input u
outside of the range -v to 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 2n−1.
y <- uencode(u, n, v, signed) maps entries in a multidimensional array
of floating-point numbers u whose entries have values in the range
-v to v to an integer output y. Input entries outside
this range are saturated. The integer type of the output depends on the
number of quantization levels 2n and the value of signed,
which can be one of the following:
TRUE: Outputs are signed integers with magnitudes in the range −2n/2 to (2n/2)−1.
FALSE (default): Outputs are unsigned integers with magnitudes in the range 0 to 2n−1.