Скалярный проект квантизатора

Запустите Скалярный 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