Визуализируйте различия между результатами и фиксированной точки с плавающей точкой

Этот пример показывает, как сконфигурировать приложение Fixed-Point Converter, чтобы использовать пользовательскую функцию построения графика, чтобы сравнить поведение сгенерированной фиксированной точки против поведения исходного кода MATLAB® с плавающей точкой.

По умолчанию, когда опция Log inputs and outputs for comparison plots включена, процесс преобразования использует основанную на временных рядах функцию построения графика, чтобы показать результаты и фиксированной точки с плавающей точкой и различие между ними. Однако во время преобразования фиксированной точки вы можете хотеть визуализировать числовые различия в представлении, которое более подходит для вашего домена приложения. Этот пример показывает, как настроить графический вывод и произвести графики рассеивания на тестовом шаге численных данных преобразования фиксированной точки.

Предпосылки

Этот пример требует следующих продуктов:

Создайте новую папку и скопируйте соответствующие файлы

  1. Создайте локальную рабочую папку, например, c:\custom_plot.

  2. Изменитесь на папку docroot\toolbox\fixpoint\examples. В командной строке MATLAB, введите:

    cd(fullfile(docroot, 'toolbox', 'fixpoint', 'examples')) 

  3. Скопируйте myFilter.m, myFilterTest.m, plotDiff.m и файлы filterData.mat к вашей локальной рабочей папке.

    Это - лучшая практика, должен создать отдельный тестовый скрипт, чтобы сделать пред - и последующая обработка, такая как:

    • Загрузка входных параметров.

    • Подготовка входных значений.

    • Вывод результатов испытаний.

    Для получения дополнительной информации смотрите, Создают Тестовый файл.

    ВводИмяОписание
    Функциональный кодmyFilter.mФункция MATLAB точки входа
    Тестовый файлmyFilterTest.mСкрипт MATLAB, который тестирует myFilter.m
    Функция построения графикаplotDiff.mПользовательская функция построения графика
    MatfilefilterData.matДанные, чтобы отфильтровать.

 Функция myFilter

 myFilterTest Файл

 Функция plotDiff

Откройте приложение Fixed-Point Converter

  1. Перейдите к папке, которая содержит файлы для этого примера.

  2. На вкладке MATLAB Toolstrip Apps, под Code Generation, кликают по значку приложения.

Выберите Source Files

  1. Чтобы добавить точку входа функционируют myFilter к проекту, обзор к файлу myFilter.m, и затем нажать Open.

    По умолчанию приложение сохраняет информацию и настройки для этого проекта в текущей папке в файле с именем myFilter.prj.

  2. Нажмите Next, чтобы перейти к шагу Define Input Types.

    Экраны приложения myFilter.m для нарушений регулярной кодовой последовательности и проблем готовности преобразования фиксированной точки. Приложение не находит проблемы в myFilter.m.

Входные Define типы

  1. На странице Define Input Types, чтобы добавить myFilterTest как тестовый файл, обзор к myFilterTest.m, и затем нажать Open.

  2. Нажмите Autodefine Input Types.

    Приложение решает от тестового файла, что входным типом in является complex(double(1x1)).

  3. Нажмите Next, чтобы перейти к шагу Convert to Fixed Point.

Преобразуйте в фиксированную точку

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

  2. Чтобы открыть диалоговое окно настроек, кликните по стрелке Settings.

    1. Проверьте, что Default word length установлен в 16.

    2. Под Advanced, набор Signedness к Signed

    3. Под Plotting and Reporting, набор Custom plot function к plotDiff.

  3. Кликните по стрелке Analyze. Проверьте, что тестовым файлом является myFilterTest.

  4. Нажмите Analyze.

    Тестовый файл, myFilterTest, запускается и минимум симуляции отображений приложения и максимальные области значений на вкладке Variables. Используя данные об области значений симуляции, программное обеспечение предлагает фиксированные точки для каждой переменной на основе настроек предложения по типу по умолчанию и отображает их в столбце Proposed Type.

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

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

Протестируйте численные данные и просмотрите графики сравнения

  1. Нажмите стрелку Test, выберите Log inputs and outputs for comparison plots, и затем нажмите Test.

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

  2. В настройках увеличьте DefaultWordLength до 24 и затем преобразуйте в фиксированную точку снова.

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

  3. Запуститесь тестовые численные данные продвигаются снова.

    Увеличенный размер слова улучшает результаты. На этот раз график показывает, что результаты фиксированной точки совпадают с результатами с плавающей точкой.

Похожие темы