FR 2570853 A1 19860328 FR 8414624 A 19840924 25708S 3 Dispositif de traitement en temps réel de siqnal numé- rique par convolution L'invention concerne les dispositifs pour effec- tuer, sur un signal, un traitement en temps réel, néces- sitant donc une vitesse élevée de calcul, comportant le calcul de produits de convolution que l'on peut ramener à des convolutions circulaires de la forme: N-1 Y =.h n k n-k k=0 o n = 0, 1,.... N-1, sont pris modulo N ainsi que n-k. L'invention est utilisable dans toutes les ins- tallations exigeant un traitement numérique du signal et elle trouve une application particulièrement importante dans les filtres numériques, incorporés notamment aux modems constituant interfaces entre un système numérique et un canal de transmission. L'obtention d'une vitesse de traitement élevée passe par la réduction de la complexité des calculs à effectuer par point de la convolution à calculer. Une solution classique utilisée est l'application de la transformée de Fourier discrète sur x(n) et h(n) et de la transformée inverse aprèsmultiplication des résul- tats. Mais cette solution fait intervenir des nombres complexes et conduit à des erreurs d'arrondi. Au sur- plus, le nombre de multiplications et d'additions néces- saire par point de la convolution, même lorsqu'on uti- lise des algorithmes évolués (transformée de Fourier rapide, algorithme de Winograd), reste excessif pour permettre un traitement en temps réel de débits élevés de données. Une solution qui parait plus avantageuse con- siste à utiliser la transformée en nombres entiers (TNE) qui conduit à un dispositif de calcul de produits de convolution du genre montré en Figure 1. L'entrée et la sortie des circuits de TNE sont reliées par la rela- tion: N-1 nk X = E x(n). a (mod M) (1) k n=0 avec k = 0,1..., N-1. Dans cette formule, a est une racine primitive Nième de l'unité modulo M. Le circuit TNE 1 effectue la transformation in- verse. Les avantages que l'on peut attendre des TNE sont de deux ordres. La convolution est obtenue exacte- ment, sans bruit de calcul, pourvu que sa valeur soit inférieure à M. Si le couple longueur N - module M est correctement choisi, " peut être très simple, par exem- ple égal à 2. Dans ce cas, la transformée ne comporte plus de multiplications générales, mais uniquement des k multiplications par 2 qui sont réalisées par décalage dans des circuits binaires. Pour des transformées plus longues, on peut également adopter f = 2. Là encore, on supprime les multiplications, dans la partie transfor- mée, sans augmenter notablement le nombre d'additions. Mais on se heurte en contrepartie à deux inconvénients: les multiplications sont remplacées par des manipula- tions au niveau de l'élément binaire (bit): les opéra- tions, notamment les additions, doivent être effectuées en modulo M. L'examen détaillé montre que l'on ne tire véritablement parti de ces simplifications qu'en les mettant en oeuvre dans des transformées de petite lon- gueur, notamment pour N = 4 et N = 3. Mais, dans la pra- tique, il est nécessaire de disposer de transformées de longueur totale très supérieure, ce qui implique d'uti- liser des transformées décomposables en transformées de faible longueur. La prise en considération de ces motifs a conduit jusqu'ici à adopter essentiellement des arithmé- tiques de TNE utilisant des valeurs de M résultant de sommes ou différences de deux ou trois puissances de 2 différentes. Dans le premier cas, o M = 2 + 1, on se trouve en présence de deux transformées connues (Mersenne et Fermat) pour lesquelles l'arithmétique est simple. Mais ces transformées ne permettent pas de grandes longueurs N de convolution. 0la Dans le second cas, les arithmétiques actuelle- ment utilisées ne sont intéressantes que pour des va- leurs de M permettant de travailler avec 2 comme racine primitive de l'unité modulo M, ce qui conduit à M = 22q - 2q+1 ou M = 22q-1 - 2q+1. La première solution est la plus avantageuse car elle autorise facilement une décomposition en transfor- mées de faible longueur pouvant se calculer à l'aide d'algorithmes rapides. Ces solutions, même conjuguées à un codage "di- minué de 1" qui fait correspondre C(x) = x-1 à x, pour simplifier les décalages, restent insuffisantes. Le ni- veau de complexité du décalage reste encore de trois ad- ditions dans le cas o M = 22q - 2q+1. L'invention vise à fournir un dispositif de traitement en temps réel utilisant les TNE, avec un mo- dule M de la forme 2 - 2q+1 (la forme particulière 22q - 2q+1 étant plus avantageuse pour certaines opéra- tions), conduisant à des opérations notablement simpli- fiées, notamment les décalages. Dans ce but, l'invention propose notamment un dispositif de traitement en temps réel de signal numéri- que par convolution, comprenant un circuit multiplica- teur associé à des circuits à transformation en nombres entiers, à module M de la forme 2? - 2q+1 sur chaque entrée, et à un circuit à transformation inverse sur la sortie, caractérisé en ce que chacun des circuits à transformation en nombres entiers est précédé d'un circuit de changement de base arithmétique et de codage, et en ce que le circuit de transformation in- verse est suivi d'un circuit de décodage et de retour à la base de départ, lesdits circuits étant prévus de façon qu'à un nombre X modulo M dans la base d'origine en puissance de 2 corresponde, dans la nouvelle base, un nombre x p-1 '' xp-2 -' xl x0 tel que P-q-1 q-1 X -f.x.+ ej qe p (modulo M) (2) i=O - j=O Dans la -nouvelle base arithmétique, plusieurs séries de f. et e. conduisant aux mêmes circuits arith- métiques sont possibles. Mais elles doivent remplir les conditions: (f, M) = 1 (c'est-à-dire que f et M sont premiers o o entre eux, f étant un entier compris entre o 1 et M-1), 2fpq_1 = e +f (mod M) et 2e = -f (mod M) p-q-i oo q-i o fi=fi+1 2e = e+1 pour les autres indices. Oeux cas pratiques du fait de leur simplicité consistent à prendre: f = + 1; on a alors f.=2J j=.......P-q-1 o 3 e.=2 q+ J-2j j=O,.....,q-1 ou f = 1; on a alors f.=-2J j=,.....,P-q-1 e =2 q+ +2 j=0........ q-1 Une étude théorique montre qu'il s'agit bien d'une base arithmétique pour l'ensemble des entiers mo- dulo M: tout nombre 0 X sache décoder ces deux représentations. Dans le cas, im- portant en pratique, o P = 2q, fo = 1, l'ensemble de o ces nombres est constitué par les multiples de 2q. Le codage (ainsi que le décodage) peut être ef- fectué après changement de base aussi bien qu'avant changement de base. Mais, dans le second cas, ce codage fera correspondre C(X) = X-f à X. On verra dans la o suite que le choix f =-1 permet de regrouper codage et changement de base dans le même circuit. L'invention sera mieux comprise à la lecture de la description qui suit de dispositifs qui en consti- tuent des modes particuliers d'exécution, donnés à titre d'exemples non limitatifs. La description se réfère aux dessins qui l'accompagnent, dans lesquels: - la Figure 1, déjà mentionnée, est un schéma de principe d'un dispositif de calcul de produits de convo- lution uLilisant des circuits de TNE, - la Figure 2, similaire à la Figure 1, montre un dispositif de traitement de signal faisant intervenir deux signaux d'entrée X et H, correspondant à des nom- bres modulo M, exprimés en base habituelle des puis- sances de 2, et un signal de sortie Y, convolution circulaire de X et H, - la Figure 3 est un schéma montrant les nota- tions utilisées pour désigner les entrées et sorties d'un additionneursoustracteur élémentaire utilisé dans les différents circuits du dispositif, - les Figures 4 et 5 sont des synoptiques d'additionneurssoustracteurs d application générale, celui de la Figure 5 associant plusieurs additionneurs- soustracteurs élémentaires en complément à 2; - la Figure 5a, similaire à la Figure 5, montre une réalisation simplifiée, 70853 - les Figures 6 et 7. sont des synoptiques de circuits de transformation en nombres entiers de longueur 3 et 4, respectivement, - la Figure 8 est un synoptique d'un circuit de k -5 multiplication par 2 dans le code, utilisable dans des circuits de recombinaison de transformées de longueur faible, - les Figures 9 et 10 montrent des variantes de réalisation de la Figure 8, - la Figure 11 est un synoptique d'un circuit de multiplication par VD dans le code, utilisable dans des circuits de recombinaison de transformées courtes, - les Figures 12 et 13 sont des synoptiques mon- trant deux circuits possibles de codage et de changement de base, faisant correspondre C(x) à X, - la Figure 14, similaire aux Figures 12 et 13, est un schéma de principe d'un circuit de décodage et de retour à la base d'origine faisant correspondre Y à C(y), - la Figure 15, similaire à la Figure 14, montre un circuit de décodage -et de retour à la base de départ fournissant Y sous forme de complément à 2, - les Figures 16 et 17 sont des synoptiques de variantes de réalisation de la Figure 15, - la Figure 18 est un synoptique de principe d'un circuit de multiplication général utilisable dans le dispositif de la Figure 3, les Figures 12 à 17 correspondent toutes au cas f = -1, o les opérations de codage (respectivement de o décodage) et de changement de base (respectivement de retour à la base de départ) sont effectuées dans le même circuit. Avant de décrire des circuits permettant de mettre en oeuvre l'invention, on définira le synoptique du dispositif dans son ensemble, puis les fonctions à remplir par ses blocs constitutifs. Comme le montre la Figure 2, sur chacune des voies aboutissant au jeu de multiplicateurs 10 la donnée d'entrée Xn ou Hn (représentée par un multiplet en numé- ration binaire, modulo M) est appliquée à un circuit 12 de changement de base et de codage pour donner naissance à une valeur codée C(xn) ou C(hn). Les deux opérations peuvent être effectuées dans un ordre quelconque. Pour Xn par exemple, on peut: - soit effectuer d'abord le changement de base, qui transforme la valeur X en x, puis le codage pour transformer x en C(x) = x-fo, - soit effectuer le codage C(X) = X-fo avant le changement de base qui donne C(x). Le circuit 14 de décodage et de retour à la base de départ utilise la possibilité déjà citée de recombi- ner ces deux opérations dans le cas o f -1. o Les circuits 16 et 18 destinés à calculer les transformées TNE et TNE1 utiliseront toujours des cir- cuits fournissant des transformées de faible longueur. généralement correspondant à N = 3 ou 4, associés à des circuits d'assemblage de telles transformées pour arri- ver à la longueur requise. On cherchera à réaliser les circuits fournissant les transformées de faible longueur à partir d'un petit nombre de types d'opérateurs afin de faciliter la conception et la fabrication des circuits. On décrira maintenant, successivement: - les composants élémentaires utilisés dans les circuits, - des constitutions possibles de blocs addition- neurs-soustracteurs incorporant les éléments de base, - les circuits d'élaboration de transformées de longueur 3 et de longueur 4, - les circuits nécessaires à' l'assemblage de telles transformées pour obtenir des transformées de longueur supérieure, - et enfin les circuits qu'on peut qualifier d'extérieurs à la TNE, c'est-à-dire les circuits de changement de base, de codage, de décodage et de mul- tiplication générale calculant le produit de convolu- tion. Les opérateurs seront décrits dans leur applica- tion à des transformées o P = 2q. Mais les résultats sont en général également vrais pour d'autres couples de valeurs de P et de q qui ne respectent pas cette condi- tion. tl Composants élémentaires Les composants élémentaires utilisés dans la constitution des additionneurs-soustracteurs en arithmé- tique modulo M (Figures 4, 5 et 5a) sont en nombre aussi faible que possible. Ils interviennent chacun sur q bits (ou sont constitués par l'association d'éléments trai- tant chacun un nombre de bits qui est un sous-multiple de q). Ces composants élémentaires comportent des in- verseurs logiques, ainsi que des circuits ET, OU et OU EXCLUSIF de type classique. Ils comportent surtout des composants élémentaires additionneurs-soustracteurs 20. Dans le circuit de la Figure 4, il s'agit d'addition- neurs-soustracteurs simples; dans les circuits des Figures 5 et 5a, il s'agit d'additionneurs-soustracteurs en complément à 2. Les notations qui seront utilisées apparaissent sur la Figure 3 o: x et y désignent les nombres appliqués à l'en- trée, z désigne le nombre apparaissant en sortie, ri est la retenue entrante, ro=est la retenue sortante, F est une entrée "fanion", destinée à fixer le mode de travail, par exemple: q pour F = 0, z = x+y+ri+2 rO -q pour F = 1, z = x+y+ri+2 rO Les notations x et y utilisées ici pour décrire le fonctionnement en additionneur et en soustracteur ne doivent évidemment pas être confondues avec celles qui interviennent dans le traitement global de convolution. On utilisera par ailleurs les notations gO et gl pour désigner les commandes qui permettent de réaliser les divers types d'opérations requis, selon le Tableau I ci-après: TABLEAU I gl gO Type d'opération Calcul effectué avec C(x) et C(y) aux entrées O O additions code C(x+y) = x+y - f Y 0 1 additions modulo M C(x)+C(y) = x+y 2? ti 1 0 soustractions code C(x-y) = x-y - f 1 1 soustraction modulo M C(x)-C(y) = x-y J On voit que chaque opération fait correspondre, à deux nombres x et y déjà codés sous la-forme C(x) et C(y), le code de la somme C(x+y) ou une autre combinaison. Les additions et soustractions- code sont les seules indispensables: les autres opérations ne sont utiles que pour le décalage, o les additions modulo n'apportent qu'une simplification. Le premier circuit qui va être décrit en faisant référence à la Fig. 4 permet d'effectuer ces quatre opé- rations à l'aide d'additionneurs-soustracteurs simples. Le second circuit, représenté en Fig. 5', effectue ces opérations à l'aide d'additionneurs-soustracteurs en complément à 2. Une version simplifiée n'effectuant que les additions soustractions code est donnée en Figure 5. Additionneur-soustracteur La Figure 4 montre une réalisation possible d'un additionneur-soustracteur "hors du code", comportant quatre additionneurs-soustracteurs élémentaires simples -11, 20-12, 20-13 et 20-14. L'additionneur-soustrac- teur est prévu pour traiter des nombres X et Y de chacun 2q bits pour fournir un nombre Z, également de 2q bits. Chaque additionneur-soustracteur élémentaire comporte deux entrées, identifiées par E1 et E2 et une entrée de retenue ri. Il comporte une sortie de résultat S et une sortie de retenue rO. Le circuit de la Figure 4 permet d'effectuer, sur les données X et Y, l'une quelconque des opérations: addition code, addition modulo, soustraction code, soustraction modulo. L'opération à effectuer est fixée par le niveau binaire g appliqué sur l'entrée de fanion F et le niveau logique p appliqué à l'entrée de retenue ri de l'addi- tionneur-soustracteur élémentaire 20-12. Les q bits de poids faible de X et de Y sont respectivement appliqués aux entrées E1 et E2 de l'addi- tionneur-soustracteur élémentaire 20-12; les bits de poids fort de X et de Y sont respectivement appliqués aux entrées E1 et E2 de l'additionneur-soustracteur élé- mentaire 20-11. La sortie rO de l'additionneur-soustrac- teur 20-12 est appliquée à la fois à l'entrée ri de l'additionneursoustracteur 20-11 et à l'entrée ri de l'additionneur-soustracteur 20-14. La sortie de retenue rO de l'additionneur-soustracteur 20-11 est appliquée aux entrées de fanion F des additionneurs-soustracteurs -13 et 20-14. La sortie S de l'additionneur-soustrac- teur 20-13 fournit alors les q bits de poids fort de Z la sortie S de l'additionneur-soustracteur 20-14 donne q-1 des bits de poids faible de Z. Enfin, le bit de poids le plus faible de Z est fourni par une porte NON OU EXCLUSIF 54 dont les entrées reçoivent les sorties rO des additionneurs-soustracteurs 20-13 et 20-14. Il faut remarquer que ces deux additionneurs-soustracteurs ef- fectuent des opérations qui se limitent à des propaga- tions de retenue. Dans la mesure o on ne recherche pas essentiellement l'emploi de blocs élémentaires identi- ques, les éléments 20-13 et 20-14 peuvent être simpli- fiés de façon notable. Dans ces conditions, on obtient la sortie Z donnée par le Tableau II cidessous: TABLEAU II il g I P Z Add. code 0 1 X + Y + f Add. modulo 0 0 X + Y Soustr. code 1 0 X - Y - f o Soustr.modulo 1 1 X - Y - Le circuit de la Fig. 5 permet, de son côté, de réaliser l'ensemble des fonctions définies dans le Ta- bleau I sur des entrées constituées par des nombres de q bits, avec par exemple q = 12, et forme aussi un addi- tionneur-soustracteur d'application générale, mais, cette fois-ci, utilisant des additionneurs-soustracteurs élémentaires en complément à 2. Eventuellement, les com- posants élémentaires 20 d'addition-soustraction en com- plément à 2 pourront être constitués par mise en série de trois éléments travaillant chacun sur quatre bits en complément à 2. Le circuit de la Figure 5 comporte quatre compo- sants élémentaires d'addition-soustraction 20-1, 20-2, 20-3 et 20-4 dont les entrées de fanion sont respective- ment désignées par F1, F2, F3 et F4. Ces additionneurs sont associés à des circuits assurant les fonctions ET (indiqués A), OU (indiqués V) et OU EXCLUSIF (indiqués )>. L'examen du circuit montre que F1 = F2 = gl et que la valeur prise par les fanions F3 et F4 est: F3 = F4 =g 91 (rq-1 A r2q-1 A g0) Les sorties Ui et U0 prennent de leur côté la valeur: U1 = gO0 A rq-1 A r2q-1 UO = rq-1 g0 r2q-1 On obtient alors, en sortie du circuit, la valeur de z donnée par le Tableau I pour chaque couple de valeurs de 90 et 91, sur 2q bits, soit q bits de poids faible (ou LSB) et q bits de poids fort (ou MSB). On voit que l'emploi de la base définie par la formule (2) permet de n'utiliser qu'un seul schéma de circuit pour constituer l'ensemble des quatre types d'additions et de soustractions modulo M nécessaires au calcul des transformées, définies par le Tableau I. Les quatre additionneurs-soustracteurs 20 sont répartis en deux couches. La deuxième couche sera plus simple à réaliser en intégration monolithique que la première, un des signaux entrant sur chacun des compo- sants élémentaires d'addition-soustraction 23 et 24 de la seconde couche étant un mot d'au plus 2 bits. On peut utiliser, au lieu du schéma de la Figure , celui qui est montré en Figure 5a, mais uniquement pour effectuer des additions-soustractions réalisées dans le code de transformation, ce qui exclut les opéra- tions définies par les deuxième et quatrième lignes du Tableau I. Les circuits de la Figure 5a n'utilisent, pour tous les fanions, qu'une seule valeur g, qui peut pren- dre les deux valeurs de gl du Tableau I et permet de remplir toutes les fonctions correspondant à g = 0 dans ce Tableau. On verra que ce circuit simplifié est suffisant dans beaucoup de cas, en dépit de ces limitations. Il faut relever au passage que l'utilisation en cascade d'un ET et d'un OU EXCLUSIF n'est nullement es- sentielle pour former le bit de poids le plus faible de z: tout autre schéma réalisant la fonction OU EXCLUSIF sur la sortie rO de 20-4, le complément de la sortie rO de 20-3 et le bit de poids le plus faible de la sortie de résultat de 20-4 serait utilisable. Sur les Figures qui vont maintenant être dé- crites et montrent les circuits d'élaboration des trans- formées de longueur 3 et 4 à partir de blocs du genre montré en Figure 5 ou 5a, les entrées gO0 et gl ne seront pas représentées pour plus de simplicité, les valeurs données à gO et gl étant seules indiquées. Circuit d'élaboration de TNE de lonqueur 3 ou 4 sur des mots codés et dans la nouvelle base La Figure 6 montre un circuit fournissant la transformée de lonqueur 3 à partir des trois nombres déjà codés et amenés dans la nouvelle base, C(xO), C(x1) et C(x2). Ce circuit traite séparément les q bits de poids fort (MSB) et les q bits de poids faible (LSB). Il est particulièrement simple puisqu'il ne comporte pas d'inversion des signaux d'entrée C(xO), C(x1), C(x2). Ce résultat a été atteint par un choix approprié des opéra- tions effectuées par les différents opérateurs. On voit que ces derniers peuvent tous être constitués par des circuits du type montré soit en Figure 4, soit en Figure , soit en Figure 5a. On voit que la transformée de longueur 3 est ainsi obtenue en utilisant uniquement sept additionneurs modulo M répartis en deux couches, ce qui se traduit par quatre couches de composants élémentaires 20. Pour réa- liser une transformée de Fourier rapide de même lon- gueur, il aurait fallu utiliser deux couches de trois additionneurs travaillant chacun sur des nombres com- plexes et une couche de multiplicateurs, plus lents et beaucoup plus compliqués. La Figure 7 montre, de façon similaire à la Figure 6, un circuit permettant de fournir la transfor- mée en nombre entier de longueur 4, par une constitution qui permet encore d'éliminer les inversions de signaux d'entrée. Là encore, on voit que tous les composants élémentaires additionneurs-soustracteurs peuvent être constitués soit par les additionneurs-soustracteurs d'application générale des Figures 4 et 5, soit par la version simplifiée de la Fig. 5a. Pour plus de simplici- té, on n'a pas différencié sur la Figure 7 les liaisons à 2q bits et les liaisons à q bits. Il faut simplement remarquer sur la Figure 7 que la sortie de l'addition- neur-soustracteur 22-1 de 2q bits, est découpée en quatre parties de chacune q/2 bits. Les deux sorties sO et sl de poids faible sont appliquées sur l'entrée d'ad- dition de l'additionneur-soustracteur 22-5, dans une combinaison différente. Les sorties de poids fort s2 et s3 sont appliquées, de façon similaire, sur l'entrée d'addition de l'additionneur-soustracteur 22-5 et sur l'entrée de soustraction de l'additionneur-soustracteur 22-5, la quatrième série de q/2 bits étant une série de 1. Circuits d'assemblage des transformées de longueur 3 et 4 en transformées de longueur supérieure Le processus d'assemblage de transformées théo- riques de nombres est en lui-même connu et il est large- ment utilisé dans des circuits d'assemblage de transfor- mées de Fourier rapides. Cet assemblage implique essen- tiellement des multiplications par 2k et par V2. Mais la mise en oeuvre du processus est notablement simplifiée dans le cas de l'invention, comme cela apparaitra à l'examen des circuits qui vont maintenant être décrits. - Certains couples de module M et de longueur N utilisant 2 comme racine de. l'unité sont particulière- ment intéressants: on peut. notamment citer ceux men- tionnés dans l'article "Longer NTT's with 2 as a root of unity" de H.. Hollmann et al, dans ICASSP, 1983. Le circuit 23 montré en Figure 8 permet de cal- k culer C(2.x) à partir de C(x). Physiquement, cette opération est effectuée par des décalages élémentaires, correspondant chacun à une multiplication par 2. Le circuit correspondant comporte un additionneur-sous- * tracteur 24 qui, cette fois, ne peut pas avoir la cons- titution simplifiée montrée en Figure 5a. Les deux en- trées de cet additionneur 24 reçoivent une combinaison des bits de poids faible et de poids fort de C(x), in- troduits dans un registre 26 muni d'une boucle de recir- culation à inverseur 28. Le multiplet de 2q bits à mul- ktiplier par 2 est charg en parallie dans les deux tiplier par 2 est chargé en paralléle dans les deux 7 0 8 53 1 5 parties terminales, ayant chacune q positions, du regis- tre à décalage 26 dont la contenance est de 3q bits. Par application d'un signal d'horloge sur une entrée non représentée, k décalages successifs sont effectués sur le registre. L'additionneur-soustracteur 24 fournit le résultat par addition modulo M. Les quatre demi-mots appliqués aux entrées de l'additionneur-soustracteur 24 peuvent être combinés de manière différente de celle de la Figure 8. La Figure 9 montre un circuit 23 constituant une variante de réali- sation utilisant les mêmes composants 24, 26 et 28 que la Figure 8. La Figure 10 montre une autre variante encore, qui autorise l'emploi de l'additionneur-soustracteur simplifié de la Figure 5, mais exige l'adjonction de deux inverseurs supplémentaires 30. Les registres à décalage 26 des Figures 8, 9 et peuvent être constitués physiquement par des multi- plexeurs, commandés par la valeur de k (nombre de déca- lages): ainsi un décalage de k positions se fait en-un seul coup d'horloge, ce qui constitue un gain de temps. Il ne sera nécessaire de disposer d'un circuit de multiplication par V2 que pour certaines valeurs de N qui amènent à utiliser V2 comme racine Nième de l'unité. Par e)xemple, pour P = 2q, avec N = 6q, on-a: NyT = 2 N/8 (2N-4 -1) modulo H. Dans ce cas, le changement de base permet de gagner une addition par rapport aux méthodes habituelles de multiplication parVe: cette multiplication peut se faire à l'aide du circuit 32 de la Figure 11 et met en oeuvre deux additionneurs-soustracteurs 24 qui peuvent être de type simplifié Le mot de code C(x) est coupé en huit parties de même longueur xO,... x8 qui sont redistribuées aux entrées des soustracteurs 24 "dans le code". Pour 1G faciliter la lecture du schéma, les connexions ne sont pas indiquées, mais on voit que les mots appliqués aux entrées sont: Premier soustracteur: entree +: x2 xl xO 1 x7 x6 x5 entrée -: x6 x5 x4 x7 x6 x5 x4 x3 Deuxième soustracteur: entree +: sortie du premier additionneur entree -: x4 x3 x2 xl xO x3 x2 xl - 1 Circuits extérieurs aux TNE et TNE Le dispositif de traitement comporte, en plus des circuits de calcul de transformée, les circuits 12 et 14 (changement. de base, codage et décodage) et le circuit de multiplication générale 10. On donnera maintenant, à titre d'exemples, des circuits appropriés lorsque le changement de base tel que défini par la formule (2) est effectué en prenant f0= -1. Les circuits de changement de base et de codage peuvent alors être très simples, car les deux opérations n'en font plus qu'une seule, constituée par le passage du "complément à 2" sur la base habituelle des puis- sances de 2, au nombre codé et représenté dans la nou- velle base. Les Figures 12 et 13 montrent deux circuits per- mettant d'effectuer le changement de base et le codage dans le cas o l'on s'impose que tous les signaux trai- tés sont positifs. Cette condition peut aisément être remplie en additionnant une constante au signal d'entrée. Le circuit montré en Figure 12 comporte un additionneur-soustracteur 24 auquel est appliquée une commande 90g = 1, ce qui exclut l'utilisation du montage de la Figure 5a. L'une des entrées reçoit la grandeur X à coder sous la forme C(x). L'autre entrée reçoit, comme chiffres de poids fort, q zéros, comme chiffres de poids faible, les q chiffres de poids fort de X. La sortie de l'additionneur-soustracteur 24 fournit l'inverse de C(x), ce qui permet de récupérer C(x) par simple inter- position d'inverseurs 34. On voit que ce circuit exige uniquement un additionneur-soustracteur, 2q inverseurs et une manipulation sur les bits de X. Le résultat est obtenu par addition de mots, "hors du code", et complé- mentation du résultat. La variante de réalisation montrée en Figure 13 utilise un additionneursoustracteur 24 qui peut, cette fois, être du type simplifié montré en Figure 5a. Elle comporte, comme éléments d'entrée, un jeu d inverseurs 36 qui fournissent en sortie le complément de X. Ce complément est appliqué sur l'une des entrées de l'additionneur-soustracteur 24.. L'autre entrée reçoit, en tant que chiffres de poids fort, q "un", en tant que chiffres de poids faibles, les q bits de poids fort du complément. Le résultat C(x) est alors obtenu directe- ment en sortie de l'additionneur 24. Le codage et le changement de base se ramène- raient simplement à une complémentation dans le cas o X est codé sur moins de q bits, Mais, du fait de l'adjonc- tion d'une constante au signal d'entrée pour rendre X positif ou nul, cette condition ne sera généralement pas remplie. Dans le cas o l'on s'impose que X est donné en complément à 2 sur q bits, ou moins, le codage et le changement de base constituent une seule opération qui est très simple: il suffit d'étendre X sur 2q bits, par propagation du bit de signe dans un registre, puis de complémenter le registre ainsi obtenu. Les circuits permettant de passer du nombre codé dans la nouvelle base à un nombre codé en complément à 2 dans la base de départ (base des puissances de 2) peu- vent également être réalisés de façon simple. Cette opération est effectuée par le circuit 14 sur le résul- tat C(y) de la transformée en nombre entier inverse TNE sur la Figure 2. Dans le cas o Y est un nombre binaire positif ou nul, le circuit peut être celui montré en Figure 14. Il comporte un jeu d'inverseurs 38 destinés à complé- menter le signal d'entrée C(y) et un soustracteur clas- sique 40. L'entrée + du soustracteur reçoit le complé- ment de-C(y). L'entrée - reçoit q zéros en tant que bits de poids fort, les quatre bits de poids fort du complé- ment de C(y) en tant que bits de poids faible. Dans la mesure o l'on veut disposer de Y sous forme de son complément à 2, le circuit peut être celui de la Figure 15. Il comporte un additionneur-soustrac- teur 42 présentant une entrée de fanion F qui permet deux modes de fonctionnement différents suivant que cette entrée est à zéro ou à 1. L'entrée + de l'addi- tionneur-soustracteur 42 reçoit le complément à 2 du signal C(y) élaboré par des inverseurs 44. L'autre en- zo20 trée reçoit q zéros en tant que bits de poids fort, la sortie d'un multiplexeur deux vers un 46 en tant que bits de poids faible. L'une des entrées du multiplexeur reçoit les bits de poids fort de C(y), l'autre le com- plément de ce nombre de q bits, élaboré par des inver- seurs 48. Le bit de poids le plus fort de C(y), qui représente le signe, est appliqué à l'entrée F et à l'entrée de commande du multiplexeur 46. Lorsque ce bit de signe est à zéro, ce sont les bits de poids fort de C(y) qui sont appliqués à la se- conde entrée de l'additionneur-soustracteur 42 et l'opération effectuée consiste en l'addition de C(y) et des q bits de poids fort de C(y), affectés des poids faibles. L'additionneur-soustracteur est alors en mode addition. Si au contraire le bit de poids fort de C(y) est égal à 1, la sortie du multiplexeur est constituée par le complément des bits de poids fort de C(y) et l'addi- tionneur-soustracteur 42 fonctionne en mode soustrac- tion. La sortie Y est alors constituée par la différence entre C(y) et les q bits de poids fort de C(y), affectés au poids faible. D'autres variantes encore de réalisation des circuits de changement de base et de décodage sont pos- sibles, utilisant l'addition-soustraction modulo M dans le code. Les Figures 16 et 17 montrent deux autres cir- cuits constituant des variantes de celui de la Figure , permettant également d'obtenir Y en complément à 2 à partir de C(y) et pouvant utiliser des additionneurs- soustracteurs élémentaires du genre de celui montré en Figure 3 et qui, selon l'état du fanion F, fournit sur sa sortie: pour F = 0, x+y+ri pour F = 1, x+y+ri. Les opérations sont effectuées sur des nombres de 2q bits. -Dans le cas de la Figure 16, C(y) est appliqué. sur l'entrée qui est soustractive pour F = 1 et le fanion est mis à 1. Le bit de signe de C(y) (bit de poids le plus fort) est appliqué comme entrée de retenue ri. Ce même bit de signe est appliqué en tant que valeur des q bits de poids fort à l'entrée additive de l'additionneur-soustracteur élémentaire. Dans le cas de la Figure 17, c'est le bit de signe de C(y) qui est appliqué à l'entrée de fanion F. L'opération effectuée par l'additionneur-sous- tracteur 20 est une addition lorsque le fanion F est-à zéro, une soustraction lorsque ce fanion est à un. Si le bit de signe de C(y) est égal à 0, on obtient en sortie Y = C(y) avec les q bits de poids fort de C(y) ramenés aux poids les plus faibles de Y. La sortie du multi- plexeur 50 est en effet alors l'entrée constituée par les q bits de poids fort de Cly). Si au contraire le bit de signe de C(y) est égal à 1, Y est constitué par C(y) dont sont retranchés les q bits de poids fort de C(y), ramenés aux poids faibles. La sortie du multiplexeur est alors en effet dans ce cas celle qui reçoit les q bits de poids fort par l'intermé- diaire d'inverseurs 52. Enfin, le circuit 10 de la Figure 2, qui doit réaliser une multiplication générale, doit être prévu pour effectuer, terme à terme, N multiplications entre: - les multiplicandes constitués par les N mots transformés-des N mots entrants Xn, - les N multiplicateurs constitués par les N mots transformés à partir des N mots entrants Hn. Ces multiplications peuvent être réalisées en utilisant la technique, bien connue, d'additions et de décalages successifs. Mais il est plus avantageux d'uti- liser les opérateurs simples déjà définis permettant la multiplication par toute puissance de 2 modulo M gures 8, 9 et 10) et ceux permettant la multiplication par V2 modulo M {Figure 11). Ce résultat peut être at- teint par un processus de traitement qu'on peut quali- fier de "méthode des additions-décalages généralisés"' et qui sera maintenant décrit. Lorsque l'on doit multiplier deux nombres X et H l'un par l'autre et que H est fixe, on décompose H en plusieurs termes: K Hi = Z V'2)i Modulo M i=1 Les termes de H peuvent être ordonnés sous la forme: j K H = Z 2ki Vd + Z 2ki i4=1 i=j+ Le circuit peut alors être celui schématisé en Figure 18, o la partie haute correspond au premier ter- me de l'équation ci-dessus. Il faut relever que K peut dans ce cas être beaucoup plus faible que dans une représentation sous forme d'un nombre binaire affecté d'un signe pour un calcul habituel. L'invention est susceptible de très nombreuses variantes de réalisation, portant aussi bien sur la constitution des composants que sur leur association. Dans tous les cas, les circuits élémentaires utilisés présentent une grande généralité: les addi- tionneurs-soustracteurs modulo M précédemment décrits sont utilisables quelle que soit la valeur de f choi- o sie. On dispose ainsi d'un bloc qui sera seul utilisé en dehors d'éléments courants. Seuls les circuits de codage-changement de base et de décodage-retour à la base de départ dépendent de la valeur choisie pour f. Aussi bien les additionneurs-soustracteurs que les élé- ments de décalage ne dépendent pas de la longueur de transformée totale. Ils dépendent uniquement du module M choisi. Seul sera modifié, en fonction de la longueur de transformée totale, le circuit permettant de recombiner les transformées de faible longueur, circuit constitué à partir de circuits de multiplication par 2 et par 42 dans le cas, qui sera le plus fréquent, o l'on prend 2 ou 42 comme racine Nième de l'unité modulo M. REVENDICATIONS 1. Dispositif de traitement en temps réel de signal numérique par convolution, comprenant un circuit multiplieur associé à des circuits à transformation en nombres entiers, à module M de la forme: 2 - 2q + 1 sur chaque entrée et à un circuit à transformation inverse sur la sortie, caractérisé en ce que chacun des circuits à transformation en nombres entiers (16) est précédé d'un circuit de changement de base arithmétique et de codage (12) et en ce que le circuit de transformation inverse est suivi d'un circuit de décodage et de retour à la base de départ (14), lesdits circuits étant prévus de façon qu'un nombre X modulo M dans la base d'origine en puissances de 2 corresponde, dans la nouvelle base, à un nombre p-q-1 q-1 X = fixi + E ejxj-q+P (modulo M) i=O j=O f0 étant un entier compris entre 1 et M-1 et les coeffi- cients fi et ej remplissant les conditions 2f P = e +f (mod M) et 2e = -f (mod M) 2P-q-1 o o q-1 o 2fi =fi+1 2e. = ei+1 pour les autres indices. 2. Dispositif selon la revendication 1, carac- térisé en ce que chacun des circuits à transformation en nombres entiers (16) est constitué de plusieurs circuits fournissant chacun une transformée de longueur 3 ou 4 et d'un circuit de recombinaison des transformées de lon- gueur 3 ou 4 pour atteindre la longueur totale de la transformée. 3. Dispositif selon la revendication 1 ou 2, ca- ractérisé en ce que les circuits de transformation en nombres entiers utilisent un module M de la forme 2 2q 2q + 1; et 2 ou ff comme racine primitive Nième de l'unité modulo M. 4. Dispositif selon la revendication 1, 2 ou 3, caractérisé en ce que les circuits de changement de base et de codage sont constitués par un circuit unique, fO étant pris égal à -1 dans le changement de code. 5. Dispositif selon l'une quelconque des reven- dications précédentes, caractérisé en ce que les cir- cuits de transformation en nombres entiers (TNE et TNE-1) ainsi que les circuits de décodage et de change- ment de base sont constitués par association d'addi- tionneurs-soustracteurs élémentaires identiques modulo M permettant de réaliser au moins les fonctions addition- soustraction simple et addition puis addition de f o (dite addition "dans le code") ou soustraction puis soustraction de f (dite soustraction "dans le code"). o 6. Dispositif selon la revendication 3, caracté- risé en ce que le circuit de multiplication par f2 est constitué de façon à réaliser deux additions modulo M, dans le code. 7. Dispositif selon la revendication 3, caracté- 2k risé en ce que le circuit de multiplication par 2 est constitué d'un registre à décalage suivi d'un seul addi- tionneur dans le code modulo M ou d'une seule addition simple modulo M, quelle que soit la valeur de k (Figure 8 ou 9). 8. Dispositif selon la revendication 1, 2 ou 3, caractérisé en ce que chaque circuit de transformation en nombres entiers de longueur N = 3 comprend sept additionneurs modulo M répartis en deux couches, les quatre additionneurs (22-1 à 22-4) de la première couche recevant des combinaisons différentes des bits de poids faible et de poids fort des trois nombres codés et ame- nés dans la nouvelle base (Cix), Cx 1) Clx2)H tandis o 1' 2 que les trois additionneurs de la seconde couche (22-5 à 22-7) reçoivent des combinaisons différentes des sorties de la première couche (Figure 6). 9. Dispositif selon l'une quelconque des reven- dications précédentes, caractérisé en ce que le circuit multiplieur (10), destiné à effectuer, terme à terme. N multiplications entre N mots Ci-X) transformés de N mots entrants Xn et N multiplicateurs constitués de N mots transformés de -N mots entrants Hn. comporte des moyens (23) de multiplication des termes de la décomposition de Hn sur la base des puissances successives de *W par C(X), des moyens additionneurs (22) recevant les sorties des moyens de multiplication, et un circuit 132) de mul- tiplication par Dû des sorties'des moyens additionneurs (Figure 18). 10. Dispositif selon l'une quelconque des re- vendications précédentes, caractérisé en ce que le cir- cuit de décodage et de retour à la base de départ (14) comprend uniquement un additionneur-soustracteur 120) monté pour recevoir: sur une entrée soustractive la transformée C(y) à 2q bits; sur une entrée de retenue le bit de poids fort constituant le bit de signe de la transformée C(y); sur les bits de poids fort de son entrée additive, ledit bit de signe; sur les bits de poids faible de son entrée additive, les bits de poids forts de la transformée C(y); et fournissant sur sa sortie le nombre décodé et ramené dans la base de départ en complément à deux (Figure 18). 11. Dispositif selon la revendication 5, carac- térisé en ce que chaque additionneur-soustracteur "hors du code" ou "dans le code" comprend uniquement des moyens pour effectuer une addition et des reports de retenue (Figure 4). 12. Dispositif selon la revendication 11. prévu pour traiter des nombres de 2q bits et fournir un nombre de 2q bits, caractérisé en ce qu'il comprend quatre additionneurs-soustracteurs simples (20-11 à 20-14) opé- rant sur 2 bits et montés de-façon à recevoir des com- binaisons différentes de bits de poids fort et de poids faible et des circuits NON-OU EXCLUSIFS de sortie.