exponenta event banner

Скалярный кодер квантователя

Кодировать каждое входное значение, связывая его с индексным значением области квантования

Библиотека

Quantizers

dspquant2

  • Scalar Quantizer Encoder block

Описание

Блок скалярного кодера квантователя отображает каждое входное значение в область квантования путем сравнения входного значения с граничными точками квантователя, определенными в параметре Граничные точки. Блок выводит отсчитываемый от нуля индекс ассоциированной области.

Можно выбрать способ ввода граничных точек с помощью параметров источника квантователя. При выборе Specify via dialogвведите граничные точки в диалоговом окне параметров блока. При выборе Input port, на блоке появится порт B. Блок использует вход в порт B в качестве параметра «Граничные точки».

Используйте параметр Граничные точки (Boundary points), чтобы задать граничные точки для квантователя. Эти значения используются для разделения набора входных чисел на области. Каждая область определяется индексным номером.

Давайте N - количество областей квантования. Когда кодовая книга определена как [c1 c2 c3 ... cN]и параметр Граничные точки (Boundary points) определяется как [p0 p1 p2 p3 ... pN], то p0<c1<p1<c2 ... p(N-1)<cN<pN для обычного квантователя. Когда квантователь ограничен, в списке Секционирование выберите Bounded. Необходимо указать N + 1 граничных точек, или[p0 p1 p2 p3 ... pN]. Если квантователь не ограничен, в списке Секционирование выберите Unbounded. Необходимо указать N-1 граничные точки или[p1 p2 p3 ... p(N-1)]; наборы блоков p0 равно -inf и pN равно inf.

Блок использует параметр «Секционирование» для интерпретации введенных граничных точек. Например, для создания ограниченного квантователя в списке Секционирование выберите Bounded и введите следующие граничные точки:

[0 0.5 3.7 5.8 6.0 11] 

Блок присваивает любые входные значения от 0 до 0,5 индексу 0, входные значения от 0,5 до 3,7 индексу 1 и т.д. Блок присваивает индексу 0 любые значения, которые меньше 0, наименьшее значение индекса. Блок присваивает любые значения, которые больше 11, индексу 4, самому высокому значению индекса.

Чтобы создать неограниченный квантователь, в списке Секционирование выберите Unbounded и введите следующие граничные точки:

[0 0.5 3.7 5.8 6.0 11] 

Блок присваивает любые входные значения от 0 до 0,5 индексу 1, входные значения от 0,5 до 3,7 индексу 2 и т.д. Блок присваивает любые входные значения меньше 0 индексу 0, а любые значения больше 11 индексу 6.

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

При выборе Binary для метода «Поиск» блок сравнивает входное значение с средним значением вектора граничных точек. Если входное значение больше этой граничной точки, блок отбрасывает граничные точки, которые ниже этого среднего значения. Блок затем сравнивает входное значение со средней граничной точкой нового диапазона, определяемой остальными граничными точками. Этот процесс продолжается до тех пор, пока входное значение не будет связано с соответствующим значением индекса. Вычислительная стоимость этого процесса равна log2P порядка, где P - количество граничных точек. В большинстве случаев Binary параметр быстрее, чем Linear вариант.

Если входное значение совпадает с граничной точкой, параметр правила разбиения определяет область, которой назначено значение. Если требуется назначить входное значение нижней индексированной области, выберите Choose the lower index. Чтобы назначить входное значение с более высокой индексированной областью, выберите Choose the higher index.

Установите флажок Output codeword (Выходное кодовое слово) для вывода значений кодового слова, соответствующих каждому значению индекса в порту Q (U).

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

При установке флажка «Output codword» или «Output quantization error» необходимо также ввести значения кодовой книги. Если в списке «Источник параметров квантователя» выбран Specify via dialogиспользуйте параметр Codebook для ввода вектора квантованных выходных значений, которые соответствуют каждой области. Если в списке «Источник параметров квантователя» выбран Input port, используйте входной порт C для указания значений кодовой книги.

Если для параметра «Секционирование» выбран параметр Boundedпоявится флажок Состояние отсечения вывода (Output clipping status) и параметр Действие для ввода вне диапазона. При установке флажка Output clipping status на блоке появляется порт S. Каждый раз, когда входное значение выходит за пределы диапазона, определенного параметром «Граничные точки», блок выводит 1 на S-порт. Если значение находится внутри диапазона, блоки выдают 0.

Параметр ввода «Действие за пределами диапазона» можно использовать для определения поведения блока, когда входное значение выходит за пределы диапазона, определенного параметром «Граничные точки». Предположим, граничные точки для ограниченного квантователя определены как [p0 p1 p2 p3 ... pN] и возможные значения индекса определяются как [i0 i1 i2 ... i(N-1)], где i0=0 и i0<i1<i2<...<i(N-1). Если требуется, чтобы входное значение было меньше p0 назначается значению индекса i0 и любые входные значения, превышающие pN назначается значению индекса i(N-1), выберите Clip. При необходимости предупреждения об отсечении выберите Clip and warn. Если необходимо остановить моделирование, а блок отобразить ошибку, когда значения индекса находятся вне диапазона, выберите Error.

