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

 
 
> Вопрос по вычислению atan(x) на Сortex 3
Vladimir_T
сообщение Oct 10 2013, 10:06
Сообщение #1


Знающий
****

Группа: Свой
Сообщений: 517
Регистрация: 7-02-06
Пользователь №: 14 073



Здравствуйте, уважаемые коллеги, подскажите, пожалуйста. Нужно в реальном времени на процессоре STM32F405 вычислять atan(x), сейчас на вычисление уходит 18 us, при частоте ядра 168 МГц, Keil 5.4, включена оптимизация по времени, включен FPU. Размещение кода в ОЗУ, видимо , не прибавит скорости, но все же попробую. Что еще можно придумать, кроме кардинальноого пересмотра алгоритма? Дайте совет из своего опыта.
Заранее благодарю.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Fat Robot
сообщение Oct 10 2013, 14:16
Сообщение #2


ʕʘ̅͜ʘ̅ʔ
*****

Группа: Свой
Сообщений: 1 008
Регистрация: 3-05-05
Пользователь №: 4 691



Из моего опыта: точность float (а тем более double) во многих случаях избыточна. Если это Ваш случай, то попробуйте перейти на fixed point. В этом случае даже fpu будет не нужен.

Реализацию
fract16 atan2_fr16 (fract16 y, fract16 x);
fract16 atan_fr16 (fract16 x);
для Q1.15 можно подсмотреть в библиотеке AD VisualDSP++. Там используется, насколько я помню, полиномиальная интерполяция.

Если процессор имеет операцию умножения, то в CORDICе нет смысла
Go to the top of the page
 
+Quote Post



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

 


RSS Текстовая версия Сейчас: 22nd August 2025 - 13:08
Рейтинг@Mail.ru


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