Для данного входа найти индекс ближайшего кодового слова на основе евклидовой или взвешенной евклидовой меры расстояния
Quantizers
dspquant2

Блок кодера векторного квантователя сравнивает каждый вектор входного столбца с векторами кодовых слов в матрице кодовой книги. Каждый столбец этой матрицы кодовой книги является кодовым словом. Блок находит вектор кодового слова, ближайший к вектору входного столбца, и возвращает его отсчитываемый от нуля индекс. Этот блок поддерживает реальные сигналы с плавающей и фиксированной точками на всех входных портах.
Блок находит ближайшее кодовое слово путем вычисления искажения. Блок использует два метода вычисления искажений: евклидова квадратичная ошибка (невзвешенная) и взвешенная евклидова квадратичная ошибка. Рассмотрим кодовую книгу, CWN]. Эта кодовая книга имеет N кодовых слов; каждое кодовое слово имеет k элементов. I-е кодовое слово определяется как столбца,
ujp) 2
Взвешенная квадратичная ошибка вычисляется с помощью уравнения
ujp) 2
где весовой коэффициент определяется как wk]. Индекс кодового слова, который связан с минимальным искажением, присваивается вектору входного столбца.
Можно выбрать способ ввода значений кодовой книги с помощью параметра Source of codebook. При выборе Specify via dialog, можно ввести значения кодовой книги в диалоговом окне параметров блока. Выбрать Input port и на блоке появится порт C. Блок использует вход в порт C в качестве параметра Codebook.
Параметр Codebook представляет собой матрицу значений k-by-N, где k ≥ 1 и N ≥ 1. Каждый вектор входного столбца сравнивается с этой кодовой книгой. Каждый столбец матрицы кодовой книги является кодовым словом, и каждое кодовое слово имеет значение индекса. Первый вектор кодового слова соответствует значению индекса 0, второй вектор кодового слова соответствует значению индекса 1 и так далее. Векторы кодовых слов должны иметь то же количество строк, что и входные, U.
Для параметра измерения искажений выберите Squared error если требуется, чтобы блок рассчитал искажение путем оценки евклидова расстояния между вектором входного столбца и каждым кодовым словом в кодовой книге. Выбрать Weighted squared error при необходимости использования весового коэффициента для выделения или понижения некоторых входных значений.
Для параметра Source of weighting factor выберите Specify via dialog для ввода вектора весового коэффициента в диалоговом окне. Выбирать Input port для определения весового коэффициента с использованием порта W.
Используйте параметр Весовой коэффициент (Weighting factor), чтобы подчеркнуть или понизить некоторые входные значения при вычислении меры искажения. Например, рассмотрим p-й вектор входного столбца Up, как определено ранее. Если необходимо пренебречь эффектом первого элемента этого вектора, введите [0 1 1 ... 1] в качестве параметра Весовой коэффициент. Этот весовой коэффициент используется для вычисления взвешенной квадратичной ошибки с помощью уравнения
ujp) 2
Из-за весового коэффициента, используемого в этом примере, на взвешенную квадратичную ошибку не влияет первый элемент входной матрицы. Следовательно, первый элемент вектора входного столбца больше не влияет на выбор значения индекса, выводимого блоком кодера векторного квантователя.
Используйте параметр Index output data type для указания типа данных индексных значений, выводимых на порт I. Тип данных индексных значений может быть int8, uint8, int16, uint16, int32, или uint32.
Когда входной вектор равноудален от двух кодовых слов, блок использует параметр правила разрыва связей, чтобы определить, какое значение индекса выбирает блок. Если входной вектор должен быть представлен кодовым словом с более низким индексом, выберите Choose the lower index. Для представления вектора входного столбца кодовым словом с более высоким значением индекса выберите Choose the higher index.
Установите флажок Output codword (Выходное кодовое слово) для вывода на порт Q (U) векторов кодового слова, соответствующих каждому значению индекса. Когда входной сигнал является матрицей, соответствующие векторы кодовых слов горизонтально объединяются в матрицу.
Установите флажок Output quantization error для вывода на порт D ошибки квантования, которая возникает, когда блок представляет вектор входного столбца своим ближайшим кодовым словом. Когда входной сигнал является матрицей, значения ошибок квантования объединяются по горизонтали.
Блок кодера векторного квантователя принимает действительные входные сигналы с плавающей и фиксированной точками. Дополнительные сведения о типах данных, принимаемых каждым портом, см. в разделе Поддержка типов данных или Поддерживаемые типы данных.
Значения входных данных, значения кодовой книги и значения весового коэффициента вводятся в блок на портах U, C и W соответственно. Тип данных значений входных данных, значений кодовой книги и значений весовых коэффициентов может быть double, singleили Фиксированная точка. Входные данные, значения кодовой книги и весовой коэффициент должны быть одного типа данных.
Выходами блока являются значения индекса, выходные кодовые слова и ошибка квантования. Используйте параметр Index output data type для указания типа данных индекса, выводимого из блока на порте I. Тип данных индекса может быть int8, uint8, int16, uint16, int32, или uint32. Тип данных выходных кодовых слов и ошибка квантования могут быть double, singleили Фиксированная точка. Блок назначает тип данных выходных кодовых слов и ошибку квантования на основании типа данных входных данных.
Следующая диаграмма показывает типы данных, используемые в блоке кодера векторного квантователя для сигналов с фиксированной точкой.

