FR 2851385 A1 20040820 FR 0301854 A 20030214 Génération de code de brouillage pour communications UMTS La présente invention concerne d'une manière 5 générale la génération de codes pour coder des signaux de données numériques à transmettre entre un émetteur et un récepteur dans un système de télécommunications numérique. En particulier, l'invention a trait à des 10 communications à accès multiple à répartition par codes CDMA (Coded Division Multiple Access) entre une station de base et un radiotéléphone mobile dans un système radiotéléphonique cellulaire numérique selon la troisième génération (3GPP) du type UMTS 15 (Universal Mobile Telecommunications System). Dans le cadre d'un système UMTS, la génération de codes selon l'invention se rapporte plus particulièrement aux codes de brouillage ou de débrouillage pour des communications en mode FDD (Frequency Division 20 Duplex) ou en mode TDD (Time Division Duplex), aussi bien pour une liaison descendante depuis une station de base vers un radiotéléphone mobile que pour une liaison montante depuis un radiotéléphone mobile vers une station de base. A titre d'exemple, on se réfère dans la suite de la description au brouillage de trames en mode FDD selon la norme UMTS pour des communications descendantes depuis une station de base. Une trame en 30 mode FDD comporte M = 15 intervalles temporels (timeslots) de durée prédéterminée. Pendant chaque intervalle temporel, plusieurs salves de données (bursts) sont transmises simultanément par la station de base et sont le plus souvent respectivement 35 assignées à plusieurs usagers. Une salve comprend I/M = 2560 éléments de code (chips) pour un code de canal (channelisation code) associé à un usager respectif, et une trame comprend I = 38400 éléments de code. Le code de canal constitue une séquence d'éléments de 5 code associée à chaque symbole complexe de données à émettre. Typiquement, la longueur de chaque code de canal, appelée facteur d'étalement (Spreading Factor) est égale à une puissance de 2 et comprise entre 4 et 512, et varie dans la station de base notamment en 10 fonction du débit des données qui est variable d'un usager à l'autre. Dans l'émetteur de la station de base, un générateur de code de brouillage est disposé à la suite d'un turbocodeur, d'un entrelaceur de canal, 15 d'un modulateur de phase à quatre états QPSK produisant des symboles complexes, et un dispositif (étaleur) générateur de code de canal qui applique deux signaux de données parallèles composés d'éléments de code (chips) respectivement pour les 20 composantes réelles et imaginaires des symboles complexes. Comme il est connu, le brouillage d'un signal de données a pour but de conférer un caractère pseudoaléatoire aux données à émettre afin que le signal de 25 données émis ne contienne pas de longue suite de "0" ou "1", en l'occurrence de longue suite d'une composante de symbole selon un codage bipolaire de non retour à zéro "-1" ou "+1". Le signal de données brouillé est ensuite appliqué à un filtre adapté de 30 mise en forme, puis amplifié et transposé en fréquence dans un étage de sortie de l'émetteur dans la station de base. Selon la norme 3G TS 25.213, Version 5.0.0, mars 35 2002, paragraphe 5.2. 2, un générateur de code de brouillage pour liaison descendante en mode FDD comprend deux générateurs pseudo-aléatoires à horloges synchrones GX et GY. Chaque générateur pseudo-aléatoire GX, GY comprend un registre à 5 décalage rebouclé linéairement respectif (Linear Feedback Shift Register LFSR) ayant K = 18 étages XO à X17, YO à Y17, et une boucle de retour du type Fibonacci avec une porte OU-EXCLUSIF, dite porte XOR, FX, FY. La porte XOR FX a deux entrées reliées à des 10 sorties des étages XO à X7 en tant que prises intermédiaires (taps) du premier registre à décalage. Une sortie de la porte FX est reliée à l'entrée du premier étage X(K-1) = X17 constituant l'étage de poids fort du premier registre par rapport à l'étage 1 5 de poids faible XO dont la sortie est confondue avec celle du premier registre. La porte XOR FY a quatre entrées respectivement reliées à des prises intermédiaires relatives aux étages YO, Y5, Y7 et Y10 du deuxième registre, et une sortie reliée à l'entrée 20 de l'étage de poids fort Y17 du deuxième registre RY. L'étage de poids faible YO du deuxième registre a une sortie constituant celle du deuxième registre. Un code généré par le premier ou deuxième registre a une K 18 longueur ou période d'au plus 2 -1 = 2 -1 = L 25 éléments de brouillage. Comme montré à la figure 1, le générateur de code de brouillage est un générateur de code de Gold puisqu'il comprend au moins un circuit combinatoire logique PI, ou PQ-PX-PY combinant des sorties des 30 étages des deux registres à décalage de même longueur, notamment au moyen de porte(s) XOR, c'està-dire d'addition(s) Modulo 2. Le premier circuit combinatoire logique comprend une porte XOR PI ayant deux entrées reliées respectivement aux sorties des 35 étages de poids faible XO et YO des premier et deuxième registres à décalage afin de produire la partie réelle binaire d'un symbole de code de brouillage zIn pour brouiller la partie réelle DI d'un symbole de données complexe (DI + j DQ) au moyen 5 d'un multiplicateur de symboles complexes MU produisant une partie réelle de symbole brouillé SIBn. Le deuxième circuit combinatoire logique comprend une porte XOR PX ayant trois entrées reliées aux étages X4, X6 et X15 du premier registre, une 10 porte XOR PY ayant dix entrées reliées respectivement aux étages Y5, Y6 et Y8 à Y15 du deuxième registre, et une porte XOR PQ ayant deux entrées reliées aux sorties des portes PX et PY. La sortie de la porte PQ fournit la partie imaginaire binaire d'un symbole de 15 code de brouillage zQn pour brouiller la partie imaginaire DQ d'un symbole de données complexe au moyen du multiplicateur MU produisant la partie imaginaire SQBn d'un symbole brouillé dont la partie réelle SIBn est également fournie par le 20 multiplicateur. Initialement, pour générer un code de brouillage de numéro désigné par n, les étages XO à X17 dans le premier générateur GX sont mis à l'état initial suivant: x(O) = 1, x(l) = x(2) = ... x(16) = x(17) = 0, et les étages YO à Y17 dans le deuxième générateur GY sont à l'état initial "1" : y(0) = y(l) = ... y(16) = y(17) = 1. Avant de générer le code de brouillage de numéro 30 n, les étages de registre à décalage seulement dans le premier générateur GX reçoivent n impulsions d'horloge et le deuxième générateur GY est désactivé. A la suite de ces n impulsions, les deux générateurs GX et GY sont activés afin que la séquence de Gold 35 ZIn(i) = x(i + n) E y(i) soit définie en sortie de la porte PI. L'indice i désigne le rang d'un symbole d'un code de brouillage et est compris entre 0 et K théoriquement 2 -2. Les deux générateurs activés GX et GY sont 5 rythmés en synchronisme à partir des états initiaux respectifs afin que les sorties des portes de bouclage FX et FY produisent des bits selon les relations suivantes: x(i + 18) = x(i + 7) G x(i), et y(i + 18) = y(i + 10) G y(i + 7) G y(i), en correspondance avec des polynomes générateurs primitifs respectifs de degré K = 18: 7 18 1 + X + X, et 7 10 18 1+ + +X + X La séquence binaire zIn(i) en sortie de la porte PI est convertie en séquence réelle dans un convertisseur binaire-bipolaire CI produisant la séquence bipolaire suivante: ZI) {+1 s i zIn (i) = O ZIn( 1 si zIn(i) = 1 Il en est de même pour une séquence ZQn(i) sortant de la porte PQ appliquée à un convertisseur binaire-bipolaire CQ produisant une séquence bipolaire ZQn(i). Un symbole de code de brouillage complexe est 25 alors définit par la relation suivante: Sn(i) = ZIn(i) + j ZQn((i + 217)modulo(2 -1)), 18 avec O i En pratique, le rang i des symboles du code de brouillage varie de 0 à I1 = 38399, o I est le 30 nombre de symboles de code de canal à brouiller par trame. Ainsi pour générer un code de brouillage, préalablement à l'utilisation de celui-ci pour brouiller une trame de I symboles de code de canal, le code de brouillage est généré de manière continue par le générateur de code de brouillage montré à la figure 1 en réponse à I impulsions d'horloge appliquées aux générateurs pseudo-aléatoires GX et GY 5 depuis leurs états initiaux définis ci-dessus. Les parties réelles et imaginaires des I symboles complexes de code de brouillage sont stockés dans des mémoires tampon MI et MQ incluses dans le générateur de brouillage. Les symboles de brouillage stockés de 10 manière permanente sont en attente de brouiller les parties réelles et imaginaires des symboles de données DI et DQ à travers le multiplicateur de symboles complexes MU selon la relation: (ZIn(i) + i ZQn(i))(DI(i) + j DQ(i)) Comme plusieurs codes de brouillage doivent être générés simultanément, la mémoire globale MI-MQ doit présenter une capacité très élevée de manière à mémoriser les codes de brouillage chacun à I symboles préalablement à tout brouillage avec ce code. La mémoire MI-MQ nécessitée par la génération de code de brouillage préalable et continue présente donc une capacité très élevée et accentue la complexité et le cot des échanges à l'interface d'émission dans la station de base. La mémoire MI-MQ 25 doit offrir au moins une capacité de I = 38400 symboles complexes chacun à 2 bits pour mémoriser un seul code de brouillage. En outre, la génération et la mémorisation de codes de brouillage avant leurs utilisations 30 s'avèrent d'autant plus coteuse que bien souvent, la même portion de code de brouillage correspondant à un intervalle temporel (timeslot) contenant 2560 symboles de données peut être utilisée plusieurs fois. La mémoire de stockage MI-MQ fournit donc 35 plusieurs fois les mêmes 2560 éléments de brouillage complexes ce qui entraîne une consommation d'énergie électrique considérable pour reproduire toujours la même opération de brouillage. L'objectif de la présente invention est de remédier aux inconvénients de la technique antérieure en diminuant nettement la capacité de mémoire de stockage pour générer un code de brouillage. Pour atteindre cet objectif, un dispositif pour générer un code à I bits désigné par un numéro de code comprend un premier générateur pseudoaléatoire. Il est caractérisé selon l'invention en ce qu'il comprend un moyen d'initialisation pour mettre le 15 premier générateur pseudo-aléatoire à un état prédéterminé dépendant du numéro de code, préalablement à toute génération du code à I bits de manière à mémoriser l'état prédéterminé dans une mémoire d'initialisation et une première mémoire 20 d'état, un moyen pour restituer un état sauvegardé dans la première mémoire au premier générateur pseudo-aléatoire avant toute génération de l'un de M sous-codes à I/M éléments composant le code, un moyen d'activation pour activer I/M décalages dans le 25 premier générateur pseudo-aléatoire depuis l'état restitué afin de générer un sous-code à I/M éléments, un moyen pour sauvegarder l'état du premier générateur pseudo-aléatoire dans la première mémoire d'état après une génération d'un sous-code précédant 30 une génération d'un sous-code suivant, et un moyen pour transférer l'état prédéterminé depuis la mémoire d'initialisation dans le premier générateur pseudoaléatoire au début de chaque génération suivante du code. Le dispositif selon l'invention peut servir à générer plusieurs codes de brouillage différents. La distinction entre codes peut être obtenue par le moyen d'initialisation qui active un nombre de 5 décalages dans le premier générateur pseudo-aléatoire égal au numéro de code depuis un état initial du premier générateur pseudo-aléatoire indépendant du numéro de code afin de mettre à l'état prédéterminé celui-ci. Selon une réalisation de l'invention, le dispositif de génération de code génère des couples d'éléments de code pour constituer des symboles complexes. Le dispositif comprend alors un deuxième générateur pseudoaléatoire ayant un registre à 15 décalage rebouclé qui a la longueur d'un registre à décalage rebouclé contenu dans le premier générateur pseudoaléatoire, qui est rythmé en synchronisme avec le premier générateur pseudo-aléatoire pour être activé pour I/M décalages par le moyen d'activation, 20 et dont des sorties sont combinées avec des sorties du premier générateur pseudo-aléatoire pour générer des sous-codes de brouillage à I/M symboles complexes. Une deuxième mémoire d'état analogue à la première mémoire d'état est associée au deuxième 25 générateur. La deuxième mémoire d'état mémorise un deuxième état prédéterminé préalablement à toute génération du code, sauvegarde l'état du deuxième générateur pseudo-aléatoire après une génération de sous-code de brouillage précédant une génération d'un 30 sous-code suivant, et restitue un état sauvegardé au deuxième générateur pseudo-aléatoire avant toute génération de l'un des M sous-codes. Le deuxième état prédéterminé peut être indépendant du numéro de code. Le deuxième état 35 prédéterminé peut correspondre à un état prédéterminé de tous les étages du registre à décalage dans le deuxième générateur pseudoaléatoire. D'autres caractéristiques et avantages de la 5 présente invention apparaîtront plus clairement à la lecture de la description suivante de plusieurs réalisations préférées de l'invention en référence aux dessins annexés correspondants dans lesquels: - la figure 1 est un bloc-diagramme d'un 10 générateur de code de brouillage selon la technique antérieure déjà commentée; et - la figure 2 est un bloc-diagramme d'un dispositif de génération de code de brouillage selon l'invention. Le dispositif de génération de code de brouillage selon une réalisation préférée de l'invention montrée à la figure 2 comprend un générateur de code de Gold analogue à celui déjà 20 décrit en référence à la figure 1. Dans la figure 2, deux blocs 1X et 1Y contiennent les composants relatifs respectivement aux générateurs pseudoaléatoires GX et GY. Le premier bloc 1X constitue un générateur pseudo-aléatoire de partie réelle et 25 comprend le registre à décalage ayant des étages XO à XK=X17 et les portes OU-EXCLUSIF, dites portes XOR, FX, PX et PI agencés de la même manière que dans la figure 1. Le deuxième bloc 1Y constitue un générateur pseudo-aléatoire de partie imaginaire et contient le 30 registre à décalage ayant des étages YO à Y17 et les portes XOR FY, PY et PQ agencés de la même manière que dans la figure 1. Les sorties des portes PI et PQ fournissent les parties réelles et imaginaires zIn et zQn de symboles de brouillage complexes d'un code de 35 brouillage de numéro n. Les parties de symbole zIn et ZQn sont converties dans un convertisseur binairebipolaire CI-CQ en des symboles complexes ZIn et ZQn en code bipolaire de non retour à zéro. Les symboles de brouillage bipolaires ZIn et ZQn pourront être 5 mémorisés temporairement, à la demande, dans une mémoire tampon MI-MQ de faible capacité avant d'être multipliées à des symboles de données complexes DI-DQ dans un multiplicateur de symboles complexes MU. Le dispositif de génération de code de 10 brouillage selon l'invention comprend également une mémoire d'initialisation 2, deux mémoires d'état 3X et 3Y, un compteur de numéro de code 4 à 13 bits, un compteur d'éléments de sous-code 5 à 12 bits et un compteur d'intervalles de temps 6 à 4 bits. Les deux mémoires 2 et 3X ont une capacité de K = 18 bits afin que les mémoires 2 et 3X mémorisent respectivement un état initial et, à raison d'un état à la fois, des états de fin du registre à décalage compris dans le premier générateur pseudo-aléatoire 20 1X à la fin des M-1 intervalles de temps IT d'une trame. De même, la mémoire 3Y a une capacité de K = 18 bits afin de mémoriser, à raison d'un état à la fois, des états de fin du registre à décalage compris dans le deuxième générateur pseudo-aléatoire 1Y à la 25 fin des intervalles de temps IT de la trame. Il est rappelé qu'un code de brouillage désigné par un numéro n écrit sous la forme d'un mot numérique à 13 bits est destiné à brouiller les symboles de données complexes dans une trame en mode 30 FDD comportant M intervalles temporels (timeslots) IT de durée identique et contenant chacun deux salves parallèles chacune de I/M = 38400/15 = 2560 éléments de code (chips), c'est-à-dire I/M symboles de données complexes. Dans la suite de la description, une 35 séquence de 2560 symboles de code de brouillage destinée à brouiller une séquence parallèle de 2560 symboles de donnés DI-DQ est appelée "sous-code de brouillage". Ainsi un code de brouillage à I symboles de code de brouillage comprend M sous-codes de brouillage. Le fonctionnement du dispositif de génération de code de brouillage selon l'invention présente essentiellement cinq phases relatives à une 10 initialisation du dispositif de génération de code de brouillage pour un code de brouillage de numéro prédéterminé n, et pour chaque trame, au plus M cycles correspondant chacun à une restitution des états des deux registres à décalage au début de la 15 génération de chaque sous-code de brouillage, une génération de sous-code de brouillage, et une sauvegarde des états des deux registres à décalage à la fin de la génération de chaque sous-code de brouillage, puis une autre initialisation au début de 20 la trame suivante. Diverses commandes INIT, RESTORE, SAVE et SLOT sont produites par un contrôleur dans la station de base. Le contrôleur gère l'émission des données à émettre ainsi qu'une base de temps qui fournit un 25 signal d'horloge H à appliquer à la plupart des composants dans le dispositif de génération de code de brouillage, en particulier aux entrées d'horloge des étages XO à X17 et YO à Y17 des registres à décalage. La fréquence du signal d'horloge H est 30 élevée et très supérieure au débit des symboles de données à brouiller DQ-DI si bien que I/M symboles de brouillage ZIn ZQn sont très rapidement mémorisés dans une mémoire tampon MT en réponse à toute demande (RESTORE) au cours de chaque intervalle de temps 35 (timeslots) IT. Les I/M symboles de brouillage sont lus dans la mémoire MT et appliqués au multiplicateur MU, d'une manière continue au rythme des symboles de données à brouiller. L'étape d'initialisation est déclenchée à la réception d'une commande INIT et du numéro n du code de brouillage à générer, par exemple lors de l'attribution d'un canal à un radiotéléphone mobile par la station de base, ou pour la transmission de 10 données de contrôle dans des canaux de signalisation déterminés par la station de base. La commande d'initialisation INIT est appliquée à des entrées de remise à "0" R des étages Xl à X17 du registre à décalage dans le premier générateur 1X et à une 15 entrée de mise à "1" S de l'étage XO de ce registre à décalage afin que celui-ci soit mis à l'état initial suivant indépendant du numéro n du code de brouillage à générer: x(0) = 1, x(l) = x(2) = ... x(16) = x(17) = 0. D'une manière analogue, la commande d'initialisation INIT est appliquée à des entrées de mise à "1" S de tous les étages du registre à décalage inclus dans le deuxième générateur 1Y afin que ce registre à décalage soit mis à l'état initial 25 suivant qui est stocké dans la mémoire d'état 3Y y(0) = y(l) = ... y(l6) = y(17) = 1. A l'étape d'initialisation, la commande INIT et le numéro de code n sont appliqués à une entrée de remise à zéro et de commande de comptage et une 30 entrée de compte maximum du compteur de numéro de code 4. n impulsions d'horloge H sont comptées par le compteur 4, initialement à zéro, et sont appliquées aux étages XO à X17 du premier registre à décalage afin que le premier registre atteigne un état 35 prédéterminé dépendant du numéro de code n pour toute trame relative au code de brouillage à générer. L'activation de décalages dans le premier registre à décalage est arrêtée par le compteur 4 lorsque le compte de celui-ci atteint le nombre n. A ce stade, 5 préalablement à toute génération du code de brouillage n, l'état prédéterminé du premier registre est écrit dans la mémoire d'initialisation 2 et la première mémoire d'état 3X par transfert en parallèle de K = 18 bits depuis les étages XO à X17 sous une 10 commande d'écriture WC transmise par le compteur 4 ayant atteint le compte maximum n. Le compte du compteur 4 ayant atteint le numéro de code de brouillage n, le compteur 4 commande également l'activation des portes de sortie XOR, PX, 15 PY, PI et PQ dans les générateurs 1X et lY, indiquant la fin de la phase d'initialisation. En variante, le deuxième registre à décalage peut être mis à un état initial dépendant du numéro de code n et subir n décalages afin qu'une deuxième 20 mémoire d'initialisation et la mémoire d'état 1Y sauvegarde un état prédéterminé du deuxième registre servant à la génération du code. Au début de la génération du code de brouillage 25 désigné par le numéro n et comportant M sous-codes à I/M = 2560 symboles de code de brouillage, les premier et deuxième registres dans les générateurs 1X et 1Y sont activés par une commande de génération de code ENABLE. En réponse à une commande de restitution RESTORE appliquée à des entrées de commande de lecture des mémoires 3X et 3Y, les K bits dans la mémoire 3X et les K bits dans la mémoire 3Y correspondant aux états des registres à décalage à la fin de la génération du 35 sous-code de brouillage précédent sont transférés en parallèle dans les étages XO à X17 du premier registre à décalage et les étages YO à Y17 du deuxième registre à décalage respectivement. I/M impulsions d'horloge H sont appliquées successivement 5 aux étages des registres à décalage afin d'y activer I/M décalages. Ces impulsions d'horloge sont comptées par le compteur d'éléments de sous-code 5 initialement à zéro, dont le comptage est déclenché par la commande RESTORE. I/M couples consécutifs 10 d'éléments de sous-code de brouillage ZIn et ZQn sont générés aux sorties des portes PI et PQ dans les générateurs 1X et 1Y, sont convertis en digits bipolaires par le convertisseur CI-CQ et sont écrits très rapidement dans la mémoire tampon MT au rythme 15 de l'horloge H jusqu'à ce que le compteur d'éléments de sous-code 5 atteigne le nombre maximum N/I = 2560. Les I/M symboles de brouillage ainsi écrits sont lus ensuite dans la mémoire MT afin de brouiller les symboles de données DI et DQ d'au moins une salve 20 (burst) appliquée au multiplicateur de symboles complexes MU pendant un intervalle de temps IT (timeslot). Chaque fois qu'il est nécessaire de brouiller I/M symboles de données avec le sous-code de 25 brouillage n, par exemple de brouiller chacun de plusieurs sous-codes de données dans un intervalle de temps commun, la commande RESTORE écrase et remplace les contenus des registres à décalage par ceux des mémoires d'état. Aucune mémoire de stockage de sous30 code de brouillage et donc de code de brouillage n'est ainsi nécessaire dans le dispositif de génération de sous-code de brouillage selon l'invention. Puis lorsque le sous-code de brouillage précédent n'est plus utilisé et le sous-code de brouillage suivant doit être utilisé pour brouiller un ou plusieurs sous-codes de données dans 5 l'intervalle de temps suivant IT, une commande SAVE est produite par le compteur 6 en réponse à une commande SLOT marquant la fin de l'intervalle de temps précédent. La commande SAVE transfère K = 18 bits parallèles depuis les étages XO à X17 du premier 10 registre à décalage dans la première mémoire d'état 3X et transfère K = 18 bits parallèles depuis les étages YO à Y17 du deuxième registre à décalage dans la deuxième mémoire d'état 3Y. Les 2x18 bits stockés dans les mémoires d'état 3X et 3Y assurent la 15 continuité du code de brouillage entre la fin de la génération d'un sous-code de brouillage et le suivant et sont réutilisables en réponse à toute commande RESTORE. A chaque commande SLOT au cours d'une trame dont 20 la première est confondue avec la commande ENABLE, le compteur d'intervalle de temps 6 est incrémenté d'une unité, jusqu'à ce qu'il atteigne le nombre M=15. Après M sous-codes de brouillage ainsi générés selon la manière décrite ci-dessus, le compteur 6 est mis à 25 zéro. En réponse à la première commande SLOT au début de la prochaine trame, le compteur 6 commande la lecture de l'état initial du premier registre à décalage initialement stocké dans la mémoire d'initialisation 2 afin de transférer par une 30 commande de lecture WC le contenu de celle-ci correspondant à n décalages initiaux dans le premier registre, dans les étages XO à X17 du premier registre. Le compteur 6 commande également les entrées de mise à "1" de tous les étages YO à Y17 35 dans le deuxième registre à décalage dans le générateur 1Y, et l'écriture des états "1" de ces étapes dans la mémoire 3Y. Bien que l'invention ait été décrite ci-dessus 5 pour un générateur de code de brouillage dans un émetteur d'une station de base ou d'un radiotéléphone mobile fonctionnant en mode FDD, tout autre dispositif de génération de code de brouillage selon l'invention peut être utilisé dans un brouilleur au 10 niveau d'un émetteur ou dans un débrouilleur au niveau d'un récepteur aussi bien dans une station de base que dans un radiotéléphone mobile, ou plus généralement dans un émetteur ou un récepteur aux extrémités d'une liaison de communication numérique 15 dont un signal de données est à brouiller. En pratique, dans un radiotéléphone mobile UMTS sont prévus deux dispositifs de génération de code de brouillage selon l'invention respectivement dans un brouilleur pour l'émetteur et dans un débrouilleur 20 pour le récepteur. Du côté d'une station de base UMTS, celle-ci contient plusieurs dispositifs de génération de code de brouillage selon l'invention pour brouiller en parallèle respectivement plusieurs signaux de symboles complexes de données à émettre, 25 et plusieurs dispositifs de génération de code de brouillage selon l'invention pour débrouiller respectivement plusieurs signaux de symboles complexes de données reçus. L'invention n'est pas non plus limitée au nombre 30 d'étages des premier et deuxième registres à décalage dans les générateurs pseudo-aléatoires 1X et 1Y qui peut être par exemple égal à 25 pour un dispositif de génération de code de brouillage destiné à une liaison montante en mode FDD, ou qui peut être égal à 35 16 pour générer un code de brouillage en mode TDD. Plus généralement, le dispositif de génération de code de brouillage selon l'invention peut ne comprendre qu'un générateur pseudo-aléatoire comprenant un registre à décalage ayant un nombre 5 prédéterminé d'étages avec une ou plusieurs portes OU-EXCLUSIF, dites portes XOR. L'une de ces portes peut avoir une entrée reliée à la sortie de l'un des étages du registre à décalage, une sortie reliée à l'entrée de l'étage suivant de ce registre à 10 décalage, et au moins une autre entrée reliée à une prise intermédiaire ou sortie d'étage d'un autre étage du registre à décalage selon une implémentation de Galois, et/ou une autre de ces portes peut avoir des entrées reliées à des sorties de plusieurs étages 15 et une sortie reliée à l'entrée du premier étage dans le registre à décalage selon une implémentation de Fibonacci, comme pour les portes FX et FYmontrées à la figure 1. L'invention s'applique particulièrement à toutes 20 les générations de code de brouillage dont des parties, appelées ci-dessus sous-codes de brouillage, sont produites sporadiquement ou périodiquement en fonction des données à brouiller. Par exemple l'invention s'applique au brouillage de paquets tels 25 que dans un signal de télévision numérique d'une trame en mode MPEG2. REVENDICATIONS 1 - Dispositif pour générer un code à I bits désigné par un numéro de code, comprenant un premier 5 générateur pseudo-aléatoire, caractérisé en ce qu'il comprend un moyen d'initialisation (4, INIT) pour mettre le premier générateur pseudo-aléatoire (lx) à un état prédéterminé dépendant du numéro de code, préalablement à toute génération du code à I bits de 10 manière à mémoriser l'état prédéterminé dans une mémoire d'initialisation (2) et une première mémoire d'état (3X), un moyen (RESTORE) pour restituer un état sauvegardé dans la première mémoire (lx) au premier générateur pseudo-aléatoire avant toute 15 génération de l'un de M sous-codes à I/M éléments composant le code, un moyen d'activation (5, H) pour activer I/M décalages dans le premier générateur pseudo- aléatoire depuis l'état restitué afin de générer un sous-code à I/M éléments, un moyen (6, 20 SAVE) pour sauvegarder l'état du premier générateur pseudo-aléatoire dans la première mémoire d'état après une génération d'un sous-code précédant une génération d'un sous-code suivant, et un moyen (6, SLOT) pour transférer l'état prédéterminé depuis la 25 mémoire d'initialisation (2) dans le premier générateur pseudo-aléatoire au début de chaque génération suivante du code. 2 - Dispositif conforme à la revendication 1, 30 dans lequel le moyen d'initialisation (4, INIT) active un nombre de décalages dans le premier générateur pseudo-aléatoire (lx) égal au numéro de code depuis un état initial du premier générateur pseudo-aléatoire (lx) indépendant du numéro de code 35 afin de mettre à l'état prédéterminé celui-ci. 3 - Dispositif conforme à la revendication 1 ou 2, comprenant au moins un deuxième générateur pseudoaléatoire (1Y) ayant un registre à décalage rebouclé 5 qui a la longueur d'un registre à décalage rebouclé contenu dans le premier générateur pseudo-aléatoire (1X) , qui est rythmé en synchronisme avec le premier générateur pseudo- aléatoire (1X) pour être activé pour I/M décalages par le moyen d'activation (5, H), 10 et dont des sorties (YO, PY) sont combinées avec des sorties (XO, PX) du premier générateur pseudoaléatoire pour générer des sous-codes de brouillage à I/M symboles complexes, et une deuxième mémoire d'état (3Y) pour mémoriser un deuxième état 15 prédéterminé préalablement à toute génération du code et sauvegarder l'état du deuxième générateur pseudoaléatoire (1Y) après une génération de sous- code de brouillage précédant une génération d'un sous-code suivant de manière à restituer un état sauvegardé au 20 deuxième générateur pseudo- aléatoire (1Y) avant toute génération de l'un des M sous-codes. 4 - Dispositif conforme à la revendication 3, dans lequel le deuxième état prédéterminé est 25 indépendant du numéro de code. - Dispositif conforme à la revendication 4, dans lequel le deuxième état prédéterminé correspond à un état prédéterminé de tous les étages du registre 30 à décalage dans le deuxième générateur pseudoaléatoire (1Y). 6 - Dispositif conforme à l'une quelconque des revendications 1 à 5, inclus dans un générateur de 2851385 20 code de brouillage ou de débrouillage pour communications UMTS.