реклама на сайте
подробности

 
 
> Табличное предстваление нелинейной функции - проблема точности
syoma
сообщение Jan 22 2014, 11:41
Сообщение #1


Профессионал
*****

Группа: Свой
Сообщений: 1 817
Регистрация: 14-02-07
Из: наших, которые работают за бугром
Пользователь №: 25 368



Народ - примитивный вопрос - вроде как в универе учил, а забыл как делается.

В общем есть такая функция:
y = (pi-0.5*((2.6829)*u.^(1/3)+0.1984*u+0.2602*u.^(5/3)))*(180/pi)
Для значений аргумента u от 0 до 1 она дает угол y от 180° до 90°. График данной функции представлен на рисунке.
Прикрепленное изображение

Так как вычислят нужно в ПЛИС и быстро - хотим сделать таблицу значений. Но проблема в том, что точность результата должна быть в пределах 0,1°, а как видно из графика в начале функции маленькие значения аргумента вызывают значительное изменение результата. В реале это 1/(2^29) для начальных значений. Ессно лепить таблицу с таким количеством записей нерентабельно и ессно при больших значениях аргумента точность будет избыточной. С другой стороны можно было бы сделать обратную таблицу с 900 записями и 29 битами входного параметра. Но тогда нужно сравнивать аргумент с каждым значением, а это в худшем случае 900 итераций. А хотелось бы одну.

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


Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
iosifk
сообщение Jan 22 2014, 11:47
Сообщение #2


Гуру
******

Группа: Модераторы
Сообщений: 4 011
Регистрация: 8-09-05
Из: спб
Пользователь №: 8 369



Цитата(syoma @ Jan 22 2014, 15:41) *
Я думаю есть более простые алгоритмы вычисления. Подскажите.

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


--------------------
www.iosifk.narod.ru
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 25th June 2025 - 11:24
Рейтинг@Mail.ru


Страница сгенерированна за 0.01397 секунд с 7
ELECTRONIX ©2004-2016