Scalar Quantizer Design

Запустите Скалярный Design Tool Квантизатора (SQDTool), чтобы спроектировать скалярный квантизатор с помощью алгоритма Ллойда

Библиотека

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

dspquant2

Описание

Дважды кликните на блоке Scalar Quantizer Design, чтобы запустить SQDTool, графический интерфейс пользователя, который позволяет вам разработке и реализации скалярный квантизатор. На основе ваших входных значений SQDTool итеративно вычисляет значения книги шифров, которые минимизируют среднеквадратическую ошибку, пока критерию остановки для процесса проектирования не удовлетворяют. Блок использует получившиеся значения книги шифров квантизатора и граничные точки, чтобы реализовать ваш скалярный энкодер квантизатора и/или декодер.

Для параметра Training Set введите набор наблюдений или выборок, сигнала, который вы хотите квантовать. Эти данные могут быть любой переменной, заданной в рабочей области MATLAB® включая переменную, созданную с помощью функции MATLAB, такой как значение по умолчанию randn(10000,1).

У вас есть два варианта для параметра Source of initial codebook . Выберите Auto-generate чтобы иметь блок выбирают значения начального вектора книги шифров. В этом случае минимальное значение набора обучающих данных становится первой кодовой комбинацией, и максимальное значение набора обучающих данных становится последней кодовой комбинацией. Затем остающиеся начальные кодовые комбинации равномерно распределены между этими двумя значениями, чтобы сформировать вектор книги шифров из длины N, где N является параметром Number of levels. Когда вы выбираете User defined, введите начальные значения книги шифров в поле Initial codebook. Затем установите параметр Source of initial boundary points. Можно выбрать Mid-points определять местоположение граничных точек в средней точке между кодовыми комбинациями. Чтобы вычислить средние точки, блок внутренне располагает начальные значения книги шифров в порядке возрастания. Можно также выбрать User defined и введите свои собственные граничные точки в поле Initial boundary points (unbounded). Только одна граничная точка может быть расположена между двумя кодовыми комбинациями. Когда вы выбираете User defined для параметра Source of initial boundary points значения, которые вы вводите в поля Initial codebook и Initial boundary points (unbounded), должны быть расположены в порядке возрастания.

Примечание

Этот блок принимает, что вы проектируете неограниченный квантизатор. Поэтому первыми и последними граничными точками всегда является -inf и inf независимо от любых других значений граничной точки вы можете войти.

После того, как вы задали параметры квантования, блок выполняет итеративный процесс, чтобы спроектировать оптимальный скалярный квантизатор. Каждый шаг процесса проектирования включает использование алгоритма Ллойда, чтобы вычислить значения книги шифров и граничные точки квантизатора. Затем блок вычисляет ошибку квантования в квадрате и проверяет, удовлетворили ли критерию остановки.

Этими двумя возможными вариантами для параметра Stopping criteria является Relative threshold и Maximum iteration. Когда это необходимо, процесс проектирования, чтобы остановиться, когда дробное понижение ошибки квантования в квадрате будет ниже определенного значения, выберите Relative threshold. Затем для Relative threshold введите максимальное приемлемое дробное отбрасывание. Когда это необходимо, процесс проектирования, чтобы остановиться после определенного числа итераций, выберите Maximum iteration. Затем введите максимальный номер итераций, которые вы хотите, чтобы блок выполнил в поле Maximum iteration. Для Stopping criteria можно также выбрать Whichever comes first и введите Relative threshold and Maximum iteration value. Блок прекращает выполнять итерации, как только одному из этих условий удовлетворяют.

С каждой итерацией блок квантует значения набора обучающих данных на основе недавно расчетных значений книги шифров и граничных точек. Когда учебная точка находится на граничной точке, алгоритм использует параметр Tie-breaking rules, чтобы определить, с какой областью значение сопоставлено. Когда это необходимо, учебная точка, которая будет присвоена ниже индексируемой области, выберите Lower indexed codeword. Чтобы присвоить учебную точку с более высокой индексируемой областью, выберите Higher indexed codeword.

Параметр Searching methods определяет, как блок сравнивает учебные точки с граничными точками. Выберите Linear search и SQDTool сравнивает каждую учебную точку с каждой областью квантования последовательно. Этот процесс продолжается, пока все учебные точки не сопоставлены с соответствующими областями.

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

Нажмите Design and Plot, чтобы спроектировать квантизатор со значениями параметров, заданными на левой стороне графический интерфейса пользователя. Кривая производительности и символ лестницы квантизатора обновлены и отображены в фигурах по правой стороне графический интерфейса пользователя.

Примечание

Необходимо нажать Design and Plot, чтобы применить любые изменения, которые вы вносите в значения параметров в диалоговом окне SQDTool.

SQDTool может экспортировать значения параметров, которые соответствуют фигурам, отображенным в графический интерфейсе пользователя. Нажмите кнопку Export Outputs или нажмите Ctrl+E, чтобы экспортировать Final Codebook, Final Boundary Points и значения Error к рабочей области, текстовому файлу или MAT-файлу. Значения Error представляют среднеквадратическую ошибку для каждой итерации.

