FR2954873A1 - Procede de decodage correcteur d'erreurs, produit programme d'ordinateur, moyen de stockage et noeud destination correspondants. - Google Patents

Procede de decodage correcteur d'erreurs, produit programme d'ordinateur, moyen de stockage et noeud destination correspondants. Download PDF

Info

Publication number
FR2954873A1
FR2954873A1 FR0959562A FR0959562A FR2954873A1 FR 2954873 A1 FR2954873 A1 FR 2954873A1 FR 0959562 A FR0959562 A FR 0959562A FR 0959562 A FR0959562 A FR 0959562A FR 2954873 A1 FR2954873 A1 FR 2954873A1
Authority
FR
France
Prior art keywords
packets
received
packet
decoding
list
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
FR0959562A
Other languages
English (en)
Other versions
FR2954873B1 (fr
Inventor
Falk Tannhauser
Julien Sevin
Pierre Visa
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Canon Inc
Original Assignee
Canon Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Canon Inc filed Critical Canon Inc
Priority to FR0959562A priority Critical patent/FR2954873B1/fr
Publication of FR2954873A1 publication Critical patent/FR2954873A1/fr
Application granted granted Critical
Publication of FR2954873B1 publication Critical patent/FR2954873B1/fr
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/004Arrangements for detecting or preventing errors in the information received by using forward error control
    • H04L1/0056Systems characterized by the type of code used
    • H04L1/0057Block codes
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/13Linear codes
    • H03M13/15Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes
    • H03M13/151Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes using error location or error correction polynomials
    • H03M13/1515Reed-Solomon codes
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/37Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35
    • H03M13/373Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35 with erasure correction and erasure determination, e.g. for packet loss recovery or setting of erasures for the decoding of Reed-Solomon codes
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/37Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35
    • H03M13/3761Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35 using code combining, i.e. using combining of codeword portions which may have been transmitted separately, e.g. Digital Fountain codes, Raptor codes or Luby Transform [LT] codes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/0078Avoidance of errors by organising the transmitted data in a format specifically designed to deal with errors, e.g. location
    • H04L1/0079Formats for control data
    • H04L1/0082Formats for control data fields explicitly indicating existence of error in data being transmitted, e.g. so that downstream stations can avoid decoding erroneous packet; relays
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L2001/0092Error control systems characterised by the topology of the transmission link
    • H04L2001/0097Relays

Abstract

Il est proposé un procédé de décodage correcteur d'erreurs, par un nœud destination, d'une pluralité de paquets codés (r11 à r13, r21 à r23, r31 à r33, r41 à r43), comprenant des symboles, reçus à travers un canal de communication susceptible d'introduire des erreurs à des positions corrélées entre lesdits paquets. Ledit procédé est remarquable en ce qu'il comprend des étapes consistant à : - obtenir une liste de positions d'erreurs à partir d'au moins un premier paquet reçu ; - marquer (605) chaque symbole d'un deuxième paquet reçu correspondant à une position de ladite liste comme effacé; et - décoder (605) ledit deuxième paquet en tenant compte du ou des symboles marqués comme effacés.

Description

Procédé de décodage correcteur d'erreurs, produit programme d'ordinateur, moyen de stockage et noeud destination correspondants. 1. DOMAINE DE L'INVENTION Le domaine de l'invention est celui des techniques de décodages permettant de corriger des erreurs altérant des paquets au sein d'un réseau. Plus précisément, l'invention concerne une technique permettant de décoder des paquets reçus via un réseau, en tenant compte du fait que des erreurs au sein de ces paquets reçus peuvent être corrélées. L'invention s'applique notamment, mais non exclusivement, dans les deux contextes suivants : - dans un réseau de communication sans fil maillé dans lequel un code correcteur d'erreurs distribué ainsi qu'un code correcteur d'erreurs interne sont utilisés ; - dans un réseau de communication de type FDMA (acronyme anglais de «Frequency Division Multiple Access », ou en français « accès multiple par répartition en fréquence ») dans lequel un code correcteur d'erreurs interne est utilisé. 2. ARRIÈRE-PLAN TECHNOLOGIQUE 2.1 Premier contexte d'application Un réseau de communication sans fil maillé est constitué d'au moins un noeud source, générant des paquets sources, un ensemble de noeuds relais, relayant les paquets sources et au moins un noeud destination, recevant ces paquets relayés. Deux types d'erreurs se produisent généralement dans un tel réseau. Un premier type d'erreur, dû à des masquages, est causé, par exemple, lorsqu'un individu traverse le champ de transmission des noeuds. Ces erreurs sont détectables, par exemple, par un noeud destination en analysant le niveau de signal radio reçu (RSSI, en anglais « Received Signal Strength Indication ») ou le rapport signal sur bruit (SNR, en anglais « Signal-to-Noise Ratio »). Un deuxième type d'erreur aléatoire est généré à cause de la transmission radio elle-même (via une perturbation électromagnétique par exemple). Ces erreurs sont des altérations aléatoires dans les paquets transitant sur le réseau, et à des positions inconnues. Lorsqu'un symbole dans un paquet reçu est erroné (soit à cause d'une perte de donnée, soit à cause d'une modification (ou altération) des données) mais que sa position est connue, on utilise le terme d'effacement en place du terme erreur. Pour faire face à ces deux types d'erreurs, une technique connue consiste à utiliser un code correcteur distribué, encore appelé code externe, sur les noeuds relais du réseau maillé. Dans le cas où le code externe est un code à répétition, qui est un code linéaire, à condition qu'on introduise une structure d'espace linéaire sur les mots de code, un même paquet source est retransmis par l'intermédiaire de plusieurs noeuds relais. Ainsi, la diversité spatiale des noeuds relais, utilisés pour retransmettre les paquets sources envoyés par le noeud source vers un noeud destination, constitue une solution pour limiter l'impact des erreurs altérant le réseau. En effet, chacun des noeuds destinations, reçoit un groupe de copies de paquets (sources et relayés) dont l'exploitation permet l'amélioration de la qualité de service de l'application. Chaque copie dudit groupe de copies emprunte un chemin particulier et déterminé par des règles de retransmissions. Le noeud destination exploite alors la réception des copies en utilisant un décodage à répétition (encore appelé décodage par votre majoritaire) pour corriger les erreurs dues aux transmissions radio. Comme le code à répétition n'a pas un pouvoir de correction important, il est préférable d'utiliser un code externe qui soit un code correcteur linéaire plus puissant (par exemple un code de Reed-Solomon). Ainsi on augmente le taux de transmission des données et cela permet d'utiliser la capacité du réseau de façon plus efficace, tout en améliorant la robustesse. Utiliser un tel code externe nécessite de devoir calculer, au niveau des noeuds relais, des combinaisons linéaires des paquets sources reçus par les noeuds relais et provenant du ou des noeuds sources, avec des coefficients scalaires (le code externe est définit en fonction de la valeur des coefficients scalaires). L'Homme du Métier, pour obtenir un pouvoir de correction plus important peut combiner au code externe, un code correcteur d'erreurs interne appliqué aux symboles utiles d'un paquet source. On parlera alors de paquets sources codés. Ainsi, par exemple, si le code interne est un code correcteur de distance minimale dl et que le code externe est lui aussi un code correcteur de distance minimale d2, on obtient un code produit ayant une distance minimale de d, * d2. Ce code produit peut potentiellement corriger plus d'erreurs. 2.2 Deuxième contexte d'application Dans un réseau de communication de type FDMA, pour faire face aux deux types d'erreurs mentionnés précédemment, engendrée par des perturbations électromagnétiques à courte durée et à bande large, une technique connue consiste à ajouter aux symboles d'un paquet source (correspondant à l'information qu'on souhaite transmettre) des symboles de contrôle, eux-mêmes insérés au sein du paquet source codé résultant. L'obtention des symboles de contrôle se fait en utilisant un code correcteur d'erreur (dit code correcteur d'erreur interne ou encore code interne). Les paquets sources codés ainsi obtenus constituent des mots du code interne. Les paquets sources codés sont transmis de façon simultanée à des fréquences différentes. 2.3 Problématique commune aux deux contextes Remarquons que quels que soient les cas mentionnés précédemment, il apparaît que contrairement aux erreurs E, la position des effacements F est connue. Par conséquent, seule la valeur des données effacées est inconnue. Ceci est intéressant car lorsqu'on utilise un code correcteur d'erreur ayant une distance minimale égale à d, alors la distance de Hamming minimale entre des mots du code est réduite jusqu'à au moins d-F pour les positions non effacées. Il s'en suit que la capacité du code correcteur d'erreur est de [(d-F-1)/2] (où [.] est l'opérateur partie entière) et que la relation suivante est vérifiée : 2*E+F< d. Ainsi, pour une distance minimale donnée d d'un code correcteur d'erreur, il est deux fois plus difficile de corriger des erreurs que de corriger des effacements, car les positions des effacements sont déjà connues. En effet, pour corriger une erreur, il faut d'abord la localiser (par exemple en appliquant l'algorithme de Berlekamp-Massey pour les codes Reed-Solomon ou plus généralement pour les codes BCH, acronyme de « Bose, Ray-Chaudhuri, Hocquenghem »), puis déterminer sa valeur. Un effacement étant une erreur dont on connaît la position, la moitié du travail de correction est donc déjà fait. On peut retrouver les valeurs des effacements, par exemple via l'utilisation de l'algorithme de Forney (pour calculer les syndromes de Forney) dans une étape du procédé de décodage lorsque le code est un code BCH.
Notons que les erreurs dues aux masquages sont considérées naturellement comme des effacements. Au niveau du noeud destination, lorsque trop d'erreurs se produisent, quelles que soient les techniques utilisées (utilisation uniquement d'un code interne comme au §2.2, ou utilisation d'une combinaison d'un code interne et un code externe comme au §2.1), le ou les codes correcteurs utilisés ne permettent pas de corriger lesdites erreurs, et on ne peut récupérer les symboles utiles contenus dans les paquets sources codés envoyés par un noeud source. De plus dans le contexte du §2.1, lorsque des erreurs interviennent sur les paquets sources codés (résultant du codage interne effectué par le(s) noeud(s) source(s)) avant l'utilisation du code externe linéaire (c'est-à-dire avant la réception et la combinaison linéaire de ces paquets sources codés par les noeuds relais), les erreurs sont propagées, entraînant dès lors, au niveau du noeud destination une multiplication des erreurs empêchant la réalisation d'un décodage réussi. En effet, si un noeud relais reçoit un paquet source codé comportant une erreur, alors cette erreur va se retrouver dans chacune des combinaisons linéaires comprenant ce paquet source codé. Remarquons enfin que cette problématique commune aux deux contextes se retrouve aussi dans le contexte plus général de l'utilisation d'un procédé de décodage correcteur d'erreurs, par un noeud destination, d'une pluralité de paquets codés, comprenant des symboles, reçus à travers un canal de communication susceptible d'introduire des erreurs à des positions corrélées entre lesdits paquets. 3. OBJECTIFS DE L'INVENTION L'invention, dans au moins un mode de réalisation, a notamment pour objectif de pallier ces différents inconvénients de l'état de la technique.
Plus précisément, dans au moins un mode de réalisation de l'invention, un objectif est de fournir une technique de décodage de paquets reçus permettant, dans les contextes décrits ci-dessus, de corriger plus d'erreurs que les techniques connues précitées. Au moins un mode de réalisation de l'invention a également pour objectif de fournir une telle technique qui soit peu coûteuse (en temps d'exécution, en utilisation des ressources mémoires,..) à mettre en oeuvre.
Au moins un mode de réalisation de l'invention a également pour objectif de fournir une telle technique qui soit non statique, c'est-à-dire qui s'adapte à l'évolution des erreurs au sein du réseau. 4. EXPOSÉ DE L'INVENTION Dans un mode de réalisation particulier de l'invention, il est proposé un procédé de décodage correcteur d'erreurs, par un noeud destination, d'une pluralité de paquets codés, comprenant des symboles, reçus à travers un canal de communication susceptible d'introduire des erreurs à des positions corrélées entre lesdits paquets. Ce procédé est remarquable en ce qu'il comprend des étapes consistant à : - obtenir une liste de positions d'erreurs à partir d'au moins un premier paquet reçu ; - marquer chaque symbole d'un deuxième paquet reçu correspondant à une position de ladite liste comme effacé; et - décoder ledit deuxième paquet en tenant compte du ou des symboles marqués comme effacés. Le principe général de l'invention consiste donc à marquer comme un effacement, pour un deuxième paquet reçu, chaque position, comprise dans une liste de position d'erreurs, pour laquelle une erreur (c'est-à-dire la présence d'un symbole erroné ou d'un effacement) a été détectée pour un premier paquet reçu. En d'autres termes, contrairement aux techniques connues qui décodent deux paquets reçus indépendamment l'un de l'autre, la technique proposée introduit une synergie entre l'étape d'obtention d'une liste de positions d'erreurs d'un premier paquet reçu et l'étape de décodage du deuxième paquet reçu. Ainsi, de par la propriété des codes correcteurs d'erreurs, en augmentant le nombre des effacements, un paquet reçu a ainsi une probabilité plus importante d'être décodé que si l'on n'avait pas marqué ces effacements. Avantageusement, dans un premier mode de réalisation, l'étape du procédé consistant à obtenir la liste de positions d'erreurs comprend des étapes consistant à : - obtenir une liste de positions d'erreurs dans un premier paquet reçu ; - ajuster la liste obtenue en supprimant de ladite liste les positions ne correspondant pas à des positions d'erreurs dans au moins un autre premier paquet reçu.
Ainsi, en effectuant ces étapes, on dispose d'une technique efficace permettant d'ajuster la liste de position d'effacements et donc d'améliorer encore la qualité du décodage. Une erreur qui n'apparait pas dans plusieurs premiers paquets reçus, n'est vraisemblablement pas une erreur corrélée et donc il n'y a pas lieu qu'elle soit maintenue dans la liste des erreurs à effacer. En effet, si cette erreur est maintenue dans la liste, cela revient à effacer un symbole dans le deuxième paquet qui ne contiendrait pas d'erreur ce qui dégrade les performances du décodage. Cette liste des effacements est donc mise à jour de manière dynamique (par l'ajout ou la suppression d'éléments) en fonction du résultat des décodages obtenus sur des paquets pour lesquels un marquage d'effacements a été effectué auparavant. Avantageusement, le procédé est remarquable en ce le canal de communication comprend un ou plusieurs liens de communications transportant une pluralité de paquets sources, protégés par un premier code correcteur d'erreurs, émis à partir d'un ou plusieurs noeuds sources, en ce que les paquets reçus par le noeud destination sont issus d'une combinaison desdits paquets sources, ladite combinaison préservant ledit premier code correcteur d'erreurs, et en ce que l'étape consistant à décoder utilise ledit premier code correcteur d'erreurs. Ainsi, la technique proposée trouve un intérêt particulier dans le cas où un codage réseau est employé, et où des combinaisons linéaires de paquets sources résultent de ce codage réseau. Dans ce cas, le mécanisme de marquage d'effacements implémenté dans le noeud destination permet de limiter, voire supprimer, l'impact de la multiplication des erreurs introduites par les noeuds relais (pour mémoire, en sortie des noeuds relais, une erreur dans un paquet source codé se retrouve dans chacune des combinaisons linéaires comprenant ce paquet source codé). En effet, chaque effacement marqué par le noeud destination correspond à une erreur propagée par un noeud relais (de par l'application d'une combinaison linéaire, selon le codage réseau). Selon une caractéristique avantageuse, le procédé comprend en outre une étape de décodage externe consistant à retrouver la pluralité de paquets sources à partir d'une pluralité de paquets reçus décodés.
Ainsi, la technique proposée s'applique dans le cas particulier où le codage réseau est un code correcteur d'erreurs distribué (code externe). On a donc un code produit obtenu en combinant le premier code correcteur d'erreurs (code interne) avec ce code externe. Il est à noter que la technique de l'invention, en introduisant une synergie entre les décodages des paquets reçus, permet d'améliorer la qualité du décodage interne, et par là même celle du décodage externe.
Selon une caractéristique avantageuse, en cas d'échec du décodage des paquets reçus, le procédé comprend en outre les étapes suivantes : - obtention, à partir des paquets reçus non décodés, des paquets sources incorporant potentiellement des erreurs de transmission; et - décodage des paquets sources obtenus selon le premier code correcteur.
Ainsi, lorsque le décodage (selon le premier code correcteur d'erreurs) d'un paquet reçu n'aboutit pas (car le nombre d'erreurs sur les symboles dudit paquet reçu est trop important), avantageusement le procédé de décodage utilise une matrice inverse de la matrice de codage afin d'obtenir une estimation des paquets sources codés reçus par le noeud relais. Une fois les paquets estimés obtenus, on effectue une opération de décodage sur ceux-ci. Ce décodage a une probabilité de réussite plus importante car le nombre d'erreurs à traiter est potentiellement plus petit que dans les paquets non inversés reçus par le noeud destination (surtout si l'estimation est correcte, c'est-à-dire si aucune erreur n'est apparue sur les paquets transitant entre le noeud relais et le noeud destination). En effet, en effectuant cette inversion, on annule la propagation des erreurs introduite par les combinaisons linéaires. Selon une caractéristique avantageuse, dans un second mode de réalisation, le procédé est remarquable en ce que le canal de communication comprend des liens de communications simultanées répartis sur une pluralité de bandes de fréquences transportant une pluralité de paquets sources à partir desquels sont issus les paquets reçus par le noeud destination. Ainsi, lorsque des erreurs surviennent sur le canal, les paquets sources codés envoyés simultanément sur des fréquences différentes sont altérés de manière corrélée, et plus précisément les symboles des paquets sources codés sont altérés aux mêmes positions. Ainsi le décodage d'un premier paquet permet d'obtenir une liste de positions considérées comme des effacements. Cette liste est utilisée pour marquer des effacements pour un deuxième paquet. Ainsi on augmente la probabilité de corriger des erreurs dans le deuxième paquet. Dans un autre mode de réalisation, l'invention concerne un produit programme d'ordinateur qui comprend des instructions de code de programme pour la mise en oeuvre du procédé précité (dans l'un quelconque de ses différents modes de réalisation), lorsque ledit programme est exécuté sur un ordinateur. Dans un autre mode de réalisation, l'invention concerne un moyen de stockage lisible par ordinateur, stockant un programme d'ordinateur comprenant un jeu d'instructions exécutables par un ordinateur pour mettre en oeuvre le procédé précité (dans l'un quelconque de ses différents modes de réalisation). Dans un autre mode de réalisation, l'invention concerne un noeud destination, recevant une pluralité de paquets codés, comprenant des symboles, ayant traversé un canal de communication susceptible d'introduire des erreurs à des positions corrélées entre lesdits paquets. Le noeud destination est remarquable en ce qu'il comprend: - des moyens pour obtenir une liste de positions d'erreurs à partir d'au moins un premier paquet reçu ; - des moyens pour marquer chaque symbole d'un deuxième paquet reçu correspondant à une position de ladite liste comme effacé; et - des moyens pour décoder ledit deuxième paquet en tenant compte du ou des symboles marqués comme effacés. 5. LISTE DES FIGURES D'autres caractéristiques et avantages de l'invention apparaîtront à la lecture de la description suivante, donnée à titre d'exemple indicatif et non limitatif, et des dessins annexés, dans lesquels : - la figure 1 présente un exemple de réseau maillé sans fil qui met en oeuvre un codage réseau linéaire; - la figure 2 présente les opérations de codage réseau effectuées par les différents noeuds relais du réseau de la figure 1, sous forme d'équations matricielles; - la figure 3 présente un sous-ensemble du réseau décrit en figure 2, comportant un noeud source, un noeud relais et un noeud destination; - la figure 4 présente la structure simplifiée d'un noeud destination mettant en oeuvre le procédé de décodage selon un mode de réalisation particulier de l'invention; - la figure 5 présente une structure de séquence de transmission selon un mode de réalisation particulier de l'invention; - la figure 6 présente l'algorithme de décodage mis en oeuvre par un noeud destination, selon un mode de réalisation particulier de l'invention. 6. DESCRIPTION DÉTAILLÉE Sur toutes les figures du présent document, les éléments et étapes identiques sont désignés par une même référence numérique. La figure 1 présente un exemple de réseau maillé sans fil qui met en oeuvre un codage réseau linéaire (encore appelé code externe). Considérons que chaque paquet source transmis dans ce réseau soit composé d'un nombre fixe et prédéterminé L de symboles faisant partie d'un corps fini (ou « Galois Field » en anglais) prédéterminé GF(q), q étant le nombre d'éléments dudit corps fini, tel que q = pin, avec p, un nombre premier et m, un entier supérieur ou égal à 1. Ainsi, lesdits paquets de données source peuvent être vus comme des vecteurs de l'espace linéaire GF(q)L. En considérant que les données transitant dans les réseaux numériques sont de nature binaire, ledit nombre premier est habituellement choisi égal à 2. Ainsi, en choisissant m égal à 8, il existe une correspondance entre un octet (c'est-à-dire 8 bits) et un élément du corps fini GF(256) c'est-à-dire chaque octet a un unique représentant dans ledit corps fini. Remarquons qu'afin d'utiliser les opérations élémentaires entre les éléments du corps, il faut déterminer un polynôme irréductible sur GF(2) de degré 8. L'Homme du métier emploiera les techniques usuelles de détermination d'un tel polynôme. Notamment le standard IESS-308 Intelsat propose l'utilisation du polynôme suivant : (x8 + x7 + x2 + x + 1) et le standard DVB propose quand à lui l'utilisation du polynôme suivant : (x8 + x4 + x3 + x2 + 1). Le réseau comprend • un noeud source 101 émettant un groupe de paquets sources codés 151 comprenant trois paquets sources codés de longueur L dénotés sa, Sb et sc , chaque paquet source codé comprend des symboles utiles et des symboles de redondances. Les symboles de redondance sont obtenus via l'utilisation d'un code correcteur d'erreurs, dit code correcteur interne. • quatre noeuds relais 111, 112, 113 et 114, chacun connecté par voie radio au noeud source 101 et recevant le groupe de paquets sources codés 151 (avec éventuellement des erreurs sur les symboles constitutifs des paquets sources codés), chacun des noeuds relais émet un groupe de paquets relais nommés respectivement 161, 162, 163 et 164. Chaque groupe de paquets relais est composé de trois paquets relais de longueur L, nommés respectivement r11, r12, r13 ; r21, r31, 33 ; r41 , r42, r43 . Ces paquets relais sont des combinaisons linéaires des paquets sources codés sa, sb et sb en utilisant des coefficients scalaires ale, P1, et 1'1, (pour i, j, des entiers naturels compris entre 1 et 3) attribués à chaque noeud relais. Le choix de ces coefficients est détaillés en figure 2. • Un noeud destination 120, recevant les paquets relais (r11, r12 , r13 , r21, r22 r23 , r31, r32 , r33 , r41 , r42 , r43) envoyés par les noeuds relais ; puis il effectue une étape de décodage, adaptée au codage réseau linéaire, dont le but est d'obtenir les symboles utiles des paquets sources codés, à savoir sa, sb et sc. Dans un mode de réalisation particulier de l'invention, le noeud destination 120 reçoit des paquets sources codés directement de la part du noeud source 101 ; le noeud destination est alors considéré comme étant un noeud relais particulier, qui emploie la matrice unité en tant que matrice de coefficients.
La figure 2 présente les opérations de codage réseau effectuées par les différents noeuds relais du réseau de la figure 1, sous forme d'équations matricielles. L'opération de codage effectuée par le noeud relais 111, 112, 113 respectivement 114 est décrite par l'équation 201, 202, 203 respectivement 204. Chaque noeud relais possède son propre jeu de 9 coefficients scalaires organisé sous forme d'une matrice de codage de dimension 3*3, et l'opération de codage consiste à multiplier la matrice de données de dimension 3*L, constituée des trois paquets sources codés (c'est-à-dire composée des 3 lignes de longueur L : sa, sb et sb) par ladite matrice de codage de ce noeud relais. Le résultat obtenu est une matrice de dimension 3*L composée de 3 lignes, chacune de longueur L, à savoir r 1, rx2, rx3 (x dénotant le noeud relais).
Les quatre matrices de codage (de dimension 3*3) des quatre noeuds relais apparaissant dans les quatre équations 201, 202, 203 respectivement 204 seront nommées Ml, M2, M3 respectivement M4, tel que montré dans les équations 211, 212, 213 respectivement 214. L'équation 220 résume l'opération globale du codage réseau. Une matrice générale de dimension 12*3, composée des 4 matrices de dimension 3*3 précitées (attribuées aux 4 noeuds relais respectifs), est multipliée par la matrice de dimension 3*L des paquets sources codés mentionnée ci-dessus. Le résultat est une matrice générale de dimension 12*L composée des 12 paquets relais r11, 1.12 , r13 , r21, ,r31,r32,r33,r41,r42, r43 chacun disposé sur un ligne et de longueur L : (r11, r12 , r13 , r21, r22 , r23 , r31, r32 , r33 , r41 , r42 , r43 )T représentant l'intégralité des paquets relais transmis par tous les noeuds relais et reçus ( avec éventuellement des erreurs) par le noeud destination 120, avec l'opérateur T qui est l'opérateur de transposition. Les coefficients de cette matrice générale sont choisis de façon à ce que chacune des 3 colonnes (a11, a12, a13, a21, a22, a , a31, a32, a33, a41, a42, a43)T, ((311, P12, (313, P 23 21, P22, P23, P31, P32, P33, P41, P42, P43)T et (Yll, Y12, Y13, Y21, Y22, Y23, Y31, Y32, Y33, Y41, Y42, Y43)T constitue un mot de code Reed-Solomon RS(12, 3) ; de plus ces 3 colonnes sont linéairement indépendantes. Par conséquent, chacune des L colonnes de la matrice (r11, r12, r13, r21, , r23, r31, r32, r33, r41, r42, r43)T constitue elle aussi un mot de code Reed- Solomon RS(12, 3). Un tel code est capable de corriger E erreurs et F effacements tant que la relation suivante est vérifiée 2*E+F 9.
Dans un mode de réalisation préférentiel, les paquets sources codés de longueur L, notés sa, sb et sb, envoyés par le noeud source 101 sont eux-mêmes déjà des mots d'un code Reed-Solomon RS(L, K) pour une taille de données (ou symboles) utiles K . À titre d'exemple, nous choisissons L=112 et K=96. Un tel code est capable de corriger E erreurs et F effacements tant que la relation suivante est vérifiée 2*E+F 16. Le codage réseau (aussi appelé codage externe) associé à ce codage (aussi appelé codage interne) effectué au sein du noeud source définit un code produit, qui possède un pouvoir de correction particulièrement élevé. Pour rappel, les paquets relais, étant des combinaisons linéaires des mots du code RS « interne », sont eux-mêmes des mots de code « interne ». La figure 3 présente un sous-ensemble du réseau décrit en figure 2, comportant un noeud source 101, un noeud relais 111 et un noeud destination 120. Le groupe de paquets sources codés 151 émis par le noeud source 101 et composé des 3 paquets sources codés sa, Sb et se de longueur L=112 est représenté plus en détail sur la partie droite de la figure. Chaque symbole (soit ici un octet) parmi les 96 octets de données utiles du paquet est représenté par un (.) et chaque symbole de parité (redondance) parmi les 16 octets de redondance est représenté par un (:). Ces paquets sources codés sont obtenus par l'utilisation d'un code Reed-Solomon RS(112, 96). Suite à l'occurrence des erreurs de transmission, le noeud relais 111 reçoit un groupe de paquets sources codés altérés 351, sa+ela, sb+elb et se+elc où ela, elb et ele constituent les vecteurs d'erreur. La partie droite de la figure montre plus un détail le contenu de ces paquets sources codés altérés, un symbole erroné est représenté par le symbole suivant (*). À titre d'exemple, supposons que le paquet source codé altéré sa+ela comporte 2 erreurs par rapport au paquet source codé sa, aux positions 8 et 15, le paquet source codé altéré sb+elb comporte respectivement 4 erreurs aux positions 43, 45, 65 et 110 et le paquet source codé altéré se+elc comporte respectivement une erreur à la position 4. L'opération de codage réseau effectuée par le noeud relais 111 (et qui participe au codage réseau global effectué par les quatre noeuds relais 111 à 114) génère donc des paquets relais erronés fll, f12, f13 dont la relation avec les « bons » paquets relais r11, r12, r13 est décrite par l'équation matricielle 399. On peut noter que chacun des paquets relais émis par le noeud relais 111 comporte 7 erreurs aux positions 4, 8, 15, 43, 45, 65 et 110. Le noeud relais 111 détecte que le groupe 351 de paquets sources codés qu'il reçoit est différent du groupe de paquets sources codés 151 en vérifiant les syndromes des trois paquets reçus sa+ela, sb+elb et se+elc appartenant au groupe 351. Une telle vérification nécessite nettement moins de ressources et de temps de calcul qu'une correction Reed-Solomon complète. Le groupe de paquets relais 161 comprenant les trois paquets relais erronés fll, r12, f13 est retransmis malgré tout, mais un champ d'information d'erreur, dénoté Fe, dans la figure, y est joint afin d'informer le noeud destination de l'occurrence d'erreurs corrélées. Ce champ, de faible taille par rapport à la taille des données utiles, est protégé contre des erreurs de transmission par un code correcteur d'erreur supplémentaire afin de minimiser la probabilité d'une réception erronée par le noeud destination 120. À titre d'exemple, ce champ est composé d'un bit, égal à 1 si au moins une erreur a été détectée dans un des paquets reçus par le noeud relais et égal à 0 sinon, complété d'un nombre prédéterminé de bits de redondance formant un mot d'un code correcteur d'erreurs. Le noeud destination 120 reçoit un groupe de paquets reçus 361 correspondant au groupe de paquets relais 161 mais avec des erreurs de transmission supplémentaires survenues sur la voie radio entre le noeud relais 111 et le noeud destination 120. Plus en détail, le groupe de paquets reçus 361 est composé de trois paquets relais altérés rll+eld, r12+ele, r13+elf û au total le paquet relais altéré rll+eld comporte donc 9 erreurs aux positions 4, 8, 15, 17, 43, 45, 56, 65 et 110, le paquet relais altéré r12+ele comporte 8 erreurs aux positions 4, 8, 15, 43, 45, 65, 95 et 110 et le paquet relais altéré r13+elf comporte 9 erreurs aux positions 4, 8, 15, 32, 43, 45, 65, 107 et 110. On s'aperçoit qu'au niveau du noeud destination 120 le décodage du code produit s'annonce difficile. Le décodeur (relatif au codage interne), qui opère sur les lignes RS(112, 96), ne pourra corriger que la ligne ayant 8 erreurs r12+ele et ainsi obtenir r12; les deux autres lignes se trouvent au-delà de la limite de la capacité de correction du code RS(112, 96) car elles comportent 9 erreurs. Pour le correcteur (relatif au codage externe) opérant sur les colonnes RS(12, 3) la correction des 7 colonnes 4, 8, 15, 43, 45, 65 et 110 risque d'échouer (en fonction du nombre d'erreurs ou effacements en provenance des autres noeuds relais, non représentés sur cette figure, dans ces colonnes) car celles-ci comportent au moins 3 erreurs.
La figure 4 présente la structure simplifiée d'un noeud destination mettant en oeuvre le procédé de décodage selon un mode de réalisation particulier de l'invention. Ce noeud destination 120 comprend : - une mémoire RAM (acronyme anglais de « Random Access Memory », ou mémoire vive en français) 420 dans laquelle des données (résultat d'un calcul, etc..) peuvent être stockées de manière temporaire; - une mémoire ROM (acronyme anglais de « Read Only Memory », ou mémoire morte en français) 425 stockant, entre autres, un programme d'ordinateur mettant en oeuvre un mode de réalisation particulier de l'invention ; - une unité de traitement 410, équipée par exemple d'un processeur, et pilotée par un programme d'ordinateur stocké dans la mémoire ROM. A l'initialisation, les instructions de code du programme d'ordinateur sont par exemple chargées dans 30 la mémoire RAM 420 avant d'être exécutées par le processeur de l'unité de traitement 410. L'unité centrale de calcul 410 exécute le programme d'ordinateur mettant en oeuvre un mode de réalisation particulier de l'invention ; - un module de réception 440 permettant de recevoir des paquets grâce à une antenne intelligente de réception directionnelle 450 ; - un récepteur de paquets radio 435 enregistre les paquets reçus d'un module de réception 440 dans la mémoire 420. De plus à chaque paquet reçu, il fournit une information sur la qualité de la réception de celui-ci tel le niveau de signal radio reçu ou le rapport signal sur bruit ; - un module applicatif 430 traite les données. Dans le mode de réalisation de l'invention où le noeud destination est aussi un noeud source, le noeud destination comprend un transmetteur de paquets radio 430 et un module étant à la fois émetteur et récepteur RF 440. Le transmetteur permet de transmettre des paquets sources codés stockés dans la mémoire 420 à destination du module Émetteur-Récepteur RF 440. Le noeud destination émet des données aux autres modules de communication grâce à une antenne d'émission omnidirectionnelle 445. La mémoire morte 425 stocke des variables et les instructions machine exécutables par l'unité 410 et nécessaires pour implémenter les algorithmes de l'invention.
Une interface homme-machine 415 est utilisée afin que l'utilisateur entre les paramètres d'entrée nécessaires à l'invention non présents dans la mémoire morte 425. L'antenne intelligente de réception directionnelle 450 et l'antenne d'émission omnidirectionnelle 445 permettent d'atteindre les dix mètres requis par les applications audio/vidéo domestiques.
Le module de communication 400 est aussi en relation avec le module applicatif 430 de la manière suivante. Pour le noeud source 101, le. Arrivé à celui-ci, le module 400 de celui-ci les envoie à son module applicatif 430. Les diverses variables utilisées durant les algorithmes implémentant l'invention sont mémorisées en mémoire vive 420. Les moyens algorithmiques nécessaires sont détaillés dans les parties suivantes.
Cette figure 4 illustre seulement une manière particulière, parmi plusieurs possibles, de réaliser les différents algorithmes détaillés en relation avec les figures 2,3 et 6. En effet, la technique de l'invention se réalise indifféremment : • sur une machine de calcul reprogrammable (un ordinateur PC, un processeur DSP ou un microcontrôleur) exécutant un programme comprenant une séquence d'instructions, ou • sur une machine de calcul dédiée (par exemple un ensemble de portes logiques comme un FPGA ou un ASIC). Dans le cas où l'invention est implantée sur une machine de calcul reprogrammable, le programme correspondant (c'est-à-dire la séquence d'instructions) pourra être stocké dans un médium de stockage amovible (tel que par exemple une disquette, un CD-ROM ou un DVD-ROM) ou non, ce médium de stockage étant lisible partiellement ou totalement par un ordinateur ou un processeur.
La figure 5 présente une structure de séquence de transmission selon un mode de réalisation particulier de l'invention. Dans le réseau considéré, le protocole d'accès au médium est un protocole d'accès multiple à répartition dans le temps (protocole TDMA, acronyme anglais de « Time Division Multiplexing Access » ou « Accès multiple à répartition dans le temps » en français), où durant une période fixe, appelée séquence de transmission ou supertrame 500, chaque noeud du réseau a un accès unique au médium durant un intervalle de temps (ou slot en anglais) 505 fixe. Suivant cette technique, chaque noeud est émetteur durant un intervalle de temps précis et récepteur durant tous les autres intervalles de temps. Par exemple, appliqué au réseau illustré dans la figure 1, un exemple de séquence de transmission TDMA est une séquence de transmission TDMA composée de 6 intervalles de temps : le premier intervalle de temps est alloué au noeud source 101 qui envoie un groupe de paquets sources codés 151. Puis le deuxième intervalle de temps est alloué au noeud relais 111. Celui-ci envoie pendant son intervalle de temps, ses propres données (de type contrôle), en tant que noeud source, ainsi que le groupe de paquets relais 161 construits à partir du groupe de paquets sources codés 151 reçu durant le premier intervalle de temps, en tant que noeud relais. Puis successivement le troisième intervalle de temps est alloué au noeud relais 112, le quatrième au noeud relais 113, le cinquième au noeud relais 114 et le sixième au noeud destination 120 (ce dernier pourrait transmettre des données de contrôle, bien qu'il n'ait pas à transmettre de données utiles dans le mode de réalisation particulier précité). La séquence de transmission TDMA est alors terminée et une nouvelle séquence de transmission TDMA se répète immédiatement. Une telle séquence de transmission TDMA est notée par la suite [101, 111, 112, 113, 114, 120]. La figure 6 présente l'algorithme de décodage mis en oeuvre par un noeud destination 120, selon un mode de réalisation particulier de l'invention. Le démarrage 600 du déroulement de cet algorithme survient au début d'une séquence de transmission 500. L'algorithme se poursuit par l'étape 620 de réception d'un groupe de paquets relais (par exemple le groupe de paquets relais 361) en provenance d'un premier noeud relais (par exemple le noeud relais 111) pendant l'intervalle de temps 505 alloué à celui-ci au sein de ladite séquence de transmission 500. Le décodage complet 610 décrit ci-dessous nécessite toutefois la réception des groupes de paquets relais de tous les noeuds relais (et le cas échéant la détection de leur perte) et ne peut intervenir qu'à la fin du dernier intervalle de temps alloué à un noeud relais au sein de la supertrame courante. Dans l'étape 601, on teste la présence du champ d'information d'erreur Fen à l'intérieur du groupe de paquets relais 361, positionné par le noeud relais 111 lorsque ce dernier a détecté une réception erronée du groupe de paquets sources codés 351 provenant du noeud source 101. En l'absence d'erreurs de réception au niveau du noeud relais 111, l'algorithme se poursuit par l'étape 609, par contre en la présence d'erreurs, par l'étape 602. Dans l'étape 602, on sélectionne un paquet relais reçu parmi les 3 paquets relais reçus fll+eld, f12+ele, r13+elf issus du groupe 361, de préférence le paquet qui a le plus de chance d'être décodable. Dans un mode particulier de réalisation, cette sélection tient compte du niveau de signal radio reçu ou du rapport signal sur bruit mis à disposition par le module de réception radio 435. Dans l'étape 603, on effectue le décodage Reed-Solomon selon le code RS(112, 96) (c'est-à-dire le décodage interne) du paquet relais reçu ainsi sélectionné.
Dans un autre mode de réalisation, les étapes 602 et 603 se résument à essayer de décoder successivement les 3 paquets relais reçus et à sélectionner le premier paquet relais reçu pour lequel ledit décodage réussit. Dans l'exemple présenté en relation avec la figure 3, le paquet relais reçu sélectionné est le paquet r12+ele et lors du décodage interne on retrouve le paquet relais r12. Les positions d'erreurs trouvées lors du décodage (en occurrence les positions 4, 8, 15, 43, 45, 65, 95 et 110) sont alors mémorisées dans une liste. Dans un mode de réalisation particulier de l'invention, lorsque des combinaisons linéaires de paquets sources sont générées par des noeuds relais, si un paquet source est erroné, l'erreur présente dans celui-ci se retrouve dans tous les paquets relais utilisant ce paquet source. Ainsi quelque soit le paquet relais choisi dans l'étape 602, les positions d'erreurs trouvées suite à l'étape 603 sont susceptibles de fournir de bons candidats pour des erreurs corrélées, et par conséquent ces positions sont mémorisées dans une liste. Cette liste, en fonction des étapes 605 et 606, est réduite afin de ne conserver que les positions d'erreurs corrélées. Dans un autre mode de réalisation, lorsqu'il n'y a pas de combinaison linéaire, des erreurs corrélées peuvent apparaître en fonction des propriétés du canal. Ainsi, lorsqu'un paquet reçu est sélectionné et décodé en vue d'initialiser une liste de position d'erreurs corrélées, la liste des positions d'erreurs obtenue pour un paquet reçu n'est pas nécessairement composée de positions d'erreurs corrélées. Il peut être nécessaire, en fonction de critères probabilistes (eux-mêmes fonction des caractéristiques du canal de communication) d'ajouter ou de supprimer certaines positions d'erreurs afin de n'avoir au sein de la liste que des positions d'erreurs corrélées. Dans l'étape 604, on teste la réussite du décodage 603. En cas de succès, l'algorithme se poursuit par l'étape 605, par contre en cas d'échec, dû à la présence d'un nombre d'erreurs trop important, par l'étape 607. Dans l'étape 605 (décodage incrémentai), on repère toutes les positions d'erreurs dans le premier paquet relais reçu décodé, mémorisées au préalable lors de l'étape 603 (dans la liste). Dans l'exemple présenté en relation avec la figure 3, pour le paquet relais reçu r12+ele les 8 positions d'erreurs repérées sont les suivantes : 4, 8, 15, 43, 45, 65, 95 et 110. Ensuite, on procède au décodage d'un deuxième des 3 paquets relais reçu issus du groupe 361 (par exemple le paquet rll+eld) mais en considérant lesdites positions d'erreurs comme effacements. Dans l'exemple donné, ce décodage sera un succès û les 2 erreurs situées aux positions non effacées 17 et 56 seront corrigées, du fait que l'on vérifie la relation suivante 8+2*2 112 - 96 (rappelons qu'on peut corriger E erreurs et F effacements si F+2*E N - K). On note qu'une tentative de correction d'erreurs sans positionnement d'effacement aurait échoué car le nombre total d'erreurs égal à 9 dépasse la capacité de correction du code RS(112, 96). En comparant la valeur des symboles avant et après correction, on notera en plus que le symbole du paquet rll+eld situé à la position effacée 95 n'était finalement pas erroné û cet effacement était dû à une erreur au sein du paquet r12+ele survenue entre le noeud relais 111 et le noeud destination 120 qui n'est donc pas corrélée aux erreurs dans les paquets rll+eld et r13+e1f. Ceci permet de procéder au décodage du paquet r13+e1f avec une liste des positions d'effacements ajustée, comportant les 7 positions 4, 8, 15, 43, 45, 65 et 110. Le décodage de ce paquet réussit aussi du fait que 7+2*2 112 - 96, avec des erreurs corrigées aux positions 32 et 107. Cette étape est suivie par l'étape 606. Lors de l'étape 606 on teste si les paquets relais reçus, en provenance de tous les noeuds relais ont été reçus et traités, c'est-à-dire si on est rendu à la fin de la séquence de transmission courante 500. Dans l'affirmative, l'algorithme passe à l'étape 610, sinon cela signifie qu'il reste encore des réceptions de paquets en provenance d'autres noeuds relais à traiter et on passe alors à l'étape 620 en traitant successivement les noeuds relais suivants dans la séquence de transmission à la place du premier noeud relais 111, c.à.d. les noeuds relais 112, 113 et 114. Lors de l'étape 610, qui n'est exécutée qu'à l'issue du dernier intervalle temps alloué à un noeud relais de la séquence de transmission TDMA courante, on procède au décodage (externe) des colonnes selon le code Reed-Solomon RS(12, 3) sur tous les groupes de paquets relais reçus, en provenance des 4 noeuds relais 111, 112, 113 et 114. La non-réception de certains parmi ces 4 groupes de paquets se traite en effaçant les symboles correspondants dans chacune des L=112 colonnes. Le décodage des colonnes permet de retrouver les paquets sources codés sa, sb et se dont les erreurs ont déjà été corrigées (cf. étapes de décodage interne 603, 605, 608, 609), tel que émis par le noeud source 101. Lesdits paquets sources codés (et plus particulièrement les symboles utiles (qui sont corrigés) de ces paquets sources codés) sont ensuite mis à disposition de l'application 430. Cette étape est suivie par la clôture de l'algorithme (étape 611). L'étape 607 constitue une tentative de récupération des paquets sources codés lorsqu'aucun parmi les 3 paquets relais reçus rll+eld, r12+ele, r13+elf ne s'avère directement décodable suite à un nombre d'erreurs de transmission trop important. Dans ce cas de figure, le noeud destination 120 inversera le codage réseau effectué par le noeud relais 111 en multipliant lesdits paquets relais reçus par la matrice Ml-1 qui constitue la matrice inverse de la matrice M1 utilisée par ledit noeud relais. Cette inversion est avantageuse lorsqu'il n'y a pas d'erreurs de transmission entre le noeud de relais 111 et le noeud destination 120. En effet, on réduit potentiellement le nombre d'erreurs (et donc par là même on augmente la probabilité de réussite du décodage). Cependant lorsqu'il y a des erreurs de transmission entre le noeud de relais 111 et le noeud destination 120, cela a pour effet d'introduire de nouvelles erreurs, et donc de rendre l'étape de décodage plus difficile à réaliser avec succès.
L'étape suivante 608 du décodage des lignes inversées ne réussit donc que lorsque le nombre de ces dernières erreurs n'est pas trop élevé. La réussite de cette étape 608 permet également de retrouver les paquets sources codés sa, Sb et se émis par le noeud source 101. Lesdits paquets sources codés sont ensuite mis à disposition de l'application 430. Cette étape est suivie de l'étape 606 déjà discutée ci-dessus.
L'étape 609, exécutée en cas d'absence d'erreurs de transmission entre le noeud source et le noeud relais 111 (condition dont le noeud destination 120 est informé grâce à l'absence du champ d'information d'erreur Fe, au sein du bloc 161) consiste simplement à décoder les lignes selon le code (interne) Reed-Solomon RS(112, 96). Cette étape 609 est suivie par les étapes 606, 610 et 611 déjà discutées ci-dessus.
Il est à noter qu'une partie de l'algorithme décrit ci-dessus, composé des étapes 620, 601, 602, 603, 604, 605, 606 et 609 s'applique également dans des contextes autres que le codage réseau, à partir du moment où on a à décoder au moins un groupe de paquets sources codés ayant des erreurs de transmission à des positions corrélées. Un exemple d'un tel autre contexte est celui d'un système de transmission FDMA, dans lequel plusieurs paquets sources codés sont transmis de façon simultanée à des fréquences différentes. Des perturbations électromagnétiques à courte durée et à bande large risquent d'affecter tous les paquets transmis en même temps et aux mêmes positions.

