algorithme Cordic pour atan()
Bonjour,
j'avais déja posté un post sur le sujet d'un algo pour trouver un arctan, on en avait conclut l'algorithm de Padé, cependant j'aimerais juste relancer le sujet sur l'algorithme de Cordic.
J'ai fais pas mal de recherche dessus j'ai l'impression que avec cette algo on peut calculer un atan :
j'ai trouver ca :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27
| I = 0;
x = 4; // Coordonnée x initiale
y = 4; // Coordonnée y initiale
a = 0;
d2 = 2; // Diviseur
for(i=0; i<15; i++)
{
d2/= 2; // Multiple de 2-i
dx=x*d2;
dy=y*d2;
da=atan(d2);
da=180*da/PI; // Pour une valeur en degré
if(y<0)
{
x -= dy;
y += dx;
a -= da;
}
else
{
x += dy;
y -= dx;
a += da; //La variable 'a' tend vers le résultat de l'arctan
}
} |
Je ne comprend pas déja pourquoi pour calculer un atan, dans l'algo il font appel a la fonction "atan" [da=atan(d2)]; (Si on fait un algo pour calculer cette fonction, ca suppose que l'on ne la possede pas).
Deuxiement je travail sous matlab/simulink pour l'instant, exist-il une toolbox, ou un script déja fait réalisant l'algo de Cordic pour arctan.
(le but final de mon application est sur un FPGA, et je suis amener a coder atan dans mon FPGA).
Merci pour votre aide