Декодируйте квантованные целочисленные входные параметры 2n-уровня к выходным параметрам с плавающей точкой
y = udecode(u,n)
y = udecode(u,n,v)
y = udecode(u,n,v,'SaturateMode'
)
y = udecode(u,n)
инвертирует операцию uencode
и восстанавливает квантованные значения с плавающей точкой от закодированного многомерного массива целых чисел u
. Входной параметр n
должен быть целым числом между 2 и 32. Целочисленный n
указывает, что существует 2n уровни квантования для входных параметров, так, чтобы записи в u
были также:
Целые числа со знаком в области значений [-2n/2, (2n/2) – 1]
Беззнаковое целое в области значений [0, 2n – 1]
Входные параметры могут быть действительными или комплексные числа любого целочисленного типа данных (uint8
, uint16
, uint32
, int8
, int16
, int32
). Переполнение (записи в u
за пределами областей значений, заданных выше), насыщается к конечным точкам интервала области значений. Вывод y
имеет те же размерности как u
. Его записи имеют значения в области значений [-1,1]
.
y = udecode(u,n,v)
декодирует u
, таким образом, что вывод y
имеет значения в области значений [-v,v]
, где значение по умолчанию для v
равняется 1.
y = udecode(u,n,v,
декодирует 'SaturateMode'
)u
и обрабатывает входное переполнение (записи в u
за пределами [-v,v]
) согласно 'saturatemode'
, который может быть установлен в одно из следующего:
'saturate'
— Насыщайте переполнение. Это - метод по умолчанию для обработки переполнения.
Записи во входных параметрах со знаком u
, значения которого за пределами области значений [-2n/2, (2n/2) – 1], присвоены значение, определенное самой близкой конечной точкой этого интервала.
Записи во входных параметрах без знака u
, значения которого за пределами области значений [0, 2n-1], присвоены значение, определенное самой близкой конечной точкой этого интервала.
'wrap'
— Перенесите все переполнение согласно следующему:
Записи во входных параметрах со знаком u
, значения которого за пределами области значений [-2n/2, (2n/2) – 1], перенесены назад в ту область значений с помощью по модулю 2n арифметика (вычисленное использование u
= mod(u+2^n/2,2^n)-(2^n/2)
).
Записи во входных параметрах без знака u
, значения которого за пределами области значений [0, 2n – 1], перенесены назад в необходимую область значений прежде, чем декодировать использование по модулю 2n арифметика (вычисленное использование u
= mod(u,2^n)
).
Алгоритм придерживается определения для универсального декодирования, заданного в Рекомендации G.701 ITU-T. Целочисленные входные значения исключительно сопоставлены (декодируемые) от одного из 2n однородно распределенные целочисленные значения к квантованным значениям с плавающей точкой в области значений [-v,v]
. Самое маленькое целочисленное позволенное входное значение сопоставлено с -v
, и самое большое целочисленное позволенное входное значение сопоставлено с v
. Значения за пределами допустимого входного диапазона или насыщаются или переносятся, согласно спецификации.
Действительные и мнимые компоненты комплексных входных параметров декодируются независимо.
[1] Международный союз электросвязи. Общие аспекты систем цифровой передачи: словарь цифровой передачи и мультиплексирования и условий Импульсной модуляции кода (PCM). Рекомендация G.701 ITU-T. Март 1993.