Unlimited learning, half price | 50% off

Last chance! 50% off unlimited learning

Sale ends in


gsignal (version 0.3-7)

uencode: Uniform encoder

Description

Quantize and encode floating-point inputs to integer outputs.

Usage

uencode(u, n, v = 1, signed = FALSE)

Value

Multidimensional array of the same size as u containing signed or unsigned integers.

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.

Author

Georgios Ouzounis, ouzounis_georgios@hotmail.com.
Conversion to R by Geert van Boxtel, G.J.M.vanBoxtel@gmail.com.

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 2n1. 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 2n1.

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 2n1.

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 2n1.

Examples

Run this code

u <- seq(-1, 1, 0.01)
y <- uencode(u, 3)
plot(u, y)

Run the code above in your browser using DataLab