FR 2894100 A1 20070601 FR 0512094 A 20051129 DISPOSITIF DE RECEPTION NUMERIQUE POUR SIGNAUX CODES DSSS L'invention concerne, de manière générale, le traitement des signaux numériques et, notamment, les techniques de décodage de tels signaux dans des applications de communication numérique radio- fréquence. L'invention concerne plus particulièrement un dispositif de décodage d'un message binaire codé en étalement de spectre à séquence directe (DSSS, pour direct Spread Spectrum Sequence ), ainsi qu'un dispositif de réception numérique intégrant un tel décodeur. Dans le contexte d'une communication numérique où le message est codé en étalement de spectre direct, les bits "0" et "1" du message numérique sont codés par des symboles respectifs envoyés par l'émetteur et décodés, au niveau du récepteur, par un décodeur DSSS. Dans le cas où les bits sont codés en utilisant un code de Barker de longueur N, les symboles codant les bits "0" et "1" se présentent chacun sous la forme d'une série de N éléments de symbole ( 0 ou 1 ), dénommés chips , distribués sur l'un ou l'autre de deux niveaux différents et délivrés à une fréquence fixe prédéterminée F. Les éléments de symbole codant le bit "1" sont anti-corrélés aux éléments de symbole correspondants codant le bit "0", c'est-à-dire que les éléments de symbole de même rang dans l'un et l'autre de ces deux symboles ont des valeurs opposées. Par exemple, dans la mesure où un élément de symbole du symbole codant le bit "1" est au niveau 1, l'élément de symbole correspondant du symbole codant le bit "0" est au niveau -1. De même, dans la mesure où un élément de symbole du symbole codant le bit "1" est au niveau -1, l'élément de symbole correspondant du symbole codant le bit "O" est au niveau 1. Le message binaire étalé est alors utilisé pour moduler en phase la porteuse, se présentant sous la forme d'une onde sinusoïdale fonction du temps notée p (t) , p (t) = cos (2nfp. t+cp) , où fp est sa fréquence et cp sa phase à l'origine. Ainsi, soir m un message binaire de longueur r, m peut être noté de la façon suivante : m = {I0, I1,...,Ir-1} avec Ik = 0 ou 1. Par exemple, avec r = 5, m = {1,0,0,1,0}. Souvent, pour transmettre ce type de message, la forme d'onde, r-1 avant modulation, sera w(t) = E Ikg(t û kTb) où Tb est le k=0 temps bit. Généralement, la fonction g(t) est définie comme suit : g(t) = 1 si 0 On voit que le code NRZ ne peut être transmis directement car en cas de longue suite de zéro ou de un, le rythme binaire n'est plus récupérable par le récepteur. Le codage par étalement de spectre direct remplace alors le signal codé en NRZ par un signal codé différemment, dont le spectre est mieux adapté. L'étalement de spectre direct consiste à transmettre la séquence pseudo-aléatoire C(t) lorsque Ik=1 et C(t) lorsque Ik=O. Ces séquences pseudo Nù1 aléatoires sont de la forme C(t) _ ECk l l T (t ù kTc) où k=0 Tb=rTc, Tc étant la durée d'un élément de symbole du code d'étalement et 11T =1 si 0 L'entier N est le facteur d'étalement (de spectre). La séquence c = {co, cl,..., cN_l} est choisie de façon à ce que la fonction d'autocorrélation de c(t) soit proche de 0 pour des décalages temporels différents de O. Par exemple, le code Barker 5 est défini par la séquence c = {l, 1, 1, 0, 1} . C(t), représentant le message binaire m= {1,0,0,1,0} étalé (codé DSSS) par le code Barker 5, est représenté à la figure 2. Le codage DSSS est donc caractérisé par la séquence c = {co, cl,..., cN_l} . Classiquement, le décodage DSSS permet de retrouver le message codé NRZ ainsi que la synchronisation associé, puis, à partir de ces deux signaux, de retrouver le message m d'origine. Une architecture classique de décodeur DSSS est donnée à la figure 3. La partie analogique de la chaîne de réception située en amont du décodeur DEC, comprenant typiquement des moyens d'amplification et de démodulation n'est pas représentée, car ne présentant pas d'intérêt spécifique dans le cadre de la présente invention. Le signal d'entrée du décodeur IN, fourni en sortie d'un convertisseur analogique-numérique non représenté, est soumis à un échantillonneur 10 du décodeur DEC. Soit l'entier K, appelé facteur d'échantillonnage, correspondant au nombre d'échantillons capturés par l'échantillonneur 10 pendant la période de temps Tc, le théorème d'échantillonnage de Shannon impliquant la relation K>_2. En sortie de l'échantillonneur 10, le décodeur DEC est constitué par un étage de filtre adapté au code d'étalement utilisé, permettant de réaliser la récupération de la synchronisation du signal à décoder par rapport à l'information utile. Plus précisément, il s'agit d'un filtre numérique à réponse impulsionnelle finie FIR, caractérisé par les coefficients de sa réponse impulsionnelle, qui doivent correspondre à la réplique exacte du code d'étalement choisi. Plus précisément, la structure de ce filtre est celle d'un registre à décalage REG comprenant une pluralité de bascules recevant chaque échantillon du signal d'entrée IN. Un bit du message transmis correspond alors à KN échantillons dans le cas d'un code d'étalement à N éléments de symbole. Aussi, à chaque instant, les KN derniers échantillons reçus de l'échantillonneur sont stockés dans les variables zo à z 1.1 du registre à décalage. Le registre à décalage coopère avec un circuit combinatoire COMB, conçu de façon connue de l'homme du métier, et faisant intervenir la suite de coefficients ci, de manière que le signal de sortie OUT du filtre présente une amplitude dépendant directement du niveau de corrélation constaté entre la séquence des KN derniers échantillons capturés par ce filtre et une série de KN éléments de symbole de l'un des deux symboles, par exemple la série des N éléments du symbole codant un bit "1" du signal numérique. Le filtrage adapté consiste donc à faire correspondre la suite de coefficients ci à la réplique exacte du code d'étalement utilisé, pour corréler les niveaux des éléments de symbole reçu successivement sur l'entrée du filtre, aux niveaux que présentent les éléments de symbole successifs de l'un des deux symboles codant les bits 0 et 1 , par exemple les éléments de symbole du symbole codant le bit "1". Ainsi, selon le principe exposé ci-dessus, à chaque instant, les variables zi du registre, représentant une séquence binaire des KN derniers échantillons reçus, sont pondérés par le jeu de coefficients co à cN_1, chaque coefficient représentant un élément du code d'étalement utilisé étant répété K fois dans la pondération, avant d'être sommées pour fournir le signal de sortie OUT. Ce signal est prévu pour être appliqué à un premier et à un second comparateur à hystérésis, respectivement Compl et Comp2. Les signaux associés au décodeur de la figure 3 pour un message codé Barker 5 sont présentés à la figure 4. Le signal OUT en entrée des comparateurs fournit typiquement des pics de synchronisation, dont le signe donne la valeur du bit du message d'origine à cet instant : si le pic est négatif, il s'agit d'un 0 , et d'un 1 si le pic est positif. Les comparateurs à hystérésis, respectivement Compl et Comp2, permettent alors de transformer les symboles ainsi décodés en un flux de données binaires correspondant au message d'origine ainsi que de leur associer une horloge de synchronisation. Le message d'origine codé NRZ ainsi que l'horloge de synchronisation sont donc restitués respectivement en sortie des comparateurs à hystérésis Compl et Comp2. Plus précisément, le premier comparateur Compl bascule dès que le signal passe au-dessous d'une valeur de seuil inférieur ou au-dessus d'une valeur de seuil supérieur et fournit alors un signal numérique sur un bit correspondant à la donnée. Le deuxième comparateur Comp2 bascule dès que le signal passe au-dessus ou au-dessous de la valeur de seuil inférieur et dès que le signal passe au-dessus ou au-dessous de la valeur de seuil inférieur et fournit alors un signal numérique sur un bit qui sert d'horloge de capture pour les données. Les valeurs de seuils inférieur et supérieur sont réglables. Toutefois, en situation réelle d'utilisation, le 30 canal de transmission est bruité et les moyens de démodulation sont souvent imparfaits. La conséquence est que parmi les échantillons reçus par le décodeur DSSS, un certains nombre seront erronés (1 à la place de 0 et inversement). Le nombre d'échantillons faux capturés par l'échantillonneur du décodeur DSSS dépend en effet directement de la qualité de la démodulation ainsi que du niveau de bruit dans le canal de transmission. Dans le décodeur DSSS, le signal présenté aux deux comparateurs est lui aussi erroné. Il s'ensuit alors des erreurs sur le message codé NRZ restitué (sortie du comparateur Compi) et sur l'horloge de synchronisation (sortie du comparateur Comp2) et donc, une dégradation significative des performances du processus de décodage DSSS basé sur le filtre adapté. L'invention a pour but de remédier à ces inconvénients. Avec cet objectif en vue, l'invention a pour objet un dispositif de décodage d'un message binaire codé en étalement de spectre à séquence directe, comprenant un échantillonneur pour capturer au moins une séquence d'échantillons binaires correspondant à un bit du message transmis, ladite séquence d'échantillons capturée étant appliquée à un filtre adapté au code d'étalement utilisé permettant de supprimer l'étalement appliqué au message d'origine, ledit dispositif étant caractérisé en ce qu'il comprend, en sortie dudit échantillonneur, un bloc de correction d'erreurs comprenant des moyens de mémorisation d'une pluralité de séquences binaires correspondant à l'ensemble des valeurs possibles pour une séquence d'échantillons capturée, et des moyens pour remplacer ladite séquence d'échantillons capturée par la séquence mémorisée minimisant le nombre d'échantillons différents avec la séquence d'échantillons capturée et pour appliquer ladite séquence mémorisée audit filtre adapté. De préférence, pour un facteur d'étalement égal à N et pour un facteur d'échantillonnage égal à K correspondant au nombre d'échantillons capturés par ledit échantillonneur pendant la durée d'un élément de symbole du code d'étalement, les moyens de mémorisation du bloc de correction d'erreurs stockent 4KN-2 valeurs différentes de séquences d'échantillons. Selon un mode de réalisation, le dispositif comprend un premier et un second comparateurs à hystérésis installés en sortie du filtre adapté au code d'étalement, propre à comparer l'amplitude du signal de sortie du filtre adapté) à une valeur de seuil inférieur et à une valeur de seuil supérieur, et à délivrer respectivement le message binaire d'origine et son horloge de synchronisation associée pour la capture des données dudit message. Avantageusement, le premier et le second comparateur présentent des valeurs de seuils supérieur et inférieur réglables. De préférence, le filtre adapté au code d'étalement utilisé est un filtre numérique à réponse finie. L'invention concerne aussi un dispositif de réception d'un signal modulé, adapté à un système de transmission utilisant une modulation de la porteuse par un message binaire codé en étalement de spectre à séquence directe, caractérisé en ce qu'il comprend un dispositif de décodage tel qu'il vient d'être décrit. D'autres caractéristiques et avantages de la présente invention apparaîtront plus clairement à la lecture de la description suivante donnée à titre d'exemple illustratif et non limitatif et faite en référence aux figures annexées dans lesquelles : - la figure 1 montre la représentation d'un message binaire codé NRZ et a déjà été décrite ; - la figure 2 montre la représentation du message de la figure 1 codé Barker 5 et a déjà été décrite ; -la figure 3 est un schéma illustrant la structure d'un décodeur DSSS d'un dispositif de réception numérique classique et a déjà été décrite ; - la figure 4 montre la représentation des signaux associés au décodeur DSSS de la figure 3 pour un message codé Barker 5 et a déjà été décrite ; - la figure 5 est un schéma illustrant la structure d'un décodeur DSSS modifié selon la présente invention. Le dispositif de réception numérique selon l'invention est basé sur un décodeur DSSS doté de moyens spécifiques permettant de corriger automatiquement les échantillons faux du signal reçu, liés aux imperfections du démodulateur et/ou au bruit du canal de transmission. La structure d'un décodeur DSSS modifié selon la présente invention est schématisée à la figure 5. Les éléments en commun avec le décodeur de la figure 3 portent les mêmes références. Ainsi, le décodeur modifié comprend en sus des éléments déjà décrits en référence à la figure 3, un bloc de correction d'erreurs 20 situé en sortie de l'échantillonneur 10. La fonction de ce bloc qui sera plus précisément décrite ci-après, est de permettre la correction de la séquence binaire d'échantillons Z = (zo,..., z 1.1) capturée par l'échantillonneur 10, en cas d'erreur intervenues dans la phase de transmission ou de démodulation. Pour expliquer le fonctionnement du bloc de correction d'erreurs, on reprend l'exemple du message binaire à transmettre m = {1,0,0,1,0} codé DSSS avec une séquence d'étalement de la forme c = Selon l'exemple, le message est codé avec un code Barker 5 caractérisé par la séquence c = {1,1,1,0,1}. On suppose que le facteur d'échantillonnage K est égal à 2. Dans ce contexte, les variables zo à z _1 du registre à décalage du décodeur DSSS, qui est prévu pour stocker un certain nombre d'échantillons du signal reçu en entrée du décodeur correspondant à un bit du message transmis, sont au nombre de K.N=10. Soient alors Z = (zo, z1, ..., z9) la séquence binaire d'échantillons capturés par l'échantillonneur 10 du décodeur. Par ailleurs, on note x la séquence du code d'étalement sur-échantillonné d'un facteur K. Avec le code Barker 5 échantillonné d'un facteur 2, on obtient la séquence x={1,1,1,1,1,1,0,0,1,1}. Le fonctionnement du bloc de correction d'erreurs 20 repose alors sur le principe suivant. A un instant quelconque, selon l'exemple avec le code de Barker 5 et un facteur d'échantillonnage égal à 2, la séquence Z est toujours constituée par 10 bits pris consécutivement dans une séquence de 20 bits y, définie telle que : Y xx xx xx xx La séquence x du code d'étalement sur- échantillonné dépend uniquement du code DSSS utilisé et du facteur d'échantillonnage choisi, la séquence x étant la séquence complémentaire de la séquence X. Compte tenu que pour chaque valeur de y, Z peut prendre 10 valeur différentes et comme y peut prendre 4 valeurs, Z peut prendre en tout quarante valeurs. Plus précisément, ce raisonnement conduisant à compter deux fois les valeurs X et Z ne peut en fait prendre que 38 valeurs possibles au cours du temps. Dans le cas général, si K est le facteur d'échantillonnage et N le facteur d'étalement, Z peut prendre 4KN - 2 valeurs possibles. Si on considère un message codé Barker 5 avec un facteur d'échantillonnage K = 2, à un instant donné, la longueur de la séquence binaire d'échantillons Z est alors de K*N = 2*5 = 10 échantillons, et la séquence Z peut prendre 4KN -2 = 38 valeurs différentes. Ces valeurs prises par Z pour un message codé Barker 5 sont consignées dans le tableau ci-dessous : 0000001100 0000011000 0000110000 0001100000 0011000000 0110000000 1100000000 8 1000000001 9 0000000011 10 0000000110 11 0000011001 12 0000110011 13 0001100111 14 0011001111 15 0110011111 16 1100111111 17 1001111110 18 0011111100 19 0111111001 20 1111110011 21 1111100111 22 1111001111 23 1110011111 24 1100111111 25 1001111111 26 0011111111 27 0111111110 28 1111111100 29 1111111001 30 1111100110 31 1111001100 32 1110011000 33 1100110000 34 1001100000 35 0011000000 36 0110000001 37 1100000011 38 1000000110 Le bloc de correction d'erreurs 20 du décodeur DSSS est donc prévu pour stocker dans une table Tab l'ensemble des valeurs différentes que peut prendre la séquence d'échantillons Z dans le temps. Ainsi, lorsqu'un message codé DSSS est en cours de transmission, on sait que la séquence binaire d'échantillons Z capturée par l'échantillonneur du décodeur DSSS, a nécessairement pour valeur une des valeurs stockée dans le bloc de correction d'erreurs aux erreurs de transmission près. Aussi, la correction réalisée par le bloc de correction d'erreurs 20 consiste, pour chaque séquence d'échantillons Z effectivement capturée par l'échantillonneur, à intercepter cette séquence Z et à la remplacer par la séquence de la table stockée dans le bloc de correction 20 qui lui est la plus proche. Pour ce faire, la séquence binaire Z capturée est comparée à toutes les valeurs de la table mémorisant l'ensemble des valeurs possibles que peut prendre la séquence Z au cours du temps. Plus précisément, pour chaque séquence de la table, le bloc de correction compte le nombre d'échantillons différents entre la séquence capturée par l'échantillonneur et la séquence de la table. Le bloc de correction fournit alors au décodeur DSSS la séquence d'échantillons mémorisée de la table qui minimise ce nombre d'échantillons différents avec la séquence capturée. Le bloc de correction d'erreur 20, lorsqu'il est intégré au décodeur DSSS, permet donc de diminuer notablement les erreurs sur la restitution de l'horloge ainsi que sur le message d'origine. Le principe de fonctionnement du bloc de correction d'erreur tel qu'il vient d'être décrit est particulièrement avantageux en ce sens qu'il ne nécessite aucun codage supplémentaire (tels que des codages par redondance ou codages conventionnels), ni synchronisation sur les échantillons à corriger. Le débit d'information n'est donc pas affecté par le système de correction selon l'invention. REVENDICATIONS 1. Dispositif de décodage (DEC) d'un message binaire codé en étalement de spectre à séquence directe, comprenant un échantillonneur (10) pour capturer au moins une séquence d'échantillons binaires (zi) correspondant à un bit du message transmis, ladite séquence d'échantillons capturée étant appliquée à un filtre (FIR) adapté au code d'étalement utilisé permettant de supprimer l'étalement appliqué au message d'origine, ledit dispositif étant caractérisé en ce qu'il comprend, en sortie dudit échantillonneur (10), un bloc de correction d'erreurs (20) comprenant des moyens de mémorisation (Tab) d'une pluralité de séquences binaires correspondant à l'ensemble des valeurs possibles pour une séquence d'échantillons capturée, et des moyens pour remplacer ladite séquence d'échantillons capturée par la séquence mémorisée minimisant le nombre d'échantillons différents avec la séquence d'échantillons capturée et pour appliquer ladite séquence mémorisée audit filtre adapté. 2. Dispositif selon la revendication 1, caractérisé en ce que, pour un facteur d'étalement égal à N et pour un facteur d'échantillonnage égal à K correspondant au nombre d'échantillons capturés par ledit échantillonneur pendant la durée d'un élément de symbole du code d'étalement, les moyens de mémorisation (Tab) du bloc de correction d'erreurs (20) stockent 4KN-2 valeurs différentes de séquences d'échantillons. 3. Dispositif selon la revendication 1 ou 2, caractérisé en ce qu'il comprend un premier (Compl) et un second (Comp2) comparateurs à hystérésis installés en sortie du filtre (FIR) adapté au code d'étalement, propre à comparer l'amplitude du signal de sortie du filtre adapté (FIR) à une valeur de seuil inférieur et à une valeur de seuil supérieur, et à délivrer respectivement le message binaire d'origine et son horloge de synchronisation associée pour la capture des données dudit message. 4. Dispositif selon la revendication 3, caractérisé en ce que le premier et le second comparateur présentent des valeurs de seuils supérieur et inférieur réglables. 5. Dispositif selon l'une quelconque des revendications précédentes, caractérisé en ce que le filtre adapté au code d'étalement utilisé est un filtre numérique à réponse finie. 6. Dispositif de réception d'un signal modulé, adapté à un système de transmission utilisant une modulation de la porteuse par un message binaire codé en étalement de spectre à séquence directe, caractérisé en ce qu'il comprend un dispositif de décodage selon l'une quelconque des revendications 1 à 5.