exponenta event banner

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

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

Откройте приложение конвертера с фиксированной точкой

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

  2. На вкладке Приложения MATLAB Toolstrip в разделе Создание кода щелкните значок приложения.

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

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

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

  2. Нажмите кнопку Далее (Next), чтобы перейти к шагу Определить типы ввода (Define Input Types).

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

Определение типов ввода

  1. На странице Определить типы ввода (Define Input Types), чтобы добавить myFilterTest в качестве тестового файла перейдите к myFilterTest.mи нажмите кнопку Открыть.

  2. Щелкните Автоопределить типы ввода (Autodefine Input Types).

    Приложение определяет из тестового файла тип ввода in является complex(double(1x1)).

  3. Нажмите кнопку Далее (Next), чтобы перейти к шагу Преобразовать в фиксированную точку (Convert to Fixed Point).

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

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

  2. Чтобы открыть диалоговое окно параметров, щелкните стрелку «Параметры».

    1. Убедитесь, что для параметра Длина слова по умолчанию задано значение 16.

    2. В разделе «Дополнительно» установите для параметра «Подпись» значение Signed

    3. В разделе «Печать и отчеты» задайте для параметра «Пользовательская функция печати» значение plotDiff.

  3. Щелкните стрелку Анализ (Analyze). Убедитесь, что тестовый файл myFilterTest.

  4. Щелкните Анализ (Analyze).

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

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

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

Тестовые цифры и графики сравнения видов

  1. Щелкните стрелку Тест (Test), выберите Вход и вывод журнала (Log inputs and outputs for comparison plots), а затем щелкните Тест (test

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

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

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

  3. Снова запустите шаг с номерами тестов.

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

Связанные темы