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

 
 
 
Reply to this topicStart new topic
> Трбуется быстрый алгоритм определения разности фаз
AndreyVCh
сообщение Jul 17 2008, 04:55
Сообщение #1





Группа: Новичок
Сообщений: 3
Регистрация: 26-06-08
Пользователь №: 38 560



Дамы и господа, помогите советом.
Требуется быстрый целочисленный алгоритм нахождения разности фаз двух комплексных чисел (или фазы комплексного числа). I и Q целые, 16 разрядные. Для результата достаточно 8 битной точности.
Выполняться будет на DSP 6400 серии от TI.
Go to the top of the page
 
+Quote Post
shf_05
сообщение Jul 17 2008, 09:17
Сообщение #2


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

Группа: Свой
Сообщений: 1 143
Регистрация: 22-04-08
Из: г. Екатеринбург
Пользователь №: 36 992



Цитата(AndreyVCh @ Jul 17 2008, 10:55) *
Дамы и господа, помогите советом.
Требуется быстрый целочисленный алгоритм нахождения разности фаз двух комплексных чисел (или фазы комплексного числа). I и Q целые, 16 разрядные. Для результата достаточно 8 битной точности.
Выполняться будет на DSP 6400 серии от TI.


найдите уголы чисел 1 и 2 и вычтите. понадобится вычислить пару-тройку тригонометрических функций, можно использовать разложение в ряд для вычисления триг. функций (по любому есть готовые подпрограммы или библиотеки на С !!!), вычитайте углы и радуйтесь жизни.
например
phi1= arctan(i1/q1),
phi1= arctan(i2/q2),
phi= phi1-phi2
можно и через sin, cos- см. триг. формулы.
и радуйтесь жизни.

если это Вам не подходит- попробуйте составить таблицу для разных значений IQ, где лежат готовые углы, считывайте их из памяти, вычитайте и радуйтесь жизни.
Go to the top of the page
 
+Quote Post
AndreyVCh
сообщение Jul 17 2008, 16:47
Сообщение #3





Группа: Новичок
Сообщений: 3
Регистрация: 26-06-08
Пользователь №: 38 560



Таблицу то я составил, да вот размером она 64K. Может найдется хитрый способ уменьшить ее размер?
Go to the top of the page
 
+Quote Post
alexr22b
сообщение Jul 17 2008, 20:22
Сообщение #4


Частый гость
**

Группа: Свой
Сообщений: 102
Регистрация: 11-10-04
Пользователь №: 849



Цитата(AndreyVCh @ Jul 17 2008, 19:47) *
Таблицу то я составил, да вот размером она 64K. Может найдется хитрый способ уменьшить ее размер?


Ключевое слово: CORDIC
Google it.
Go to the top of the page
 
+Quote Post
shf_05
сообщение Jul 18 2008, 05:01
Сообщение #5


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

Группа: Свой
Сообщений: 1 143
Регистрация: 22-04-08
Из: г. Екатеринбург
Пользователь №: 36 992



Цитата(AndreyVCh @ Jul 17 2008, 22:47) *
Таблицу то я составил, да вот размером она 64K. Может найдется хитрый способ уменьшить ее размер?

))))
а Вы как хотели!
можно
1. уменьшить ее размер за счет исключения "лишних" углов- Вы писали, что на выходе нужна 8битная точность- пойдите наоборот- составьте таблицу 8-ми битных чисел углов и рассчитайте соответствующие значения !&Q, после этого "причешите" ее, тк операция arctan нелинейна, то где-то углы будут "идти" с большим шагом, где-то с меньшим найдите минимальный шаг (ВАМ ПОВЕЗЛО, ЕСЛИ ОН БОЛЬШЕ 1 БИТА!!!). Составьте новую таблицу с таким шагом.
2, интерполируйте таблицу по х точкам, лежащим рядом с Вашим углом, например по 2-м- линейно, 3 и более- полиномом х-го порядка
3 считайте функцию arctan, не знаю сколько она по тактам, но на таком камне это будет все равно быстро
Go to the top of the page
 
+Quote Post
AndreyVCh
сообщение Aug 2 2008, 04:46
Сообщение #6





Группа: Новичок
Сообщений: 3
Регистрация: 26-06-08
Пользователь №: 38 560



Всем спасибо. Остановился на табличном варианте.
Go to the top of the page
 
+Quote Post
Andron_
сообщение Aug 6 2008, 11:11
Сообщение #7


.NET developer
***

Группа: Свой
Сообщений: 218
Регистрация: 20-10-07
Из: Новосибирск
Пользователь №: 31 532



а функция atan2 из библиотеки TI *забыл как она зовется то* не поможет?
на 5509а она выполняется примерно за 60...70 тактов на число.
Go to the top of the page
 
+Quote Post

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

 


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


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