В этом примере показано, как сконфигурировать приложение Fixed-Point Converter, чтобы использовать пользовательскую функцию построения графика, чтобы сравнить поведение сгенерированной фиксированной точки против поведения исходного кода MATLAB® с плавающей точкой.
По умолчанию, когда опция Log inputs and outputs for comparison plots включена, процесс преобразования использует основанную на временных рядах функцию построения графика, чтобы показать результаты и фиксированной точки с плавающей точкой и различие между ними. Однако во время преобразования фиксированной точки вы можете хотеть визуализировать числовые различия в представлении, которое более подходит для вашего домена приложения. В этом примере показано, как настроить графический вывод и произвести графики рассеивания на тестовом шаге численных данных преобразования фиксированной точки.
Этот пример требует следующих продуктов:
MATLAB
Fixed-Point Designer™
Компилятор C
См. поддерживаемые компиляторы.
Можно использовать mex -setup изменить компилятор по умолчанию. См. Компилятор Значения по умолчанию Изменения.
Создайте локальную рабочую папку, например, 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 | Пользовательская функция построения графика |
| Matfile | filterData.mat | Данные, чтобы отфильтровать. |
Перейдите к папке, которая содержит файлы для этого примера.
На вкладке MATLAB Toolstrip Apps, под Code Generation, кликают по значку приложения.

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

Нажмите Next, чтобы перейти к шагу Convert to Fixed Point.
Приложение генерирует оснащенную MEX-функцию для вашей функции MATLAB точки входа. Отображения приложения скомпилировали информацию для переменных в вашем коде. Для получения дополнительной информации вид на море и Изменяет Переменную информацию.

Чтобы открыть диалоговое окно настроек, кликните по стреле Settings
.
Проверьте, что Default word length установлен в 16.
Под Advanced, набор Signedness к Signed
Под Plotting and Reporting, набор Custom plot function к plotDiff.
Кликните по стреле Analyze
. Проверьте, что тестовым файлом является myFilterTest.
Нажмите Analyze.
Тестовый файл, myFilterTest, запуски и минимум симуляции отображений приложения и максимум располагаются на вкладке Variables. Используя данные об области значений симуляции, программное обеспечение предлагает фиксированные точки для каждой переменной на основе настроек предложения по типу по умолчанию и отображает их в столбце Proposed Type.

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

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

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