FR2632088A1 - Multiplieur de nombres complexes - Google Patents

Multiplieur de nombres complexes Download PDF

Info

Publication number
FR2632088A1
FR2632088A1 FR8906124A FR8906124A FR2632088A1 FR 2632088 A1 FR2632088 A1 FR 2632088A1 FR 8906124 A FR8906124 A FR 8906124A FR 8906124 A FR8906124 A FR 8906124A FR 2632088 A1 FR2632088 A1 FR 2632088A1
Authority
FR
France
Prior art keywords
digital data
data word
sign
output
real
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
FR8906124A
Other languages
English (en)
Other versions
FR2632088B1 (fr
Inventor
Matthew O'donnell
William Ernest Engeler
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
General Electric Co
Original Assignee
General Electric Co
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by General Electric Co filed Critical General Electric Co
Publication of FR2632088A1 publication Critical patent/FR2632088A1/fr
Application granted granted Critical
Publication of FR2632088B1 publication Critical patent/FR2632088B1/fr
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/49Computations with a radix, other than binary, 8, 16 or decimal, e.g. ternary, negative or imaginary radices, mixed radix non-linear PCM
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03CMODULATION
    • H03C3/00Angle modulation
    • H03C3/38Angle modulation by converting amplitude modulation to angle modulation
    • H03C3/40Angle modulation by converting amplitude modulation to angle modulation using two signal paths the outputs of which have a predetermined phase difference and at least one output being amplitude-modulated
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/4806Computations with complex numbers
    • G06F7/4812Complex multiplication
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/4806Computations with complex numbers
    • G06F7/4818Computations with complex numbers using coordinate rotation digital computer [CORDIC]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/544Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices for evaluating functions by calculation
    • G06F7/5446Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices for evaluating functions by calculation using crossaddition algorithms, e.g. CORDIC

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Nonlinear Science (AREA)
  • Complex Calculations (AREA)

Abstract

La présente invention concerne un sous-système CORDIC (calculateur numérique de rotation de coordonnées) pour multiplier deux nombres numériques complexes B et C, l'un de ces nombres étant la somme de parties de données réelle et imaginaire exprimées sous forme rectangulaire CR ou CI , et l'autre nombre pouvant être exprimé sous forme rectangulaire ou pouvant être représenté par des données d'amplitude exprimée sous forme polaire (B, ). Une partie CORDIC à N étages de forme récursive ou séquentielle mais exempte de multiplieurs est utilisée pour faire tourner les termes I et Q du premier nombre de l'angle de phase du nombre multiplieur de forme polaire de l'équivalent pris à partir de la forme rectangulaire. Les données calculées finales sont les parties réelle et imaginaire du produit AR , AI .

Description

MULTIPLIEUR COMPLEXE
La présente invention concerne un moyen de traitement arithmétique et plus particulièrement un nouveau moyen utilisant au moins un calculateur numérique de rotation de coordonnées (souvent désigné par le sigle CORDIC d'après l'expression anglo-saxonne COordinate Rotation Digital Computer) pour multiplier une paire de
nombres complexes.
Dans de nombreux types d'équipements électroniques modernes, des fonctions de traitement de signal de grande complexité relative telle qu'une détection par corrélation, une transformation de Fourier discrète et analogue, sont utilisées. L'élément fondamental de traitement de signal est une cellule à multiplication-accumulation; pour certains systèmes tels qu'une formation d'image par ultrasons utilisant un traitement de signal en bande de base et analogue, des signaux complètement complexes doivent être multipliés. Une multiplication complexe similaire de signaux électroniques peut se trouver dans de nombreuses autres disciplines de traitement de signal, tel que le radar, le sonar et analogue, et en particulier pour traiter des signaux numériques, notamment de type binaire. I1 est en conséquence très souhaitable de prévoir des moyens de signaux numériques pour effectuer une multiplication complexe d'une paire de signaux numériques, chacun représentant un nombre complexe de la forme
x+jy ou R, 8.
L'art antérieur enseigne l'utilisation d'un appareil et d'une technique dits CORDIC (COordinate Rotation Digital Computer) comme cela a été initialement décrit par J.E. Volder "The CORDIC Trigonometric Computing Technique", IRE Transactions on Electronic Computers EC-8 Pp 330-334, 1959. Il s'agit d'un système de calcul dans lequel une rotation d'un angle Opeut être représentée comme la somme de plusieurs rotations, chaque rotation se faisant selon l'un d'un ensemble particulier d'angles a de sorte que: n 6= l: La cî(1 i=l o i = +1 ou -1. En définissant al= 90 , alors an+2 = tan-l(2-n), n = 0, 1, 2,... (2) Ainsi, on réalise une approximation successive de l'angle total en utilisant toute une pluralité de n angles ai de sorte que chaque approximation plus fine de l'angle fournit des résultats en coordonnées rectangulaires xn+1 et Yn+l qui sont liés aux valeurs de coordonnées angulaires xn et Yn (pour l'approximation suivante plus grossière) par la paire d'équations: xn+i = K(O) (xn+iYn/2n) (3a) Yn+l = K(O) (yn-4ixn/2n) (3b) o K(e) est un facteur d'échelle égal à cos(0). Puisque chacun des facteurs 2-nr est effectivement une division par deux effectuée n fois, qui est assurée pour des nombres binaires par un décalage d'un bit pour chacun des n cas, la multiplication complexe peut, sauf pour la multiplication par le facteur de pondération K(<) (si nécessaire), être
effectuée par un ensemble de registres à décalage et d'additionneurs.
Il est très souhaitable de prévoir un nouvel appareil, utilisant cette technique de base CORDIC pour multiplier une paire de nombres complexes. Selon l'invention, un sous-système CORDIC actuellement préféré pour la multiplication de deux nombres complexe numérique B et C utilise: un moyen de rotateur CORDIC à N étages de type séquentiel, récursif ou pipeline, mais exempt de multiplieurs pour faire tourner chacune des parties de données réelle et imaginaire d'un premier nombre, exprimées sous forme rectangulaire (par exemple CR et CI) d'un angle de phase 0 de l'autre nombre exprimé sous forme polaire (par exemple IBI, 0). Après rotation, des moyens sont prévus pour effectuer une multiplication scalaire de chacune des parties de données de sortie réelles ou imaginaires du rotateur CORDIC par les données d'amplitude IBI de l'autre nombre. Les données finales calculées sont
les parties réelle et imaginaire du produit.
Dans un autre sous-système CORDIC actuellement préféré de multiplication de nombres complexes, chacun d'une paire de moyens rotateurs de phase récursifs ou séquentiels en pipeline agit sur les composantes réelles et imaginaires de premier et second nombres complexes de forme rectangulaire; la phase de chacun de ces nombres complexes est également amenée à tourner jusqu'à ce que le premier nombre ait un angle de phase égal à 0 comme cela est déterminer par un détecteur de signe, de sorte que la phase des données de sortie est égale à la somme des premier et second angles de phase des nombres complexes. Une multiplication scalaire des données de produit peut être utilisée, si nécessaire, pour déterminer le produit complexe total; dans de nombreux cas, tels que des calculs de corrélations statistiques et analogues, une accumulation des seules informations de phase précises est nécessaire et relativement peu de précision est utile pour les termes d'amplitude du produit pour autant que la précision de l'information de phase est maintenue. Chacun des multiplieurs scalaires, si on en utilise, peut être une section à
décalage et accumulation.
Ainsi, un objet de la présente invention est de prévoir de nouveaux circuits de type CORDIC pour multiplier une paire de valeurs
numériques complexes.
Ces objets et d'autres de la présente invention apparaitront
à la lecture de la description détaillée ci-après faite en relation
avec les figures jointes, parmi lesquelles: la figure 1 représente un schéma sous forme de blocs d'un premier type de multiplieur numérique complexe selon la présente invention,; la figure 2 est un schéma sous forme de blocs d'une variante de réalisation, actuellement préférée, d'un moyen CORDIC séquentiel ou pipeline destiné à être utilisé au lieu des moyens CORDIC récursifs représentés dans le multiplieur complexe de la figure 1; la figure 3 est un schéma sous forme de blocs d'un autre type de multiplieur numérique complexe selon la présente invention; les figures 3a et 3b sont des schémas vectoriels illustrant des concepts utiles à la compréhension du fonctionnement du multiplieur numérique complexe de la figure 3; et la figure 4 est un schéma sous forme de blocs du mode de réalisation actuellement préféré d'un moyen séquentiel ou pipeline pour réaliser la multiplication complexe dans l'appareil de la figure 3. Comme le représente la figure 1, un mode de réalisation particulier d'un multiplieur CORDIC numérique complexe 10 utilise un moyen multiplieur numérique CORDIC 11 et une paire de moyens de multiplication numérique scalaire 12. Un premier nombre complexe C est introduit sous sa forme à coordonnées rectangulaires avec un mot de données à composante CR d'axe réel à P bits, à l'entrée 10a connectée à une première entrée I lla du multiplieur CORDIC et un mot de données CI de composante selon l'axe imaginaire à P bits à une seconde entrée 0lb connectée à une seconde entrée Q llb du multiplieur. Chacun d'une paire de moyens de multiplication scalaire 12, si on en utilise, aura une première entrée de données 12-la ou 12-2a recevant des données respectivement à partir de la sortie 11f de données Q' d'axe imaginaire du moyen CORDIC ou de la sortie llg de donnée I' d'axe réel. Chacun des moyens 12 peut être un registre à décalage et un ensemble accumulateur, d'une façon bien connue dans le domaine du calcul des données numériques; comme une précision d'amplitude réduite peut être acceptable pour certaines tâches de calcul, les
composants des moyens 12 peuvent être à faible précision s'il y en a.
L'autre nombre complexe B est un produit sous forme de coordonnées polaires avec un mot de données à P bits pour une composante d'amplitude IBI à l'entrée 10c connectée aux secondes entrées 12-lb et 12-2b des deux moyens de multiplieurs de données scalaires et avec un mot de données de composante angulaire 0 à une entrée 10d. Un signal d'horloge périodique CLK est prévu à une autre entrée 10c. Les composantes réelle et imaginaire multipliées de façon scalaire de l'entrée vectorielle C sont ainsi fournies sous forme de données numériques à des sorties respectives 12-lc et 12-2c de premier et second moyens de multiplication scalaire. La sortie du multiplieur complexe fournit des termes séparés AR et AI sous forme rectangulaire, d'axe réel et d'axe imaginaire respectivement, du produit A à des bornes de sortie respectives 10g et 10f. Selon un autre aspect de la présente invention, le moyen multiplieur de données numériques CORDIC 11 est ou bien un multiplieur récursif, comme cela est représenté ici, en figure 1, ou bien un multiplieur pipeline (séquentiel), comme cela sera exposé en relation avec la figure 2. Chacun des mots de données I d'axe réel ou Q d'axe imaginaire respectivement introduit vers le moyen 11 apparait a l'entrée 14-la ou 14-2a, respectivement d'un premier ou d'un second moyen de sélection de signes 14-1 ou 14-2. Le signe, mais pas l'amplitude des données d'entrée est ou bien non affecté ou bien inversé (provoquant effectivement une multiplication par -1 selon l'état d'un signal de commande binaire de sélection de signes à une entrée de sélection de signe 14-lb ou 14-2b, respectivement. Les données numériques sélectionnées en signe, déterminant si une première
rotation est de +90 ou de -90 , apparaissent à la sortie 14-lc ou 14-
2c respectivement des moyens de signe 14-1 ou 14-2. Les moyens de sélection de signes peuvent être mis en oeuvre, comme cela est représenté dans le moyen de sélection de signe 14-1- en connectant l'entrée 14-la par l'intermédiaire de l'inverseur de bit de signe 16 vers une première entrée 18a d'un moyen MUX 18 de multiplexeur à deux entrées. Une seconde entrée du moyen MUX 18b reçoit le mot de données numérique du signe initial à partir de l'entrée 14-la. Selon l'état du signal binaire de sélection de signe à l'entrée de sélection 18c du moyen MUX, la sortie 18d (et la sortie du moyen 14-1c) est connectée ou bien à l'entrée de polarité initiale 18b ou bien à l'entrée inversée 18a. L'état binaire du signal de sélection de signe est déterminé par un moyen de contrôle de signe 20. Si le mot de données numérique d'entrée est représenté comme un nombre à complément à deux, le moyen d'inversion de signe et de multipexage peut être remplacé par une structure plus simple dans laquelle chaque bit du nombre d'entrée est connecté à une entrée d'une porte OU Exclusif (XOR) ayant son autre entrée connectée à l'entrée de sélection du MUX; le bit de sortie de chaque porte XOR est connecté séquentiellement à une entrée séquentielle associée d'une chaine d'additionneurs, ayant un bit de retenue pour ajouter i à la sortie XOR. Ainsi, le signal d'entrée de sélection de signe du MUX sélectionne ou bien le nombre d'entrée ou bien le négatif de cette entrée. Dans ce multiplieur CORDIC 11 à fonctionnement récursif à relativement faible vitesse, une pluralité de signaux de sélection de signe (ici, six) sont requis, chaque signal différent apparaissant à l'une différente des sorties du moyen de contrôle de signe (ici les sorties 20a-20f) en réponse à un mot de données de commande de signe fourni à partir d'un noeud ilc vers l'entrée du moyen de contrôle de signe 20g. Ce mot de données A S bits est avantageusement fourni à la sortie 21a d'un moyen logique 21, tel qu'un moyen de réseau logique programmable (PLA), en réponse à l'avancement soumis à impulsions d'horloge par l'intermédiaire d'un ensemble de bits de commande de signe dans un mot de données qui a un motif binaire établi de façon spécifique par et en fonction de l'angle 0. Ainsi, une première entrée du moyen de PLA 21b peut recevoir, à partir de l'entrée lie et de l'entrée 10e de l'appareil, les impulsions d'horloge CLK, tandis que la seconde entrée 21c du PLA reçoit (par l'intermédiaire de l'entrée lld des moyens CORDIC et de l'entrée 10d de l'appareil) l'information de l'angle de phase t pour la seconde quantité complexe. Le fonctionnement du mode de réalisation récursif est tel que, par suite de la stabilisation des données, en particulier au niveau de l'entrée de phase 10d, une impulsion CLK séparée survient pour chacune des n opérations qui seront sommées pour fournir les composantes du produit désiré. Chaque impulsion d'horloge entraîne ainsi la détermination du fait que l'angle ai le plus faible suivant du CORDIC doit être une contribution positive ou négative à l'angle de rotation totale 0, et amène ainsi le mot de commande de signe, à l'entrée 20g, à établir les bits de commande de signe aux
sorties 20a-20f.
Les mots de données à P bits, réels et imaginaires, sélectionnés en signes, à la sortie du premier étage (l'étage de sélection +90') apparaissent aux première et seconde sorties des moyens de sélection de signe 14-lc ou 14-2c et sont fournis aux étages récursifs n-l, à une entrée 22-la d'un premier moyen accumulateur ACCUM 22-1 ou à une entrée 22-2a d'un second moyen ACCUM 22-2. Ces données d'entrée sont sommées avec un mot de données à P+2 bits au niveau d'une seconde entrée respective 22-lb ou 22-2b pour fournir un mot de données numérique à P+2 bits à une première ou seconde sortie d'accumulateurs 22-lc ou 22-2c. Ce mot de données de sortie apparait à l'un respectif des noeuds de données 111 ou 11Q. Le mot de données en provenance de 111 apparait à une première entrée 14-3a d'un troisième moyen de sélection de signe 14-3, recevant un signal de commande de signe, à une entrée 14-3b en provenance d'une troisième sortie 20c des moyens de commande de signe 20. Le mot de données au noeud llQ apparait à une première entrée 14-4a d'un quatrième moyen de sélection de signe 14-4 ayant une entrée de sélection de signe 14-4b recevant un signal de commande de signe en provenance d'une quatrième sortie 20d du moyen de commande de signe 20. Le mot de données accumulé et sélectionné en signe en provenance du canal "réel" apparait à une sortie 14-3c pour couplage à une entrée 24-la d'un premier moyen de décalage 24-1, tandis que le mot de données accumulé et sélectionné en signe en provenance du canal "imaginaire" apparait à une sortie 14-4c
et est couplé à une entrée 24-2a d'un second moyen de décalage 24-2.
Chaque moyen de décalage 24 a une entrée de commande de décalage, par exemple une entrée 24-lb ou 24-2b, respectivement, qui reçoit une impulsion de commande de décalage en provenance d'une cinquième ou
sixième sortie respective 20e ou 20f du moyen de commande de signe 20.
En réponse à chaque impulsion au niveau de l'une des entrées de commande de décalage 24-lb ou 24-2b, le mot de données dans le moyen de décalage 24-1 ou 24-2 est amené à tourner, ou est décalé d'une position binaire vers la droite et les données décalées d'un bit apparaissent à une première sortie 24-lc du moyen de décalage ou à une seconde sortie 24-2c du moyen de décalage en anneau pour couplage croisé avec une première entrée 26-2a ou 26-la, respectivement, d'un second moyen d'additionneur numérique 26-2 ou d'un premier moyen
d'additionneur numérique 26-1, respectivement. Une entrée restante 26-
2b ou 26-lb, respectivement, de ces moyens d'additionneurs reçoit le mot de données numérique en provenance d'un noeud 11Q ou 11I, respectivement. Le mot de données sommé au niveau d'une première sortie 26-1c d'un moyen sommateur est un mot de données Q' à P+2 bits fourni à une première sortie 11-f du moyen multiplieur CORDIC, et ensuite à la sortie 10f du multiplieur, tandis que le mot de données numérique à une seconde sortie du moyen sommateur 26-2c est un autre signal I' à P+2 bits fourni à la sortie 11g du moyen CORDIC et à la sortie lOg du moyen multiplieur. Le signal de données Q' est renvoyé à l'entrée d'accumulateur 22-lb tandis que les données I' sont renvoyées
à l'entrée d'accumulateur 22-2b.
En fonctionnement, les équations (3a) et (3b) peuvent être réécrites de la façon suivante: I' = K(e) (I+iQ/2n) (4a) Q' = K(O) (Q-iI/2n) (4b) Le facteur de pondération commun, K(8)=cos(8), peut être ignoré, comme on l'a noté précédemment, car il aura une valeur fixe qui dépend du nombre n d'itérations choisi pour une précision de calcul désirée. L'angle de rotation d'entrée t qui est un angle arbitraire quelconque, est initialement décomposé en un ensemble de rotations par rapport à des angles ai qui satisfont aux équations 3a et 3b. Même si le facteur d'échelle est différent pour chaque rotation, l'amplitude du facteur d'échelle est indépendante du signe de rotation, de sorte que, pour un nombre fixe de rotations utilisant la même amplitude de rotation mais des signes différents à chaque étage, le facteur de pondération total est indépendant de l'angle de rotation total et le facteur de pondération peut ou bien être ignoré ou bien être ajouté à la fin de la séquence de rotations multiples. Ceci est important pour des applications o la phase du produit complexe est la donnée importante (et particulièrement importante quand la seconde quantité d'amplitude B est égale à 1 autorisant l'enlèvement des multiplieurs scalaires 12r de sorte qu'aucun multiplieur n'est nécessaire). A titre d'exemple, une rotation à n - 8 étages peut être mis en oeuvre avec une précision de ú0,6 en utilisant les informations de sélection de signe du tableau 1
TABLEAU 1
Signes à sélectionner pour n - 8 étages de rotation Angle Angle n=l n=2 n=3 n=4 n=5 n=6 n=7 n=8 désiré réel 90 45 26,56 14,04 7,13 3,58 4, 79 0,900
0 0 + - - - + - +
11,25 10,65 + - - - + - + +
22,50 22,65 + - - + - - + -
33,75 33,30 + - - + + - - -
,00 44,10 + - + - - - - -
56,25 56,65 + - + - - + 4
67,00 67,30 + - + + - +
78,75 79,35 + - + + - + - -
,00 90,00 + - + + + - + -
101,25 100,65 + + - - + - +
112,50 112,65 + + - + - - + -
123,75 123,35 + + - + + - - -
,00 134,10 + + + - - - - -
146,25 146,65 + + + - + + +
157,50 157,35 + + + - + + - +
168,75 169,35 + + + + - - -
,00 180,00 + + + + + -
Des angles négatifs (de 0 à -180 nécessitent une inversion de tous
les bits du mot de données).
Les mots de données d'entrée CR et Ci sont modifiés en signe pour réaliser une rotation de 90 , et les données modifiées en signe I ou Q sont chacune chargées individuellement dans un moyen accumulateur associé 22 initialement mis à zéro, en réponse à une première impulsion d'horloge, (c'est-à-dire par une impulsion d'horloge de numéro C=1) d'un cycle de n=8 impulsions d'horloge. Ces données accumulées de premier passage apparaissent aux noeuds 111 et 11Q, respectivement, et à l'entrée d'un moyen sornmateur associé 26-lb
et 26-2b, respectivement.
Le premier étage, représenté par les moyens de sélection de signes 14-1 ou 14-2, représente la rotation de +90 du terme a1. Le second étage, commençant par les accumulateurs 22 dans les canaux d'axes réel et imaginaire est utilisé de façon récursive pour N-1 opérations et en conséquence nécessite seulement N-1 impulsions d'horloge CLK. Lors de cycles d'horloge successifs, pour C=2, 3,...8, le contenu de chaque accumulateur est sommé avec le contenu de l'autre accumulateur, après modification de signe et troncage dans les moyens
de sélection de signe 14-3 et 14-4 et le moyen de décalage 24-1 ou 24-
2 du canal opposé. Ainsi, une rotation de N étages nécessite une première impulsion (90 ) en provenance d'un premier cycle d'horloge, et ensuite N1 cycles d'horloge supplémentaires pour réaliser une rotation précise à 0, 9 . De façon similaire, une rotation de N=7 étages nécessite une première impulsion et six cycles d'horloge supplémentaires pour réaliser une rotation précise à 1,8 , tandis qu'une rotation à N=6 étages nécessite une impulsion initiale et cinq cycles d'horloge pour tourner avec une précision de 3,6 et une procédure à cinq étages nécessite l'impulsion initiale plus quatre cycles d'horloge pour tourner à une précision de 7, 1 . En utilisant une cadence de données d'entrée de 5 MHz, la fréquence d'horloge minimale associée F est donnée par la formule: F=(N-1),D, o D est la cadence des données d'entrée. On peut voir que ces fréquences des cadences de données sont compatibles avec la plupart des types de réalisation de circuits intégrés semiconducteurs actuellement
utilisés.
Les additionneurs et accumulateurs doivent avoir une profondeur de densité de bits propre à traiter une rotation de 45 à 0 et doivent également tenir compte du facteur de pondération pour chaque rotation d'étage, ce facteur de pondération tendant asymptotiquement vers une valeur de 1,65. On a trouvé que, si les additionneurs et accumulateurs sont conçus pour être plus profonds de deux bits que la densité de bits des données d'entrée, il y aura suffisemment de place pour traiter les deux facteurs. Ainsi, si les signaux d'entrée sont des mots de données à 7 bits ipar exemple P=7), alors des additionneurs accumulateurs et moyens de décalage à P+2=9 bits d'étendue sont utilisés. Ce multiplieur complexe 10 qui a été intégré sous forme d'un circuit intégré au silicium de type CMOS ayant une surface de 0,9 mm par 1,2 mm peut être utilisé à titre d'exemple d'un détecteur de corrélation à bande de base à M prises ayant une équation déterminante:
(M/2)-1
Ai = Z C.i=j, (5) j=M2 o & est la donnée de sortie complexe des deux vecteurs, L est l'entrée de données de référence complexe et Q est l'entrée de données du détecteur complexe. De façon similaire, l'équation déterminante d'une transformation de Fourier discrète à M points est: M-1 A = Ski (6) j=O o A est la transformée de Fourier discrète de la séquence complexe à et EM est la M-ième racine complexe de l'unité. Ainsi, on verra que l'étape de traitement de base pour une corrélation et pour une transformée de Fourier discrète est une multiplication-accumulation complexe. Dans l'exemple de la corrélation, les sorties multipliées de façon complexe sont de la forme
AR = BRCR + BICI (7)
o l'indice R désigne la composante réelle et l'indice I désigne la composant imaginaire, et
AI = BRCI - BICR (8)
Cette multiplication complexe peut se réécrire de la façon suivante: AR = IBI(CR cos - CI sin) (9) et AI = IBI(CR sin + CI cos) (10) Si les coefficients de la quantité de référence B sont chargés en tant que données d'amplitude IBI et de phase t plutôt qu'en tant que données de parties réelle et imaginaire, on verra que le circuit de la figure 1 peut être utilisé en tant que multiplieur complexe pour la cellule de multiplication-accumulation. Ainsi, étant donné que le CORDIC pour chaque cellule de multiplication-accrmnulation contient le même nombre d'étages, le facteur de pondération K(O) est le même pour toutes les cellules et le facteur de pondération peut être pris en compte de façon explicite ou bien en modifiant les coefficients d'amplitude individuels ou bien en pondérant la sortie finale du corrélateur. On verra que la structure de la figure 1 est beaucoup plus efficace qu'une cellule de multiplication complexe classique, étant donné que deux multiplieurs et deux additionneurs peuvent être éliminés en utilisant le processeur CORDIC 10. Dans l'exemple de corrélation complexe, le circuit de la figure 1 peut encore être simplifié pour un calcul efficace de la transformée de Fourier discrète (DFT) en ce que la multiplication complexe dans un algorithme DFT a une amplitude unité, c'est-à-dire IWMI=1. En conséquence, les deux multiplieurs 12 peuvent être supprimés et un
circuit considérablement simplifié en résulte.
Pour des calculs encore plus rapides, la seconde partie récursive du moyen multiplieur CORDIC ou rotateur de phase 11 peut être remplacée par une architecture séquentielle ou pipeline. Un multiplieur CORDIC de type pipeline actuellement préféré, 11', est représenté en figure 2. Le mot de données I d'axe réel à P bits est présenté à l'entrée 11'a, et le mot de données Q d'axe imaginaire à P bits est présenté à l'entrée 11'b. Les deux mots de données I et Q sont actionnés séparément par l'un associé des moyens de sélection de signe 14-1 ou 14-2 dans une première section qui réalise une rotation de 90'. Dans une seconde section, une pluralité (N-1) d'étages identiques 30 est utilisée. Dans le mode de réalisation représenté o N=5, quatre étages 30a-30d sont utilisés. Chaque étage 30 comprend des parties identiques d'axe réel et d'axe imaginaire, 30-1 et 30-2, respectivement. Dans chaque partie, le mot de données à une entrée 31a ou 31b est couplé à une entrée d'un moyen de décalage 32a ou 32b et à une entrée d'un moyen additionneur 34a ou 34b. La sortie du moyen de décalage à P bits 32 est couplée à l'entrée d'un moyen sélecteur de signe 36a ou 36b dont chacun est constitué d'un moyen inverseur (-1) 37 et d'un moyen multiplexeur MUX 38. le signal de commande de sélection de signe à l'une associée des entrées 40a, 40b,..., 40a"', b"', est fourni à une entrée associée 41b-41i d'un moyen de contrôle de signe 41. Le moyen de contrôle de signe reçoit un mot de données de commande de signe d'une étendue de S bits à une entrée de commande de signe 11'c. Ce mot de données détermine l'état binaire de chaque signal à une sortie du moyen MUX 42a, 42b,...,42a" ou 42b"'. La sortie 42a ou 42b est connectée de façon croisée à la seconde entrée associée 44b ou 44a du moyen sommateur 34 pour la partie de canal opposée du même étage, par exemple la seconde entrée 44a pour le moyen additionneur de la partie d'axe réel du premier étage 30a est connectée de façon croisée à la sortie de canal d'axe imaginaire 42b, tandis que la seconde entrée 44b du moyen additionneur de canal imaginaire est connectée à la sortie de canal d'axe réel 42a et ainsi de suite. Le moyen de décalage 32k dans chaque k-ième étage 30k, o i kS(N-1), contient un bit de décalage supplémentaire puis le moyen de décalage dans le (k-l)ième étage précédent 30 (k-l). Le k-ième étage k utilise un moyen de décalage à (k-1) bits 32k. Ainsi, les moyens de décalage 32a et 32b dans le premier étage effectuent un décalage de 0 bit pour une fonction de division par 1 et peuvent effectivement être remplacés par une connexion directe, c'est-à-dire qu'ils ne sont pas utilisés. Les moyens de décalage de bits 32a' et 32b' dans le second étage 30b divisent par un bit supplémentaire, de sorte que a=l et qu'une fonction de division par deux prend place. De façon similaire, dans le troisième étage 30c, le décalage est de b=2 bits, pour une fonction de division par quatre et le moyen de décalage 32a"' du quatrième étage 30d décale de c=3 bits, pour une fonction de division par huit. On verra que cette architecture CORDIC en pipeline nécessite seulement l'impulsion du premier étage et est d'une vitesse essentiellement établie par les retards logiques dans les N étages totaux; ceci est presque toujours un calcul beaucoup plus rapide que
les résultats d'un mode de réalisation CORDIC récursif.
Comme le montre la figure 3, l'un des rotateurs CORDIC récursif ou pipeline 11 ou 11', ou les deux, peut être utilisé dans un autre mode de réalisation d'un sous-système multiplieur 10' pour produire le produit de deux nombres complexes. Si le premier nombre complexe Ni est représenté par IVi1, el=JAl1ei'l, (figure 3a) et que le second nombre complexe N2Z est représenté par IV21, e2=lA21eie2 (figure 3b), alors le produit P de (I1+iQ1) (I2+iQ2) est P=AI1 A2lei'1+*2)' On peut voir que le premier nombre complexe, en tant que vecteur Ml, peut être tourné de son angle de phase 01 pour supprimer sa partie imaginaire et se terminer avec seulement un reste réel, c'est-à-dire avec I'lIVlîtIAllI et Q'1-0. De ce fait, l'angle de phase *1 est analysé pour déterminer le signe de rotation à impartir au second vecteur de nombre complexe M2 de sorte que le secondvecteur résultant tourné M'2 est égal à IA21ei(l+02), et doit seulement être multiplié scalairement par IAll, maintenant disponible en tant que quantité Il' pour fournir le produit complexe final L. Ce multiplieur complexe complet 10' reçoit à la fois le premier nombre complexe E1 et le second nombre complexe NZ en tant que données d'entrée représentant les parties respectives réelles ou en phase Il ou 12 et les parties respectives imaginaires ou en quadrature QI ou Q2. Ainsi, le premier nombre complexe NI en tant que mot de données de partie en phase il apparait à une première entrée 10' et un mot de données de partie en quadrature Q1 apparait à une autre entrée 10'b. Le second nombre complexe N2 comprend un mot de données de partie réelle 12 apparaissant à une entrée 10'c et un mot de données de partie imaginaire Q2 apparaissant à une entrée 10'd. Les mots de données de parties réelle Il et imaginaire Qi du premier nombre complexe sont envoyés à un premier moyen de rotateur CORDIC 11-1 tandis que les mots de données de parties réelle 12 et imaginaire Q2 du second nombre complexe sont envoyés à un second moyen rotateur CORDIC 11-2. L'angle de rotation des deux rotateurs est au moins partiellement commandé par un signal à une entrée de commande de rotation 11-lc ou 11-2c (cette entrée correspondant à l'entrée de commande de signe lic dans les rotateurs des figures 1 et 2. Le signal au noeud 11-lQ (lequel noeud correspond au noeud 11Q de la figure 1 ou au noeud llQ-1 de la figure 2) est appliqué à une entrée 50a d'un moyen de commande de signe 50 et détermine l'état d'un signal binaire à chacune des sorties 50b et 50c
(et en conséquence aux entrées de commande de rotation connectées 11-
lc et 11-2c) par comparaison des données du noeud 11-lQ à un motif de données fixes représentant un angle de phase résiduel nul dans le premier moyen rotateur 11-1. Ainsi, l'angle de phase e1 dans le permier moyen rotateur est successivement incrémenté jusqu'à un angle de phase résiduel approximativement nul tandis que l'angle de phase total XT est incrémenté des mêmes rotations angulaires de sorte que, quand 1 --O , T = 1+42 et est l'angle de phase du produit désiré L. La rotation commence quand les données au noeud 1-lQ indiquent que le nombre mi présente une composante en quadrature de phase, c'est-à-dire que l'angle 1 est non nul. En réponse aux données à l'entrée 50a, les états logiques des signaux aux entrées ll-lc et 11-2c sont déterminés pour amener les deux rotateurs à ajouter ou à soustraire l'angle incrémentiel suivant 0'=tan-l(1/2n), pour le suivant n, à partir de la phase de l'entrée du mot de données. Ainsi, le signe des rotations dans les deux rotateurs est déterminé par le signe du reste "Q1" dans le premier moyen rotateur 11-1 forçant une approximation successive vers 0 . Effectivement, le premier rotateur 11-1, par une succession de rotations CORDIC, transforme le premier mot de données complexes M1 en un nombre réel A1, représentant l'amplitude de ce premier nombre complexe. Quand la rotation CORDIC achève le nombre prescrit d'étages, les changements des sorties 50b et 50c cessent et un signal PRET (READY) d'achèvement de rotation de phase est fourni à une sortie 50d et de là à une sortie 10'r du multiplieur. Le mot de données en phase au niveau de la sortie I'2 du second moyen rotateur 11-2d et le mot de données en quadrature de phase à la sortie Q'2 11-2e représentent maintenant respectivement: 12' = ReIV2'I = Re( A21ei(l+2)) = IA2Icos(CT) (1la) et Q2' = ImIV2'l = Im(JA2Jei(1l+02)) = tA21sin(T) (llb) Le mot de données AllI, en provenance de la première sortie 11-ld de rotateur I, apparait maintenant par l'intermédiaire du noeud 10'e aux entrées 52a et 54a des premier et second moyens multiplieurs scalaires 52 et 54. Le mot de données I'2 est couplé à une seconde entrée 52b des premiers moyens multiplieurs 52, tandis que le mot de données Q'2 est couplé à une seconde entrée des seconds moyens multiplieurs 54. Le mot de données I" à la première sortie du multiplieur 52c apparait au niveau de la sortie 10'f du multiplieur complexe CORDIC et constitue les données pour Re(O) = IA1îlA2lcos(<T), tandis que le mot de données Q" à la seconde sortie 54c du multiplieur apparait au niveau de la sortie complexe du multiplieur CORDIC 50'g et correspond aux donnée pour
Im(E) - IAlIIA21sin(+T).
En se référant maintenant à la figure 4, les rotateurs 11-1 et 11-2 et les moyens de commande de signe 50 de la figure 3 peuvent être réalisés par un sous-ensemble multiplieur pipeline de calcul rapide 11'. Un premier multiplieur CORDIC séquentiel à N étages 60a comprend un premier étage 60-la recevant les données d'axe réel I1, à partir d'une entrée 11'a au niveau d'un moyen de sélection de signe 61-la (constitué d'un inverseur 62 et d'un moyen MUX 64) et les données Q1 d'axe imaginaire, à partir d'une entrée llb, au niveau d'un autre moyen de signe 61-lb, le bit de sélection de signe (pour ce
premier étage seulement) étant pris à partir de l'entrée de données Q1.
Le premier multiplieur 61a a alors une pluralité (N-1) d'étages sensiblement identiques 60-2a à 60-na, chacun avec des sous-sections identiques pour les parties I et Q, chaque sous-section comprenant un moyen de sélection de signes 61-2a à 61-na ou 61-2b à 61-nb, un moyen de division par 2(I-1) 66-1 à 66-(n-1), o liI<N et I est le nombre d'étages et un moyen additionneur 68-1 à 68-(n-1). Un second multiplieur CORDIC séquentiel à N étages 60b présente le même agencement de premier étage 60lb et (N-l) étages ultérieurs identiques 60-2b à 60-nb. Le bit de signe (au niveau des entrées de commande de sélection de signe du MUX 65-1 à 65n de chacun des premiers étages du multiplieur 60a) est inversé par l'un associé d'une pluralité de N inverseurs logiques 70-1 à 70-n, de sorte que le bit de signe de la sortie Q d'un étage qualconque du premier multiplieur CORDIC 60a déterminer le signe de rotation de l'étage suivant des deux multiplieurs 60a et 60b. Ainsi, le bit de signe est inversé entre les deux structures CORDIC pipeline 60a et 60b de sorte que le premier multiplieur 60a fait tourner les premières données d'entrée I1 et Q1 à une phase *T = (<1+Q2) au niveau de sorties I' et Q' et que le second multiplieur 60b fait tourner les secondes données d'entrée vers la phase 0, fournissant l'amplitude IAil au niveau de la sortie réelle ll'e (et un reste d'amplitude sensiblement nul au niveau d'une sortie résiduelle l'r, cette sortie Q étant une mesure de l'erreur de rotateur double). Les données I' et Q' peuvent être multipliées scalairement par les données AllA, par des moyens 52 et 54 comme dans le mode de réalisation de la figure 3, si une telle multiplication est requise. Chacune de ces structures de multiplieurs complexes présente plusieurs avantages par rapport à des multiplieurs complexes plus classiques. D'abord et essentiellement, les précisions en phase et en amplitude peuvent être découplées; le troncage de l'amplitude
n'affectera la précision de phase de la réponse et vice versa.
Ensuite, ces modes de réalisation de multiplieurs complexes 10' (avec une paire de modules CORDIC 11-1 et 11-2 ou avec un module unique 11') fournissent des résultats d'étages intermédiaires qui peuvent être utiles dans certaines applications. Par exemple, si une entrée vers ces structures est simplement le complexe conjugué de l'autre entrée, alors ces appareils présenteront simultanément l'amplitude du signal d'entrée à la sortie 10'e ou 10"e et le signal de puissance du signal d'entrée à la sortie 10'f ou 10"f. En connséquence, ce mode de réalisation peut être utilisé comme détecteur d'amplitude et de puissance simultanées. Les structures des figures 3 et 4 représentent une approche beaucoup plus flexible à la multiplication complexe que
beaucoup d'autres configurations de multiplieurs.
Alors que plusieurs variantes actuellement préférées du nouveau multiplieur complexe CORDIC selon l'invention et de rotateurs CORDIC qui peuvent y être utilisés ont été décrits à titre d'exemple ici, de nombreuses modifications et variantes apparaitront à l'homme
de l'art.
263208g8

Claims (20)

REVENDICATIONS
1. Rotateur CORDIC récursif caractérisé en ce qu'il comprend: des moyens (ll'a, ll'b) pour recevoir des mots de données numériques représentant chacune des parties réelle et imaginaire d'un premier nombre complexe; une première partie comprenant des moyens (11') pour faire tourner chacune des premières parties réelle et imaginaire du nombre complexe d'un premier incrément angulaire a, -égal à l'une sélectionnées des valeurs +90 et -90 pour former l'un associé des mots de données numériques I et Q; une partie récursive (60-2a, 60-3a...) comprenant des moyens pour modifier en rotation chacun des mots de données numériques I et Q reçu à partir de la première partie de façon récursive en passant par chacun choisi d'angles incrémentiels positif et négatif ai pour 25i-N, o N est un entier positif supérieur à 2, et chaque angle incrémentiel ai est inférieur à cl mais supérieur à un angle incrémentiel suivant ai+l; des moyens pour recevoir un mot de données numériques représentant une partie de rotation angulaire e d'un second nombre complexe exprimé sous forme d'amplitude/angle de rotation, et déterminer des signes de tous les angles al dans la première partie et les angles incrémentiels ai dans la partie récursive pour s'approcher du second angle de rotation e du nombre complexe; et des moyens pour fournir les première et seconde parties après une modification en rotation par les N angles, respectivement, en tant que mot de données numériques de sortie de partie imaginaire entraîné en rotation AI et que mot de données numériques de sortie de partie
réelle entrainé en rotation AR.
2. Rotateur selon la revendication 1, caractérisé en ce que le premier moyen de rotation d'incrément al comprend des moyens pour sélectionner le même signe ou le signe inversé pour chacune respective des parties réelle et imaginaire du premier nombre complexe, en réponse à l'un respectif de premier et second signaux de commande de
signe en provenance des moyens de commande de signe.
3. Rotateur selon la revendication 2, caractérisé en ce que
chaque angle incrémentiel ai = tan-1(2-n), pour n = i-2.
4. Rotateur selon la revendication 3, caractérisé en ce que i
est inférieur à 8.
5. Rotateur selon la revendication 3, caractérisé en ce que le moyen de rotation de parties récursives comprend: des premiers moyens pour accumuler le mot de données numériques I à partir de la première partie et chacun des (N-l) premiers mots de données numériques décalés séquentiellement; des seconds moyens pour accumuler le mot de données numériques Q à partir de la première partie et chacun séquentiel des (N-1) seconds mots de données numériques décalés séquentiellement; des premiers moyens de sélection de signe pour inverser sélectivement, en réponse à un signal de commande de signe du premier moyen de sélection de signe en provenance des moyens de commande de signe, le signe du mot de données numériques fourni alors par le premier moyen accumulateur; des seconds moyens de sélection pour inverser sélectivement, en réponse à un signal de commande de signe des seconds moyens de sélection de signe en provenance des moyens de commande de signe, le signe du mot de données numériques alors fourni par les seconds moyens accumulateurs; des premiers moyens pour décaler les bits du mot de données numériques en provenance des premiers moyens de sélection de signe d'un bit dans une direction prédéterminée pour chaque apparition d'un signal de commande des premiers moyens de décalage en provenance des moyens de commande de signe; des seconds moyens pour décaler les bits du mot de données numériques en provenance des seconds moyens de sélection de signe d'un bit dans une direction prédéterminée pour chaque apparition d'un signal de commande du second moyen de décalage en provenance des moyens de commande de signe; des premiers moyens additionneurs pour ajouter les mots de données numériques en provenance des prermiers moyens accumulateurs et
des seconds moyens de décalage pour fournir chacun séquentiel des (N-
1) premiers mots de données numériques décalés séquentiellement à la fois vers les premiers moyens accumulateurs et en tant que mots de données numériques de sortie AI; et des seconds moyens additionneurs pour additionner les mots de données numériques en provenance des seconds moyens accumulateurs et
des premiers moyens de décalage pour fournir chacun séquentiel des (N-
1) seconds mots de données numériques décalés séquentiellement à la fois aux seconds moyens accumulateurs et en tant que mots de données numériques de sortie AR; lesdits moyens de commande de signe comprenant des sorties supplémentaires au niveau desquelles les premier et second moyens de commande de signe et les signaux de commande de signe des premier et second moyens de décalage sont tous prévus pour chacune des (N- l) opérations récursives, en réponse aux données d'angle de rotation reçues.
6. Rotateur CORDIC séquentiel caractérisé en ce qu'il comprend: des moyens pour recevoir des mots de données numériques représentant chacune des parties réelle et imaginaire d'un premier nombre complexe; une première partie comprenant des moyens d'étages pour faire tourner séparément chacune des parties réelle et imaginaire de premier et second nombres complexes d'un premier incrément angulaire a, égal à l'une sélectionnée des valeurs +90 et -90 ; une seconde partie comprenant une pluralité de (N-1) moyens d'étages, o N est un entier positif supérieur à 2, chacun pour modifier en rotation une paire de mots de données numériques d'entrée à parties réelle et imaginaire selon l'un choisi d'angles incrémentiels positifs et négatifs "i, pour 2SiSN, chaque angle incrémentiel ai du i-ième moyen d'étage étant inférieur à l'angle -a mais supérieur à un angle incrémentiel ai+1 d'étage suivant, et les mots de données numériques d'entrée vers les premiers moyens d'étages étant reçus à partir de la première partie et les mots de données numériques d'entrée pour tout autre moyen d'étage étant reçus à partir d'un moyen d'étage immédiatement précédent; des moyens pour recevoir un mot de données numériques représentant une partie * de rotation angulaire d'un second nombre complexe exprimé sous forme amplitude/angle de rotation, et pour commander les signes de l'angle a, dans la première partie et tous les angles incrémentiels ai dans la pluralité de moyens d'étages pour approcher l'angle de rotation * du second nombre complexe; et des moyens pour fournir les première et seconde parties après modification de rotation par tous les N angles respectivement, en tant que mots de données numériques de sortie de partie imaginaire tournée
et mots de données numériques de sortie de partie réelle tournée.
7. Rotateur selon la revendication 6, caractérisé en ce que le premier moyen de rotation d'incrément a1 comprend des moyens pour sélectionner le même signe ou le signe inversé pour celle choisie des parties réelle et imaginaire des premier et second nombres complexe, en réponse à un signal de commande de signe de premier incrément en
provenance des moyens de commande de signe.
8. Rotateur selon la revendication 7, caractérisé en ce que
chaque angle incrémentiel ai = tan-1(2-n), pour n = i-2.
9. Rotateur selon la revendication 8, caractérisé en ce que-i
est inférieur à 8.
10. Rotateur selon la revendication 8, dans lequel chaque moyen d'étage comprend: des moyens pour recevoir un mot de données numériques de partie réelle et un mot de données numériques de partie imaginaire en entrée vers ce moyen d'étage; des premiers moyens pour décaler les bits des moyens de mots de données numériques d'entrée de partie réelle de n bits dans une direction prédéterminée; des seconds moyens pour décaler les bits du mot de données numériques d'entrée de partie imaginaire de n bits dans la direction prédéterminée; des premiers moyens de sélection de signe pour inverser sélectivement, en réponse à un signal de commande des premiers moyens de sélection de signe en provenance des moyens de commande de signe, le signe du mot de données numériques décalé en provenance du premier moyen de décalage; des seconds moyens de sélection de signe pour inverser sélectivement, en réponse à un signal de commande des seconds moyens de sélection de signe en provenance des moyens de commande de signe, le signe du mot de données numériques décalé en provenance des seconds moyens de décalage; des premiers moyens additionneurs pour additionner le mot de données numériques d'entrée de partie réelle et le mot de données numériques en provenance des seconds moyens de sélection de signe pour fournir un mot de données numériques de sortie de partie réelle en provenance de ce moyen d'étage; et un second moyen additionneur pour ajouter le mot de données numériques d'entrée de partie imaginaire et le mot de données numérique en provenance des premiers moyens de sélection de signe pour fournir un mot de données numériques de sortie de partie imaginaire en provenance de ces moyens d'étages; les moyens de commande de signe ayant des sorties supplémentaires au niveau desquelles sont fournis, en réponse aux données reçues d'angle de rotation ô, tous les signaux de commande des premier et second moyens de commande de signe pour les (N-1) moyens
d'étages.
11. Appareil pour fournir des données numériques de sortie qui sont le produit d'un premier nombre complexe D représenté en tant que mot de données numériques de partie réelle CR et mot de données numériques de partie imaginaire CI, et un second nombre complexe J représenté en tant que mot de données numériques d'amplitude IBI et mot de données numériques d'angle de phase È, caractérisé en ce qu'il comprend: des moyens CORDIC pour modifier en rotation, respectivement, un mot de données numériques de partie réelle d'entrée I et un mot de données numériques de partie imaginaire d'entrée Q en réponse au mot de données numériques d'angle de phase 0 pour obtenir respectivement un mot de données numériques de sortie Q' et un mot de données numériques de sortie I'; des moyens d'entrée recevant au moins le mot de données numériques de partie réelle du premier nombre complexe CR et le mot de données numériques de partie imaginaire CI pour fournir les mots de données numériques respectifs d'entrée I et Q; et des moyens de sortie recevant les mots de données numériques de sortie respectifs Q' et I' pour fournir respectivement une partie imaginaire AI du mot de données numériques de sortie et une partie
réelle AR du mot de données numériques de sortie.
12. Appareil selon la revendication 11, caractérisé en ce que
le moyens CORDIC sont un rotateur CORDIC récursif.
13. Appareil selon la revendication 12, caractérisé en ce que les moyens de sortie comprennent en outre: des moyens recevant le mot de données numériques d'amplitude IBI du second nombre complexe; et des moyens pour multiplier scalairement chacun respectif des mots de données numériques de partie réelle I' et de données numériques de partie imaginaire Q' par le mot de données numériques d'amplitude IBI pour obtenir les mots de données numériques de partie
réelle AR et de partie imaginaire AI.
14. Appareil selon la revendication 11, caractérisé en ce que
les moyens CORDIC sont un rotateur CORDIC séquentiel.
15. Appareil selon la revendication 14, caractérisé en ce que les moyens de sortie comprennent en outre des moyens recevant le mot de données numériques d'amplitude IBI du second nombre complexe; et des moyens pour multiplier scalairement chacun respectif du mot de données numériques de partie réelle I' et du mot de données numériques de partie imaginaire Q' par le mot de données numériques d'amplitude IB1 pour fournir les mots de données numériques respectifs
de partie réelle AR et de partie imaginaire AI.
16. Appareil pour fournir des données numériques de sortie qui sont le produit d'un premier nombre complexe représenté sous forme d'un mot de données numériques de partie réelle Il et d'un mot de données numériques de partie imaginaire Q1, et d'un second nombre complexe, représenté sous la forme d'un mot de données numériques de partie réelle 12 et d'un mot de données numériques de partie imaginaire Q2, caractérisé en ce qu'il comprend: des premier et second moyens CORDIC pour modifier en rotation d'un angle ai, o a, est l'un sélectionné des angles +90 et ai, pour i N, N étant supérieur à 2, est tan-l(2-n) avec n=i-2, respectivement, un mot de données numériques de partie réelle d'entrée I et un mot de données numériques de partie imaginaire d'entrée Q en réponse à chaque i-ième de N intervalles de temps vers l'état d'un autre bit de données numériques, pour fournir repectivement un mot de données numériques de sortie Q' et un mot de données numériques de sortie I'; les premiers moyens de CORDIC recevant des mots de données respectifs Il et Q1 en tant que mots de données de partie réelle et de partie imaginaire et fournissant au moins un mot de données de sortie In et un signal qui change l'état de signe quand l'angle de sortie effectif est sensiblement 0; les seconds moyens CORDIC recevant des mots de données respectifs 12 et Q2 en tant que mots de données respectifs de partie réelle et de partie imaginaire et fournissant des mots de données de sortie de partie réelle et de partie imaginaire I" et Q"; des moyens pour fournir à chaque i-ième intervalle de temps ledit autre bit de données numériques avec un état de données sélectionné pour amener les deux moyens CORDIC à modifier en rotation les mots de données numériques de sortie qu'ils contiennent jusqu'à ce que le signal d'étage de signe change de signe; et des moyens de sortie recevant les mots de données numériques de sortie respectifs I" et Q" pour fournir respectivement une partie imaginaire I' des données numériques de sortie et une partie réelle Q'
du mot de données numériques de sortie.
17. Appareil selon la revendication 16, caractérisé en ce que
chacun des moyens CORDIC est un rotateur CORDIC récursif.
18. Appareil selon la revendication 17, caractérisé en ce que les moyens de sortie comprennent en outre des moyens recevant le mot de données de sortie Io des premiers moyens CORDIC; et des moyens pour multiplier scalairement chacun respectif du mot de données de sortie de partie réelle I" et du mot de données de sortie de partie imaginaire Q" par le mot de données I0 pour obtenir les mots de données
numériques respectifs de partie réelle I' et de partie imaginaire Q'.
19. Appareil pour fournir des données numériques de sortie qui sont le produit d'un premier nombre complexe représenté sous forme d'un mot de données numériques de partie réelle Il et d'un mot de données numériques de partie imaginaire Q1, et d'un second nombre complexe, représenté sous la forme d'un mot de données numériques de partie réelle 12 et d'un mot de données numériques de partie imaginaire Q2, caractérisé en ce qu'il comprend: des premiers et seconds moyens CORDIC pour modifier en rotation d'un angle vi, o a1 est l'un sélectionné des angles +90 et ì, pour 25i5N, N étant supérieur à 2, est tan-1(2-n) avec n=i-2, respectivement, un mot de données numériques de partie réelle d'entrée I et un mot de données numériques de partie imaginaire d'entrée Q, le signe de chaque angle en réponse à l'état logique d'un bit de signe associé; le bit de signe pour chaque angle du premier moyen étant le bit de données alors présent à l'une des paires d'entrées de données pour un étage de calcul pour cet angle, pour fournir respectivement un mot de données numériques de sortie Q' et un mot de données numériques de sortie I'; une pluralité de N moyens pour inverser l'état logique d'un bit d'entrée, chaque i-ième moyen d'inversion recevant le bit de signe de l'étage pour le premier moyen pour le i-ième angle associé et fournissant un autre bit de signe vers le i-ième étage numéroté de façon analogue des seconds moyens; les seconds moyens recevant les mots de données respectifs I2 et Q2 en tant que mots de données respectifs de partie réelle et de partie imaginaire et fournissant au moins un mot de sortie qui est l'amplitude IA2 du second nombre complexe; et des moyens de sortie recevant les mots de données numériques de sortie respectifs I' et Q' pour fournir respectivement une partie imaginaire Q" des données numériques de sortie et une partie réelle I"
du mot de données numériques de sortie.
20. Appareil selon la revendication 19, caractérisé en ce que les moyens de sortie comprennent en outre: des moyens recevant le second mot de données de sortie des moyens CORDIC iA21; et des moyens pour multiplier scalairement chacun respectif du mot de données numériques de sortie de partie réelle I" et du mot de données numériques de sortie de partie imaginaire Q" par le mot de données JA21 pour fournir les mots de données numériques de partie
réelle I' et de partie imaginaire Q'.
FR8906124A 1988-05-31 1989-05-10 Multiplieur de nombres complexes Expired - Lifetime FR2632088B1 (fr)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US07/200,491 US4896287A (en) 1988-05-31 1988-05-31 Cordic complex multiplier

Publications (2)

Publication Number Publication Date
FR2632088A1 true FR2632088A1 (fr) 1989-12-01
FR2632088B1 FR2632088B1 (fr) 1994-08-26

Family

ID=22741948

Family Applications (1)

Application Number Title Priority Date Filing Date
FR8906124A Expired - Lifetime FR2632088B1 (fr) 1988-05-31 1989-05-10 Multiplieur de nombres complexes

Country Status (7)

Country Link
US (1) US4896287A (fr)
JP (1) JP3283504B2 (fr)
KR (1) KR0146334B1 (fr)
CN (1) CN1017283B (fr)
DE (1) DE3917059A1 (fr)
FR (1) FR2632088B1 (fr)
GB (1) GB2220090B (fr)

Families Citing this family (72)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4983970A (en) * 1990-03-28 1991-01-08 General Electric Company Method and apparatus for digital phased array imaging
EP0453641B1 (fr) * 1990-04-20 1997-03-12 Siemens Aktiengesellschaft CORDIC-processeur pour la rotation de vecteurs avec architecture à carry-save
US5115492A (en) * 1990-12-14 1992-05-19 General Electric Company Digital correlators incorporating analog neural network structures operated on a bit-sliced basis
US5167008A (en) * 1990-12-14 1992-11-24 General Electric Company Digital circuitry for approximating sigmoidal response in a neural network layer
US5142649A (en) * 1991-08-07 1992-08-25 General Electric Company Ultrasonic imaging system with multiple, dynamically focused transmit beams
US5121364A (en) * 1991-08-07 1992-06-09 General Electric Company Time frequency control filter for an ultrasonic imaging system
DE4126953C2 (de) * 1991-08-14 1995-04-13 Fraunhofer Ges Forschung Schaltungsanordnung zur Durchführung des CORDIC-Algorithmus
US5235982A (en) * 1991-09-30 1993-08-17 General Electric Company Dynamic transmit focusing of a steered ultrasonic beam
US5291892A (en) * 1991-11-04 1994-03-08 General Electric Company Ultrasonic flow imaging
US5269307A (en) * 1992-01-31 1993-12-14 Tetrad Corporation Medical ultrasonic imaging system with dynamic focusing
JP2818345B2 (ja) * 1992-12-25 1998-10-30 株式会社東芝 ディジタル正弦波発生回路
US5349524A (en) * 1993-01-08 1994-09-20 General Electric Company Color flow imaging system utilizing a time domain adaptive wall filter
US5349525A (en) * 1993-01-08 1994-09-20 General Electric Company Color flow imaging system utilizing a frequency domain wall filter
US5465222A (en) * 1994-02-14 1995-11-07 Tektronix, Inc. Barrel shifter or multiply/divide IC structure
US5473654A (en) * 1994-06-24 1995-12-05 General Electric Company Backprojection for x-ray CT system
US5581517A (en) * 1994-08-05 1996-12-03 Acuson Corporation Method and apparatus for focus control of transmit and receive beamformer systems
AU3361095A (en) 1994-08-05 1996-03-04 Acuson Corporation Method and apparatus for transmit beamformer system
US5549111A (en) * 1994-08-05 1996-08-27 Acuson Corporation Method and apparatus for adjustable frequency scanning in ultrasound imaging
US5685308A (en) * 1994-08-05 1997-11-11 Acuson Corporation Method and apparatus for receive beamformer system
US5675554A (en) * 1994-08-05 1997-10-07 Acuson Corporation Method and apparatus for transmit beamformer
US5928152A (en) * 1994-08-05 1999-07-27 Acuson Corporation Method and apparatus for a baseband processor of a receive beamformer system
US6029116A (en) * 1994-08-05 2000-02-22 Acuson Corporation Method and apparatus for a baseband processor of a receive beamformer system
US5793701A (en) * 1995-04-07 1998-08-11 Acuson Corporation Method and apparatus for coherent image formation
US5555534A (en) * 1994-08-05 1996-09-10 Acuson Corporation Method and apparatus for doppler receive beamformer system
DE4442959C2 (de) * 1994-12-02 2001-02-08 Sican Gmbh Monolithisch integrierbare Schaltungsanordnung zur komplexen Multiplikation serieller Datenströme
US5668749A (en) * 1995-05-04 1997-09-16 Motorola, Inc. Circuit for performing arithmetic operations in a demodulator
DE69619963T2 (de) * 1995-08-30 2002-11-21 Koninkl Philips Electronics Nv Signalprozessor mit reduzierter komplexität und empfänger mit einem derartigen signalprozessor
US5822967A (en) * 1996-06-11 1998-10-20 Vermeer Manufacturing Co. Baler with swing arm bale wrapper
US5802111A (en) * 1997-02-24 1998-09-01 Motorola, Inc. Complex constellation point multiplier
US6192089B1 (en) 1998-08-07 2001-02-20 Motorola, Inc. Electronic circuit and method for automatic frequency control
JP3201364B2 (ja) * 1998-11-20 2001-08-20 日本電気株式会社 角度演算回路
US6123671A (en) * 1998-12-31 2000-09-26 General Electric Company Method and apparatus for distributed, agile calculation of beamforming time delays and apodization values
US6349317B1 (en) * 1999-03-13 2002-02-19 Vitit Kantabutra Efficient radix-4 CORDIC vector rotators and computers of sine and cosine functions
JP3399400B2 (ja) * 1999-04-15 2003-04-21 日本電気株式会社 周波数偏移復調回路
WO2000065799A1 (fr) * 1999-04-23 2000-11-02 Nokia Networks Oy Modulateur maq
US8255149B2 (en) 1999-07-12 2012-08-28 Skybitz, Inc. System and method for dual-mode location determination
US6480788B2 (en) 1999-07-12 2002-11-12 Eagle-Eye, Inc. System and method for fast acquisition reporting using communication satellite range measurement
US6560536B1 (en) 1999-07-12 2003-05-06 Eagle-Eye, Inc. System and method for rapid telepositioning
US20040143392A1 (en) 1999-07-12 2004-07-22 Skybitz, Inc. System and method for fast acquisition reporting using communication satellite range measurement
EP1323271A4 (fr) 2000-08-09 2004-06-16 Skybitz Inc Systeme et procede d'acquisition rapide de phase code et de frequence porteuse dans un recepteur gps
CN1468470A (zh) * 2000-08-09 2004-01-14 思凯比特兹公司 使用cordic相位转子的频率转换器
AU2001289045A1 (en) * 2000-09-08 2002-03-22 Avaz Networks Hardware function generator support in a dsp
US6466958B1 (en) 2000-09-12 2002-10-15 Interstate Electronics Corporation, A Division Of L3 Communications Corporation Parallel frequency searching in an acquisition correlator
US6452961B1 (en) 2000-09-12 2002-09-17 Interstate Electronics Corporation Massively paralleled sequential test algorithm
EP1325561A4 (fr) * 2000-09-18 2004-07-28 Skybitz Inc Systeme et procede d'acquisition rapide de phase code et de frequence porteuse dans un recepteur gps
JP3870105B2 (ja) * 2002-02-22 2007-01-17 ジーイー・メディカル・システムズ・グローバル・テクノロジー・カンパニー・エルエルシー 逆投影方法およびx線ct装置
US7082451B2 (en) * 2002-09-09 2006-07-25 Freescale Semiconductor, Inc. Reconfigurable vector-FFT/IFFT, vector-multiplier/divider
US7889787B2 (en) * 2003-08-04 2011-02-15 Supertex, Inc. Ultrasound transmit beamformer integrated circuit and method
DE102005045519A1 (de) * 2005-09-23 2007-03-29 Newlogic Technologies Ag Verfahren und Vorrichtung zur FFT Berechnung
EP2541431A1 (fr) 2005-10-07 2013-01-02 Altera Corporation Entrée de données pour processeurs de réseau systolique
US8424781B2 (en) * 2006-02-06 2013-04-23 Masco Corporation Of Indiana Power sprayer
US9244483B1 (en) 2006-11-09 2016-01-26 Pentomics, Inc. Excess-fours processing in direct digital synthesizer implementations
US9268529B2 (en) 2006-11-09 2016-02-23 Pentomics, Inc. Efficient angle rotator configured for dynamic adjustment
US9547327B2 (en) 2006-11-09 2017-01-17 Alan N. Willson, Jr. Excess-fours processing in direct digital synthesizer implementations
US8131793B2 (en) * 2006-11-09 2012-03-06 Pentomics, Inc. Efficient angle rotator configured for dynamic adjustment
US8484278B2 (en) * 2007-05-11 2013-07-09 Synopsys, Inc. Digital architecture for DFT/IDFT hardware
US8706787B2 (en) * 2007-09-26 2014-04-22 Nec Corporation CORDIC-based FFT and IFFT apparatus and method
EP2278714B1 (fr) * 2009-07-02 2015-09-16 Nxp B.V. Étage de puissance
US9363068B2 (en) 2010-08-03 2016-06-07 Intel Corporation Vector processor having instruction set with sliding window non-linear convolutional function
JP5787527B2 (ja) * 2011-01-18 2015-09-30 キヤノン株式会社 信号処理回路及び超音波診断装置
US9157940B2 (en) * 2011-02-09 2015-10-13 Smart Energy Instruments, Inc. Power measurement device
CN102799565A (zh) * 2011-05-26 2012-11-28 联芯科技有限公司 坐标旋转数字计算的改进方法及其装置
US8706794B1 (en) * 2011-08-23 2014-04-22 Gregory K. Fleizach No-multiply digital signal processing method
US8867592B2 (en) 2012-05-09 2014-10-21 Nxp B.V. Capacitive isolated voltage domains
WO2014105154A1 (fr) * 2012-12-24 2014-07-03 Intel Corporation Systèmes, procédés et produits programmes d'ordinateur pour effectuer des opérations mathématiques
GB2513882A (en) * 2013-05-08 2014-11-12 Nordic Semiconductor Asa Digital Radios
JP6335661B2 (ja) 2014-06-04 2018-05-30 キヤノン株式会社 演算装置およびその制御方法
KR102268110B1 (ko) * 2014-08-05 2021-06-22 삼성전자주식회사 데이터를 변조하는 방법 및 장치 및 기록 매체
EP3562067A4 (fr) * 2017-01-17 2019-12-25 Huawei Technologies Co., Ltd. Procédé et dispositif de transmission de signal, émetteur et système de transmission de signal
US11385336B2 (en) * 2018-07-31 2022-07-12 Maxim Integrated Products, Inc. Time of flight sensors and sensing methods
US11764940B2 (en) 2019-01-10 2023-09-19 Duality Technologies, Inc. Secure search of secret data in a semi-trusted environment using homomorphic encryption
EP3928177A4 (fr) * 2019-02-20 2022-11-16 Optimum Semiconductor Technologies Inc. Dispositif et procédé de calcul de fonctions élémentaires à l'aide d'un circuit utilisant des rotations et des cumuls successifs

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2544106A1 (fr) * 1983-04-09 1984-10-12 Licentia Gmbh Oscillateur numerique delivrant des signaux complexes

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3868680A (en) * 1974-02-04 1975-02-25 Rockwell International Corp Analog-to-digital converter apparatus
US3976869A (en) * 1974-09-27 1976-08-24 The Singer Company Solid state resolver coordinate converter unit
US3926367A (en) * 1974-09-27 1975-12-16 Us Navy Complex filters, convolvers, and multipliers
US3927312A (en) * 1974-10-31 1975-12-16 Us Army Vector rotator
US4231102A (en) * 1978-12-21 1980-10-28 Raytheon Company Cordic FFT processor
US4354249A (en) * 1980-03-24 1982-10-12 Motorola Inc. Processing unit for multiplying two mathematical quantities including at least one complex multiplier
US4344151A (en) * 1980-04-21 1982-08-10 Rockwell International Corporation ROM-Based complex multiplier useful for FFT butterfly arithmetic unit
GB2135087B (en) * 1983-02-02 1986-02-05 Marconi Avionics Vector rotator/accumulator
US4680727A (en) * 1984-09-24 1987-07-14 Rockwell International Corporation Complex multiplier for binary two's complement numbers
US4769779A (en) * 1985-12-16 1988-09-06 Texas Instruments Incorporated Systolic complex multiplier

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2544106A1 (fr) * 1983-04-09 1984-10-12 Licentia Gmbh Oscillateur numerique delivrant des signaux complexes

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
COMPCON 86 Mars 1986, SAN FRANCISCO ,USA pages 498 - 502; M. SUNDARAMURTHY ET AL: 'A custom ic for linear detection' *
IRE TRANSACTIONS ON ELECTRONIC COMPUTERS vol. EC-8, no. 3, Septembre 1959, NEW YORK,USA pages 330 - 334; JACK. E. VOLDER: 'The cordic trigonometric computing technique' *

Also Published As

Publication number Publication date
KR890017608A (ko) 1989-12-16
GB8912385D0 (en) 1989-07-12
FR2632088B1 (fr) 1994-08-26
GB2220090B (en) 1992-12-09
GB2220090A (en) 1989-12-28
CN1017283B (zh) 1992-07-01
JPH0229821A (ja) 1990-01-31
JP3283504B2 (ja) 2002-05-20
DE3917059A1 (de) 1989-12-07
CN1045879A (zh) 1990-10-03
KR0146334B1 (ko) 1998-09-15
US4896287A (en) 1990-01-23

Similar Documents

Publication Publication Date Title
FR2632088A1 (fr) Multiplieur de nombres complexes
EP0853275B1 (fr) Coprocesseur comprenant deux circuits de multiplication opérant en parallèle
EP0219392B1 (fr) Dispositif de calcul d&#39;une transformée de Fourier discrète, glissante et non récursive, et son application à un système radar
EP0712071B1 (fr) Procédé de mise en oeuvre de multiplication modulaire selon la méthode de montgomery
EP0223657B1 (fr) Dispositif de calcul d&#39;une transformée de fourier discrète, et son application à la compression d&#39;impulsion dans un système radar
EP0207859B1 (fr) Dispositif de calcul d&#39;une transformée de Fourier discrète, et glissante en application à un système radar
EP0171305B1 (fr) Circuit de calcul de la transformée de Fourier discrète
EP0773499B1 (fr) Multiplieur rapide pour multiplier un signal numérique par un signal périodique
EP3803574A1 (fr) Circuit de génération de facteurs de rotation pour processeur ntt
EP0022513B1 (fr) Appareil de calcul de transformée de Fourier discrète bidimensionnelle
FR2646745A1 (fr) Dispositif de demodulation d&#39;un signal demodule en phase ou en frequence
FR2656124A1 (fr) Multiplieur serie programmable.
EP0237382B1 (fr) Dispositif de transformée en cosinus d&#39;un signal numérique échantilloné
EP0939363B1 (fr) Procédé de mise en oeuvre d&#39;une multiplication modulaire selon la méthode de Montgoméry
FR2617349A1 (fr) Procede et dispositif de synthese numerique d&#39;un signal d&#39;horloge
EP0939362A1 (fr) Coprocesseur d&#39;arithmétique modulaire permettant de réaliser des opérations non modulaires rapidement
FR2695730A1 (fr) Méthode et appareil pour traiter un signal numérique amélioré utilisant une transformée de Fourier.
EP0476592A2 (fr) Générateur d&#39;adresses pour la mémoire de données d&#39;un processeur
EP1099998A2 (fr) Coprocesseur pour la synthèse de signaux basée sur des polynômes sinusoidaux quadratiques
EP0667969A1 (fr) Dispositif electronique de calcul d&#39;une transformee de fourier et procede pour minimiser la taille des chemins de donnees internes d&#39;un tel dispositif
EP0927928B1 (fr) Procédé de production amélioré d&#39;un paramètre JO associé à la mise en oeuvre d&#39;opérations modulaires selon la méthode de Montgomery
EP0190514A1 (fr) Dispositif de test en ligne de circuit de calcul de la transformée de Fourier discrète, et circuit comportant un tel dispositif
EP0718746B1 (fr) Multiplieur de booth pour fonctions trigonométriques
FR2536541A1 (fr) Systeme simplifie d&#39;analyse spectrale a exploitation de phase
US5412588A (en) Digital sine-wave generating circuit