Квантуйте и кодируйте вход с плавающей точкой в целое число выхода
Quantizers
dspquant2
Блок Uniform Энкодера выполняет следующие две операции над каждой выборкой с плавающей точкой в векторе или матрице входа:
Квантует значение с той же точностью
Кодирует квантованное значение с плавающей точкой в целое число
На первом этапе блок квантует вход значение до одного из 2B равномерно расположенные уровни в области значений [- V, (1-21-B) V], где вы задаете B в параметре Bits и задаете V в параметре Peak. Процесс квантования округляет как положительные, так и отрицательные входы вниз до ближайшего уровня квантования, за исключением тех, которые попадают точно на контур квантования. Действительные и мнимые компоненты комплексных входов квантуются независимо.
Количество бит, B, может быть любым целым значением от 2 до 32 включительно. Входы, большие (1-21-B) V или менее - V насыщаются этими соответствующими значениями. Действительные и мнимые компоненты комплексных входов насыщаются независимо.
На втором этапе квантованное значение с плавающей точкой однозначно преобразуется (кодируется) в одно из 2B целочисленные значения. Когда для Output type задано значение Unsigned integer
, наименьшее квантованное значение с плавающей точкой, - V, сопоставлено с целым числом 0 и самым большим квантованным значением с плавающей точкой (1-21-B) V, сопоставляется с целым числом 2B-1. Промежуточные квантованные значения с плавающей точкой линейно (равномерно) сопоставлены с промежуточными целыми числами в области значений [0, 2B-1]. Для эффективности блок автоматически выбирает беззнаковый тип выходных данных (uint8
, uint16
, или uint32
) с минимальным количеством бит, равным или больше B.
Когда для Output type задано значение Signed integer
, наименьшее квантованное значение с плавающей точкой, - V, сопоставлено с целым числом -2B-1и самое большое квантованное значение с плавающей точкой (1-21-B) V, сопоставляется с целым числом 2B-1-1. Промежуточные квантованные значения с плавающей точкой линейно сопоставлены с промежуточными целыми числами в области значений [-2B-1, 2B-1-1]. Блок автоматически выбирает тип выходных данных со знаком (int8
, int16
, или int32
) с минимальным количеством бит, равным или больше B.
Входы могут быть реальными или сложными, двойной или одинарной точностью. Типы выходных данных, используемые блоком, показаны в таблице ниже. Обратите внимание, что большинство блоков DSP System Toolbox™ принимают только входы двойной точности. Используйте Simulink® Блок преобразования типа данных для преобразования целочисленных типов данных в двойную точность. Смотрите о типах данных в Simulink (Simulink) для полного обсуждения типов данных, а также список блоков Simulink, способных к операциям с пониженной точностью.
Биты | Целое число без знака | Целое число со знаком |
---|---|---|
|
|
|
|
|
|
|
|
|
Операции блока Uniform Encoder соответствуют определению для равномерного кодирования, указанному в Рекомендации G.701 ITU-T.
Смотрите пример модели ex_uniform_encoder.
В этом примере заданы следующие параметры:
Peak = 2
Bits = 3
Output type = Unsigned
Следующий рисунок иллюстрирует равномерное кодирование.
Действительные и сложные компоненты каждого входа (горизонтальная ось) независимо квантуются до одного из 23 отдельные уровни в области значений [-2,1.5]
. Эти компоненты затем преобразуются в один из 23 целочисленные значения в области значений [0,7]
.
-2.0 is mapped to 0 -1.5 is mapped to 1 -1.0 is mapped to 2 -0.5 is mapped to 3 0.0 is mapped to 4 0.5 is mapped to 5 1.0 is mapped to 6 1.5 is mapped to 7
В этой таблице показаны результаты для нескольких конкретных входов.
Вход | Квантованный вход | Выход | Примечания |
---|---|---|---|
|
|
| |
|
|
| |
|
|
| Насыщение (действительная) |
|
|
| |
|
|
| Насыщение (мнимая) |
|
|
| Насыщение (реальная и мнимая) |
Тип выходных данных автоматически устанавливается на uint8
, наиболее эффективный формат для этой входной области значений.
Самая большая входная амплитуда, которая будет закодирована, V. Действительные или мнимые входные значения, большие (1-21-B) V или менее - V насыщаются (независимо для сложных входов) в этих пределах.
Укажите количество бит, B, необходимых для представления целого выхода. Количество уровней, на которых блок квантует вход с плавающей точкой, составляет 2B.
Тип данных выхода блока, Unsigned integer
или Signed integer
. Беззнаковые выходы uint8
, uint16
, или uint32
, в то время как выходные выходы со знаком int8
, int16
, или int32
.
Общие аспекты цифровых систем передачи: словарь терминов цифровой передачи и мультиплексирования и модуляции импульсного кода (PCM), Международное объединение электросвязи, Рекомендация G.701 ITU-T, март 1993 г.
Порт | Поддерживаемые типы данных |
---|---|
Вход |
|
Выход |
|
Data Type Conversion (Simulink) | Simulink |
Quantizer (Simulink) | Simulink |
DSP System Toolbox | |
Равномерный декодер | DSP System Toolbox |
udecode | Signal Processing Toolbox |
uencode | Signal Processing Toolbox |