Uniform Encoder

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

Библиотека

Quantizers

dspquant2

  • Uniform Encoder block

Описание

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

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

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

На первом этапе блок квантует вход значение до одного из 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, способных к операциям с пониженной точностью.

БитыЦелое число без знакаЦелое число со знаком

2 на 8

uint8

int8

9 на 16

uint16

int16

17 на 32

uint32

int32

Операции блока 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

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

ВходКвантованный входВыходПримечания

1.6

1.5+0.0i

7+4i

 

-0.4

-0.5+0.0i

3+4i

 

-3.2

-2.0+0.0i

4i

Насыщение (действительная)

0.4-1.2i

0.0-1.5i

4+i

 

0.4-6.0i

0.0-2.0i

4

Насыщение (мнимая)

-4.2+3.5i

-2.0+2.0i

7i

Насыщение (реальная и мнимая)

Тип выходных данных автоматически устанавливается на uint8, наиболее эффективный формат для этой входной области значений.

Параметры

Peak

Самая большая входная амплитуда, которая будет закодирована, V. Действительные или мнимые входные значения, большие (1-21-B) V или менее - V насыщаются (независимо для сложных входов) в этих пределах.

Bits

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

Output type

Тип данных выхода блока, Unsigned integer или Signed integer. Беззнаковые выходы uint8, uint16, или uint32, в то время как выходные выходы со знаком int8, int16, или int32.

Ссылки

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

Поддерживаемые типы данных

ПортПоддерживаемые типы данных

Вход

  • Плавающая точка двойной точности

  • Плавающая точка с одной точностью

Выход

  • 8-, 16- и 32-битные целые числа

См. также

Data Type Conversion (Simulink)Simulink
Quantizer (Simulink)Simulink

Скалярный декодер квантователя

DSP System Toolbox
Равномерный декодерDSP System Toolbox
udecodeSignal Processing Toolbox
uencodeSignal Processing Toolbox

Расширенные возможности

Генерация кода C/C + +
Сгенерируйте код C и C++ с помощью Coder™ Simulink ®

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