udecode

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

Примеры

свернуть все

Создайте вектор 8-битных целых чисел со знаком. Декодируйте с тремя битами.

u = int8([-1 1 2 -5]);
ysat = udecode(u,3)
ysat = 1×4

   -0.2500    0.2500    0.5000   -1.0000

Заметьте, что последняя запись в u насыщает к 1, пиковое входное значение по умолчанию. Измените пиковое входное значение на 6.

ysatv = udecode(u,3,6)
ysatv = 1×4

   -1.5000    1.5000    3.0000   -6.0000

Последняя входная запись все еще насыщает. Перенесите переполнение.

ywrap = udecode(u,3,6,'wrap')
ywrap = 1×4

   -1.5000    1.5000    3.0000    4.5000

Добавьте больше уровней квантования.

yprec = udecode(u,5)
yprec = 1×4

   -0.0625    0.0625    0.1250   -0.3125

Алгоритмы

Алгоритм придерживается определения для универсального декодирования, заданного в Рекомендации G.701 ITU-T. Целочисленные входные значения исключительно сопоставлены (декодируемые) от одного из 2n однородно распределенные целочисленные значения к квантованным значениям с плавающей точкой в области значений [-v,v]. Самое маленькое целочисленное позволенное входное значение сопоставлено с -v, и самое большое целочисленное позволенное входное значение сопоставлено с v. Значения за пределами допустимого входного диапазона или насыщаются или переносятся, согласно спецификации.

Действительные и мнимые компоненты комплексных входных параметров декодируются независимо.

Ссылки

[1] Международный союз электросвязи. Общие аспекты систем цифровой передачи: словарь цифровой передачи и мультиплексирования и условий Импульсной модуляции кода (PCM). Рекомендация G.701 ITU-T. Март 1993.

Смотрите также

Представлено до R2006a