Этот пример показывает, как сконфигурировать приложение MATLAB® Coder™, чтобы использовать пользовательскую функцию plot, чтобы сравнить поведение сгенерированной фиксированной точки против поведения исходного кода MATLAB с плавающей точкой.
По умолчанию, когда вводы и выводы Журнала для опции графиков сравнения включены, процесс преобразования использует основанную на временном ряде функцию построения графика, чтобы показать результаты и фиксированной точки с плавающей точкой и различие между ними. Однако во время преобразования фиксированной точки вы можете хотеть визуализировать числовые различия в представлении, которое более подходит для вашего домена приложения. Этот пример показывает, как настроить графическое изображение и произвести графики рассеивания на тестовом шаге численных данных преобразования фиксированной точки.
Этот пример требует следующих продуктов:
MATLAB
Фиксированная точка Designer™
MATLAB CODER
Компилятор C
См. поддерживаемые компиляторы.
Можно использовать mex -setup, чтобы изменить компилятор по умолчанию. См. Компилятор Значения по умолчанию Изменения (MATLAB).
Создайте локальную рабочую папку, например, c:\custom_plot.
Изменитесь на папку docroot\toolbox\fixpoint\examples. В командной строке MATLAB войдите:
cd(fullfile(docroot, 'toolbox', 'fixpoint', 'examples'))
Скопируйте myFilter.m, myFilterTest.m, plotDiff.m и файлы filterData.mat к вашей локальной рабочей папке.
| Ввод | Имя | Описание |
|---|---|---|
| Функциональный код | myFilter.m | Функция MATLAB точки входа |
| Тестовый файл | myFilterTest.m | Скрипт MATLAB, который тестирует myFilter.m |
| Функция построения графика | plotDiff.m | Пользовательская функция plot |
| Matfile | фильтрация данных. циновка | Данные, чтобы отфильтровать. |
Перейдите к папке, которая содержит файлы для этого примера.
На вкладке MATLAB Toolstrip Apps, под Генерацией кода, кликают по значку приложения.
Чтобы добавить точку входа функционируют myFilter к проекту, обзор к файлу myFilter.m, и затем нажать Open.
По умолчанию приложение сохраняет информацию и настройки для этого проекта в текущей папке в файле с именем myFilter.prj.
Установите числовое преобразование в Convert to fixed point.

Нажмите Далее, чтобы перейти к Задавать Входному шагу Типов.
Экраны приложения myFilter.m для нарушений регулярной кодовой последовательности и проблем готовности генерации кода. Приложение не находит проблемы в myFilter.m m.
На странице Define Input Types, чтобы добавить myFilterTest как тестовый файл, обзор к myFilterTest.m, и затем нажать Open.
Нажмите Autodefine Input Types.
Приложение решает от тестового файла, что входным типом in является complex(double(1x1)).

Нажмите Далее, чтобы перейти к Проверке на шаг Проблем Во время выполнения.
Проверка на шаг Проблем Во время выполнения генерирует оснащенный MEX myFilter. Это запускает тестовый файл myFilterTest, заменяющий вызовы myFilter с вызовами сгенерированного MEX. Если приложение находит проблемы, оно предоставляет предупреждающие сообщения и сообщения об ошибке. Можно кликнуть по сообщению, чтобы подсветить проблематичный код в окне, где можно отредактировать код.
Просмотрите к тестовому файлу myFiltertest.m m.
Нажмите Check for Issues.
Приложение не обнаруживает проблемы.
Нажмите Далее, чтобы перейти к Преобразованию в шаг Фиксированной точки.
Отображения приложения скомпилировали информацию для переменных в вашем коде. Для получения дополнительной информации см. Просмотрите и измените переменную информациюПросмотрите и измените переменную информацию (Fixed-Point Designer).

Чтобы открыть диалоговое окно настроек, кликните по стрелке Настроек
.
Проверьте, что размер слова По умолчанию установлен в 16.
Под Усовершенствованным, набор, Со знаком к Signed
При Графическом изображении и Создании отчетов, наборе Пользовательская функция plot к plotDiff.
Нажмите стрелку Analyze
. Проверьте, что тестовым файлом является myFilterTest.
Нажмите Analyze.
Тестовый файл, myFilterTest, запускается и минимум моделирования отображений приложения и максимальные области значений на вкладке Variables. Используя данные области значений моделирования, программное обеспечение предлагает фиксированные точки для каждой переменной на основе настроек предложения по типу по умолчанию и отображает их в Предложенном столбце Типа.

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

Нажмите стрелку Test
, выберите вводы и выводы Log для графиков сравнения, и затем нажмите Test.
Выполнение приложения тестовый файл, что вы раньше задавали входные типы, чтобы протестировать фиксированную точку код MATLAB. Поскольку вы выбрали, чтобы регистрировать вводы и выводы для графиков сравнения и использовать пользовательскую функцию построения графика, plotDiff.m, для этих графиков, приложение использует эту функцию, чтобы сгенерировать график сравнения. График показывает, что результаты фиксированной точки тесно не совпадают с результатами с плавающей точкой.

В настройках увеличьте DefaultWordLength до 24 и затем преобразуйте в фиксированную точку снова.
Приложение преобразовывает myFilter.m в фиксированную точку и предлагает типы данных фиксированной точки с помощью нового размера слова по умолчанию.
Запуститесь тестовые численные данные продвигаются снова.
Увеличенный размер слова улучшает результаты. На этот раз график показывает, что результаты фиксированной точки совпадают с результатами с плавающей точкой.
