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

 
 
> вычисление квадратного корня на tms320f2812
alexsl
сообщение May 7 2008, 12:31
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 42
Регистрация: 8-02-07
Пользователь №: 25 165



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

unsigned int sqrt_user(unsigned long x){
unsigned long m = 0x40000000;
unsigned long y = 0;
unsigned long b;
while(m){
b = y | m;
y >>= 1;
if( x >= b ){
x -= b;
y |= m;
}
m >>= 2;
}
return y;
}

Получилось 400 циклов. Пробовал Cordic алгоритм. Еще больше получается.
Может быть есть у кого реализация, позволяющая уложится в 100 - 160 тактов?

Сообщение отредактировал alexsl - May 7 2008, 12:32
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
ATname
сообщение May 7 2008, 16:07
Сообщение #2


Участник
*

Группа: Свой
Сообщений: 60
Регистрация: 4-04-06
Пользователь №: 15 797



Цитата(alexsl @ May 7 2008, 16:31) *
Добрый день. При построении FSK демодулятора встретился с проблемой. Очень долго вычисляется квадратный корень. Пробовал аппаратную реализацию, как самую быструю:

unsigned int sqrt_user(unsigned long x){
unsigned long m = 0x40000000;
unsigned long y = 0;
unsigned long b;
while(m){
b = y | m;
y >>= 1;
if( x >= b ){
x -= b;
y |= m;
}
m >>= 2;
}
return y;
}

Получилось 400 циклов. Пробовал Cordic алгоритм. Еще больше получается.
Может быть есть у кого реализация, позволяющая уложится в 100 - 160 тактов?

Есть такая "штука", называется сплайн функция. Вычисление квадратного корня апроксимируется полиномом нужного (в зависимости от точности рассчета) порядка. Обычно третьего за глаза хватает. Формула на работе валяется...
Go to the top of the page
 
+Quote Post
alexsl
сообщение May 8 2008, 03:56
Сообщение #3


Участник
*

Группа: Участник
Сообщений: 42
Регистрация: 8-02-07
Пользователь №: 25 165



Цитата(ATname @ May 7 2008, 20:07) *
Есть такая "штука", называется сплайн функция. Вычисление квадратного корня апроксимируется полиномом нужного (в зависимости от точности рассчета) порядка. Обычно третьего за глаза хватает. Формула на работе валяется...

Поделитесь пожалуйста. Заранее благодарен. smile.gif
Go to the top of the page
 
+Quote Post

Сообщений в этой теме


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

 


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


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