dsp. VectorQuantizerEncoder

Векторное кодирование квантования

Описание

Объект VectorQuantizerEncoder выполняет векторное кодирование квантования. Объект находит самую близкую кодовую комбинацию путем вычисления искажения на основе Евклидова или взвесил Евклидово расстояние.

Выполнять векторное кодирование квантования:

  1. Создайте объект dsp.VectorQuantizerEncoder и установите его свойства.

  2. Вызовите объект с аргументами, как будто это была функция.

Чтобы узнать больше, как Системные объекты работают, смотрите то, Что Системные объекты? MATLAB.

Создание

Синтаксис

vqenc = dsp.VectorQuantizerEncoder
vqenc = dsp.VectorQuantizerEncoder(Name,Value)

Описание

vqenc = dsp.VectorQuantizerEncoder возвращает векторную Систему энкодера квантизатора object™, vqenc. Этот объект находит основанный на нуле индекс самой близкой кодовой комбинации для каждого данного входного вектор-столбца.

пример

vqenc = dsp.VectorQuantizerEncoder(Name,Value) возвращает векторный Системный объект энкодера квантизатора, vqenc, с каждым заданным набором свойств к заданному значению.

Свойства

развернуть все

Если в противном случае не обозначено, свойства являются ненастраиваемыми, что означает, что вы не можете изменить их значения после вызова объекта. Объекты блокируют, когда вы вызываете их, и функция release разблокировала их.

Если свойство является настраиваемым, можно изменить его значение в любое время.

Для получения дополнительной информации об изменении значений свойств смотрите Разработку системы в MATLAB Используя Системные объекты (MATLAB).

Задайте, как определить значения книги шифров как Property или Input port.

Задайте книгу шифров, с которой входной вектор-столбец или матрица сравнены как k-by-N матрица. Каждый столбец матрицы книги шифров является кодовой комбинацией, и каждая кодовая комбинация соответствует индексному значению. Векторы кодовой комбинации должны иметь одинаковое число строк как вход. Первый вектор кодовой комбинации соответствует индексному значению 0, второй вектор кодовой комбинации соответствует индексному значению 1 и так далее. Значение по умолчанию:

[         1.5 13.3 136.4 6.82.5 14.3 137.4 7.83.5 15.3 138.4 8.8]

Настраиваемый: да

Зависимости

Это свойство применяется, когда вы устанавливаете свойство CodebookSource на Property.

Типы данных: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

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

Задайте, как определить фактор взвешивания как Property или Input port.

Зависимости

Это свойство применяется, когда вы устанавливаете свойство DistortionMeasure на Weighted squared error.

Задайте фактор взвешивания как вектор длины, равной количеству строк входа.

Настраиваемый: да

Зависимости

Это свойство применяется, когда вы устанавливаете свойство DistortionMeasure на свойство Weighted squared error и WeightsSource, Property.

Типы данных: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

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

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

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

Задайте тип данных индекса вывод как: int8, uint8, int16, uint16, int32, uint32.

Свойства фиксированной точки

Задайте метод округления как Ceiling, Convergent, Floor, Nearest, Round, Simplest или Zero.

Задайте действие переполнения как Wrap или Saturate.

Задайте тип данных с фиксированной точкой продукта как Same as input или Custom.

Задайте фиксированную точку продукта как масштабированный объект numerictype с Signedness Auto.

Зависимости

Это свойство применяется, когда вы устанавливаете свойство ProductDataType на Custom.

Задайте тип данных с фиксированной точкой аккумулятора как Same as product, Same as input или Custom.

Задайте фиксированную точку аккумулятора как масштабированный объект numerictype с Signedness Auto.

Зависимости

Это свойство применяется, когда вы устанавливаете свойство AccumulatorDataType на Custom.

Использование

Для версий ранее, чем R2016b, используйте функцию step, чтобы запустить алгоритм Системного объекта. Аргументы к step являются объектом, который вы создали, сопровождаемый аргументами, показанными в этом разделе.

Например, y = step(obj,x) и y = obj(x) выполняют эквивалентные операции.

Синтаксис

Index = vqenc(Input)
Index = vqenc(Input,Codebook)
Index = vqenc(___,Weights)
[Index,Codeword] = vqenc(___)
[Index,Qerr] = vqenc(___)

Описание

Index = vqenc(Input) возвращает Index, скаляр или вектор-столбец, представляющий область (области) квантования, которой принадлежит Input.

Index = vqenc(Input,Codebook) использует книгу шифров, данную во входе Codebook, k-by-N матрица с кодовыми комбинациями N каждая длина k. Эта опция доступна, когда свойством CodebookSource является Input port.

Index = vqenc(___,Weights) использует входной вектор Weights, чтобы подчеркнуть или преуменьшить роль определенных входных значений при вычислении меры по искажению. Weights должен быть вектором длины, равной количеству строк Input. Эта опция доступна, когда свойством DistortionMeasure является Weighted squared error, и свойством WeightsSource является Input port.