Типы выходных данных продукта, накопителя и индекса можно задать в диалоговом окне блока, как описано ниже.
Выбирать Specify via dialog для ввода значений кодовой книги в диалоговом окне параметров блока. Выбрать Input port для задания значений кодовой книги с использованием входного порта блока, C.
Введите матрицу k-by-N значений, где 1 ≤ k
и 1 ≤ N, с которой сравнивается вектор или матрица входного столбца. Этот параметр отображается, если в списке Source of codebook (Источник кодовой книги) выбрать Specify via dialog.
Выбрать Squared error если требуется, чтобы блок рассчитал искажение путем оценки евклидова расстояния между вектором входного столбца и каждым кодовым словом в кодовой книге. Выбрать Weighted squared error если требуется, чтобы блок рассчитал искажение путем вычисления взвешенного евклидова расстояния с использованием весового коэффициента для подчеркивания или понижения некоторых входных значений.
Выбрать Specify via dialog для ввода значения весового коэффициента в диалоговом окне. Выбирать Input port и укажите весовой коэффициент, используя порт W в блоке. Этот параметр отображается, если для параметра измерения Искажение выбран параметр Weighted squared error.
Введите вектор значений. Этот вектор должен иметь длину, равную количеству строк ввода, U. Этот параметр виден, если для параметра Источник весового коэффициента выбран Specify via dialog.
Установите этот параметр для определения поведения блока, когда вектор входного столбца равноудален от двух кодовых слов. Если требуется, чтобы вектор входного столбца был представлен кодовым словом с более низким индексом, выберите Choose the lower index. Для представления вектора входного столбца кодовым словом с более высоким значением индекса выберите Choose the higher index.
Установите этот флажок для вывода векторов кодовых слов, ближайших к векторам входных столбцов.
Установите этот флажок, чтобы вывести значение ошибки квантования, которое получается, когда блок представляет вектор входного столбца ближайшим кодовым словом.
Выбрать int8, uint8, int16, uint16, int32, или uint32 в качестве типа данных выхода индекса на порте I. Чтобы наследовать тип данных выхода индекса, выберите Inherit via back propagation.
Укажите режим округления для операций с фиксированной точкой как одно из следующих:
Floor
Ceiling
Convergent
Nearest
Round
Simplest
Zero
Дополнительные сведения см. в разделе Режим округления.
При выборе этого параметра блок насыщает результат операции с фиксированной точкой. При сбросе этого параметра блок переносит результат операции с фиксированной точкой. Для получения подробной информации о saturate и wrap, см. режим переполнения для операций с фиксированной точкой.

Как показано выше, выходной сигнал множителя помещается в тип выходных данных продукта и масштабирование. Используйте этот параметр, чтобы указать, как следует обозначать выходные слова продукта и длины дробей.
При выборе Same as input, эти характеристики соответствуют характеристикам входа в блок.
При выборе Binary point scaling, можно ввести длину слова и длину дроби выходного документа в битах.

Как показано выше, входы в аккумулятор подаются на тип данных аккумулятора. Выходной сигнал сумматора остается в типе данных накопителя при добавлении к нему каждого элемента входного сигнала. Используйте этот параметр, чтобы указать, как следует обозначать слова-накопители и длины дробей.
При выборе Same as product output, эти характеристики соответствуют характеристикам продукта.
При выборе Same as input, эти характеристики соответствуют характеристикам входа в блок.
При выборе Binary point scaling, можно ввести длину слова и длину дроби накопителя, в битах.
Гершо, А. и Р. Грей. Векторное квантование и сжатие сигнала. Бостон: Kluwer Academic Publishers, 1992.
| Порт | Поддерживаемые типы данных |
|---|---|
U |
|
C |
|
W |
|
Я |
|
Qu |
|
D |
|
| Квантователь (Simulink) | Simulink |
| Скалярный декодер квантователя | Инструментарий системы DSP |
| Унифицированный кодировщик | Инструментарий системы DSP |
| Унифицированный декодер | Инструментарий системы DSP |
| Декодер векторного квантователя | Инструментарий системы DSP |