В разделе Model графический интерфейса пользователя задайте место назначения блока, который будет содержать параметры вашего квантизатора. Для Destination выберите Current model чтобы создать блок вашими параметрами в модели, вы последний раз выбрали. Введите gcs в Окне Команды MATLAB, чтобы отобразить имя вашей текущей модели. Выберите New model создать блок в новом файле модели.

Из списка Block type выберите Encoder спроектировать блок Scalar Quantizer Encoder. Выберите Decoder спроектировать блок Scalar Quantizer Decoder. Выберите Both спроектировать блок Scalar Quantizer Encoder и блок Scalar Quantizer Decoder.

В поле Encoder block name введите имя для блока Scalar Quantizer Encoder. В поле Decoder block name введите имя для блока Scalar Quantizer Decoder. Когда вы имеете блок Scalar Quantizer Encoder и/или Decoder в своей целевой модели с тем же именем, устанавливаете флажок Overwrite target block(s), чтобы заменить параметры блока на текущие параметры. Когда вы не устанавливаете этот флажок, новый блок Scalar Quantizer Encoder и/или Decoder создается в вашей целевой модели.

Нажмите Generate Model. SQDTool использует параметры, которые соответствуют текущим графикам установить параметры Скалярных блоков Энкодера и/или Декодера Квантизатора.

Параметры

Training Set

Введите выборки сигнала, который требуется квантовать. Этим набором данных может быть функция MATLAB или переменная, заданная в рабочем пространстве MATLAB. Типичной длиной этого вектора данных является 1e6.

Source of initial codebook

Выберите Auto-generate чтобы иметь блок выбирают начальные значения книги шифров. Выберите User defined ввести ваши собственные начальные значения книги шифров.

Number of levels

Введите длину вектора книги шифров. Для квантизатора B-бита длиной должен быть N = 2b.

Initial codebook

Введите свои начальные значения книги шифров. Из списка Source of initial codebook выберите User defined для того, чтобы активировать этот параметр.

Source of initial boundary points

Выберите Mid-points определять местоположение граничных точек в средней точке между значениями книги шифров. Выберите User defined ввести ваши собственные граничные точки. Из списка Source of initial codebook выберите User defined для того, чтобы активировать этот параметр.

Initial boundary points (unbounded)

Введите свои начальные граничные точки. Этот блок принимает, что вы проектируете неограниченный квантизатор. Поэтому первой и последней граничной точкой является -inf и inf, независимо от любых других значений граничной точки вы можете войти. Из списка Source of initial boundary points выберите User defined для того, чтобы активировать этот параметр.

Stopping criteria

Выберите Relative threshold ввести максимальное приемлемое дробное понижение ошибки квантования в квадрате. Выберите Maximum iteration задавать количество итераций, в которых можно остановиться. Выберите Whichever comes first и блок останавливает процесс итерации, как только относительный порог или максимальное значение итерации достигнуты.

Relative threshold

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

Maximum iteration

Введите максимальный номер итераций, которые вы хотите, чтобы блок выполнил. Из списка Stopping criteria выберите Maximum iteration для того, чтобы активировать этот параметр.

Searching methods

Выберите Linear search использовать линейный метод поиска при сравнении обучения указывает на граничные точки. Выберите Binary search использовать метод двоичного поиска при сравнении обучения указывает на граничные точки.

Tie-breaking rules

Когда учебная точка найдется на граничной точке, выберите Lower indexed codeword присваивать учебную точку ниже индексируемой области квантования. Выберите Higher indexed codeword присваивать учебную точку более высокой индексируемой области.

Design and Plot

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

Необходимо нажать Design and Plot, чтобы применить любые изменения, которые вы вносите в значения параметров в СКДТОЛЕ ГИ.

Export Outputs

Нажмите эту кнопку или нажмите Ctrl+E, чтобы экспортировать Final Codebook, Final Boundary Points и значения Error к рабочей области, текстовому файлу или MAT-файлу.

Destination

Выберите Current model чтобы создать блок Scalar Quantizer в модели, вы последний раз выбрали. Введите gcs в Окне Команды MATLAB, чтобы отобразить имя вашей текущей модели. Выберите New model создать блок в новом файле модели.

Block type

Выберите Encoder спроектировать блок Scalar Quantizer Encoder. Выберите Decoder спроектировать блок Scalar Quantizer Decoder. Выберите Both спроектировать блок Scalar Quantizer Encoder и блок Scalar Quantizer Decoder.

Encoder block name

Введите имя для блока Scalar Quantizer Encoder.

Decoder block name

Введите имя для блока Scalar Quantizer Decoder.

Overwrite target block(s)

Когда вы не устанавливаете этот флажок, и блок Scalar Quantizer Encoder и/или Decoder с тем же именем блока существует в целевой модели, новый блок Scalar Quantizer Encoder и/или Decoder создается в целевой модели. Когда вы устанавливаете этот флажок, и блок Scalar Quantizer Encoder и/или Decoder с тем же именем блока существует в целевой модели, параметры этих блоков перезаписываются новыми параметрами.

Generate Model

Нажмите эту кнопку, и SQDTool использует параметры, которые соответствуют текущим графикам установить параметры Скалярных блоков Энкодера и/или Декодера Квантизатора.

Ссылки

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

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

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

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

Генерация кода C/C++
Генерация кода C и C++ с помощью Simulink® Coder™.

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