CORDIC. COordinate Rotation DIgital Computer



Documents pareils
NOMBRES COMPLEXES. Exercice 1 :

Cours de Mécanique du point matériel

Représentation géométrique d un nombre complexe

Exercice 1 Trouver l équation du plan tangent pour chaque surface ci-dessous, au point (x 0,y 0,z 0 ) donné :

Angles orientés et fonctions circulaires ( En première S )

1 radian. De même, la longueur d un arc de cercle de rayon R et dont l angle au centre a pour mesure α radians est α R. R AB =R.

STATIQUE GRAPHIQUE ET STATIQUE ANALYTIQUE

CHAPITRE XIII : Les circuits à courant alternatif : déphasage, représentation de Fresnel, phaseurs et réactance.

Planche n o 22. Fonctions de plusieurs variables. Corrigé

* très facile ** facile *** difficulté moyenne **** difficile ***** très difficile I : Incontournable

Oscillations libres des systèmes à deux degrés de liberté

I. Polynômes de Tchebychev

1 Complément sur la projection du nuage des individus

1S Modèles de rédaction Enoncés

Michel Henry Nicolas Delorme

Chapitre 0 Introduction à la cinématique

F411 - Courbes Paramétrées, Polaires

Chapitre 1 Cinématique du point matériel

TOUT CE QU IL FAUT SAVOIR POUR LE BREVET

Exercices - Nombres complexes : corrigé. Formes algébriques et trigonométriques, module et argument

Rappels et compléments, première partie : Nombres complexes et applications à la géométrie

Angles orientés et trigonométrie

SOMMAIRE. 1. Préambule Le calendrier Trajectoire d un objet lancé Régression linéaire...9

Nathalie Barbary SANSTABOO. Excel expert. Fonctions, simulations, Groupe Eyrolles, 2011, ISBN :

Mesure d angles et trigonométrie

Cours de tracés de Charpente, Le TRAIT

LE PRODUIT SCALAIRE ( En première S )

Corrigé du baccalauréat S Pondichéry 12 avril 2007

Chafa Azzedine - Faculté de Physique U.S.T.H.B 1

Introduction. Mathématiques Quantiques Discrètes

* très facile ** facile *** difficulté moyenne **** difficile ***** très difficile I : Incontournable T : pour travailler et mémoriser le cours

Correction de l examen de la première session

CHAPITRE 10. Jacobien, changement de coordonnées.

Python - introduction à la programmation et calcul scientifique

FONCTIONS DE PLUSIEURS VARIABLES (Outils Mathématiques 4)

Limites finies en un point

Exercices Corrigés Premières notions sur les espaces vectoriels

INF6304 Interfaces Intelligentes

3 Approximation de solutions d équations

Optimisation non linéaire Irène Charon, Olivier Hudry École nationale supérieure des télécommunications

aux différences est appelé équation aux différences d ordre n en forme normale.

DURÉE DU JOUR EN FONCTION DE LA DATE ET DE LA LATITUDE

C est un mouvement plan dont la trajectoire est un cercle ou une portion de cercle. Le module du vecteur position OM est constant et il est égal au

Exercices - Fonctions de plusieurs variables : corrigé. Pour commencer

Cours IV Mise en orbite

L ANALYSE EN COMPOSANTES PRINCIPALES (A.C.P.) Pierre-Louis GONZALEZ

ÉVALUATION FORMATIVE. On considère le circuit électrique RC représenté ci-dessous où R et C sont des constantes strictement positives.

Exercices - Polynômes : corrigé. Opérations sur les polynômes

Exprimer ce coefficient de proportionnalité sous forme de pourcentage : 3,5 %

Calcul intégral élémentaire en plusieurs variables

Représentation d un nombre en machine, erreurs d arrondis

Erratum de MÉCANIQUE, 6ème édition. Introduction Page xxi (milieu de page) G = 6, m 3 kg 1 s 2

= 1 si n = m& où n et m sont souvent des indices entiers, par exemple, n, m = 0, 1, 2, 3, 4... En fait,! n m

