Реализуйте свой алгоритм в MATLAB®.
Запишите тестовый файл, который вызывает ваш исходный алгоритм MATLAB, чтобы подтвердить поведение вашего алгоритма.
Создайте тестовый файл, чтобы подтвердить это, алгоритм работает как ожидалось в плавающей точке прежде, чем преобразовать его в фиксированную точку. Используйте тот же тестовый файл, чтобы предложить типы данных с фиксированной точкой. После преобразования используйте этот тестовый файл, чтобы сравнить результаты фиксированной точки с базовой линией с плавающей точкой.
Подготовьте алгоритм к инструментированию.
Запишите функцию точки входа.
Для инструментирования и генерации кода, удобно иметь функцию точки входа, которая вызывает функцию, которая будет преобразована в фиксированную точку. Можно бросить входные параметры функции к различным типам данных и добавить вызовы различных изменений алгоритма для сравнения. При помощи функции точки входа можно запустить и фиксированную точку и варианты с плавающей точкой алгоритма. Можно также запустить различные варианты фиксированной точки. Этот подход позволяет вам выполнять итерации на вашем коде более быстро, чтобы прибыть в оптимальный проект фиксированной точки.
Создайте оснащенный MEX для исходного алгоритма MATLAB.
Запустите свой исходный алгоритм MATLAB, чтобы регистрировать данные min / макс. данные. Просмотрите эти данные в отчете инструментирования.
Отдельные типы данных из алгоритма.
Преобразуйте функции, чтобы использовать таблицы типов и обновить функцию точки входа.
Подтвердите измененную функцию.
Составьте таблицу фиксированных точек на основе предложенных типов данных.
Создайте MEX-функцию.
Запустите и сравните поведение MEX-функции с базовой линией.
Используйте предложенные типы данных с фиксированной точкой.
Составьте таблицу фиксированных точек на основе предложенных типов данных, создайте mex, запуск, и затем сравните с базовой линией.
Опционально, если имеют лицензию MATLAB Coder™, генерируют код.
Запустите путем тестирования нативных C-типов.
Выполните итерации, алгоритм мелодии.
Например, настройте алгоритм, чтобы избежать переполнения или устранить смещение.