uencode

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

Описание

пример

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

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

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

Примеры

свернуть все

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

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

Figure contains an axes. The axes contains an object of type line.

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

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

Входные параметры

свернуть все

Вход с плавающей точкой, заданный как матрица или вектор. Вход может быть действительным или комплексным. Элементы входного u вне области значений [-1,1] обрабатываются как переливы и насыщаются как:

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

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

Типы данных: single | double

Мера количества уровней квантования, заданная как положительный целочисленный скаляр. n должно быть целым числом от 2 до 32 (включительно).

Пиковое значение, заданное как положительный действительный скаляр. Элементы u вне области значений [-v,v] обрабатываются как переливы и насыщаются:

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

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

Знак выхода, указанный как 'signed' или 'unsigned'. Целый тип выхода зависит от количества уровней квантования 2n и значение 'SignFlag', который может быть одним из следующих:

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

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

Выходные аргументы

свернуть все

Закодированные целочисленные выходы, возвращенные в виде вектора или матрицы.

Алгоритмы

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

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

n

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

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

От 2 до 8

uint8

int8

С 9 по 16

uint16

int16

17 - 32

uint32

int32

Ссылки

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

См. также

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