uencode

Квантуйте и закодируйте входные параметры с плавающей точкой к целочисленным выходным параметрам

Синтаксис

y = uencode(u,n)
y = uencode(u,n,v)
y = uencode(u,n,v,'SignFlag')

Описание

y = uencode(u,n) квантует записи в многомерном массиве чисел с плавающей запятой u и кодирует их как целые числа с помощью квантования 2n-уровня. n должен быть целым числом между 2 и 32 (включительно). Входные параметры могут быть действительными или комплексными, дважды или с одинарной точностью. Вывод y и вход u являются массивами, одного размера. Элементы вывода y являются беззнаковым целым со значениями в области значений [0, 2n-1]. Элементы входа u за пределами области значений [-1,1] обработан как переполнение и насыщается.

  • Для записей во входе u, которые являются меньше чем-1, значение вывода uencode 0.

  • Для записей во входе u, которые больше, чем 1, значение вывода uencode является 2n-1.

y = uencode(u,n,v) позволяет входу u иметь записи со значениями с плавающей точкой в области значений [-v,v] прежде, чем насыщать их (значение по умолчанию для v равняется 1). Элементы входа u за пределами области значений [-v,v] обработан как переполнение и насыщается:

  • Для входных записей меньше, чем-v значение вывода uencode 0.

  • Для входных записей, больше, чем v, значение вывода uencode 2n – 1.

y = uencode(u,n,v,'SignFlag') записи карт в многомерном массиве чисел с плавающей запятой u, записи которого имеют значения в области значений [-v,v] к целочисленному выводу y. Входные записи вне этой области значений насыщаются. Целочисленный тип вывода зависит от количества уровней квантования 2n и значение 'SignFlag', который может быть одним из следующего:

  • 'signed': Выходные параметры являются целыми числами со знаком со значениями в области значений [-2n/2(2n/2) – 1].

  • 'unsigned' (значение по умолчанию): Выходные параметры являются беззнаковым целым со значениями в области значений [0, 2n – 1].

Типы выходных данных оптимизированы для количества битов как показано в приведенной ниже таблице.

n

Целое число без знака

Целое число со знаком

2 - 8

uint8

int8

9 - 16

uint16

int16

17 - 32

uint32

int32

Примеры

свернуть все

Сопоставьте скаляры с плавающей точкой в [-1, 1] к uint8 целые числа (без знака). Произведите график лестницы. Горизонтальная ось колеблется от-1 до 1 и вертикальная ось от 0 до 7 (т.е. 23-1).

u = -1:0.01:1;
y = uencode(u,3);
plot(u,y,'.')

Посмотрите на эффекты насыщения когда вы underspecify пиковое значение для входа.

u = -2:0.5:2;
y = uencode(u,5,1)
y = 1x9 uint8 row vector

    0    0    0    8   16   24   31   31   31

Укажите, что вы хотите подписанный вывод.

u = -2:0.5:2;
y = uencode(u,5,2,'signed')
y = 1x9 int8 row vector

   -16   -12    -8    -4     0     4     8    12    15

Алгоритмы

uencode сопоставляет входное значение с плавающей точкой с целочисленным значением, определенным требованием для 2n уровни квантования. Это кодирование придерживается определения для линейного кодирования, заданного в Рекомендации G.701 ITU-T. Входной диапазон [-v,v] разделен на 2n равномерно распределенные интервалы. Введите записи в области значений, [-v,v] сначала квантован согласно этому подразделению входного диапазона, и затем сопоставлен с одним из 2n целые числа. Область значений вывода зависит от того, указываете ли вы, что хотите целые числа со знаком.

Ссылки

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

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

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