Универсальный энкодер

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

Библиотека

Квантизаторы

dspquant2

Описание

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

  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® Data Type Conversion, чтобы преобразовать целочисленные типы данных в двойную точность. Займитесь Типами данных в Simulink (Simulink) для полного обсуждения типов данных, а также списка блоков Simulink, способных к операциям уменьшаемой точности.

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

2 к 8

uint8

int8

9 к 16

uint16

int16

17 к 32

uint32

int32

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

Смотрите также

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

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

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