exponenta event banner

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 уровней квантования. Это кодирование соответствует определению для равномерного кодирования, указанному в рекомендации ITU-T G.701. Диапазон ввода [-v,v] делится на 2n равномерно разнесенных интервалов. Входные записи в диапазоне [-v,v] сначала квантуются в соответствии с этим подразделом входного диапазона, а затем отображаются в одно из 2n целых чисел. Диапазон выходных данных зависит от того, нужно ли указывать целые числа со знаком.

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

n

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

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

от 2 до 8

uint8

int8

от 9 до 16

uint16

int16

от 17 до 32

uint32

int32

Ссылки

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

См. также

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