Signal Processing Toolbox Previous page   Next Page
uencode

Quantize and encode floating-point inputs to integer outputs

Syntax

Description

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, 2n-1]. Elements of the input u outside of the range [-1,1] are treated as overflows and are saturated.

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:

y = uencode(u,n,v,'SignFlag') maps entries in a multidimensional array of floating-point numbers u whose entries have values in the range [-v,v] to an integer output y. Input entries outside this range are saturated. The integer type of the output depends on the string 'SignFlag' and the number of quantization levels 2n. The string 'SignFlag' can be one of the following:

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

uint8

int8

9 to 16

uint16

int16

17 to 32

uint32

int32

Examples

Map floating-point scalars in [-1, 1] to uint8 (unsigned) integers, and produce a staircase plot. Note that the horizontal axis plots from -1 to 1 and the vertical axis plots from 0 to 7 (2^3-1):

Now look at saturation effects when you under specify the peak value for the input:

Now look at the output for

Algorithm

uencode maps the floating-point input value to an integer value determined by the requirement for 2n levels of quantization. This encoding adheres to the definition for uniform encoding specified in ITU-T Recommendation G.701. The input range [-v,v] is divided into 2n evenly spaced intervals. Input entries in the range [-v,v] are first quantized according to this subdivision of the input range, and then mapped to one of 2n integers. The range of the output depends on whether or not you specify that you want signed integers.

See Also

udecode

References

General Aspects of Digital Transmission Systems: Vocabulary of Digital Transmission and Multiplexing, and Pulse Code Modulation (PCM) Terms, International Telecommunication Union, ITU-T Recommendation G.701, March, 1993.


Previous page  udecode unwrap Next page

© 1994-2005 The MathWorks, Inc.