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

В этом примере показано, как сконфигурировать приложение 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Пользовательская функция построения графика
    MAT-файлfilterData.matДанные для фильтрации.

 Функция myFilter

 Файл myFilterTest

 Функция plotDiff

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

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

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

Выбор исходных файлов

  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.

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

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

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

  3. Еще раз запустите шаг тестовых цифр.

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

Похожие темы