Claims (9)

  1. REVENDICATIONS1. Procédé de décodage correcteur d'erreurs, par un noeud destination (120), d'une pluralité de paquets codés (r11 à r13, r21 à r23, r31 à r33, r41 à r43), comprenant des symboles, reçus à travers un canal de communication susceptible d'introduire des erreurs à des positions corrélées entre lesdits paquets; ledit procédé étant caractérisé en ce qu'il comprend des étapes consistant à : - obtenir une liste de positions d'erreurs à partir d'au moins un premier paquet reçu ; - marquer (605) chaque symbole d'un deuxième paquet reçu correspondant à une position de ladite liste comme effacé; et - décoder (605) ledit deuxième paquet en tenant compte du ou des symboles marqués comme effacés.
  2. 2. Procédé selon la revendication 1, caractérisé en ce que l'étape consistant à obtenir la liste de positions d'erreurs comprend des étapes consistant à : - obtenir une liste de positions d'erreurs (603) dans un premier paquet reçu ; - ajuster la liste obtenue en supprimant de ladite liste les positions ne correspondant pas à des positions d'erreurs dans au moins un autre premier paquet reçu.
  3. 3. Procédé selon la revendication 2, caractérisé en ce que le canal de communication comprend un ou plusieurs liens de communications transportant une pluralité de paquets sources (sa, sb, se), protégés par un premier code correcteur d'erreurs, émis à partir d'un ou plusieurs noeuds sources, en ce que les paquets reçus par le noeud destination (r11 à r13, r21 à r23, r31 à r33, r41 à r43) sont issus d'une combinaison desdits paquets sources, ladite combinaison préservant ledit premier code correcteur d'erreurs, et en ce que l'étape consistant à décoder utilise ledit premier code correcteur d'erreurs.
  4. 4. Procédé selon la revendication 3, caractérisé en ce qu'il comprend en outre une étape de décodage externe (610) consistant à retrouver la pluralité de paquets sources à partir d'une pluralité de paquets reçus décodés.
  5. 5. Procédé selon la revendication 3, caractérisé en ce que, en cas d'échec du décodage des paquets reçus, le procédé comprend en outre les étapes suivantes :- obtention, à partir des paquets reçus non décodés, des paquets sources incorporant potentiellement des erreurs de transmission (607) ; et - décodage des paquets sources obtenus selon le premier code correcteur (608).
  6. 6. Procédé selon la revendication 1, caractérisé en ce que le canal de communication comprend des liens de communications simultanées répartis sur une pluralité de bandes de fréquences transportant une pluralité de paquets sources (sa, sb, sb) à partir desquels sont issus les paquets reçus par le noeud destination (r11 à r13, r21 à r23, r31 à r33, r41 à r43).
  7. 7. Produit programme d'ordinateur, caractérisé en ce qu'il comprend des instructions de code de programme pour la mise en oeuvre du procédé selon au moins une des revendications 1 à 6, lorsque ledit programme est exécuté sur un ordinateur.
  8. 8. Moyen de stockage lisible par ordinateur, stockant un programme d'ordinateur comprenant un jeu d'instructions exécutables par un ordinateur pour mettre en oeuvre le procédé selon au moins une des revendications 1 à 6.
  9. 9. Noeud destination (120), recevant une pluralité de paquets codés (r11 à r13, r21 à r23, r31 à r33, r41 à r43), comprenant des symboles, ayant traversé un canal de communication susceptible d'introduire des erreurs à des positions corrélées entre lesdits paquets; ledit noeud destination étant caractérisé en ce qu'il comprend: - des moyens pour obtenir (410, 420, 425) une liste de positions d'erreurs à partir d'au moins un premier paquet reçu ; - des moyens pour marquer (410, 420, 425) chaque symbole d'un deuxième paquet reçu correspondant à une position de ladite liste comme effacé; et - des moyens pour décoder (410, 420, 425) ledit deuxième paquet en tenant compte du ou des symboles marqués comme effacés.
