Для данного входа найдите индекс самой близкой кодовой комбинации на основе Евклидовой или взвешенной Евклидовой меры по расстоянию
Квантизаторы
dspquant2
Блок Vector Quantizer Encoder сравнивает каждый входной вектор-столбец с векторами кодовой комбинации в матрице книги шифров. Каждый столбец этой матрицы книги шифров является кодовой комбинацией. Блок находит вектор кодовой комбинации самым близким к входному вектор-столбцу и возвращает его основанный на нуле индекс. Этот блок поддерживает действительные сигналы и фиксированной точки с плавающей точкой на всех входных портах.
Блок находит самую близкую кодовую комбинацию путем вычисления искажения. Блок использует два метода для вычисления искажения: Евклидова квадратичная невязка (невзвешенная) и взвешенная Евклидова квадратичная невязка. Рассмотрите книгу шифров, . Эта книга шифров имеет кодовые комбинации N; каждая кодовая комбинация имеет элементы k. i-th кодовая комбинация задан как вектор-столбец, . Многоканальный вход имеет столбцы M и задан как , где p-th входной вектор-столбец . (Невзвешенная) квадратичная невязка вычисляется с помощью уравнения
Взвешенная квадратичная невязка вычисляется с помощью уравнения
где фактор взвешивания задан как . Индекс кодовой комбинации, которая сопоставлена с минимальным искажением, присвоен входному вектор-столбцу.
Можно выбрать, как вы хотите ввести значения книги шифров с помощью параметра Source of codebook . Когда вы выбираете Specify via dialog
, можно ввести значения книги шифров в диалоговое окно параметров блоков. Выберите Input port
и порт C появляется на блоке. Блок использует вход для порта C как параметр Codebook .
Параметром Codebook является k-by-N матрица значений, где k ≥ 1 и N ≥ 1. Каждый входной вектор-столбец сравнивается с этой книгой шифров. Каждый столбец матрицы книги шифров является кодовой комбинацией, и каждая кодовая комбинация имеет значение индекса. Первый вектор кодовой комбинации соответствует значению индекса 0, второй вектор кодовой комбинации соответствует значению индекса 1 и так далее. Векторы кодовой комбинации должны иметь одинаковое число строк как вход, U.
Для параметра Distortion measure выберите Squared error
когда это необходимо, блок, чтобы вычислить искажение путем оценки Евклидова расстояния между входным вектор-столбцом и каждой кодовой комбинацией в книге шифров. Выберите Weighted squared error
когда это необходимо, использовать фактор взвешивания, чтобы подчеркнуть или преуменьшить роль определенных входных значений.
Для параметра Source of weighting factor выберите Specify via dialog
ввести вектор фактора взвешивания в диалоговое окно. Выберите Input port
задавать фактор взвешивания использование порта W.
Используйте параметр Weighting factor, чтобы подчеркнуть или преуменьшить роль определенных входных значений при вычислении меры по искажению. Например, считайте p-th входным вектор-столбцом, , как ранее задано. Когда это необходимо, чтобы пропустить эффект первого элемента этого вектора, введите [0 1 1 ... 1]
как параметр Weighting factor. Этот фактор взвешивания используется, чтобы вычислить взвешенную квадратичную невязку с помощью уравнения
Из-за фактора взвешивания, используемого в этом примере, взвешенная квадратичная невязка не затронута первым элементом входной матрицы. Поэтому первый элемент входного вектор-столбца больше не влияет на выбор значения индекса, выведенного блоком Vector Quantizer Encoder.
Используйте параметр Index output data type, чтобы задать тип данных значений индекса выход в порте I. Типом данных значений индекса может быть int8
uint8
int16
uint16
int32
, или uint32
.
То, когда входной вектор является равноотстоящим от двух кодовых комбинаций, блок использует параметр Tie-breaking rule, чтобы определить, какой индекс оценивают блок, выбирает. Когда это необходимо, входной вектор, который будет представлен более низким индексом, оценил кодовую комбинацию, выберите Choose the lower index
. Представлять входной вектор-столбец более высоким индексом оценило кодовую комбинацию, выберите Choose the higher index
.
Установите флажок Output codeword, чтобы вывести в порте Q (U) векторы кодовой комбинации, которые соответствуют каждому значению индекса. Когда вход является матрицей, соответствующие векторы кодовой комбинации горизонтально конкатенированы в матрицу.
Установите флажок Output quantization error, чтобы вывести в порте D ошибку квантования, которая заканчивается, когда блок представляет входной вектор-столбец своей самой близкой кодовой комбинацией. Когда вход является матрицей, ошибочные значения квантования горизонтально конкатенированы.
Блок Vector Quantizer Encoder принимает действительные входные параметры и фиксированной точки с плавающей точкой. Для получения дополнительной информации о типах данных, принятых каждым портом, смотрите Поддержку типов данных или Поддерживаемые Типы данных.
Значения входных данных, значения книги шифров, и взвешивающий факторные значения вводятся с блоком в портах U, C, и W, соответственно. Типом данных значений входных данных, значений книги шифров, и взвешивающий факторные значения может быть double
единственный
, или Фиксированная точка. Входные данные, значения книги шифров и фактор взвешивания должны быть совпадающим типом данных.
Выходные параметры блока являются значениями индекса, выходными кодовыми комбинациями и ошибкой квантования. Используйте параметр Index output data type, чтобы задать тип данных индекса выход от блока в порте I. Типом данных индекса может быть int8
uint8
int16
uint16
int32
, или uint32
. Типом данных выходных кодовых комбинаций и ошибки квантования может быть double
единственный
, или Фиксированная точка. Блок присваивает тип данных выходных кодовых комбинаций и ошибки квантования на основе типа данных входных данных.
Следующая схема показывает типы данных, используемые в блоке Vector Quantizer Encoder для сигналов фиксированной точки.
Можно установить продукт выход, аккумулятор, и индексировать типы выходных данных в диалоговом окне блока, как обсуждено ниже.
Выберите 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 на блоке. Этот параметр отображается, если для параметра Distortion measure вы выбираете Weighted squared error
.
Введите вектор из значений. Этот вектор должен иметь длину, равную количеству строк входа, U. Этот параметр отображается, если для параметра Source of weighting factor вы выбираете 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
, можно ввести размер слова и дробную длину аккумулятора в битах.
Gersho, А. и Р. Грэй. Векторное квантование и сжатие сигнала. Бостон: Kluwer академические издатели, 1992.
Порт | Поддерживаемые типы данных |
---|---|
U |
|
C |
|
W |
|
I |
|
Q (U) |
|
D |
|
Quantizer (Simulink) | Simulink |
Скалярный декодер квантизатора | DSP System Toolbox |
Универсальный энкодер | DSP System Toolbox |
Универсальный декодер | DSP System Toolbox |
Векторный декодер квантизатора | DSP System Toolbox |