Brevet FR2983372A1 — publié le 20130531

DOMAINE DE L'INVENTION Le domaine de l'invention est celui des codes détecteurs et correcteurs d'erreurs, et plus précisément celui des codes dits convolutifs. Dans ce cadre, l'invention concerne un décodeur de faible complexité pour codes convolutifs. ARRIERE PLAN DE L'INVENTION Les codes convolutifs forment une classe souple et efficace de codes détecteurs et correcteurs d'erreurs. Il s'agit des codes les plus utilisés actuellement dans les systèmes de communications fixes et mobiles. Le terme « convolutif » traduit le fait que la suite de bits codés est le résultat de la convolution de la suite de bits d'information par les coefficients d'au moins deux séquences binaires fixes appelées polynômes générateurs. Le codage des données binaires à émettre est effectué à l'aide d'un codeur convolutionnel : la sortie de ce dispositif dépend de l'information courante à coder (instant n) ainsi que de l'information précédente (instants n-1, n-2, ..., n-K+1) et de l'état du codeur. Le paramètre K est appelé la longueur de contrainte du code et définit le nombre d'états du code convolutif (2K-1). En pratique, un codeur convolutionnel est réalisé à l'aide d'un registre à décalage et de « OU exclusifs ». La manière classique de décoder un code est de comparer la séquence reçue y(n) à toutes les séquences possibles x(n) susceptibles d'être émises et de choisir la plus vraisemblable parmi elles. Cette manière de procéder présente une complexité exponentielle (croissante avec la taille de la séquence reçue) et n'est par conséquent pas réalisable en pratique. La réduction de l'écart entre le message observé et le message décodé est effectuée selon le critère du maximum de vraisemblance. La méthode de décodage la plus répandue actuellement, et notamment intégrée dans bon nombre de produits de masse (GSM, WiFi, etc.), est basée sur l'algorithme de Viterbi (il s'agit d'un algorithme de programmation dynamique qui prend en compte la structure répétitive du treillis généré à partir des polynômes générateurs du code convolutif utilisé). Il permet à la réception d'un mot y de déterminer le mot de code x le plus proche (selon le critère du maximum de vraisemblance). Le décodage à maximum de vraisemblance consiste à chercher dans le treillis du code le chemin le plus proche de la séquence reçue. Un inconvénient du décodeur de Viterbi est que sa complexité est élevée et peut ne pas être compatible avec les ressources logicielles du récepteur devant mettre en oeuvre le décodage. Cette complexité se traduit également par une consommation d'énergie électrique qui peut s'avérer trop importante vis-à-vis des ressources de certains récepteurs (appareils portables en particulier). Il existe donc un besoin pour une solution de décodage de codes convolutifs dont la complexité serait très faible par rapport à celles reposant sur l'algorithme de Viterbi. Il est en outre à noter qu'en pratique le décodeur de Viterbi ne peut réaliser le décodage de codes convolutifs ayant une longueur de contrainte supérieure à 7 car sa complexité s'accroîtrait alors au point de devenir prohibitive. On comprend donc que le pouvoir de correction (ou gain de codage) est en réalité limité. EXPOSÉ DE L'INVENTION L'invention a pour objectif de proposer un décodeur de code convolutif de faible complexité et propose à cet effet selon un premier aspect un procédé pour la correction d'erreurs de transmission pour la correction d'erreurs de transmission dans lequel au moins deux suites binaires codées sont issues d'une suite binaire à transmettre codée par un code convolutif et reçues depuis un canal de communication, caractérisé en ce qu'il comporte les étapes consistant à : - produire, à partir de deux suites binaires codées reçues, des suites binaires de comparaison qui coïncident en l'absence d'erreurs de transmission sur le canal de communication ; - comparer les suites binaires de comparaison et former une suite binaire de détection correspondant à l'opération logique OU-exclusif des deux suites binaires de comparaison; - en cas de divergence des suites binaires de comparaison à partir d'un point de divergence, vérifier si la séquence constituée de P bits de la suite binaire de détection à partir du point de divergence correspond à une erreur de transmission répertoriée et corriger le cas échéant les suites binaires codées reçues. L'invention concerne selon un second aspect un récepteur de données, caractérisé en ce qu'il comporte un décodeur de code convolutif comprenant une mémoire pour stocker des erreurs de transmission répertoriées et un processeur configuré pour mettre en oeuvre le procédé selon le premier aspect de l'invention. L'invention s'étend également à un système de transmission de données comprenant un émetteur et un récepteur selon le second aspect de l'invention. BREVE DESCRIPTION DES DESSINS D'autres aspects, buts et avantages de la présente invention apparaîtront mieux à la lecture de la description détaillée suivante de formes de réalisation préférées de celle-ci, donnée à titre d'exemple non limitatif, et faite en référence à l'unique figure 1 annexée qui représente un schéma de principe du décodeur objet de l'invention. DESCRIPTION DETAILLEE DE L'INVENTION L'invention concerne selon son premier aspect un procédé pour la correction d'erreurs de transmission dans au moins deux suites binaires codées résultant du codage d'un message à transmettre par un code convolutif et transmises sur un canal de communication. Chacune des suites binaires codées résulte préférentiellement du codage convolutif d'une même suite binaire « source » à transmettre exploitant deux polynômes générateurs. On obtient alors deux suites binaires codées qui correspondent ainsi chacune au résultat de la convolution d'une suite binaire « source » à transmettre avec les coefficients d'un polynôme générateur respectif. A titre d'exemple purement illustratif, les suites binaires codées sont produites par un codeur implémentant le code convolutif exploitant les polynômes générateurs [13318 et [17118 (notation octale) sur une longueur de contrainte égale à 7. Les coefficients ces polynômes sont ainsi les suivants : [101101112 et [111100112. On relèvera que l'invention n'est pas limitée par le nombre de polynômes générateurs exploités par le code convolutif utilisé. Ainsi, si le code convolutif utilisé comporte plus de deux polynômes générateurs et, par conséquent, produit plus de deux suites binaires, on peut alors se ramener au cas simple basé sur l'utilisation de deux suites binaires (cas préférentiellement décrit dans ce qui suit) en traitant par exemple, en parallèle ou successivement, tous les couples de suites binaires qu'il est possible de former avec le jeu de suites binaires produites par le code convolutif utilisé. En référence à la figure 1, le procédé de correction d'erreurs débute par la réception depuis le canal de communication d'au moins deux suites binaires codées reçues ARx et BRx (ces deux suites sont extraites d'une même suite binaire « source » par désentrelacement). Au cours d'une première étape représentée par le bloc 10 sur la figure 1, on produit, à partir des deux suites binaires codées reçues ARx, BRx, des suites binaires de comparaison ADEC, BDEC qui coïncident en l'absence d'erreurs de transmission sur le canal de communication. Selon un premier mode de réalisation, on produit les suites binaires de comparaison ADEC, BDEC en réalisant la convolution de chacune des suites binaires codées reçues ARx, BRx, avec les coefficients du polynôme générateur ayant servi à coder l'autre suite binaire codée reçue. On note dans ce qui suit M la suite binaire à transmettre, PA, respectivement PB, le polynôme générateur correspondant à l'obtention de la suite codée ATx (= M*PA), respectivement BTx (=M*PB) transmise sur le canal de transmission depuis lequel elle est reçue sous la forme de la suite codée reçue ARx, respectivement BRx. Dans le cadre de ce premier mode de réalisation, on utilise le polynôme PB pour la convolution de la suite ARx et le polynôme PA pour la convolution de la suite BRX. En l'absence d'erreurs de transmission sur le canal (ATx = ARx et BTx = BRx), les suites binaires de comparaison sont identiques : ADED=ARX*PB=AD(*PB=M*PA*PB et BDEC= BRX*PA=BTX*PA=M*PB*PA. Selon un second mode de réalisation, on produit les suites binaires de comparaison ADEC, BDEC en réalisant la déconvolution de chacune des suites binaires codées reçues au moyen du polynôme générateur ayant servi à la coder à l'émission. En l'absence d'erreurs de transmission sur le canal, les suites binaires de comparaison sont identiques et correspondent à la suite à émettre : ADEc=ARx*1 /PA=ATx*1 /PA= M*PA*1 /PA= M e t BDEc=BRx*1 /PB=B-D(* 1 /PB=M*PB*1/PB=M. On notera dès à présent que dans une variante de réalisation avantageuse de l'invention, ces deux modes de réalisation sont mis en oeuvre conjointement en produisant deux paires de suites binaires de comparaison. Tel que représenté par le bloc 20, on vient ensuite comparer les suites binaires de comparaison ADEC, BDEC et former une suite binaire de détection X correspondant à l'opération logique OU-exclusif des deux suites binaires de comparaison. En l'absence d'erreurs, les suites binaires de comparaison ADEC et BDEC doivent coïncider parfaitement. En présence d'erreurs, elles vont diverger à partir d'un certain point (point de divergence D) identifiable facilement grâce à la suite binaire de détection X. L'indice temporel associé à ce point permet de repérer précisément le début de la séquence d'erreurs. Le bloc 30 sur la figure 1 représente la détection d'un tel point de divergence, tandis que le bloc 40 illustre le fait que si D excède la longueur N de la séquence binaire à décoder alors on n'opère pas de correction et le décodage prend fin. Tel que représenté par les blocs 50 et 60, on vient ensuite vérifier si la séquence constituée de P bits de la suite binaire de détection à partir du point de divergence correspond à une erreur de transmission répertoriée. On corrige le cas échéant (bloc 70) les suites binaires codées reçues. On notera que P est par exemple égal à 2K-1 dans le cas du premier mode de réalisation, et par exemple égale à K dans le cas du premier mode de réalisation, K représentant la longueur de contraintes du code convolutif. Selon un mode de réalisation, ladite séquence est utilisée pour calculer (bloc 50) une métrique correspondant par exemple au nombre entier constitué des bits consécutifs X(D) à X(D+P-1). Cette métrique permet d'identifier le cas échéant la séquence d'erreurs détectée (bloc 60 au cours duquel on vérifie si la métrique est connue). Ainsi dans le cadre de l'invention, un certain nombre d'erreurs triviales (simples, doubles, triples et quadruples) a été répertoriée, chacune associée à une valeur de la métrique. Dès lors, si la métrique ainsi calculée à partir de la séquence constituée des bits consécutifs X(D) à X(D+P-1) correspond à une erreur répertoriée, alors les suites binaires codées reçues sont corrigées (bloc 70). Les valeurs de la métrique retenues pour la détection d'erreurs triviales peuvent être les suivantes (la liste ci-dessous n'est pas exhaustive) : Métrique Séquences d'erreurs simples, doubles, triples et quadruples triviales détectées Indice D-4 D-3 D-2 D-1 D D+1 D+2 D+3 112 Suite ARX X Suite BRX 87 Suite ARX X Suite BRX X 99 Suite ARX X Suite BRX X 121 Suite ARX X Suite BRX X 78 Suite ARX Suite BRX X 118 Suite ARX X Suite BRX X 82 Suite ARX X Suite BRX X 64 Suite ARX X Suite BRX X 72 Suite ARX X X Suite BRX 105 Suite ARX Suite BRX X X 108 Suite ARX X X Suite BRX 93 Suite ARX Suite BRX X X 126 Suite ARX X X Suite BRX 71 Suite ARX Suite BRX X X 125 Suite ARX X Suite BRX X 111 Suite ARX X X Suite BRX X 81 Suite ARX X Suite BRX X X 103 Suite ARX X Suite BRX X X 67 Suite ARX X X Suite BRX X X 84 Suite ARX X X Suite BRX X X 94 Suite ARX X X Suite BRX X X 98 Suite ARX X X Suite BRX X X Si au bloc 60 de la figure 1, la métrique ne correspond à aucune des erreurs répertoriées, on peut selon un mode de réalisation de l'invention mettre en oeuvre un décodage de Viterbi des suites binaires codées reçues. De manière préférentielle, l'invention propose le mécanisme suivant lorsqu'au bloc 60 de la figure 1, la métrique ne correspond à aucune des erreurs répertoriées. Il est tout d'abord fait l'hypothèse que seule l'une des suites binaires codées reçues (par exemple ARx) est corrompue et on corrige alors (bloc 80) ce qui est supposée être une erreur, par exemple une erreur simple, dans cette suite binaires codée reçue pour former une suite corrigée (notée A'Rx ci-après). On cherche ensuite à valider cette correction. Pour cela on forme à partir de la suite corrigée A'Rx une nouvelle suite binaire de comparaison A'DEC qui coïncide en l'absence d'erreurs de transmission sur le canal de communication avec la suite binaire de comparaison BDEC formée à partir de la seconde suite binaire codée reçue. La nouvelle suite binaire de comparaison A'DEC est obtenu de manière similaire à la suite binaire ADEC, selon l'un des deux modes de réalisation décrits précédemment. La correction apportée à la suite ARx est validée (bloc 90) si la divergence entre la nouvelle suite binaire de comparaison A'DEC et la suite binaire de comparaison BDEC formée à partir de la seconde suite binaire codée reçue apparaît plus tardivement que la divergence préalablement détectée entre les deux suites binaires de comparaison ADEC et BDEC. Ainsi si l'indice temporel associé au nouveau point de divergence dépasse le précédent point de divergence d'au moins une unité alors la correction est validée, et le procédé de correction d'erreurs se poursuit. Sinon, la correction sur ARx est annulée (bloc 100), et on suppose que la suite BRx est corrompue. On corrige alors (bloc 110) ce qui est supposée être une erreur sur cette suite BRx et le procédé de correction d'erreurs se poursuit. De manière préférentielle, le procédé de correction d'erreurs prend fin lorsque le nombre d'erreurs corrigées excède une limite donnée. On a décrit précédemment deux modes de réalisation des suites binaires de comparaison ADEC et BEC, Dans une variante de réalisation avantageuse de l'invention, ces deux modes de réalisation sont mis en oeuvre conjointement en produisant deux paires de suites binaires de comparaison. On forme ensuite deux suites binaires de détection, chacune à partir de la comparaison des suites binaires de comparaison de l'une des paires et on calcule alors deux métriques m1 (correspondant à la mise en oeuvre du premier mode de réalisation) et m2 (correspondant à la mise en oeuvre du second mode de réalisation) en présence d'erreurs de transmission. Une métrique pouvant correspondre à plusieurs profils d'erreurs de transmission, le fait de disposer de deux métriques de discriminer un unique profil d'erreur de transmission en levant avec une seconde métrique l'ambiguïté résultant d'une première métrique. On peut de la sorte corriger un nombre d'erreurs plus important. On comprend donc que l'invention porte sur l'utilisation de l'une ou l'autre métrique seule, et préférentiellement sur l'utilisation des deux métriques ensemble, la métrique m2 servant à lever une ambigüité relevée par la métrique m1 ou vice-versa. Les performances du décodeur objet de l'invention sont proches de celles du décodeur de Viterbi dans le cas de l'utilisation de décisions dures en sortie du démodulateur côté récepteur. Toutefois, la complexité du décodeur selon l'invention est très faible comparée à celle du décodeur de Viterbi de sorte qu'un tel décodeur peut être implémenté malgré des ressources logicielles limitées. Le décodeur selon l'invention représente donc une alternative avantageuse au décodeur de Viterbi, permettant de réduire significativement la surface de silicium, le nombre d'opérations et la consommation d'énergie électrique nécessaires à l'implémentation et au fonctionnement d'un décodeur de codes convolutifs. Cette alternative s'avère également avantageuse en ce qu'elle permet le décodage de codes convolutifs ayant une longueur de contrainte supérieure à 7 (ce que ne peut faire en pratique le décodeur de Viterbi du fait de sa complexité qui serait alors prohibitive) et donc de réaliser des gains de codage importants. Une application que l'on pourra faire de l'invention concerne les communications mettant en oeuvre une compression audio selon le codec G.726 par exemple, notamment dans le cadre de communications reposant sur la norme de téléphonie sans fil DECT (en anglais, « Digital European Cordless Telephone »). Le débit binaire du codec G.726 peut être de 16, 24, 32 ou 40 kbits/s. L'invention propose de configurer le codec à un débit binaire inférieur au débit maximal (par exemple à 16 kbits/s dans des applications où il est normalement utilisé à 32 kbits/s) et d'exploiter l'espace binaire (16 kbits/s) ainsi libérée pour faire du codage de canal. On aura compris que l'invention n'est pas limitée au procédé de correction d'erreurs de transmission selon son premier aspect, mais s'étend également à un récepteur de données incorporant un décodeur de code convolutif comprenant une mémoire pour stocker des erreurs de transmission répertoriées et un processeur configuré pour mettre en oeuvre le procédé selon le premier aspect de l'invention. L'invention s'étend également à un système de transmission de données comprenant un émetteur et un récepteur incorporant un décodeur de code convolutif conforme à l'invention. L'émetteur peut notamment incorporé un codeur configuré pour mettre en oeuvre une compression de données de voix selon un codec à un débit binaire inférieur au débit binaire maximal dudit codec et pour mettre en oeuvre un codage convolutif des données de voix ainsi compressées exploitant l'espace binaire libéré de par l'utilisation dudit débit binaire inférieur.20 REVENDICATIONS1. Procédé pour la correction d'erreurs de transmission dans lequel au moins deux suites binaires codées sont issues d'une suite binaire à transmettre codée par un code convolutif et reçues depuis un canal de communication, caractérisé en ce qu'il comporte les étapes consistant à : - produire, à partir de deux suites binaires codées reçues, des suites binaires de comparaison qui coïncident en l'absence d'erreurs de transmission sur le canal de communication ; - comparer les suites binaires de comparaison et former une suite binaire de détection correspondant à l'opération logique OU-exclusif des deux suites binaires de comparaison; - en cas de divergence des suites binaires de comparaison à partir d'un point de divergence, vérifier si la séquence constituée de P bits de la suite binaire de détection à partir du point de divergence correspond à une erreur de transmission répertoriée et corriger le cas échéant les suites binaires codées reçues. 2. Procédé selon la revendication 1 où chacune des deux suites binaires codées est le résultat de la convolution de la suite binaire à transmettre avec les coefficients d'un polynôme générateur respectif, dans lequel pour produire les suites binaires de comparaison, on réalise la convolution de chacune des suites binaires codées reçues avec les coefficients du polynôme générateur ayant servi à coder l'autre suite binaire codée reçue. 3. Procédé selon la revendication 1, où chacune des deux suites binaires codées est le résultat de la convolution de la suite binaire à transmettre avec les coefficients d'un polynôme générateur respectif, dans lequel pour produire les suites binaires de comparaison, on réalise la déconvolution de chacune des suites binaires codées reçues au moyen du polynôme générateur ayant servi à la coder. 4. Procédé selon l'une des revendications précédentes, dans lequel on n'opère pas de correction si le point de divergence correspond à une position qui excède la longueur de la séquence binaire à décoder. 5. Procédé selon l'une des revendications 1 à 4, dans lequel si la séquence constituée de P bits de la suite de détection à partir du point de divergence ne correspond pas à une erreur de transmission répertoriée, on met en oeuvre les étapes consistant à : - corriger une erreur dans une première des suites binaires codées reçues pour former une suite corrigée ; - former à partir de la suite corrigée une nouvelle suite binaire de comparaison qui coïncide en l'absence d'erreurs de transmission sur le canal de communication avec la suite binaire de comparaison formée à partir de la seconde suite binaire codée reçue ; - valider la correction apportée à la première des suites binaires codées reçues si la divergence entre la nouvelle suite binaire de comparaison et la suite binaire de comparaison formée à partir de la seconde suite binaire codée reçue apparaît plus tardivement que la divergence préalablement détectée entre les deux suites binaires de comparaison formées à partir de la première et de la seconde suites binaires codées reçues. 6. Procédé selon la revendication 5, dans lequel si la correction apportée à la première des suites binaires codées reçues n'est pas validée, on corrige une erreur dans la seconde des suites binaires codées reçues. 7. Procédé selon l'une des revendications précédentes, caractérisé en ce qu'il prend fin lorsque le nombre d'erreurs corrigées excède une limite donnée. 8. Procédé selon l'une des revendications précédentes, dans lequel on forme une première suite binaire de détection à partir des suites binaires de comparaison produites conformément au procédé de la revendication 2 et une seconde suite binaire de détection à partir des suites binaires de comparaison produites conformément au procédé de la revendication 3, et dans lequel si on identifie plusieurs erreurs répertoriées à l'aide de la première ou de la seconde suite binaire de détection, on réalise une discrimination parmi ces erreurs répertoriées en vérifiant si l'une et/ou l'autre de ces erreurs ont également été identifiées à l'aide de l'autre suite binaire de détection. 9. Récepteur de données, caractérisé en ce qu'il comporte un décodeur de code convolutif comprenant une mémoire pour stocker des erreurs de transmission répertoriées et un processeur configuré pour mettre en oeuvre le procédé selon l'une des revendications 35 précédentes. 10. Système de transmission de données comprenant un émetteur et un récepteur selon la revendication précédente. 11. Système de transmission de données selon la revendication précédente, dans lequel l'émetteur comprend un codeur configuré pour mettre en oeuvre une compression de données de voix selon un codec à un débit binaire inférieur au débit binaire maximal dudit codec et pour mettre en oeuvre un codage convolutif des données de voix ainsi compressées exploitant l'espace binaire libéré de par l'utilisation dudit débit binaire inférieur.10