Документация Engee

Uniform Encoder

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

uniform encoder

Описание

Блок Uniform Encoder выполняет операцию квантования и преобразования входных данных с плавающей точкой в целочисленные выходные данные.

Блок придерживается единообразного кодирования, соответствующего определению единообразного кодирования в «ITU-T Recommendation G.701».

Более подробная информация о том, как блок вычисляет кодированный выходной целочисленный сигнал, приведена в разделе Алгоритмы.

Порты

Вход

Input — входной сигнал
вектор | матрица

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

Входные сигналы, превышающие или меньшие, чем , насыщаются при соответствующих значениях.

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

Типы данных: Float32 | Float64

Поддержка комплексных чисел: Да

Выход

Output — декодированный выходной сигнал
вектор | матрица

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

Блок квантует каждую выборку во входных данных с плавающей точкой и преобразует квантованное значение с плавающей точкой в целое число.

Дополнительные сведения о том, как блок вычисляет выходные данные, см. в разделе Алгоритмы.

Типы данных: Int8, Int16, Int32, UInt8, UInt16, UInt32

Поддержка комплексных чисел: Да

Параметры

Main

Peak — наибольшая амплитуда входного сигнала
1 (по умолчанию) | неотрицательный скаляр

Укажите наибольшую амплитуду входного сигнала как неотрицательный скаляр.

Действительные или мнимые входные значения, превышающие или меньшие , насыщаются (независимо для комплексных входов) в этих пределах.

Bits — количество бит
8 (по умолчанию) | целое число в диапазоне [2, 32]

Укажите количество битов , необходимое блоку для представления целочисленных выходных данных. Количество битов может быть любым целым числом от 2 до 32 включительно.

Количество уровней, на которых блок квантует входные данные с плавающей запятой, равно .

Output type — тип выходных данных
Unsigned integer (по умолчанию) | Signed integer

Укажите тип данных для вывода блока:

  • Unsigned integer – блок отображает наименьшее квантованное значение с плавающей точкой на целое число 0 и наибольшее квантованное значение с плавающей точкой на целое число . Он линейно (равномерно) отображает промежуточные квантованные значения с плавающей точкой на промежуточные целые числа в диапазоне ]. Для повышения эффективности блок автоматически выбирает беззнаковый тип выходных данных (UInt8, UInt16 или UInt32) с минимальным количеством битов, равным или большим, чем .

  • Signed integer – блок отображает наименьшее квантованное значение с плавающей точкой в целое число , а наибольшее квантованное значение с плавающей точкой – в целое число . Он линейно отображает промежуточные квантованные значения с плавающей точкой на промежуточные целые числа в диапазоне ]. Блок автоматически выбирает знаковый тип выходных данных (Int8, Int16 или Int32) с минимальным количеством битов, равным или большим, чем .

В этой таблице приведены типы выходных данных, которые использует блок.

Bits

Unsigned Integer

Signed Integer

От 2 до 8

UInt8

Int8

От 9 до 16

UInt16

Int16

От 17 до 32

UInt32

Int32

Дополнительно

Алгоритмы

Блок Uniform Encoder выполняет эти две операции с каждой выборкой с плавающей точкой во входных данных.

  1. Квантует значение с одинаковой точностью.

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

На первом этапе блок квантует входное значение до одного из равномерно распределенных уровней в диапазоне ], где вы указываете в параметре Bits, а в параметре Peak. Процесс квантования округляет как положительные, так и отрицательные входные данные в меньшую сторону до ближайшего уровня квантования, за исключением тех, которые находятся точно на границе квантования. Он независимо квантует действительную и мнимую составляющие комплексных входных данных.

На втором этапе блок уникальным образом преобразует (кодирует) квантованное значение с плавающей точкой в одно из целых значений.

Когда вы устанавливаете для Output type значение Unsigned integer, блок преобразуют наименьшее квантованное значение с плавающей точкой в целое число 0, а наибольшее квантованное значение с плавающей точкой в целое число . Он линейно (равномерно) преобразует промежуточные квантованные значения с плавающей точкой в промежуточные целые числа в диапазоне ]. Для повышения эффективности блок автоматически выбирает тип выходных данных без знака (UInt8, UInt16 или UInt32) с минимальным количеством битов, равным или превышающим .

Когда для параметра Output type задано значение Signed integer, наименьшее квантованное значение с плавающей запятой преобразуется в целое число , а наибольшее квантованное значение с плавающей запятой преобразуется в целое число . Промежуточные квантованные значения с плавающей запятой линейно преобразуются в промежуточные целые числа в диапазоне ]. Блок автоматически выбирает тип выходных данных со знаком (Int8, Int16 или Int32) с минимальным количеством битов, равным или превышающим .

Ссылки