Vector Quantizer Encoder

Для данного входа найдите индекс самой близкой кодовой комбинации на основе Евклидовой или взвешенной Евклидовой меры по расстоянию

Библиотека

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

dspquant2

  • Vector Quantizer Encoder block

Описание

Блок Vector Quantizer Encoder сравнивает каждый входной вектор-столбец с векторами кодовой комбинации в матрице книги шифров. Каждый столбец этой матрицы книги шифров является кодовой комбинацией. Блок находит вектор кодовой комбинации самым близким к входному вектор-столбцу и возвращает его основанный на нуле индекс. Этот блок поддерживает действительные сигналы и фиксированной точки с плавающей точкой на всех входных портах.

Блок находит самую близкую кодовую комбинацию путем вычисления искажения. Блок использует два метода для вычисления искажения: Евклидова квадратичная невязка (невзвешенная) и взвешенная Евклидова квадратичная невязка. Рассмотрите книгу шифров, CB=[CW1CW2...CWN]. Эта книга шифров имеет кодовые комбинации N; каждая кодовая комбинация имеет элементы k. i-th кодовая комбинация задан как вектор-столбец, CWi=[a1ia2i...aki]. Многоканальный вход имеет столбцы M и задан как U=[U1U2...UM], где p-th входной вектор-столбец Up=[u1pu2p...ukp]. (Невзвешенная) квадратичная невязка вычисляется с помощью уравнения

D=j=1k(ajiujp)2

Взвешенная квадратичная невязка вычисляется с помощью уравнения

D=j=1kwj(ajiujp)2

где фактор взвешивания задан как W=[w1w2...wk]. Индекс кодовой комбинации, которая сопоставлена с минимальным искажением, присвоен входному вектор-столбцу.

Можно выбрать, как вы хотите ввести значения книги шифров с помощью параметра 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 входным вектор-столбцом, Up, как ранее задано. Когда это необходимо, чтобы пропустить эффект первого элемента этого вектора, введите [0 1 1 ... 1] как параметр Weighting factor. Этот фактор взвешивания используется, чтобы вычислить взвешенную квадратичную невязку с помощью уравнения

D=j=1kwj(ajiujp)2

Из-за фактора взвешивания, используемого в этом примере, взвешенная квадратичная невязка не затронута первым элементом входной матрицы. Поэтому первый элемент входного вектор-столбца больше не влияет на выбор значения индекса, выведенного блоком Vector Quantizer Encoder.

Используйте параметр Index output data type, чтобы задать тип данных значений индекса выход в порте I. Типом данных значений индекса может быть int8uint8int16uint16int32, или 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. Типом данных индекса может быть int8uint8int16uint16int32, или uint32. Типом данных выходных кодовых комбинаций и ошибки квантования может быть doubleединственный, или Фиксированная точка. Блок присваивает тип данных выходных кодовых комбинаций и ошибки квантования на основе типа данных входных данных.

Типы данных с фиксированной точкой

Следующая схема показывает типы данных, используемые в блоке Vector Quantizer Encoder для сигналов фиксированной точки.

Можно установить продукт выход, аккумулятор, и индексировать типы выходных данных в диалоговом окне блока, как обсуждено ниже.

Диалоговое окно

Основная вкладка

Source of codebook

Выберите Specify via dialog вводить значения книги шифров в диалоговое окно параметров блоков. Выберите Input port задавать значения книги шифров с помощью входного порта блока, C.

Codebook

Введите k-by-N матрица значений, где 1 ≤ k и 1 ≤ N, с которым сравнены ваш входной вектор-столбец или матрица. Этот параметр отображается, если из списка Source of codebook вы выбираете Specify via dialog.

Distortion measure

Выберите Squared error когда это необходимо, блок, чтобы вычислить искажение путем оценки Евклидова расстояния между входным вектор-столбцом и каждой кодовой комбинацией в книге шифров. Выберите Weighted squared error когда это необходимо, блок, чтобы вычислить искажение путем оценки взвешенного Евклидова расстояния с помощью фактора взвешивания, чтобы подчеркнуть или преуменьшить роль определенных входных значений.

Source of weighting factor