Enoncé et corrigé du brevet des collèges dans les académies d Aix- Marseille, Montpellier, Nice Corse et Toulouse en Énoncé.

Statistique Descriptive Multidimensionnelle. (pour les nuls)

Voyez la réponse à cette question dans ce chapitre.

10 leçon 2. Leçon n 2 : Contact entre deux solides. Frottement de glissement. Exemples. (PC ou 1 er CU)

Intégrales doubles et triples - M

Auto-Entreprise : Activités : Eric SOTY - Siret n Formation Bureautique, continue d'adultes. Tél : Fax :

I - PUISSANCE D UN POINT PAR RAPPORT A UN CERCLE CERCLES ORTHOGONAUX POLES ET POLAIRES

Programmes des classes préparatoires aux Grandes Ecoles

Géométrie dans l espace Produit scalaire et équations

Traitement du signal avec Scilab : la transformée de Fourier discrète

Cours 7 : Utilisation de modules sous python

Corrigé du baccalauréat S Asie 21 juin 2010

L'analyse des données à l usage des non mathématiciens

Calcul différentiel sur R n Première partie

SYSTÈMES ASSERVIS CORRECTION

Fonctions de plusieurs variables. Sébastien Tordeux

Proposition de programmes de calculs en mise en train

Propriétés électriques de la matière

TD1 Signaux, énergie et puissance, signaux aléatoires

1.1.1 Signaux à variation temporelle continue-discrète

Nombres complexes. cours, exercices corrigés, programmation

Fonctions de plusieurs variables

A. Benali Objectifs du cours

CHAPITRE. Le mouvement en deux dimensions CORRIGÉ DES EXERCICES

LE PHYSICIEN FRANCAIS SERGE HAROCHE RECOIT CONJOINTEMENT LE PRIX NOBEL DE PHYSIQUE 2012 AVEC LE PHYSICIEN AMERCAIN DAVID WINELAND

Annexe 1 Programmes des classes préparatoires aux Grandes Ecoles

Correction du Baccalauréat S Amérique du Nord mai 2007

ÉPREUVE COMMUNE DE TIPE Partie D

4. NOMBRES COMPLEXES ET TRIGONOMÉTRIE

* très facile ** facile *** difficulté moyenne **** difficile ***** très difficile I : Incontournable T : pour travailler et mémoriser le cours.

Rupture et plasticité

Développements limités

Capes Première épreuve

TD de Physique n o 1 : Mécanique du point

Mathématiques et petites voitures

Calcul Formel et Numérique, Partie I

Image d un intervalle par une fonction continue

Nombre dérivé et tangente

Automatique (AU3): Précision. Département GEII, IUT de Brest contact:

Programme de la classe de première année MPSI

Cinétique et dynamique des systèmes de solides

UEO11 COURS/TD 1. nombres entiers et réels codés en mémoire centrale. Caractères alphabétiques et caractères spéciaux.

Repérage d un point - Vitesse et

Calculatrices BA II PLUS / BAII PLUS PROFESSIONAL

1 Définition. 2 Systèmes matériels et solides. 3 Les actions mécaniques. Le système matériel : Il peut être un ensemble.un sous-ensemble..

Le Modèle Linéaire par l exemple :

Résolution de systèmes linéaires par des méthodes directes

Transcription:

CORDIC COordinate Rotation DIgital Computer 1

Si vous voulez vous amuser Tout le matériel de cette présentation (ppt, fichiers Matlab, etc.) se trouve ici : ProfAEtudiants 1280 Projet I Inf Cordic 2

Historique 1959 Jack E. Volder 1971 Algorithme implanté dans la HP35 3

Convention Pour les grandeurs données sous forme cartésienne, nous considérerons indifféremment un nombre complexe z et son image vectorielle Oz. x z = x + j Oz = 4

