exponenta event banner

Кодер векторного квантователя

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

Библиотека

Quantizers

dspquant2

  • Vector Quantizer Encoder block

Описание

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

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

D=∑j=1k (aji ujp) 2

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

D=∑j=1kwj (aji ujp) 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.

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

Для параметра Source of weighting factor выберите Specify via dialog для ввода вектора весового коэффициента в диалоговом окне. Выбирать Input port для определения весового коэффициента с использованием порта W.

Используйте параметр Весовой коэффициент (Weighting factor), чтобы подчеркнуть или понизить некоторые входные значения при вычислении меры искажения. Например, рассмотрим p-й вектор входного столбца Up, как определено ранее. Если необходимо пренебречь эффектом первого элемента этого вектора, введите [0 1 1 ... 1] в качестве параметра Весовой коэффициент. Этот весовой коэффициент используется для вычисления взвешенной квадратичной ошибки с помощью уравнения

D=∑j=1kwj (aji 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

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

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

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

  • 8-, 16- и 32-разрядные целые числа со знаком

C

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

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

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

  • 8-, 16- и 32-разрядные целые числа со знаком

W

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

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

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

  • 8-, 16- и 32-разрядные целые числа со знаком

Я

  • 8-, 16- и 32-разрядные целые числа со знаком

  • 8-, 16- и 32-разрядные целые числа без знака

Qu

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

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

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

  • 8-, 16- и 32-разрядные целые числа со знаком

D

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

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

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

  • 8-, 16- и 32-разрядные целые числа со знаком

См. также

Квантователь (Simulink)Simulink
Скалярный декодер квантователяИнструментарий системы DSP
Унифицированный кодировщикИнструментарий системы DSP
Унифицированный декодерИнструментарий системы DSP
Декодер векторного квантователяИнструментарий системы DSP

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

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