Рабочий процесс ручного преобразования фиксированной точки

  1. Реализуйте свой алгоритм в MATLAB®.

  2. Напишите тестовый файл, который вызывает ваш исходный алгоритм MATLAB, чтобы подтвердить поведение вашего алгоритма.

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

  3. Подготовим алгоритм для инструментирования.

  4. Написание функции точки входа.

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

  5. Создайте MEX с инструментами для исходного алгоритма MATLAB.

  6. Запустите свой исходный алгоритм MATLAB, чтобы логгировать данные min/max. Просмотрите эти данные в инструментирование отчете.

  7. Отделите типы данных от алгоритма.

    Преобразуйте функции в таблицы типов и обновляйте функцию точки входа.

  8. Проверьте измененную функцию.

    1. Составьте таблицу фиксированных точек на основе предложенных типов данных.

    2. Создайте MEX-функцию.

    3. Запустите и сравните поведение MEX-функции с базовым уровнем.

  9. Используйте предлагаемые типы данных с фиксированной точкой.

    Создайте таблицу фиксированных точек на основе предложенных типов данных, создайте mex, запустите, а затем сравните с базовым уровнем.

  10. При необходимости, если у вас есть лицензия MATLAB Coder™, сгенерируйте код.

    Начните с тестирования собственных C-типов.

  11. Итерация, алгоритм настройки.

    Для примера настройте алгоритм, чтобы избежать переполнения или исключить смещение.