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

 
 
> непонятное поведение CORDIC алгортма
MKS
сообщение Jun 19 2009, 14:51
Сообщение #1


Местный
***

Группа: Свой
Сообщений: 469
Регистрация: 13-03-05
Пользователь №: 3 315



Здравствуйте увожаемые.
Изучил алгоритм по этому документу:Прикрепленный файл  CORDIC.zip ( 826.96 килобайт ) Кол-во скачиваний: 628
Написал скрипт для матлаба считающий значения sin и cos, все работает правильно за исключением точек кратных pi/4, в которых есть странные выбросы (см. рис.):
Прикрепленное изображение

Ктонибуть может объяснить наличие этих выбросов ?
Основная часть функции выполняющая операцию поворот для диапазона 0..pi/2:
Код
z(1)=phi2;
x(1)=1;
y(1)=0;
if (z(1)==0)
  sigma=1;
else
  sigma=sign(z(1));
end
for i=1:k
  x(i+1) = x(i) - sigma*y(i)*2^(-i+1);
  y(i+1) = y(i) + sigma*x(i)*2^(-i+1);
  z(i+1) = z(i) - sigma*atan(2^(-i+1));
  sigma = sign(z(i+1));
end

Весь скрипт вот:Прикрепленный файл  src.zip ( 720 байт ) Кол-во скачиваний: 135
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов (1 - 2)
petrov
сообщение Jun 19 2009, 15:18
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 2 220
Регистрация: 21-10-04
Из: Balakhna
Пользователь №: 937



Сделайте в цикле то же что и во всех остальных местах вы сделали с sign, ещё лучше напишите свою функцию sign.
Go to the top of the page
 
+Quote Post
MKS
сообщение Jun 19 2009, 16:28
Сообщение #3


Местный
***

Группа: Свой
Сообщений: 469
Регистрация: 13-03-05
Пользователь №: 3 315



Да действительно с sign это я упустил, исправил и все заработало как надо. Большое спасибо.
Go to the top of the page
 
+Quote Post

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

 


RSS Текстовая версия Сейчас: 21st July 2025 - 09:44
Рейтинг@Mail.ru


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