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

Uniform Encoder

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

Тип: UniformEncoder

Путь в библиотеке:

/Signal Operations/Quantizers/Uniform Encoder

Описание

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

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

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

Порты

Вход

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

Details

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

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

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

Типы данных

Float32, Float64

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

Да

Выход

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

Details

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

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

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

Типы данных

Int8, Int16, Int32, UInt8, UInt16, UInt32

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

Да

Параметры

Основные

# Peak — наибольшая амплитуда в кодированном входном сигнале
Real number

Details

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

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

Значение по умолчанию

1

Имя для программного использования

peak

Настраиваемый

Нет

Вычисляемый

Да

# Bits — количество бит
Real number

Details

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

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

Значение по умолчанию

8

Имя для программного использования

bits

Настраиваемый

Нет

Вычисляемый

Да

# Output type — тип выходных данных
Unsigned integer | Signed integer

Details

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

  • Unsigned integer — блок преобразует наименьшее квантованное значение с плавающей точкой в целое число и наибольшее квантованное значение с плавающей точкой в целое число . Он линейно (равномерно) преобразует промежуточные квантованные значения с плавающей точкой на промежуточные целые числа в диапазоне . Для повышения эффективности блок автоматически выбирает беззнаковый тип выходных данных (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

Значения

Unsigned integer | Signed integer

Значение по умолчанию

Unsigned integer

Имя для программного использования

output_type

Настраиваемый

Нет

Вычисляемый

Нет

Алгоритмы

Details

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

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

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

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

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

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

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