Applications de Cordic Mode rotation (ou polaire -> cartésien) x + j = (x 0 + j 0 ) e jϕ (rotation simple) cos(ϕ) + j sin(ϕ) = (1 + j 0) e jϕ (calcul de sin et cos) On obtient : cos, sin et par extension tg Mode vectoriel (ou cartésien -> polaire) ϕ = arg(x + j ) et r = sqrt(x 2 + 2 ) (calcul de r et ϕ) On obtient : r et arctg 5

Idée principale Pour les deux modes, Cordic se décompose en rotations successives. Exemple avec n=18 : n = 0 ϕ0 = atan(1) n = 1 ϕ1 = atan(1/2) n = 2 ϕ2 = atan(1/4) n = 16 ϕ17 = atan(1/2 16 ) n = 17 ϕ17 = atan(1/2 17 ) x 0 Rotation ± 45 o x 1 Rotation ± 26.565 o x 2 Rotation ± 14.036 o Rotation ± 0.0009 o x 17 Rotation ± 0.0004 o x 18 On a 2 18 angles possibles pour -99 o < γ < 99 o avec une résolution finale de ±0.0004 o

Un peu de théorie 7

Mode rotation Rotation d un angle ϕ, formule matricielle. ( ϕ) sin ( ϕ) ( ϕ) cos( ϕ) xn+ 1 cos xn = sin n+ 1 n (x n+1, n+1 ) T ϕ (x n, n ) T x On met cos(ϕ) en évidence ( ϕ) xn+ 1 1 tg xn = cos( ϕ ) tg( ϕ) 1 n+ 1 n On exprime cos(ϕ) en fonction de tg(ϕ) ( ) ( ϕ) xn+ 1 1 1 tg xn = 1 tg tg( ϕ) 1 2 n+ 1 + ϕ n Attention : ϕ ± π/2 8

Mode rotation Toute l astuce de Cordic se situe ici : on s arrange pour avoir les valeurs tg(ϕ n )= 2 -n pour n = 0 N-1. 1 1 1 tg 2 1; ; ; ;... arctg 2 45 ;26.565 ;14.036 ;7.125 ;... 2 4 8 n n o o o o ( ϕ n) = = ϕ n = ( ) = { } Par la suite, il faudra pouvoir effectuer des rotations positives et négatives. On tient compte de ce fait dans le signe de tg(ϕ n ). On pose σ = 1 pour une rotation positive et σ = -1 pour une rotation négative. On reprend la formule précédente avec ce principe. x 1 σ 2 n n+ 1 1 n = 2n n n+ 1 σ 2 1 n 1+ 2 9 x

Mode rotation On développe la multiplication matricielle x 1 σ 2 n n+ 1 1 n = 2n n n+ 1 σ 2 1 n 1+ 2 x x 1 = K +σ 2 avec K = n+ 1 n n n n n 2n n 1 n x + n 1+ 2 x x n n n Les vecteurs et 2 sont orthogonaux. n σ xn Le facteur K n est un peu embêtant. Il faudra bien en tenir compte à un moment ou à un autre. Pour le moment on le néglige. L effet désagréable est qu avec cet «oubli», le module du vecteur augmente à chaque rotation. 10

Mode rotation, exemple Si on veut effectuer une rotation d un angle quelconque γ, on va décomposer γ en une combinaison de σ ϕ n et effectuer les rotations correspondantes. Illustrons ce principe par un exemple. On veut effectuer une rotation de γ = 64.654 o degrés au vecteur (1 0) T. On note : 64.654 o = 45 o + 26.565 o 14.036 o + 7.125 o On devrait s en sortir avec 4 rotations : trois positives et une négative. 11

Mode rotation, exemple v 2 1 v 1 1 v 1 +45 o +26.6 o 1 v 0 v 2 v 4 v 3 v 3 1 1 1 +7.1 o -14 o 64.654 o 1 1 12

