Этот пример показывает, как сконфигурировать приложение 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
в фиксированную точку и предлагает типы данных фиксированной точки с помощью нового размера слова по умолчанию.
Запуститесь тестовые численные данные продвигаются снова.
Увеличенный размер слова улучшает результаты. На этот раз график показывает, что результаты фиксированной точки совпадают с результатами с плавающей точкой.