Блок скалярного кодера квантователя принимает вещественные входы с плавающей и фиксированной точками. Дополнительные сведения о типах данных, принимаемых каждым портом, см. в разделе Поддержка типов данных или Поддерживаемые типы данных.

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

Значения входных данных, граничные точки и значения кодовой книги могут быть введены в блок на портах U, B и C соответственно. Тип данных входных данных может быть double, singleили Фиксированная точка.

Выходами блока могут быть значения индекса, квантованные выходные значения, ошибка квантования и статус отсечения. Используйте параметр Index output data type для указания типа данных индекса, выводимого из блока на порте I. Можно выбрать int8, uint8, int16, uint16, int32, или uint32. Тип данных квантованного выходного сигнала и ошибка квантования могут быть double, singleили Фиксированная точка. Значения состояния отсечения, выводимые на порт S, являются логическими значениями.

Примечание

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

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

Главная вкладка

Источник параметров квантователя

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

Разделение

Когда квантователь ограничен, выберите Bounded. Если квантователь не ограничен, выберите Unbounded.

Граничные точки

Введите вектор значений, которые представляют граничные точки областей квантователя. Этот параметр отображается при выборе Specify via dialog из списка параметров источника квантователя. Настраиваемый (Simulink).

Метод поиска

При выборе Linearблок находит область, в которой находится входное значение, с помощью линейного поиска. При выборе Binaryблок находит область, в которой находится входное значение, с помощью двоичного поиска.

Правило разрыва соединения

Задайте этот параметр для определения поведения блока, когда входное значение совпадает с граничной точкой. При выборе Choose the lower index, входное значение присваивается нижней индексированной области. При выборе Choose the higher indexзначение присваивается более высокой индексированной области.

Выходное кодовое слово

Установите этот флажок для вывода значений кодового слова, соответствующих каждому значению индекса в порту Q (U).

Ошибка выходного квантования

Установите этот флажок для вывода ошибки квантования для каждого входного значения в порту Err.

Шифровальная книга

Введите вектор квантованных выходных значений, которые соответствуют каждому значению индекса. Если для параметра «Секционирование» выбран параметр Bounded и вектор граничных точек имеет длину N, то необходимо указать кодовую книгу длины N-1. Если для параметра «Секционирование» выбран параметр Unbounded и вектор граничных точек имеет длину N, то необходимо указать кодовую книгу длиной N + 1.

Этот параметр отображается при выборе Specify via dialog в списке Параметры источника квантователя (Source of quantizer parameters) и установите флажок Выходное кодовое слово (Output codword) или Выходная ошибка квантования (Output quantization error). Настраиваемый (Simulink).

Состояние отсечения вывода

Если этот флажок установлен, на блоке появляется порт S. Каждый раз, когда входное значение выходит за пределы диапазона, определенного параметром «Граничные точки», блок выводит 1 на этот порт. Когда значение находится внутри диапазона, блок выводит 0. Этот параметр отображается при выборе Bounded из списка секционирования.

Действие для входа вне диапазона

Этот параметр используется для определения поведения блока, когда входное значение выходит за пределы диапазона, определенного параметром «Граничные точки». Предположим, что граничные точки определены как [p0 p1 p2 p3 ... pN] и значения индекса определяются как [i0 i1 i2 ... i(N-1)]. Если требуется, чтобы входное значение было меньше p0 назначается значению индекса i0 и любые входные значения, превышающие pN назначается значению индекса i(N-1), выберите Clip. При необходимости предупреждения об отсечении выберите Clip and warn. Если необходимо остановить моделирование, а блок отобразить ошибку, когда значения индекса находятся вне диапазона, выберите Error. Этот параметр отображается при выборе Bounded из списка секционирования.

Тип выходных данных индекса

Укажите тип данных индекса, выводимого из блока на порте I. Можно выбрать int8, uint8, int16, uint16, int32, uint32, или Inherit via back propagation.

Вкладка «Типы данных»

Режим округления

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

  • Floor

  • Ceiling

  • Convergent

  • Nearest

  • Round

  • Simplest

  • Zero

Дополнительные сведения см. в разделе Режим округления.

Насыщение при целочисленном переполнении

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

Ссылки

Гершо, А. и Р. Грей. Векторное квантование и сжатие сигнала. Бостон: Kluwer Academic Publishers, 1992.

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

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

U

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

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

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

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

B

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

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

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

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

C

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

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

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

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

Я

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

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

Qu

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

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

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

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

Допустить ошибку

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

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

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

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

S

  • Булев

Дополнительные сведения о том, какие типы данных поддерживаются для каждого режима квантователя, см. в разделе Поддержка типов данных.

См. также

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

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

Создание кода C/C + +
Создайте код C и C++ с помощью Simulink ® Coder™

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