Для данного входа найдите индекс самой близкой кодовой комбинации на основе Евклидовой или взвешенной Евклидовой меры по расстоянию
Квантизаторы
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
, single
или Фиксированная точка. Входные данные, значения книги шифров и фактор взвешивания должны быть совпадающим типом данных.
Выходные параметры блока являются индексными значениями, выходными кодовыми комбинациями и ошибкой квантования. Используйте параметр Index output data type, чтобы задать тип данных индекса вывод от блока в порте I. Типом данных индекса может быть int8
, uint8
, int16
, uint16
, int32
или uint32
. Типом данных выходных кодовых комбинаций и ошибки квантования может быть double
, single
или Фиксированная точка. Блок присваивает тип данных выходных кодовых комбинаций и ошибки квантования на основе типа данных входных данных.
Следующая схема показывает типы данных, используемые в блоке 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 |
|
Квантизатор | Simulink |
Скалярный декодер квантизатора | DSP System Toolbox |
Скалярный проект квантизатора | DSP System Toolbox |
Универсальный энкодер | DSP System Toolbox |
Универсальный декодер | DSP System Toolbox |
Векторный декодер квантизатора | DSP System Toolbox |