В этом примере показано, как сконфигурировать приложение 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 | Пользовательская функция построения графика |
| MAT-файл | filterData.mat | Данные для фильтрации. |
Перейдите к папке, которая содержит файлы для этого примера.
На вкладке Apps MATLAB Toolstrip, в разделе 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.
Приложение запускает тестовый файл, который вы использовали, чтобы задать входные типы для тестирования кода MATLAB с фиксированной точкой. Поскольку вы выбрали для регистрации входных и выходных параметров для графиков сравнения и использования пользовательской функции построения графика, plotDiff.mдля этих графиков приложение использует эту функцию, чтобы сгенерировать график сравнения. График показывает, что результаты с фиксированной точкой не соответствуют результатам с плавающей точкой.

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