[Index,Codeword] = vqenc(___) выводит значения Codeword, которые соответствуют каждому индексному значению, когда свойством CodewordOutputPort является true. Этот синтаксис может использоваться с любым из предыдущих входных синтаксисов.

пример

[Index,Qerr] = vqenc(___) выводит ошибку квантования Qerr для каждого входного значения, когда свойством QuantizationErrorOutputPort является true.

Входные параметры

развернуть все

Ввод данных, заданный как вектор-столбец размера k-by-1 или матрица размера k-by-M, где k является длиной каждой кодовой комбинации в книге шифров.

Количество строк во вводе данных, длине вектора Weights и длине вектора кодовой комбинации должно все быть тем же значением. Все входные параметры к объекту должны иметь совпадающий тип данных.

Типы данных: single | double | int8 | int16 | int32 | int64 | fi

Значения книги шифров, заданные как вектор-столбец размера k-by-1 или матрица размера k-by-N, где k является длиной каждой кодовой комбинации и N, являются количеством кодовых комбинаций.

Длина вектора кодовой комбинации, количество строк во вводе данных и длина вектора Weights должны все быть тем же значением. Все входные параметры к объекту должны иметь совпадающий тип данных.

Зависимости

Этот вход применяется, когда свойством CodebookSource является Input port.

Типы данных: single | double | int8 | int16 | int32 | int64 | fi

Объект использует вектор Weights, чтобы подчеркнуть или преуменьшить роль определенных входных значений при вычислении меры по искажению.

Длина вектора Weights должна равняться количеству строк во вводе данных и длине кодовой комбинации. Все входные параметры к объекту должны иметь совпадающий тип данных.

Зависимости

Этот вход применяется, когда свойством DistortionMeasure является Weighted squared error, и свойством WeightsSource является Input port.

Типы данных: single | double | int8 | int16 | int32 | int64 | fi

Выходные аргументы

развернуть все

Индексы самых близких векторов кодовой комбинации, возвращенных как скаляр или вектор - строка. Объект сравнивает каждый входной вектор-столбец с векторами кодовой комбинации в матрице книги шифров. Каждый столбец этой матрицы книги шифров является кодовой комбинацией. Объект находит вектор кодовой комбинации самым близким к входному вектор-столбцу и возвращает его основанный на нуле индекс. Когда вход является матрицей, индексы самых близких векторов кодовой комбинации горизонтально конкатенированы.

Объект находит самую близкую кодовую комбинацию путем вычисления искажения с помощью метода, заданного в свойстве DistortionMeasure.

Типы данных: int32

Значения кодовой комбинации, которые соответствуют каждому индексному значению, возвратились как вектор-столбец или матрица. Когда вход является матрицей, соответствующие векторы кодовой комбинации горизонтально конкатенированы в матрицу.

Зависимости

Этот вывод включен, когда свойство CodewordOutputPort установлено в true.

Типы данных: single | double | int8 | int16 | int32 | int64 | fi

Ошибка квантования, возвращенная как скаляр или вектор - строка. Ошибка квантования заканчивается, когда объект представляет входной вектор-столбец своей самой близкой кодовой комбинацией. Когда вход является матрицей, ошибочные значения квантования горизонтально конкатенированы.

Зависимости

Этот вывод включен, когда свойство QuantizationErrorOutputPort установлено в true.

Типы данных: single | double | int8 | int16 | int32 | int64 | fi

Функции объекта

Чтобы использовать объектную функцию, задайте Системный объект как первый входной параметр. Например, чтобы выпустить системные ресурсы Системного объекта под названием obj, используйте этот синтаксис:

release(obj)

развернуть все

stepЗапустите алгоритм Системного объекта
releaseВысвободите средства и позвольте изменения в значениях свойств Системного объекта и введите характеристики
resetСбросьте внутренние состояния Системного объекта

Примеры

развернуть все

Примечание: Этот пример запускается только в R2016b или позже. Если вы используете более ранний релиз, заменяете каждый вызов функции с эквивалентным синтаксисом step. Например, myObject (x) становится шагом (myObject, x).

Найдите индексы самых близких кодовых комбинаций на основе Евклидовых расстояний.

vqenc = dsp.VectorQuantizerEncoder(...
    'Codebook', [-1 -1 1 1;1 -1 -1 1], ...
    'CodewordOutputPort', true, ...
    'QuantizationErrorOutputPort', true, ...
    'OutputIndexDataType', 'uint8');

Сгенерируйте входной сигнал с некоторым аддитивным шумом

x = sign(rand(2,40)-0.5) + 0.1*randn(2,40);
[ind, cw, err] = vqenc(x);
plot(cw(1,:), cw(2,:), 'rO', x(1,:), x(2,:), 'g.');
legend('Quantized', 'Inputs', 'location', 'best');

Алгоритмы

Этот объект реализует алгоритм, входные параметры и выходные параметры, описанные на странице с описанием блока Vector Quantizer Encoder. Свойства объектов соответствуют параметрам блоков.

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

Смотрите также

Системные объекты

Представленный в R2012a