Brevet FR3145660A1 — publié le 20240809

Procédé de génération d’un signal, procédé de construction d’une séquence de base, dispositif et programme d’ordinateur correspondants. L’invention concerne un procédé de génération d’un signal, mis en œuvre dans un système de communications numériques, comprenant les étapes suivantes : obtention d’une séquence de base de valeurs complexes, notée , telle que la fonction d’autocorrélation de ladite séquence de base , vérifie , pour et sinon, sélection de sous-séquences de valeurs complexes dans ladite séquence de base , utilisation d’au moins une desdites sous-séquences sélectionnées pour générer ledit signal. Figure pour l’abrégé : figure 4 Procédé de génération d’un signal, procédé de construction d’une séquence de base, dispositif et programme d’ordinateur correspondants. 1. Domaine de l’invention Le domaine de l’invention est celui des communications numériques. Plus précisément, l’invention concerne la détermination d’une séquence de valeurs complexes présentant des propriétés particulières, et son utilisation dans des systèmes de communications. L’invention trouve notamment des applications dans le domaine des communications sans fil (par exemple par ondes radio ou ondes optiques non guidées) ou filaire (par exemple par fibre optique ou câble électrique). En particulier, l’invention trouve des applications dans le domaine des communications IoT (en anglais « Internet of Things », en français « Internet des Objets »). 2. Art antérieur Afin d’améliorer la robustesse des communications via un canal de communication, il est connu d’utiliser des codes correcteurs d’erreurs. Par exemple, les codes LDPC (en anglais « Low Density Parity Check »), les turbo-codes, les codes polaires, ou encore les codes Reed-Salomon offrent de bonnes performances en termes de correction d’erreurs. Dans le document « Non-Binary Low-Density Parity-Check coded Cyclic Code-Shift Keying » (2013 IEEE Wireless Communications and Networking Conference (WCNC)), E. Boutillon et al. ont notamment proposé l’association d’un code correcteur d’erreurs non binaire de type LDPC avec une modulation à décalage de code cyclique CCSK (en anglais « Cyclic Code Shift Keying »). Comme illustré en figure 1, un tel schéma de codage prend en entrée un message source. Par exemple, le message source présente une taille de bits, où chaque -uplet de bits correspond à un symbole d’un corps de Galois de cardinalité , noté . Au cours d’une première étape de codage 11, les symboles du message source sont codés par un code non-binaire LDPC (NB-LDPC) de rendement , également appelé code externe. Un mot de code sortant du codeur NB-LDPC 11 comprend donc symboles appartenant à , soit bits. Chacun des symboles du mot de code est ensuite codé au cours d’une deuxième étape de modulation 12 par un code CCSK de rendement , également appelé code interne. Ainsi, chaque symbole du mot de code (représenté par bits) peut être codé, ou modulé, par une séquence de bits. Une modulation BPSK (« Binary Phase Shift Keying ») peut ensuite être mise en œuvre au cours d’une troisième étape 13 pour transmettre les versions décalées cycliquement de la séquence de bits, associées chacune à un symbole du mot de code. Plus précisément, l’étape de modulation CCSK 12 peut mettre en œuvre différentes étapes. Notamment, une bijection peut être définie entre les éléments définis dans le corps de Galois et entiers entre 0 et . Une telle bijection permet de représenter de façon indifférente les éléments de et les entiers entre 0 et . Une séquence binaire de base de taille , notée , également appelée séquence de base, peut ensuite être définie : , avec . Une telle séquence peut notamment être pseudo-aléatoire. La modulation CCSK 12 associe notamment au élément de la séquence binaire définie par une rotation circulaire (ou un décalage cyclique) de positions sur la séquence binaire de base : . Par exemple, si et la séquence binaire de base est définie par , alors le premier symbole de est associé à la séquence à , le deuxième symbole de est associé à la séquence et ainsi de suite. Dans l’exemple donné, il s’agit d’une rotation circulaire ou d’un décalage cyclique à gauche. Il est possible, symétriquement, de définir une rotation circulaire ou un décalage cyclique à droite. Afin d’augmenter l’efficacité spectrale du code interne (de rendement dans l’exemple ci-dessus), il a notamment été proposé dans le document « Rate-adaptive Inner Code for Non-Binary Decoders », C. Marchand et al. (11th International Symposium on Topics in Coding, 2021) de tronquer la modulation CCSK aux premiers bits, , pour adapter le débit aux conditions de transmission. Le rendement du code interne est alors . Pour une troncature de taille , le élément de peut alors être codé/modulé par une séquence binaire définie par avec les opérations sur les indices effectuées modulo . Par la suite, on appelle l’ensemble des séquences de longueur , telles que . Dans les exemples ci-dessus, la séquence de base considérée est une séquence binaire. Toutefois, il est également possible d’utiliser des séquences de base non binaire pour les modulations CCSK. De telles séquences de base non binaires sont également appelées NB-CCSK, CCSK -aire ou -ary CCSK. Tout comme les séquences CCSK binaires, il est possible de tronquer les séquences -ary CCSK. A titre d’exemple, la illustre un schéma de transmission combinant un code Non Binaire avec une modulation CCSK Non-Binaire Tronquée (NB-TCCSK). Un tel schéma de codage prend en entrée un message source comprenant symboles d’information d’un corps de Galois de cardinalité , noté . Le message source présente donc une taille de bits, où chaque -uplet de bits correspond à un symbole de . Dans un premier temps, les symboles d’information du message source, par exemple avec , sont encodés par un code non-binaire NB. Le mot de code obtenu comprend symboles de , soit un mot de code de taille bits, par exemple avec . Le rendement de codage du code externe est donc par exemple . Dans un deuxième temps, chaque symbole du mot de code est encodé par le code interne. Le code interne utilise une modulation CCSK Non-Binaire Tronquée (NB-TCCSK). Ainsi, chaque symbole du mot de code (représenté par bits) peut être codé, ou modulé, par une séquence non-binaire de éléments, ou « chips ». La séquence non-binaire est par exemple construite à partir d’entiers de 0 à , où chaque entier correspond à un point sur une constellation de taille (constellation -aire). Par exemple, si , le premier symbole du mot de code est associé à une première version de la séquence non-binaire de 8 chips, par exemple à la séquence , selon un rendement (d’étalement) Les symboles suivants ( peuvent être associée à d’autres versions de la séquence non-binaire, définies par la rotation circulaire de la séquence non-binaire de chips (soit versions). Après encodage d’un symbole du mot de code, la séquence non-binaire de chips obtenue peut être tronquée à chips. Par exemple, la séquence de taille est tronquée en une séquence de taille , selon un rendement (de troncature) . Chaque chip (i.e. chaque élément de la séquence tronquée de taille ) est ensuite modulé en utilisant une modulation de taille , selon un rendement (de modulation) , puis transmis dans un canal de communication. La figure 2B illustre notamment la séquence tronquée obtenue , où chaque chip correspond à un point sur la constellation 8-PSK. Il est connu que la qualité d’un schéma de modulation dépend de la distance entre les points de constellation. Dans les exemples ci-dessus reposant sur une modulation CCSK binaire ou non-binaire, tronquée ou non tronquée, la qualité du schéma de modulation dépend notamment de la distance Euclidienne minimale entre deux séquences. On s’intéresse ci-après à la détermination de la distance Euclidienne minimale entre deux séquences et , binaire ou non-binaire, obtenue en appliquant une rotation circulaire de positions, respectivement positions, à une séquence de base. Si la séquence de base n’est pas tronquée, alors , si la séquence de base est tronquée, alors , et si la séquence de base est étendue, alors . On définit le carré de la distance entre les deux séquences et comme : avec la partie réelle de l’expression du produit scalaire entre les deux séquences et , et et les normes au carré des vecteurs et , respectivement. Dans le cas où les points correspondant aux représentations graphiques des valeurs complexes des séquences et sont placés sur le cercle unité, alors et , soit La distance minimale associée à cette famille de séquences de taille (i.e. associée à la séquence de base et à ses différentes versions obtenues par rotation circulaire à droite ou à gauche) peut ainsi s’exprimer sous la forme suivante : avec et Comme indiqué précédemment, la modulation CCSK définit notamment une bijection entre les éléments définis dans le corps de Galois et entiers entre 0 et . Par conséquent, appartiennent indifféremment à ou à Cette distance minimale peut être normalisée pour obtenir une distance minimale moyenne par chip (par élément / symbole) : On peut ainsi déduire, dans le cas où les points correspondant aux représentations graphiques des valeurs complexes des séquences et sont situés sur le cercle unité : avec et Lorsque la séquence n’est pas tronquée, i.e. , il est possible de maximiser en utilisant une séquence CAZAC (en anglais « Constant Amplitude Zero AutoCorrelation »), par exemple une séquence Zadoff-Chu. Pour ce type de séquence, les autocorrélations cycliques hors phase sont égales à zéro, i.e. pour . Par suite, la distance minimale normalisée est optimale, avec . Toutefois, ces propriétés ne sont plus vérifiées lorsque la séquence est tronquée, i.e. . A titre d’exemple, la figure 3 illustre l’évolution de la distance minimale normalisée en fonction de la taille de la séquence après troncature. Si , la distance minimale normalisée est optimale avec . Si , la distance minimale normalisée décroit, et s’effondre rapidement quand diminue. Il existe donc un besoin pour un nouveau type de séquence pouvant notamment être utilisé pour la mise en œuvre d’une modulation CCSK non-binaire, présentant de bonnes propriétés en termes de distance minimale, avant ou après troncature. 3. Exposé de l’invention La solution proposée repose sur un procédé de génération d’un signal, mis en œuvre dans un système de communications numériques, comprenant les étapes suivantes : obtention d’une séquence de base de valeurs complexes, notée , telle que la fonction d’autocorrélation de ladite séquence de base , définie par avec le complexe conjugué de et , vérifie : , pour avec un multiple de , , et des entiers premiers entre eux, et , et : sinon, sélection de sous-séquences de valeurs complexes (consécutives) dans ladite séquence de base , telle que ladite sous-séquence , notée , avec , , est égale à : avec un entier appartenant à correspondant à une position dans ladite séquence de base , et la valeur complexe associée à ladite position dans ladite séquence de base , utilisation d’au moins une desdites sous-séquences sélectionnées pour générer ledit signal. Selon l’invention, on utilise une séquence de base présentant des propriétés particulières pour générer des sous-séquences présentant également des propriétés particulières, notamment en termes d’orthogonalité ou de distance minimale. Notamment, la génération de la séquence de base peut être effectuée au préalable, et la ou les séquences de base peuvent être stockées par exemple dans une base de données interne à l’entité mettant en œuvre le procédé ci-dessous, ou accessible par une telle entité. Par exemple, si , la représentation de la fonction d’autocorrélation dans le plan complexe présente une symétrie d’ordre 4. La famille comprenant la séquence de base et au moins une version décalée cycliquement de la séquence de base présente une distance minimale normalisée égale à 2, et la famille comprenant les sous-séquences sélectionnées présente également une distance minimale normalisée égale à 2 pour certaines valeurs de , notamment , , . Ainsi, la séquence de base et ses versions décalées cycliquement sont orthogonales (comme pour les séquences de Zadoff-Chu). De plus, les sous-séquences sélectionnées ont une distance minimale égale à (ce qui n’est pas le cas pour les séquences de Zadoff Chu tronquées). Il est ainsi possible d’adapter la longueur de la sous-séquence utilisée pour générer le signal en fonction des besoins du système de communication. On rappelle notamment que la séquence de base présente une taille , et la sous-séquence une taille . Dans un mode de réalisation particulier, . On considère dans ce cas qu’une sous-séquence est une troncature ou une portion de la séquence de base, ou d’une version décalée cycliquement de la séquence de base. Dans un autre mode de réalisation, . Dans ce cas, une sous-séquence est la séquence de base ou une version décalée cycliquement de la séquence de base. Dans encore un autre mode de réalisation, . Dans ce cas, une séquence globale étant formée de la séquence de base et d’au moins une répétition partielle de la séquence de base, une sous-séquence est une troncature ou portion de la séquence globale. Dans un mode de réalisation particulier, le cardinal de est supérieur ou égal à 2, i.e. . Dans un premier exemple d’application, les sous-séquences sont des séquences d’étalement destinées à être utilisées par des terminaux, ou groupes de terminaux, distincts dudit système de communications, par exemple lors de la mise en œuvre d’un protocole d’accès. Par exemple, le procédé selon un mode de réalisation met en œuvre une étape d’allocation d’une desdites sous-séquences sélectionnées à un terminal dudit système de communications, et de transmission dudit signal en utilisant ladite sous-séquence. Par exemple, une station de base peut générer un certain nombre de sous-séquences, et allouer une sous-séquence distincte, ou un identifiant de sous-séquence, aux terminaux présents dans sa zone de couverture. En variante, un terminal du système de communications peut s’allouer une sous-séquence parmi un ensemble de sous-séquences obtenues à partir de la séquence de base. Un terminal peut ensuite utiliser la sous-séquence qui lui a été allouée pour ses communications avec la station de base, ce qui permet de résoudre, ou à tout le moins limiter, les problèmes de collision lorsque plusieurs terminaux souhaitent établir simultanément une communication radio avec la station de base. Ainsi, un premier utilisateur peut utiliser un premier ensemble de sous-séquences pour moduler un premier signal de données et un deuxième utilisateur peut utiliser un deuxième ensemble de sous-séquences pour moduler un deuxième signal de données. Quand bien même les terminaux des deux utilisateurs émettraient le premier signal de données et le deuxième signal de données simultanément, un décodeur serait apte à décoder les différents signaux de données grâce à la distance importante entre les sous-séquences. La solution proposée permet notamment d’augmenter le nombre d’utilisateurs dans le système de communications. En effet, on rappelle à titre d’exemple que selon l’art antérieur, si l’on considère une séquence Zadoff-Chu de longueur , il est possible de générer 16 séquences orthogonales de longueur . Selon l’invention, si on considère une séquence de base de longueur , il est possible de générer 64 sous-séquences distinctes de longueur . Or plus le nombre de séquences distinctes est élevée, plus le nombre d’utilisateurs pouvant communiquer simultanément dans le système de communications peut être élevé. Dans un deuxième exemple d’application, lesdites sous-séquences sont des mots de code d’un dictionnaire destiné à être utilisé par un codeur dudit système de communications. Par exemple, le procédé met en œuvre l’association d’au moins un symbole codé, obtenu à l’issue d’une étape de codage d’au moins un symbole source, à l’une desdites sous-séquences sélectionnées. De telles sous-séquences peuvent notamment être utilisées dans un système de communications mettant en œuvre un schéma de codage avec un codeur binaire ou non binaire avec une modulation CCSK non-binaire, tronquée ou non-tronquée. La longueur des sous-séquences peut notamment être choisie en tenant compte des conditions du canal de transmission. Notamment, si le canal de transmission présente peu de bruit ou d’interférences, on peut diminuer la longueur des sous-séquences en choisissant , ce qui permet d’augmenter le débit de transmission. A l’inverse, si le canal de transmission présente beaucoup de bruit et/ou d’interférences, on peut augmenter la longueur des sous-séquences de façon à obtenir une meilleure immunité au bruit et/ou aux interférences, avec en contrepartie une diminution du débit de transmission. Le débit est donc adaptatif (« rate-adaptative »). Dans un mode de réalisation particulier, la séquence de base est construite à partir des étapes suivantes : obtention d’un vecteur initial comprenant éléments réels, pour chaque élément réel dudit vecteur initial , transformation dudit élément réel en un élément complexe , selon l’expression : , avec et , détermination d’un produit de Krönecker entre le vecteur formé desdits éléments complexes et un vecteur binaire de taille , tel que et , avec , et des entiers premiers entre eux, délivrant un vecteur de base de taille , transformation du domaine fréquentiel vers le domaine temporel (mettant par exemple en œuvre une Transformée de Fourier Rapide Inverse de taille ) dudit vecteur de base , délivrant ladite séquence de base de valeurs complexes. On note notamment que le coefficient multiplicatif utilisé dans la détermination du vecteur permet d’obtenir une séquence de base ayant, en moyenne, des composantes dont l’énergie (c'est-à-dire le carré de leur module) est égale à 1. On obtient alors directement par construction . De telles étapes permettent notamment de construire de façon déterministe, dans le domaine fréquentiel, une séquence de base et des sous-séquences présentant de bonnes propriétés en termes d’orthogonalité ou de distance minimale. On rappelle que le produit de Krönecker entre le vecteur de taille et le vecteur binaire de taille , donne le vecteur de taille , avec , donné par , avec et . Selon un premier exemple, les éléments réels dudit vecteur initial sont choisis aléatoirement. Selon un deuxième exemple, les éléments réels dudit vecteur initial sont choisis de sorte que les points correspondant aux représentations graphiques des valeurs complexes de la séquence de base appartiennent à au moins un cercle, par exemple au cercle unité (modulation -PSK, pour « Phase Shift Keying ») ou à des cercles concentriques (modulation -APSK, pour « Amplitude Phase Shift Keying »). De cette façon, il est plus facile de moduler la sous-séquence, ou le signal obtenu à partir de la sous-séquence. De cette façon, la séquence de base, ou une sous-séquence obtenue à partir de la séquence de base, peut avoir support sur une modulation -APSK (par exemple 16 APSK ou 32 APSK). Selon un mode de réalisation particulier, avec , un vecteur initial modifié est obtenu en additionnant un vecteur V de taille , dit vecteur ajouté, et le vecteur initial de éléments réels, ledit vecteur ajouté V étant égal à , avec et un vecteur de taille construit en choisissant ses premiers éléments dans l’ensemble , puis en recopiant les premiers éléments de sorte que , . Il est ainsi possible de générer une séquence de base maximisant la distance minimale normalisée. Selon un mode de réalisation particulier, l’étape de sélection sélectionne un sous-ensemble de sous-séquences, noté , de cardinalité , parmi l’ensemble de sous-séquences de taille , tel que ledit sous-ensemble présente la plus grande distance minimale normalisée : avec la partie réelle de l’expression du produit scalaire entre la sous-séquence et la sous-séquence , .Dans un mode de réalisation particulier, est égal à 3, 4 ou 5. Par exemple, si , alors ou . Si , alors ou . Si , alors , ou . Notamment, lorsque est égal à 3 ou égal à 4, la distance minimale normalisée pour la séquence de base est optimale et est égale à 2, pour les valeurs de et , ou , et , respectivement. La représentation dans le plan complexe de la fonction d’autocorrélation présente respectivement une symétrie d’ordre 3, 4 ou 5. L’invention concerne également un procédé de construction d’une séquence de base de valeurs complexes, notée , destinée à être utilisée dans un système de communications numériques, mis en œuvre par un processeur, caractérisé en ce que la fonction d’autocorrélation de ladite séquence de base , définie par avec le complexe conjugué de et , vérifie : , pour avec un multiple de , , et des entiers premiers entre eux, et , et : sinon. En particulier, une telle séquence de base peut être construite de différentes manières notamment dans le domaine temporel ou dans le domaine fréquentiel. Dans un autre mode de réalisation, l’invention concerne un dispositif de génération d’un signal correspondant. Un tel dispositif comprend au moins un processeur configuré pour mettre en œuvre les étapes décrites précédemment. Un tel dispositif est notamment adapté à mettre en œuvre le procédé de génération d’un signal ou de construction d’une séquence de base décrits précédemment. Il est par exemple intégré à une station de base ou à un dispositif de supervision d’un système de communications (permettant par exemple d’affecter à chaque utilisateur une séquence d’étalement), ou à un terminal du système de communication. Ce dispositif pourra bien sûr comporter les différentes caractéristiques relatives aux procédés selon l’invention, qui peuvent être combinées ou prises isolément. Ainsi, les caractéristiques et avantages de ce dispositif sont les mêmes que ceux du procédé décrit précédemment. Par conséquent, ils ne sont pas détaillés plus amplement. L’invention concerne encore un ou plusieurs programmes d’ordinateur comportant des instructions pour la mise en œuvre d’un procédé tel que décrit ci-dessus lorsque ce ou ces programmes sont exécutés par au moins un processeur. L’invention concerne aussi un support d’informations lisible par un ordinateur, et comportant des instructions d’un programme d’ordinateur tel que mentionné ci-dessus. 4. Liste des figures D’autres caractéristiques et avantages de l’invention apparaîtront plus clairement à la lecture de la description suivante d’un mode de réalisation particulier, donné à titre de simple exemple illustratif et non limitatif, et des dessins annexés, parmi lesquels : la illustre un schéma de codage associant un code correcteur d’erreur non binaire de type LDPC avec une modulation à décalage de code cyclique CCSK selon l’art antérieur, la illustre un schéma de transmission combinant un code correcteur d’erreur non binaire avec une modulation CCSK Non-Binaire Tronquée (NB-TCCSK) selon l’art antérieur, la illustre un exemple de séquence tronquée obtenue dans le schéma de transmission de la , la figure 3 présente l’évolution de la distance minimale normalisée en fonction de la taille de la séquence après troncature, selon l’art antérieur, la présente les principales étapes mises en œuvre par un procédé de génération d’un signal selon un mode de réalisation de l’invention, la illustre les principales étapes pour la construction d’une séquence de base dans le domaine fréquentiel, la figure 6A illustre un exemple de représentation d’une séquence de base avec et la figure 6B l’évolution de la distance minimale normalisée en fonction de la taille des sous-séquences, la figure 7A illustre un autre exemple de représentation d’une séquence de base avec , la figure 7B l’évolution de la distance minimale normalisée en fonction de la taille des sous-séquences, et la illustre la représentation dans le plan complexe de la fonction d’autocorrélation associée, la illustre la représentation dans le plan complexe d’un exemple de séquence C4, la figure 9A et la figure 9B illustrent des exemples de représentation de séquences C4 avec , la figure 10A et la figure 10B illustrent d’autres exemples de représentation de séquences C4 avec , la illustre encore un autre exemple de représentation de séquence C4, la présente la structure simplifiée d’une entité d’un système de communications mettant en œuvre une technique de génération d’un signal selon un mode de réalisation de l’invention. 5. Description d’un mode de réalisation de l’invention 5.1 Principe général Le principe général de l’invention repose sur la construction d’une séquence de base de longueur présentant des propriétés particulières, et l’utilisation de cette séquence de base, ou d’une sous-séquence de longueur obtenue à partir de cette séquence de base, dans un système de communications numériques. La présente les principales étapes mises en œuvre par un procédé de génération d’un signal selon un mode de réalisation de l’invention. Au cours d’une première étape 41, une séquence de base de valeurs complexes, notée , est obtenue en entrée du procédé. En particulier, la fonction d’autocorrélation de ladite séquence de base , définie par , vérifie : , pour avec un multiple de , , et des entiers premiers entre eux, et , et : sinon. Différentes techniques, présentées ci-après, peuvent être mises en œuvre pour la construction d’une telle séquence de base. A titre d’exemple, la séquence de base est égale à , avec . Au cours d’une deuxième étape 42, on sélectionne sous-séquences de valeurs complexes dans la séquence de base , telle que ladite sous-séquence , notée , avec , , est égale à : avec un entier appartenant à correspondant à une position dans ladite séquence de base , et la valeur complexe associée à ladite position dans ladite séquence de base , Par exemple, on sélectionne sous-séquences de valeurs complexes dans la séquence de base . avec , , . Ainsi, une première sous-séquence correspond aux 8 complexes consécutifs à partir de B(3), une deuxième sous-séquence correspond aux 8 complexes consécutifs à partir de B(7), et une troisième sous-séquence correspond aux 8 complexes consécutifs à partir de B(14), modulo . Au cours d’une troisième étape 43, on utilise au moins une des sous-séquences sélectionnées pour générer ledit signal. Par exemple, chacune des sous-séquences sélectionnées peut être allouée à un terminal distinct du système de communications, et utilisée par le terminal pour générer un signal utile, par exemple en codant, étalant ou modulant les données utiles avec la sous-séquence sélectionnée. De cette façon, il est possible pour un récepteur de décorréler les signaux reçus. Les différents sous-séquences peuvent également former les mots de code d’un dictionnaire destiné à être utilisé pour le codage de données d’un utilisateur. 5.2 Construction de la séquence de base Différentes techniques peuvent être mises en œuvre pour la construction d’une séquence de base. 5.2.1 Construction dans le domaine fréquentiel, avec quelconque La illustre les principales étapes pour la construction d’une séquence de base dans le domaine fréquentiel. La séquence de base obtenue selon cette technique peut être représentée dans le domaine complexe par des points non unitaire, i.e. par des points non tous situés sur le cercle unité. Au cours d’une première étape 51, on obtient un vecteur initial comprenant éléments réels. On rappelle que un multiple de , Pour chaque élément réel du vecteur initial , on transforme l’élément réel en un élément complexe au cours d’une deuxième étape 52, selon l’expression : , avec Au cours d’une troisième étape 53, on détermine un produit de Krönecker entre le vecteur formé des éléments complexes et un vecteur binaire A de taille , tel que et , avec , et des entiers premiers entre eux, délivrant un vecteur de base de taille . Finalement, au cours d’une quatrième étape 54, on applique une transformation du domaine fréquentiel vers le domaine temporel du vecteur de base (par exemple une Transformée de Fourier rapide inverse), délivrant la séquence de base de valeurs complexes. Un exemple d’algorithme pour la mise en œuvre d’un tel procédé de construction est proposé ci-après : pour à fin pour; (construction d’un vecteur nul de taille c) (avec tel que et sont des nombres premier entre eux) . Selon un premier exemple, pour et , le vecteur initial de taille 25 (75/3) peut être choisi en prenant aléatoirement des nombres entre 0 et : ). La figure 6A illustre les points correspondant aux représentations graphiques des valeurs complexes de la séquence de base obtenue avec un tel vecteur initial et . La représentation dans le plan complexe de la fonction d’autocorrélation de la séquence de base présente une symétrie d’ordre 3. La figure 6B illustre l’évolution de la distance minimale normalisée en fonction de la taille des sous-séquences. Si si , ou si , la distance minimale normalisée est optimale avec . Selon un deuxième exemple, pour et , le vecteur initial de taille 15 (75/5) peut être choisi en prenant aléatoirement des nombres entre 0 et : La figure 7A illustre les points correspondant aux représentations graphiques des valeurs complexes de la séquence de base obtenue avec un tel vecteur initial et . La représentation dans le plan complexe de la fonction d’autocorrélation de la séquence de base présente une symétrie d’ordre 5. La figure 7B illustre l’évolution de la distance minimale normalisée en fonction de la taille des sous-séquences. Si si , si , si , ou si la distance minimale normalisée est optimale avec . Nous notons que la distance minimale n’est pas égale à 2 dans ce cas, mais légèrement inférieure à 1,38. Cela correspond à la distance minimale entre deux points d’un pentagone situé sur le cercle unité, comme illustré en . 5.2.2 Cas particulier On s’intéresse ci-après au cas particulier . Une séquence de base construite avec est également appelée séquence C4. Comme indiqué précédemment, la fonction d’autocorrélation d’une séquence de base vérifie : , pour avec un multiple de , et étant premiers entre eux, prend ses valeurs dans l’ensemble {1, 3}. et : sinon. Une séquence de base de taille de type C4 (i.e. avec ) peut donc être caractérisée par sa fonction d’autocorrélation circulaire qui vérifie la propriété suivante : Le paramètre permet de définir deux types de séquence C4 : correspond à une séquence C4 dont les points de la fonction d’autocorrélation pour avec sont reliés dans le sens des aiguilles d’une montre (séquence C4 « clockwise »), tandis que correspond à une séquence C4 dont les points de la fonction d’autocorrélation pour avec sont reliés dans le sens inverse des aiguilles d’une montre (séquence C4 « anti-clockwise »). La valeur de correspond à car . La représentation graphique de la fonction d’autocorrélation de la séquence de base de type C4 dans le plan complexe, également appelée constellation C4, dessine une croix centrée en 0 qui relie le point zéro avec les points , , , , et présente donc une symétrie d’ordre 4. La séquence C4 tire ainsi son nom des mots « Constellation », « Cross », « Circular », « auto-Correlation » (en français constellation, croix, auto-corrélation circulaire). Une telle séquence C4 permet d’obtenir une distance normalisée égale à 2 pour différentes valeurs de , notamment , , et . On a détaillé ci-dessus un algorithme générique pour la construction de séquence de base dans le domaine fréquentiel, avec c quelconque. On présente ci-après différentes techniques de construction de séquences de base C4. 5.2.3 Construction de la séquence de base par recherche opérationnelle, avec Selon une première technique, on définit a priori la constellation C de départ comme un ensemble ordonné de q points du plan complexe, et la séquence de base par une permutation de taille qui associe au élément de la séquence de base le point complexe , i.e. , pour . La constellation C peut être construite comme par exemple. Il s’agit alors de résoudre un problème d’optimisation connu : pour un ensemble de valeurs de données ( ou par exemple), trouver la permutation qui maximise la somme des distances : Cette première technique permet de trouver des séquences C4 pour des séquences de petite taille ( ). Pour des séquences de plus grande taille (typiquement ), cette solution est délicate à mettre en œuvre du fait de l’accroissement exponentielle de la taille de l’espace de recherche des solutions (le nombre de permutation d’un ensemble de éléments dans un ensemble de éléments varie en factoriel de ). 5.2.4 Construction de la séquence de base par récursion, avec Selon une deuxième technique, il est possible de construire des séquences C4 de sorte que les points correspondant aux représentations graphiques des valeurs complexes de la séquence C4 (constellation) soient uniformément répartis sur le cercle unité, en utilisant un algorithme de récursion pour déterminer la phase des points : Initialisation : Récursion : pour à avec ou et . On en déduit la séquence C4 : A titre d’exemple, la figure 8 illustre la représentation dans le plan complexe, de la séquence C4 ainsi construite pour , et . Deux points successifs de la séquence sont liés par une ligne, formant une épicycloide à 4-cups. D’autres ensemble de récursions sont connus, par exemple, l’astroïde définie par la récursion ou par la récursion . Il est également possible de modifier cette récursion pour diminuer le nombre de points de la constellation tout en gardant une constellation C4. Par exemple, pour passer d’une constellation 64-PSK (constellation régulière à 64 points) à une constellation à 32 points (2 fois moins de points) ou 16 points (4 fois moins de points), il suffit de transformer la séquence par la fonction suivante : avec respectivement et . 5.2.5 Construction de la séquence de base dans le domaine temporel, avec Selon une troisième technique, il est possible de construire des séquences C4 dans le domaine temporel. On présente ci-après un exemple d’algorithme pouvant être implémenté pour générer une classe de séquences C4 de longueur , avec multiple de 4, telle que les points correspondant aux représentations graphiques des valeurs complexes d’une séquence C4 soient sur le cercle unité. On considère ainsi en entrée un vecteur de décalage (« offset ») O de taille 4 prenant ses valeurs entre 0 et (cette condition est suffisante pour obtenir une séquence C4 ayant des points situés sur la constellation q -PSK définie par l’ensemble { , } ; ce n’est toutefois pas une condition nécessaire : cette contrainte est indiquée à titre d’exemple uniquement), une permutation de l’ensemble (1, 2, 3, 4) et une variable prenant soit la valeur , soit . A partir de ces entrées, l’algorithme suivant génère une séquence C4 unitaire de taille : pour à pour fin pour fin pour pour à fin pour. 5.2.6 Construction de la séquence de base dans le domaine fréquentiel, avec Selon une quatrième technique, il est possible de construire des séquences C4 dans le domaine fréquentiel, comme présenté dans le cas général avec quelconque. On présente ci-après un exemple d’algorithme pouvant être implémenté pour générer une classe de séquences C4 de longueur , avec multiple de 4, telle que les points correspondant aux représentations graphiques des valeurs complexes d’une séquence C4 soient situés ou non sur le cercle unité. On considère en entrée une taille , un vecteur initial comprenant éléments réels, et une variable prenant soit la valeur pour générer une séquence C4 « clockwise », soit pour générer une séquence C4 « anti-clockwise ». A partir de ces entrées, l’algorithme suivant génère une séquence C4 unitaire ou non unitaire de taille , notée dans le domaine fréquentiel : pour à fin pour; . Pour , le vecteur binaire est soit égal à si , soit égal à si . Comme déjà indiqué, . Cette technique permet notamment de construire des constellations non-unitaires. A titre d’exemple, les figures 9A et 9B illustrent les représentations graphiques des séquences C4 obtenues pour =64, un vecteur initial et pour la figure 9A, ou pour la . Une séquence C4 construite avec un vecteur initial aléatoire n’est pas nécessairement unitaire, i.e. les points associés à sa représentation graphique sous forme de constellation ne sont pas nécessairement situés sur un cercle. Il est toutefois possible de contraindre le choix des valeurs réels du vecteur initial de sorte que la séquence C4 soit unitaire par construction. Réciproquement, toutes les séquences unitaires déjà trouvées peuvent être construire à partir d’un vecteur initial spécifique. Afin d’obtenir une séquence C4 unitaire, selon un premier exemple, si , avec , les éléments réels du vecteur initial peuvent être choisis tels que : avec : un vecteur réel de taille . Notons qu’il n’y a pas de contrainte sur la construction du vecteur . Il peut être choisi aléatoirement ou bien optimisé selon un critère spécifique à l’application. On peut par exemple considérer l’optimisation de la distance normalisée pour des valeurs de p particulières. A titre d’illustration, permettra de générer une séquence C4 associée à une constellation dont la distance minimale entre deux points de la constellation sera maximisée ; une permutation de l’ensemble , et . Selon un deuxième exemple, si , avec , les éléments réels du vecteur initial peuvent être choisis tels que : avec : un vecteur réel de taille . A nouveau, il n’y a pas de contrainte sur la construction du vecteur . Il peut être choisi aléatoirement ou bien optimisé selon un critère spécifique à l’application. On peut par exemple considérer l’optimisation de la distance normalisée pour des valeurs de p particulières. A titre d’illustration, permettra de générer une séquence C4 associée à une constellation dont la distance minimale entre deux points de la constellation sera maximisée ; une permutation de l’ensemble ( ou ). ( . Selon un troisième exemple, si , avec , les éléments réels du vecteur initial peuvent être choisis tels que : avec : , un vecteur réel de taille . A nouveau, il n’y a pas de contrainte sur la construction du vecteur , une permutation de l’ensemble . 5.2.7 Construction de la séquence de base dans le domaine fréquentiel minimisant , avec Un vecteur initial modifié peut notamment être obtenu à partir d’un vecteur initial permettant d’obtenir une séquence C4 unitaire, de sorte que les points correspondant aux représentations graphiques des valeurs complexes d’une séquence de base obtenue à partir du vecteur initial modifié correspondent aux points d’un diagramme de constellation d’une modulation q-APSK. En particulier, il est possible d’appliquer la méthode fréquentielle pour générer une constellation q-APSK et une séquence C4 associée maximisant la distance , c’est-à-dire la distance minimale entre deux points de la constellation. Le vecteur initial modifié peut notamment être obtenu en additionnant un vecteur ajouté V de taille et le vecteur initial de éléments réels, tel que le vecteur ajouté V est égal à , avec et un vecteur de taille construit en choisissant ses premières coordonnées dans l’ensemble , puis en recopiant les premières coordonnées de telle sorte que , . On présente ci-après un exemple d’algorithme permettant d’obtenir une séquence de base minimisant la distance , à partir d’une séquence de base unitaire. On considère à titre d’exemple et . On note toutefois que l’algorithme proposé peut être généralisé à différentes valeurs de ou de longueur de la séquence. On considère donc en entrée une séquence C4 unitaire de taille , notée . Au cours d’une première étape, le vecteur représentant la séquence C4 unitaire est transformé du domaine temporel vers le domaine fréquentiel : . On cherche ensuite à extraire, du vecteur de base ainsi obtenu, le vecteur initial comprenant éléments réels (utilisé pour construire la séquence ), en déterminant les phases des 16 coefficients non nuls (coefficients situés aux indices égaux à , avec pour une séquence « clockwise » et pour une séquence « anti-clockwise »). Au cours d’une étape suivante, le vecteur initial est modifié en lui ajoutant un vecteur V (vecteur ajouté) de taille 16 définie de la façon suivante : , avec un réel qui peut prendre par exemple des valeurs entières dans l’intervalle [1, 63] et les coefficients prenant leur valeur parmi -1, 0 ou et 1. Cela permet d’obtenir un vecteur initial modifié , et par suite de construire une nouvelle séquence en utilisant la technique de construction des séquences C4 dans le domaine fréquentiel présenté précédemment, à partir du vecteur initial modifié . Il est ensuite possible de déterminer la valeur de de la séquence ainsi créée. Il suffit ensuite de générer différentes séquences pour ne garder que celle maximisant . A titre d’exemple, on considère en entrée une séquence C4 unitaire de taille , notée , obtenue par la méthode fréquentielle à partir d’un vecteur initial et , ce qui donne la séquence C4 unitaire illustrée en . Avec et le vecteur ajouté V est égal à : L’addition du vecteur ajouté et du vecteur initial donne : . Le vecteur initial ainsi modifié et la variable peuvent ensuite être utilisés pour générer une nouvelle séquence telle que la séquence C4 non unitaire illustrée en . Par exemple, la séquence ainsi construite présente une distance minimale . 5.3 Exemples d’application 5.3.1 Construction de séquences de base orthogonales Comme indiqué précédemment, les séquences de base ainsi construites peuvent notamment être des séquences d’étalement destinées à être utilisées par des terminaux, ou groupes de terminaux, distincts d’un système de communications. En effet, dans un contexte multi-utilisateurs, il est avantageux d’associer des séquences spécifiques à des utilisateurs (ou à des groupes d’utilisateurs) afin d’aider la tâche de détection multi-utilisateurs. Notamment, il est possible de choisir une séquence C4 « clockwise » (avec ), notée , et une séquence C4 « anti-clockwise » (avec ), notée . En effet, ces deux types de séquences sont, par construction, orthogonales l’une avec l’autre. En effet, le calcul de l’intercorrélation entre les séquences et dans le domaine fréquentiel donne : Comme présente des fréquences non nulles aux indices , tandis que présente des fréquences non nulles aux indices , on en déduit donc que , pour toute valeur de τ. 5.3.2 Identification par sous-séquences de taille p Dans un contexte multi-utilisateurs, il peut également être avantageux d’associer des sous-séquences de taille à des utilisateurs (ou à des groupes d’utilisateurs) afin d’aider la tâche de détection multi-utilisateurs. Par exemple, une séquence de base de taille peut être tronquée en au moins une sous-séquence de taille . A titre d’exemple, on considère un système de communications avec utilisateurs (ou groupe d’utilisateurs), dans lequel on souhaite associer à chaque utilisateur une séquence de taille qui lui permet de s’identifier dans un protocole multi-utilisateur. Il est notamment possible de construire une séquence C4 de taille et d’associer au utilisateur (ou groupe d’utilisateurs) la séquence de taille p définie par . En effet, il est possible de montrer que : si , alors , si alors , et donc, d’après l’équation si ou alors , et donc, d’après l’équation : . Ceci revient à montrer que et pour tout k, , , avec indiquant le sens de rotation de la séquence C4 (ainsi, et si , et et si ). Cette technique de sous-échantillonnage peut bien entendu être étendue à d’autres longueurs de séquences (en particulier, ou , ou d’autres valeurs de ). De plus, le nombre de séquences allouées peut être inférieur à . Par exemple, un tel système est avantageux pour initier une communication dans un réseau cellulaire entre un mobile et une station de base. 5.3.3 Identification par sous-séquences et séquences orthogonales Il est notamment possible d’augmenter le nombre d’utilisateurs, ou groupes d’utilisateurs, dans un système de communications, en combinant l’utilisation de sous-séquences de taille et de séquences de base ou sous-séquences orthogonales (c'est-à-dire dont la distance entre chaque séquence est importante), de façon à augmenter le nombre d’utilisateurs facilement séparable les uns des autres. On présente ci-après différents exemples. Selon un premier exemple, pour , il est possible de générer séquences de taille à partir de deux séquences C4 et de taille , avec pour la séquence , et pour la séquence . Les identifiants/séquences d’étalement de taille peuvent alors être définis par l’union des séquences et Il est notamment possible de choisir les séquences C4 et de façon que la distance entre les séquences disjointes soit égale à , permettant ainsi une séparation efficace des utilisateurs les uns des autres. A titre d’exemple, pour , il est possible de définir une séquence dite épicycloide avec et une séquence épicycloide avec . Cela permet de créer un ensemble de 128 séquences de taille 64 avec une distance normalisée entre deux séquences distinctes égale à 2. Selon un deuxième exemple, pour , il est possible de générer séquences de taille à partir de deux séquences C4 et de taille , avec pour la séquence , et pour la séquence , . Les identifiants/séquences d’étalement de taille peuvent alors être définis par l’union des séquences et Il est notamment possible de choisir les séquences C4 et de façon que la distance entre deux séquences disjointes soit égale à , permettant ainsi une séparation efficace des utilisateurs les uns des autres. A titre d’exemple, pour , il est possible de définir la séquence à partir du vecteur initial et , et la séquence à partir du vecteur initial et , pour obtenir cette propriété. Cela permet de créer un ensemble de 128 séquences de taille 32, avec une distance normalisée entre deux séquences distinctes égale à 2. Selon un troisième exemple, pour , il est possible de générer séquences de taille à partir de deux séquences C4 et de taille , avec pour la séquence , et pour la séquence . Les identifiants/séquences d’étalement de taille peuvent alors être définis par l’union des séquences et Pour ce cas, il est notamment possible de choisir les séquences C4 et permettant de maximiser la distance minimale entre deux séquences. Par exemple, pour , il est possible de définir la séquence à partir du vecteur initial ) et . La séquence obtenue est notamment illustrée en . Pour générer la séquence en sens inverse, il est possible de définir avec les opérations sur les indices effectuées modulo . La distance minimale (non normalisée) entre deux sous-séquences issues de la séquence de base et la séquence de base est de 14,5, autrement dit, quelques soient et , . Il est bien sur possible d’utiliser deux séquences construites avec un vecteur initial aléatoire et , et . La distance minimale reste du même ordre. 5.3.4 Schéma de codage Comme indiqué précédemment, les séquences de base ainsi construites peuvent par ailleurs définir des mots de code d’un dictionnaire destiné à être utilisé par un codeur dudit système de communications. Notamment, de telles séquences de base peuvent être utilisées dans un schéma de codage associant un code correcteur d’erreurs binaire ou non binaire avec une modulation à décalage de code cyclique CCSK, comme illustré en , ou dans un schéma de codage associant un code binaire ou non binaire avec une modulation CCSK binaire ou non-binaire tronquée, comme illustré en . 5.3.5 Autres exemples d’application Bien que motivé par la conception de schéma de codage NB-TCCSK efficace, les séquences de base proposées, notamment les séquences C4, peuvent aussi être utilisées dans d’autres domaines d’applications. En particulier, de telles séquences peuvent être utilisées en lieu et place de séquences de Zadoff-Chu, par exemple dans les protocoles 5G. 5.4 Dispositif correspondant On présente finalement, en relation avec la , la structure simplifiée d’une entité d’un système de communications mettant en œuvre une technique de génération d’un signal selon l’un des modes de réalisation particulier décrit ci-dessus. Une telle entité comprend une mémoire 121 comprenant une mémoire tampon, une unité de traitement 122, équipée par exemple d’un processeur P, et pilotée par le programme d’ordinateur 123, mettant en œuvre le procédé de génération d’un signal selon un mode de réalisation. A l’initialisation, les instructions de code du programme d’ordinateur 123 sont par exemple chargées dans une mémoire RAM avant d’être exécutées par le processeur de l’unité de traitement 122. Le processeur de l’unité de traitement 122 met en œuvre les étapes du procédé décrit précédemment, selon les instructions du programme d’ordinateur 123, pour : obtenir une séquence de base de valeurs complexes, notée , telle que la fonction d’autocorrélation de ladite séquence de base , définie par , avec le complexe conjugué de et , vérifie : , pour avec un multiple de , , et des entiers premiers entre eux, et , et : sinon, sélectionner sous-séquences de valeurs complexes dans ladite séquence de base , telle que ladite sous-séquence , notée , avec , , est égale à : avec un entier appartenant à correspondant à une position dans ladite séquence de base , et la valeur complexe associée à ladite position dans ladite séquence de base , utiliser au moins une desdites sous-séquences sélectionnées pour générer ledit signal. Une telle entité, ou une entité distincte, peut également mettre en œuvre une technique de construction d’une telle séquence de base. Procédé de génération d’un signal, mis en œuvre dans un système de communications numériques, comprenant les étapes suivantes : obtention d’une séquence de base de valeurs complexes, notée , telle que la fonction d’autocorrélation de ladite séquence de base , définie par , avec le complexe conjugué de et , vérifie : , pour avec un multiple de , , et des entiers premiers entre eux, et , et : sinon, sélection de sous-séquences de valeurs complexes dans ladite séquence de base , telle que ladite sous-séquence , notée , avec , , est égale à : avec un entier appartenant à correspondant à une position dans ladite séquence de base , et la valeur complexe associée à ladite position dans ladite séquence de base , utilisation d’au moins une desdites sous-séquences sélectionnées pour générer ledit signal. Procédé selon la revendication 1, caractérisé en ce que lesdites sous-séquences sont des séquences d’étalement destinées à être utilisées par des terminaux, ou groupes de terminaux, distincts dudit système de communications. Procédé selon l'une quelconque des revendications 1 et 2, caractérisé en ce qu’il comprend une étape d’allocation d’une desdites sous-séquences sélectionnées à un terminal dudit système de communications, et de transmission dudit signal en utilisant ladite sous-séquence. Procédé selon la revendication 1, caractérisé en ce que lesdites sous-séquences sont des mots de code d’un dictionnaire destiné à être utilisé par un codeur dudit système de communications. Procédé selon la revendication 4, caractérisé en ce qu’il met en œuvre l’association d’au moins un symbole codé, obtenu à l’issue d’une étape de codage d’au moins un symbole source, à l’une desdites sous-séquences sélectionnées. Procédé selon l'une quelconque des revendications 1 à 5, caractérisé en ce que ladite séquence de base est obtenue à partir des étapes suivantes : obtention d’un vecteur initial comprenant éléments réels, pour chaque élément réel dudit vecteur initial , transformation dudit élément réel en un élément complexe , selon l’expression : , avec détermination d’un produit de Krönecker entre le vecteur formé desdits éléments complexes et un vecteur binaire A de taille , tel que et , avec , et des entiers premiers entre eux, délivrant un vecteur de base de taille q , transformation du domaine fréquentiel vers le domaine temporel dudit vecteur de base , délivrant ladite séquence de base de valeurs complexes. Procédé selon la revendication 6, caractérisé en ce que lesdits éléments réels dudit vecteur initial sont choisis aléatoirement. Procédé selon la revendication 6, caractérisé en ce que lesdits éléments réels dudit vecteur initial sont choisis de sorte que les points correspondant aux représentations graphiques des valeurs complexes de ladite séquence de base appartiennent à au moins un cercle. Procédé selon la revendication 6, caractérisé en ce que lesdits éléments réels dudit vecteur initial sont choisis de sorte que les points correspondant aux représentations graphiques des valeurs complexes de ladite séquence de base correspondent aux points d’un diagramme de constellation d’une modulation q-PSK ou q-APSK. Procédé selon la revendication 6, caractérisé en ce que et en ce qu’un vecteur initial modifié est obtenu en additionnant un vecteur V de taille , dit vecteur ajouté, et ledit vecteur initial de éléments réels, ledit vecteur ajouté V étant égal à , avec et un vecteur de taille construit en choisissant ses premiers éléments dans l’ensemble , puis en recopiant les premiers éléments de sorte que , . Procédé selon l'une quelconque des revendications 1 à 10, caractérisé en ce que ladite étape de sélection sélectionne un sous-ensemble de sous-séquences, noté , de cardinalité , parmi l’ensemble de sous-séquences de taille , tel que ledit sous-ensemble présente la plus grande distance minimale normalisée : avec la partie réelle de l’expression du produit scalaire entre la sous-séquence et la sous-séquence , . Procédé selon l'une quelconque des revendication 1 à 11, caractérisé en ce que est égal à 3, 4 ou 5. Procédé de construction d’une séquence de base de valeurs complexes, notée , destinée à être utilisée dans un système de communications numériques, ledit procédé étant mis en œuvre par un processeur, caractérisé en ce que la fonction d’autocorrélation de ladite séquence de base , définie par avec le complexe conjugué de et , vérifie : , pour avec un multiple de , , et des entiers premiers entre eux, et , et : sinon. Dispositif de génération d’un signal, mis en œuvre dans un système de communications numériques, comprenant au moins un processeur configuré pour : obtenir une séquence de base de valeurs complexes, notée , telle que la fonction d’autocorrélation de ladite séquence de base , définie par , avec le complexe conjugué de et , vérifie : , pour avec un multiple de , , et des entiers premiers entre eux, et , et : sinon, sélectionner sous-séquences de valeurs complexes dans ladite séquence de base , telle que ladite sous-séquence , notée , avec , , est égale à : avec un entier appartenant à correspondant à une position dans ladite séquence de base , et la valeur complexe associée à ladite position dans ladite séquence de base , utiliser au moins une desdites sous-séquences sélectionnées pour générer ledit signal. Produit programme d’ordinateur téléchargeable depuis un réseau de communication et/ou enregistré sur un support lisible par ordinateur et/ou exécutable par un processeur, caractérisé en ce qu’il comprend des instructions de code de programme pour la mise en œuvre d’un procédé selon l’une au moins des revendications 1 à 13.