Закодируйте каждое входное значение путем соединения его со значением индекса области квантования
Квантизаторы
dspquant2
Скалярные блок-диаграммы Энкодера Квантизатора каждое входное значение в область квантования путем сравнения входного значения с граничными точками квантизатора заданы в параметре Boundary points. Блок выводит основанный на нуле индекс связанной области.
Можно выбрать, как вы хотите ввести Boundary points с помощью Source of quantizer parameters. Когда вы выбираете Specify via dialog
, введите граничные точки в диалоговое окно параметров блоков. Когда вы выбираете Input port
, порт B появляется на блоке. Блок использует вход для порта B как параметр Boundary points.
Используйте параметр Boundary points, чтобы задать граничные точки для вашего квантизатора. Эти значения используются, чтобы разбить набор входных чисел в области. Каждая область задана индексом.
Позвольте N
будьте количеством областей квантования. Когда книга шифров задана как [c1 c2 c3 ... cN]
, и параметр Boundary points задан как [p0 p1 p2 p3 ... pN]
, затем p0<c1<p1<c2 ... p(N-1)<cN<pN
для обычного квантизатора. Когда ваш квантизатор будет ограничен из списка Partitioning, выберите Bounded
. Необходимо задать граничные точки N+1 или [p0 p1 p2 p3 ... pN]
. Когда ваш квантизатор будет неограничен из списка Partitioning, выберите Unbounded
. Необходимо задать N-1 граничные точки, or[p1 p2 p3 ... p(N-1)]
; блок устанавливает p0
равняйтесь-inf
и pN
равняйтесь inf
.
Блок использует параметр Partitioning, чтобы интерпретировать граничные точки, которые вы вводите. Например, чтобы создать ограниченный квантизатор, из списка Partitioning, выбирают Bounded
и введите следующие граничные точки:
[0 0.5 3.7 5.8 6.0 11]
Блок присваивает любые входные значения между 0 и 0.5 в индекс 0, входные значения между 0,5 и 3.7 в индекс 1, и так далее. Блок присваивает любые значения, которые меньше 0 в индекс 0, самое низкое значение индекса. Блок присваивает любые значения, которые больше 11 в индекс 4, самое высокое значение индекса.
Чтобы создать неограниченный квантизатор, из списка Partitioning, выбирают Unbounded
и введите следующие граничные точки:
[0 0.5 3.7 5.8 6.0 11]
Блок присваивает любые входные значения между 0 и 0.5 в индекс 1, входные значения между 0,5 и 3.7 в индекс 2, и так далее. Блок присваивает любые входные значения меньше чем 0 индексу 0 и любым значениям, больше, чем 11 в индекс 6.
Параметр Searching method определяет, как соответствующий индекс квантизатора найден. Когда вы выбираете Linear
, блок Scalar Quantizer Encoder сравнивает входное значение с первой областью, заданной первыми двумя граничными точками. Когда входное значение не находится в пределах этой области, блок затем сравнивает входное значение со следующей областью. Этот процесс продолжается, пока входное значение не полно решимости быть в области и сопоставлено с соответствующим значением индекса. Вычислительная стоимость этого процесса имеет порядок P, где P является количеством граничных точек.
Когда вы выбираете Binary
для Searching method блок сравнивает входное значение со средним значением вектора граничных точек. Когда входное значение больше, чем эта граничная точка, блок отбрасывает граничные точки, которые ниже, чем это среднее значение. Блок затем сравнивает входное значение со средней граничной точкой новой области значений, заданной остающимися граничными точками. Этот процесс продолжается, пока входное значение не сопоставлено с соответствующим значением индекса. Вычислительная стоимость этого процесса имеет порядок log2P, где P является количеством граничных точек. В большинстве случаев, Binary
опция быстрее, чем Linear
опция.
Когда входное значение совпадает с граничной точкой, параметр Tie-breaking rule определяет область, которой присвоено значение. Когда это необходимо, входное значение, которое будет присвоено ниже индексируемой области, выберите Choose the lower index
. Чтобы присвоить входное значение с более высокой индексируемой областью, выберите Choose the higher index
.
Установите флажок Output codeword, чтобы вывести значения кодовой комбинации, которые соответствуют каждому значению индекса в порте Q (U).
Установите флажок Output the quantization error, чтобы вывести ошибку квантования для каждого входного значения от порта Err на этом блоке. Ошибка квантования является различием между входным значением и квантованным выходным значением.
Когда вы устанавливаете флажок Output codeword или флажок Output quantization error, необходимо также ввести значения книги шифров. Если из списка Source of quantizer parameters вы выбираете Specify via dialog
, используйте параметр Codebook, чтобы ввести вектор квантованных выходных значений, которые соответствуют каждой области. Если из списка Source of quantizer parameters вы выбираете Input port
, используйте входной порт C, чтобы задать ваши значения книги шифров.
Если для параметра Partitioning вы выбираете Bounded
, флажок Output clipping status и параметр Action for out of range input появляются. Когда вы устанавливаете флажок Output clipping status, порт S появляется на блоке. Любое время, которое входное значение вне области значений, заданной параметром Boundary points, блок, выводит 1 в порте S. Когда значение в области значений, блоки выводит 0.
Можно использовать параметр Action for out of range input, чтобы определить поведение блока, когда входное значение вне области значений, заданной параметром Boundary points. Предположим, что граничные точки для ограниченного квантизатора заданы как [p0 p1 p2 p3 ... pN]
и возможные значения индекса заданы как [i0 i1 i2 ... i(N-1)]
, где i0=0
и i0<i1<i2<...<i(N-1)
. Когда это необходимо, любое входное значение меньше, чем p0
быть присвоенным индексировать значение i0
и любые входные значения, больше, чем pN
быть присвоенным индексировать значение i(N-1)
, выберите Clip
. Когда это необходимо, чтобы быть предупрежденными, когда усечение произойдет, выберите Clip and warn
. Когда это необходимо, симуляция, чтобы остановиться и блок, чтобы отобразить ошибку, когда значения индекса будут вне области значений, выберите Error
.
Блок Scalar Quantizer Encoder принимает действительные входные параметры и фиксированной точки с плавающей точкой. Для получения дополнительной информации о типах данных, принятых каждым портом, смотрите Поддержку типов данных или Поддерживаемые Типы данных.
Значения входных данных, граничные точки и значения книги шифров могут быть введены с блоком в портах U, B, и C, соответственно. Типом данных входных параметров может быть double
единственный
, или Фиксированная точка.
Выходные параметры блока могут быть значениями индекса, квантованными выходными значениями, ошибкой квантования и состоянием усечения. Используйте параметр Index output data type, чтобы задать тип данных индекса выход от блока в порте I. Можно выбрать int8
uint8
int16
uint16
int32
, или uint32
. Типом данных квантованного выхода и ошибки квантования может быть double
единственный
, или Фиксированная точка. Значения состояния усечения выход в порте S являются булевыми значениями.
Входные данные, граничные точки, значения книги шифров, квантовали выходные значения, и ошибка квантования должна иметь совпадающий тип данных каждый раз, когда они присутствуют.
Выберите Specify via dialog
ввести граничные точки и значения книги шифров с помощью диалогового окна параметров блоков. Выберите Input port
задавать параметры с помощью входных портов блока. Введите граничные точки и значения книги шифров с помощью портов B и C, соответственно.
Когда ваш квантизатор будет ограничен, выберите Bounded
. Когда ваш квантизатор будет неограничен, выберите Unbounded
.
Введите вектор значений, которые представляют граничные точки областей квантизатора. Этот параметр отображается, когда вы выбираете Specify via dialog
из списка Source of quantizer parameters . Настраиваемый (Simulink).
Когда вы выбираете Linear
, блок находит область, в которой входное значение расположено с помощью линейного поиска. Когда вы выбираете Binary
, блок находит область, в которой входное значение расположено с помощью двоичного поиска.
Установите этот параметр, чтобы определить поведение блока, когда входное значение совпадет с граничной точкой. Когда вы выбираете Choose the lower index
, входное значение присвоено понизить индексированную область. Когда вы выбираете Choose the higher index
, значение присвоено более высокой индексируемой области.
Установите этот флажок, чтобы вывести значения кодовой комбинации, которые соответствуют каждому значению индекса в порте Q (U).
Установите этот флажок, чтобы вывести ошибку квантования для каждого входного значения в порте Err.
Введите вектор квантованных выходных значений, которые соответствуют каждому значению индекса. Если для параметра Partitioning вы выбираете Bounded
и ваш вектор граничных точек имеет длину N, затем необходимо задать книгу шифров длины N-1. Если для параметра Partitioning вы выбираете Unbounded
и ваш вектор граничных точек имеет длину N, затем необходимо задать книгу шифров длины N+1.
Этот параметр отображается, когда вы выбираете Specify via dialog
из списка Source of quantizer parameters и вы устанавливаете флажок Output codeword или Output quantization error . Настраиваемый (Simulink).
Когда вы устанавливаете этот флажок, порт S появляется на блоке. Любое время, которое входное значение вне области значений, заданной параметром Boundary points, блок, выводит 1 в этом порте. Когда значение в области значений, блок выводит 0. Этот параметр отображается, когда вы выбираете Bounded
из списка Partitioning.
Используйте этот параметр, чтобы определить поведение блока, когда входное значение будет вне области значений, заданной параметром Boundary points. Предположим, что граничные точки заданы как [p0 p1 p2 p3 ... pN]
и значения индекса заданы как [i0 i1 i2 ... i(N-1)]
. Когда это необходимо, любое входное значение меньше, чем p0
быть присвоенным индексировать значение i0
и любые входные значения, больше, чем pN
быть присвоенным индексировать значение i(N-1)
, выберите Clip
. Когда это необходимо, чтобы быть предупрежденными, когда усечение произойдет, выберите Clip and warn
. Когда это необходимо, симуляция, чтобы остановиться и блок, чтобы отобразить ошибку, когда значения индекса будут вне области значений, выберите Error
. Этот параметр отображается, когда вы выбираете Bounded
из списка Partitioning.
Задайте тип данных индекса выход от блока в порте I. Можно выбрать int8
uint8
int16
uint16
int32
uint32
, или Inherit via back propagation
.
Задайте округляющийся режим для операций фиксированной точки как одно из следующего:
Floor
Ceiling
Convergent
Nearest
Round
Simplest
Zero
Для получения дополнительной информации смотрите округление режима.
Когда вы выбираете этот параметр, блок насыщает результат своей операции фиксированной точки. Когда вы очищаете этот параметр, блок переносит результат своей операции фиксированной точки. Для получения дополнительной информации на saturate
и wrap
, смотрите режим переполнения для операций фиксированной точки.
Gersho, А. и Р. Грэй. Векторное квантование и сжатие сигнала. Бостон: Kluwer академические издатели, 1992.
Порт | Поддерживаемые типы данных |
---|---|
U |
|
B |
|
C |
|
I |
|
Q (U) |
|
Допустить ошибку |
|
S |
|
Для получения дополнительной информации о том, какие типы данных поддерживаются для каждого режима квантизатора, смотрите Поддержку типов данных.
Quantizer | Simulink |
Скалярный декодер квантизатора | DSP System Toolbox |
Скалярный проект квантизатора | DSP System Toolbox |
Универсальный энкодер | DSP System Toolbox |
Универсальный декодер | DSP System Toolbox |