Выберите Specify via dialog чтобы ввести значение для взвешивания включают диалоговое окно. Выберите Input port и задайте фактор взвешивания использование порта W на блоке. Этот параметр отображается, если для параметра Distortion measure вы выбираете Weighted squared error.

Weighting factor

Введите вектор из значений. Этот вектор должен иметь длину, равную количеству строк входа, U. Этот параметр отображается, если для параметра Source of weighting factor вы выбираете Specify via dialog.

Tie-breaking rule

Установите этот параметр, чтобы определить поведение блока, когда входной вектор-столбец будет равноотстоящим от двух кодовых комбинаций. Когда это необходимо, входной вектор-столбец, который будет представлен более низким индексом, оценил кодовую комбинацию, выберите Choose the lower index. Представлять входной вектор-столбец более высоким индексом оценило кодовую комбинацию, выберите Choose the higher index.

Output codeword

Установите этот флажок, чтобы вывести векторы кодовой комбинации, самые близкие к входным вектор-столбцам.

Output quantization error

Установите этот флажок, чтобы вывести ошибочное значение квантования, которое заканчивается, когда блок представляет входной вектор-столбец самой близкой кодовой комбинацией.

Index output data type

Выберите int8uint8int16uint16int32, или uint32 как тип данных индекса выход в порте I. Чтобы наследовать тип выходных данных индекса, выберите Inherit via back propagation.

Вкладка типов данных

Rounding mode

Задайте округляющийся режим для операций фиксированной точки как одно из следующего:

  • Floor

  • Ceiling

  • Convergent

  • Nearest

  • Round

  • Simplest

  • Zero

Для получения дополнительной информации смотрите округление режима.

Overflow mode

Когда вы выбираете этот параметр, блок насыщает результат своей операции фиксированной точки. Когда вы очищаете этот параметр, блок переносит результат своей операции фиксированной точки. Для получения дополнительной информации на saturate и wrap, смотрите режим переполнения для операций фиксированной точки.

Product output

Как изображено выше, выход множителя помещается в тип выходных данных продукта и масштабирование. Используйте этот параметр, чтобы задать, как требуется назвать этот продукт выходным словом и дробными длинами.

  • Когда вы выбираете Same as input, эти характеристики совпадают с теми из входа с блоком.

  • Когда вы выбираете Binary point scaling, можно ввести размер слова и дробную длину продукта выход в битах.

Accumulator

Как изображено выше, входные параметры к аккумулятору брошены к типу данных аккумулятора. Выход сумматора остается в типе данных аккумулятора, когда каждый элемент входа добавляется к нему. Используйте этот параметр, чтобы задать, как требуется определять слово аккумулятора и дробные длины.

  • Когда вы выбираете Same as product output, эти характеристики совпадают с теми из продукта выход.

  • Когда вы выбираете Same as input, эти характеристики совпадают с теми из входа с блоком.

  • Когда вы выбираете Binary point scaling, можно ввести размер слова и дробную длину аккумулятора в битах.

Ссылки

Gersho, А. и Р. Грэй. Векторное квантование и сжатие сигнала. Бостон: Kluwer академические издатели, 1992.

Поддерживаемые типы данных

ПортПоддерживаемые типы данных

U

  • Плавающая точка двойной точности

  • Плавающая точка с одинарной точностью

  • Фиксированная точка (подписался только),

  • 8-, 16-, и 32-битные целые числа со знаком

C

  • Плавающая точка двойной точности

  • Плавающая точка с одинарной точностью

  • Фиксированная точка (подписался только),

  • 8-, 16-, и 32-битные целые числа со знаком

W

  • Плавающая точка двойной точности

  • Плавающая точка с одинарной точностью

  • Фиксированная точка (подписался только),

  • 8-, 16-, и 32-битные целые числа со знаком

I

  • 8-, 16-, и 32-битные целые числа со знаком

  • 8-, 16-, и 32-битное беззнаковое целое

Q (U)

  • Плавающая точка двойной точности

  • Плавающая точка с одинарной точностью

  • Фиксированная точка (подписался только),

  • 8-, 16-, и 32-битные целые числа со знаком

D

  • Плавающая точка двойной точности

  • Плавающая точка с одинарной точностью

  • Фиксированная точка (подписался только),

  • 8-, 16-, и 32-битные целые числа со знаком

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

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