Mode rotation, exemple Itération 1 (γ 0 = 64.654 o, ϕ 0 = 45 o ) γ > 0 σ= 1 γ =γ ϕ = 19.654 0 1 0 0 x1 1 0 1 = 1 K1 0.707 + = = 1 0 1 1 o Itération 2 (γ 1 = 19.654 o, ϕ 1 = 26.565 o ) γ > 0 σ= 1 γ =γ ϕ = 6.911 1 2 1 1 x2 1 1 1 0.5 = K2 0.894 + = = 2 1 2 1 1.5 o Itération 3 (γ 2 = -6.911 o, ϕ 2 = 14.036 o ) γ < 0 σ= 1 γ =γ +ϕ = 7.125 2 3 2 2 x3 0.5 1 1.5 0.875 = K3 0.97 = = 3 1.5 4 0.5 1.375 o Itération 4 (γ 3 = 7.125 o, ϕ 3 = 7.125 o ) γ > 0 σ= 1 γ =γ ϕ = 0 3 4 3 3 x4 0.875 1 1.375 0.703 = K4 0.992 + = = 4 1.375 8 0.875 1.484 o 13 On s arrête car γ 4 = 0

Mode rotation, exemple On n a pas tenu compte des facteurs K n. Du coup, le module du vecteur est devenu plus grand à chaque itération. Pour une rotation, ce n est pas acceptable. On corrige les facteurs K n tous en même temps. K tot = K1 K2 K3 K4 = 0.6088 On reprend : ( γ) ( γ) xcorr x4 0.703 0.428 cos = K tot = 0.6088 = = corr 4 1.484 0.904 sin 14

Mode rotation, exemple Ce facteur K=0.6088 est toujours le même, quels que soient l angle γ et les valeurs σ n. Il ne dépend que du nombre d itérations (dans notre cas N=4). Ceci est dû au fait que les vecteurs additionnés sont toujours orthogonaux. Si on veut calculer sin et cos, on va s épargner la dernière multiplication en démarrant de manière intelligente. Au lieu de partir avec le vecteur (1 0) T, on va partir avec le vecteur (0.6088 0) T. Le slide suivant montre un exemple réel. Pour la rotation d un vecteur quelconque, on est obligé de multiplier par K au début de la rotation ou à la fin. 15

Mode rotation, exemple Itération 1 (γ 0 = 64.654 o, ϕ 0 = 45 o ) γ > 0 σ= 1 γ =γ ϕ = 19.654 0 1 0 0 x1 0.6088 0 0.6088 = 1 + = 1 0 0.6088 0.6088 o Itération 2 (γ 1 = 19.654 o, ϕ 1 = 26.565 o ) γ > 0 σ= 1 γ =γ ϕ = 6.911 1 2 1 1 x2 0.6088 1 0.6088 0.3044 = + = 2 0.6088 2 0.6088 0.9132 o Itération 3 (γ 2 = -6.911 o, ϕ 2 = 14.036 o ) γ < 0 σ= 1 γ =γ +ϕ = 7.125 2 3 2 2 x3 0.3044 1 0.9132 0.5327 = = 3 0.9132 4 0.3044 0.8371 o Itération 4 (γ 3 = 7.125 o, ϕ 3 = 7.125 o ) γ > 0 σ= 1 γ =γ ϕ = 0 3 4 3 3 x4 0.5327 1 0.8371 0.4281 = + = 4 0.8371 8 0.5327 0.9037 o 16 - La dernière valeur x 4 est la valeur approchée du cosinus - La dernière valeur 4 est la valeur approchée du sinus

Mode rotation, exemple 17

Tableau Nombre d'itérations N Rotation ϕ n Correction K 1 45 deg 0.707106781 2 26.56505118 deg 0.632455532 3 14.03624347 deg 0.613571991 4 7.125016349 deg 0.608833913 5 3.576334375 deg 0.607648256 6 1.789910608 deg 0.60735177 7 0.89517371 deg 0.607277644 8 0.447614171 deg 0.607259112 9 0.2238105 deg 0.607254479 10 0.111905677 deg 0.607253321 11 0.055952892 deg 0.607253032 12 0.027976453 deg 0.607252959 13 0.013988227 deg 0.607252941 14 0.006994114 deg 0.607252937 15 0.003497057 deg 0.607252935 16 0.001748528 deg 0.607252935 17 0.000874264 deg 0.607252935 18 0.000437132 deg 0.607252935 18 On constate que K tend vers une limite lorsque N -> inf. Après 18 itérations, la précision d itération est de 4 millièmes de degré! Important : γ lim = ϕ n 99 deg Cela signifie qu une rotation plus grande que ±γ lim est impossible. En pratique, si γ > 90 deg, on effectue la rotation en deux phases.

