Оптимизация интерполяционной таблицы

Интерполяционная таблица функций является методом, с помощью которого можно аппроксимировать функцию с помощью таблицы с конечным числом точек (X, Y). Значения X интерполяционной таблицы называются точками останова. Вы аппроксимируете значение идеальной функции в точке путем интерполяции между двумя точками останова, ближайшими к точке. Поскольку поиски в таблице и простые оценки могут быть быстрее, чем математические вычисления функции, использование блоков интерполяционной таблицы часто приводит к увеличению скорости при симуляции модели.

Чтобы оптимизировать интерполяционные таблицы в вашей модели:

  • Ограничьте неравномерность интерполяционных таблиц.

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

  • Предотвратите равномерное распределение интерполяционных таблиц как неравномерное.

    Поиск положения в равномерно разнесенных интерполяционных таблицах происходит намного быстрее. В сложение интерполяция требует простого деления.

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

  • Используйте степень двойки разнесенных точек по оси Х в интерполяционных таблицах.

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

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

Параметр

Четная степень 2-х разнесенных данных

Равномерно разнесенные данные

Неравномерно разнесенные данные

Скорость выполнения

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

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

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

Ошибка

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

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

Ошибка может быть меньше, потому что для аппроксимации функции с неоднородной кривизной требуется меньше точек, чтобы достичь той же точности.

Использование ПЗУ

Использует меньше ПЗУ команд, но больше ПЗУ данных.

Использует меньше ПЗУ команд, но больше ПЗУ данных.

Использует больше командного ПЗУ, но меньше ПЗУ данных.

Использование оперативной памяти

Несущественный.

Несущественный.

Несущественный.

Используйте проверку Model Advisor Идентифицируйте сомнительные операции с фиксированной точкой, чтобы идентифицировать блоки интерполяционной таблицы, где существует потенциал для повышения эффективности.

Похожие темы