Декодируйте квантованные целочисленные входные параметры 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.