Réalisation FPGA InternalAngleBitNb XYBitNb InternalXYBitNb ϕ 0 d 0 ϕ 1 d 1 ϕ 2 ϕ N-1 d N-1 d 2 XYBitNb x Analse γ>π/2 K correction x 0 0 γ γ 0 Rotation nb 1 x 1 1 γ 1 Rotation nb 2 x 2 2 γ 2 Rotation nb 3 Rotation nb N x N N Arrondi x AngleBitNb InternalAngleBitNb CORDIC, mode rotation, schéma d implantation FPGA 19

Mode vectoriel Le mode vectoriel permet de calculer arctg avec une grande précision. La manœuvre consiste à effectuer des rotations successives sur un vecteur jusqu à ce que sa partie imaginaire soit nulle : r + j 0 = (x 0 + j 0 ) e -jγ Lorsque ceci est terminé, on connaît γ qui correspond à l addition de tous les σ ϕ n successifs et on connaît r qui est la partie réelle du vecteur final. Si le module r n est pas recherché, on ne corrige pas K. 20

Mode vectoriel, exemple Illustrons le principe par un exemple. On aimerait connaître le module et la phase du vecteur 16 + 40 j 21

Mode vectoriel, exemple 40 v 0-45 o 40 v 1 v 1-26.6 o 40 40 v 2 40 40 +14 o v -7.1 o 3 v 3 v 4 40 v 2 22 40

Mode vectoriel, exemple Itération 1 (γ 0 = 0 o, ϕ 0 = 45 o ) im(z ) > 0 σ= 1 γ =γ +ϕ = 45 0 1 0 0 x1 16 40 56 = 1 = 1 40 16 24 o Itération 2 (γ 1 = 45 o, ϕ 1 = 26.565 o ) im(z ) > 0 σ= 1 γ =γ +ϕ = 71.565 1 2 1 1 x2 56 1 24 68 = = 2 24 2 56 4 o Itération 3 (γ 2 = 71.565 o, ϕ 2 = 14.036 o ) im(z ) < 0 σ= 1 γ =γ ϕ = 57.629 2 3 2 2 x3 68 1 4 69 = + = 3 4 4 68 13 o Itération 4 (γ 3 = 57.629 o, ϕ 3 = 7.125 o ) im(z ) > 0 σ= 1 γ =γ +ϕ = 64.654 3 4 3 3 x4 69 1 13 70.625 = = 4 13 8 69 4.375 23 o Il manque à l évidence quelques itérations pour être vraiment précis. On a un angle approché de 64.654 o et un raon approché r = 70.625 K 43.

Mode vectoriel, exemple Exemple avec N = 18 24

Mode vectoriel, limitation Comme pour le mode de rotation, le mode vectoriel comporte une limitation. Le vecteur doit être dans les quadrants Q1 et Q4 du plan cartésien. Q2 Q1 x Q3 Q4 Pour un vecteur situé dans Q2 ou Q3, l adaptation est facile. 25

Réalisation FPGA InternalAngleBitNb InternalXYBitNb ϕ 0 d 0 ϕ 1 d 1 ϕ 2 ϕ N-1 d N-1 x Analse de quadrant x 0 0 γ 0 = 0 Rotation nb 1 x 1 1 γ 1 Rotation nb 2 x 2 2 γ 2 Rotation nb 3 d 2 Rotation nb N x N ϕ N K Arrondi Arrondi Quadrant r ϕ XYBitNb q 0 (2 bits) InternalAngleBitNb z -1 z -1 z -1 z -1 z -1 AngleBitNb q CORDIC, mode vectoriel, schéma d implantation FPGA 26

DEMOS 27