udecode | R Documentation |
Decode 2^n
-level quantized integer inputs to floating-point outputs.
udecode(u, n, v = 1, saturate = TRUE)
u |
Input, a multidimensional array of integer numbers (can be complex). |
n |
Number of levels used in |
v |
Limit on the range of |
saturate |
Logical indicating to saturate (TRUE, default) or to wrap (FALSE) overflows. See Details. |
y <- udecode(u, n)
inverts the operation of uencode
and
reconstructs quantized floating-point values from an encoded multidimensional
array of integers u
. The input argument n
must be an integer
between 2 and 32. The integer n
specifies that there are 2^{n}
quantization levels for the inputs, so that entries in u
must be
either:
Signed integers in the range -2^{n}/2
to (2^{n}/2) - 1
Unsigned integers in the range 0 to 2^{n} - 1
Inputs can be real or complex values of any integer data type. Overflows
(entries in u outside of the ranges specified above) are saturated to the
endpoints of the range interval. The output has the same dimensions as the
input u
. Its entries have values in the range -1 to 1.
y <- udecode(u, n, v)
decodes u
such that the output has values
in the range -v
to v
, where the default value for v
is
1.
y <- udecode(u, n, v, saturate)
decodes u
and treats input
overflows (entries in u
outside of the range -v
to v
according to saturate
, which can be set to one of the following:
TRUE (default). Saturate overflows.
Entries in signed inputs u
whose values are outside of the
range -2^{n}/2
to (2^{n}/2) – 1
are assigned the value
determined by the closest endpoint of this interval.
Entries in unsigned inputs u
whose values are outside of
the range 0 to 2^{n}-1
are assigned the value determined by the
closest endpoint of this interval.
FALSE Wrap all overflows according to the following:
Entries in signed inputs u
whose values are outside of the
range -2^{n}/2
to (2^{n}/2) – 1
are wrapped back into that
range using modulo 2^{n}
arithmetic (calculated using u =
mod(u+2^{n}/2, 2^{n})-(2^{n}/2))
.
Entries in unsigned inputs u
whose values are outside of
the range 0 to 2^{n}-1
are wrapped back into the required range
before decoding using modulo 2^{n}
arithmetic (calculated using
u = mod(u,2^{n}))
.
Multidimensional array of the same size as u
containing
floating point numbers.
The real and imaginary components of complex inputs are decoded independently.
Georgios Ouzounis, ouzounis_georgios@hotmail.com.
Conversion to R by Geert van Boxtel, G.J.M.vanBoxtel@gmail.com.
u <- c(-1, 1, 2, -5)
ysat <- udecode(u, 3)
# Notice the last entry in u saturates to 1, the default peak input
# magnitude. Change the peak input magnitude to 6.
ysatv <- udecode(u, 3, 6)
# The last input entry still saturates. Wrap the overflows.
ywrap = udecode(u, 3, 6, FALSE)
# Add more quantization levels.
yprec <- udecode(u, 5)
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.