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]

Входные параметры могут быть действительными или комплексные числа любого целочисленного типа данных (uint8uint16uint32int8int16int32). Переполнение (записи в 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