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

В этом примере показано, как сконфигурировать приложение 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.

Определите входные типы

  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. Запуститесь тестовые численные данные продвигаются снова.

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

Похожие темы