FR0959562A 2009-12-24 2009-12-24 Procede de decodage correcteur d'erreurs, produit programme d'ordinateur, moyen de stockage et noeud destination correspondants. Active FR2954873B1 (fr)

Priority Applications (1)

Application Number Priority Date Filing Date Title
FR0959562A FR2954873B1 (fr) 2009-12-24 2009-12-24 Procede de decodage correcteur d'erreurs, produit programme d'ordinateur, moyen de stockage et noeud destination correspondants.

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
FR0959562A FR2954873B1 (fr) 2009-12-24 2009-12-24 Procede de decodage correcteur d'erreurs, produit programme d'ordinateur, moyen de stockage et noeud destination correspondants.

Publications (2)

Publication Number Publication Date
FR2954873A1 true FR2954873A1 (fr) 2011-07-01
FR2954873B1 FR2954873B1 (fr) 2012-07-13

Family

ID=42335017

Family Applications (1)

Application Number Title Priority Date Filing Date
FR0959562A Active FR2954873B1 (fr) 2009-12-24 2009-12-24 Procede de decodage correcteur d'erreurs, produit programme d'ordinateur, moyen de stockage et noeud destination correspondants.

Country Status (1)

Country Link
FR (1) FR2954873B1 (fr)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6697985B1 (en) * 2000-10-04 2004-02-24 Actelis Networks Inc. Predictive forward error correction redundancy
US20080052609A1 (en) * 2006-08-14 2008-02-28 Chia-Ning Peng Method and apparatus to perform erasure forecasting in communication systems
US20090031197A1 (en) * 2007-07-26 2009-01-29 Texas Instruments Incorporated Erasure decoding for receivers
FR2932628A1 (fr) * 2008-06-17 2009-12-18 Canon Kk Procede et dispositif de decodage par commutation d'un mode multicopies vers un mode monocopie, produit programme d'ordinateur et moyen de stockage correspondants

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6697985B1 (en) * 2000-10-04 2004-02-24 Actelis Networks Inc. Predictive forward error correction redundancy
US20080052609A1 (en) * 2006-08-14 2008-02-28 Chia-Ning Peng Method and apparatus to perform erasure forecasting in communication systems
US20090031197A1 (en) * 2007-07-26 2009-01-29 Texas Instruments Incorporated Erasure decoding for receivers
FR2932628A1 (fr) * 2008-06-17 2009-12-18 Canon Kk Procede et dispositif de decodage par commutation d'un mode multicopies vers un mode monocopie, produit programme d'ordinateur et moyen de stockage correspondants

