Лучший способ программирования кусочно-линейной функции на DSP TMS320C5509 - PullRequest
0 голосов
/ 23 декабря 2009

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

y = f (x)

  1. Рассчитать индекс n в таблице, используя x
  2. Получите Yn и Yn + 1, вычислите линейную интерполяцию Y

Y - ответ.

Так что я думаю, должен быть более эффективный метод, не могли бы вы указать мне?

Ответы [ 2 ]

1 голос
/ 24 декабря 2009

В зависимости от количества и распределения пар вы можете вместо этого хранить таблицу T, содержащую только значения Y через равные промежутки времени. Выберите интервал, равный степени 2: i = 2 ^ c. Тогда для данного X:

n=X>>c;
Y= T[n]
Y+= ((T[n+1]-T[n])* (X&(i-1))>>c;

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

0 голосов
/ 24 декабря 2009

Используйте бинарный поиск для шага 1.

РЕДАКТИРОВАТЬ: из-за комментария, который вы добавили впоследствии, это не является необходимым, так как ваши интервалы равны.

...