Also Published As

Publication number Publication date
FR2954873B1 (fr) 2012-07-13

Similar Documents

Publication Publication Date Title
US6012159A (en) Method and system for error-free data transfer
US8381069B1 (en) Absorb decode algorithm for 10GBase-T LDPC decoder
US5517508A (en) Method and apparatus for detection and error correction of packetized digital data
US10721020B2 (en) Parity frame
US8683301B2 (en) Error correction coding for recovering multiple packets in a group in view of limited bandwidth
KR20050059238A (ko) 연쇄 반응 코드의 체계적 인코딩 및 디코딩
FR2906428A1 (fr) Procede, dispositif et application logicielle pour la transmission de paquets de donnees dands un systeme de communication.
EP2406929B1 (fr) Procede et dispositif de transmission robuste de flux de paquets de donnees a en-tetes compresses sans augmentation de debit
Shrivastava et al. Error detection and correction using Reed Solomon codes
EP1946557A1 (fr) Procede de reception de trames d&#39;un flux numerique
US7215683B2 (en) Method and apparatus for protecting against packet losses in packet-oriented data transmission
EP3476071B1 (fr) Transmission dynamique et selectif d&#39;un signal numerique pour un systeme avec relais full-duplex et une voie de retour limitee
Luyi et al. Forward error correction
EP2415193A2 (fr) Procédé et dispositif de modulation mettant en oeuvre une modulation différentielle, procédé et dispositif de démodulation, signal et produits programme d&#39;ordinateur correspondants
US6081920A (en) Method and apparatus for fast decoding of a Reed-Solomon code
RU2295196C1 (ru) Способ контроля качества канала связи
FR2954873A1 (fr) Procede de decodage correcteur d&#39;erreurs, produit programme d&#39;ordinateur, moyen de stockage et noeud destination correspondants.
Chaudhary et al. Error control techniques and their applications
FR2882480A1 (fr) Procede et dispositif de synchronisation trame
US20040153935A1 (en) Reduced overhead CRC functionality for packets and link layer superframes
EP0982866B1 (fr) Procédé de codage convolutif et de transmission par paquets d&#39;un flux série de données numériques, procédé et dispositif de décodage correspondants
FR2817418A1 (fr) Procede de decodage d&#39;un bloc de symboles et dispositif mettant en oeuvre un tel procede
EP2722992B1 (fr) Méthode de codage pour canal à évanouissement quasi-périodique
FR2924288A1 (fr) Procede et dispositif de decodage iteratif par effacement, produit programme d&#39;ordinateur et moyen de stockage correspondants
WO2015079168A1 (fr) Codage de paquets de données par codes convolutifs et recouvrement de paquets effacés

Legal Events

Date Code Title Description
PLFP Fee payment

Year of fee payment: 7

PLFP Fee payment

Year of fee payment: 8

PLFP Fee payment

Year of fee payment: 9

PLFP Fee payment

Year of fee payment: 11

PLFP Fee payment

Year of fee payment: 12

PLFP Fee payment

Year of fee payment: 13

PLFP Fee payment

Year of fee payment: 14

PLFP Fee payment

Year of fee payment: 15