FR2953345A1 - Procede de determination d'une copie a decoder et d'un vecteur d'effacements associe, produit programme d'ordinateur, moyen de stockage et dispositif recepteur correspondants. - Google Patents

Procede de determination d'une copie a decoder et d'un vecteur d'effacements associe, produit programme d'ordinateur, moyen de stockage et dispositif recepteur correspondants. Download PDF

Info

Publication number
FR2953345A1
FR2953345A1 FR0958559A FR0958559A FR2953345A1 FR 2953345 A1 FR2953345 A1 FR 2953345A1 FR 0958559 A FR0958559 A FR 0958559A FR 0958559 A FR0958559 A FR 0958559A FR 2953345 A1 FR2953345 A1 FR 2953345A1
Authority
FR
France
Prior art keywords
copy
symbol
received
position index
index
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
FR0958559A
Other languages
English (en)
Other versions
FR2953345B1 (fr
Inventor
Francois Thoumy
Mounir Achir
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 FR0958559A priority Critical patent/FR2953345B1/fr
Priority to US12/957,707 priority patent/US8423877B2/en
Publication of FR2953345A1 publication Critical patent/FR2953345A1/fr
Application granted granted Critical
Publication of FR2953345B1 publication Critical patent/FR2953345B1/fr
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • 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/29Coding, 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 combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes
    • H03M13/2906Coding, 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 combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes using block codes
    • H03M13/2927Decoding strategies
    • H03M13/293Decoding strategies with erasure setting
    • 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/29Coding, 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 combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes
    • H03M13/2933Coding, 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 combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes using a block and a convolutional code
    • H03M13/2936Coding, 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 combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes using a block and a convolutional code comprising an outer Reed-Solomon code and an inner convolutional code
    • 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/63Joint error correction and other techniques
    • H03M13/6306Error control coding in combination with Automatic Repeat reQuest [ARQ] and diversity transmission, e.g. coding schemes for the multiple transmission of the same information or the transmission of incremental redundancy
    • 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
    • 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/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/23Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using convolutional codes, e.g. unit memory 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/39Sequence estimation, i.e. using statistical methods for the reconstruction of the original codes
    • H03M13/41Sequence estimation, i.e. using statistical methods for the reconstruction of the original codes using the Viterbi algorithm or Viterbi processors
    • H03M13/4138Sequence estimation, i.e. using statistical methods for the reconstruction of the original codes using the Viterbi algorithm or Viterbi processors soft-output Viterbi algorithm based decoding, i.e. Viterbi decoding with weighted decisions
    • H03M13/4146Sequence estimation, i.e. using statistical methods for the reconstruction of the original codes using the Viterbi algorithm or Viterbi processors soft-output Viterbi algorithm based decoding, i.e. Viterbi decoding with weighted decisions soft-output Viterbi decoding according to Battail and Hagenauer in which the soft-output is determined using path metric differences along the maximum-likelihood path, i.e. "SOVA" decoding

Abstract

Il est proposé un procédé permettant de déterminer un vecteur d'effacements associé à un bloc de données à décoder construit à partir des copies reçues, en utilisant des niveaux de fiabilité de transmissions associés à des symboles contenus dans différentes copies d'un même bloc de données reçues. Un tel procédé permet avantageusement de réduire le taux d'erreurs en sortie d'un décodeur en minimisant les opérations à effectuer pour déterminer le vecteur d'effacements, optimisant le marquage des effacements et en évitant d'engendrer un nombre d'effacements trop élevé (même dans le cas où la transmission de certaine(s) copie(s) reçue(s) est peu fiable) pour avoir un nombre d'effacements qui ne dépasse pas la capacité de correction du décodeur.

Description

Procédé de détermination d'une copie à décoder et d'un vecteur d'effacements associé, produit programme d'ordinateur, moyen de stockage et dispositif récepteur correspondants. 1. DOMAINE DE L'INVENTION Le domaine de l'invention est celui des réseaux de communication. L'invention s'applique notamment, mais non exclusivement, dans un réseau sans fil. Plus précisément, la présente invention concerne une technique de détermination d'une copie à décoder et d'un vecteur d'effacements associé, par un dispositif récepteur recevant via un réseau de communication plusieurs copies d'une même donnée d'origine encodée selon un code correcteur d'erreur. 2. ARRIERE-PLAN TECHNOLOGIQUE On s'attache plus particulièrement dans la suite de ce document à décrire une problématique existant dans le cas particulier des réseaux sans fil de type « mmWave WPAN » (pour "Millimeter Wave Wireless Personal Area Network" en anglais).
L'invention ne se limite bien sûr pas à ce domaine particulier d'application, mais présente un intérêt pour toute technique de décodage devant faire face à une problématique proche ou similaire. Le réseau du type « mmWave WPAN » précité est particulièrement bien adapté à des applications gourmandes en bande passante, comme par exemple des applications audiovisuelles domestiques. En effet, la bande radio 60Ghz utilisée par ce type de réseau offre une grande largeur de bande passante, permettant ainsi le transport d'importantes quantités de données, comme cela est par exemple requis pour le transport de flux vidéo de résolution 1080p. Cependant, les fréquences de l'ordre de 60 GHz ont des longueurs d'onde de l'ordre du millimètre et sont facilement absorbées par des obstacles (murs, meubles, êtres vivants...) du fait d'un très faible taux de réflexion sur les obstacles et d'un important taux d'atténuation dans l'air. Dans un réseau de communication, la communication entre un dispositif émetteur (encore appelé noeud source par la suite) et un dispositif récepteur (encore appelé noeud destination par la suite) peut donc être facilement perturbée et des données peuvent être perdues.
Pour résoudre ce problème, deux solutions sont couramment utilisées. Elles consistent à mettre en oeuvre soit une redondance temporelle avec des transmissions à différents instants dans le temps, soit une redondance spatiale à travers une utilisation de plusieurs antennes et modules de traitement d'un signal physique. Ces deux solutions peuvent être combinées par utilisation d'un réseau maillé, au sein duquel sont mis en place des relais de données, selon un cadencement prédéfini. La diversité des relais apporte de la diversité spatiale, et le cadencement contrôlé (sous forme par exemple d'un accès de type TDMA, pour « Time Division Multiple Access » en anglais) apporte de la diversité temporelle. Dans ce type de réseau, les données transmises par le noeud source peuvent donc circuler sur différents chemins. Plusieurs copies (il y a donc des redondances) des mêmes données transmises peuvent donc être reçues par le noeud destination, et permettre ainsi de faciliter la correction d'erreur(s) afin de retrouver les données originellement émises par le noeud source. La redondance spatiale est facilitée par la faible longueur d'onde des signaux radio qui permet la réalisation d'antennes miniatures. Il est alors possible d'envisager l'installation de plusieurs antennes et modules (ou blocs) de réception de signaux pour un même dispositif récepteur. De cette façon, les signaux parvenant à chacune des antennes du dispositif récepteur suivent des chemins différents et les risques d'avoir une occultation de l'ensemble des chemins de communication entre le dispositif émetteur et les multiples modules de réception sont fortement diminués. Pour augmenter la diversité spatiale, il convient d'éloigner les antennes les unes des autres (et par conséquent des les éloigner d'un module commun de traitement des données). Pour limiter le surcoût qu'entraîne cette duplication des modules de réception, il convient de limiter la redondance des modules de traitement à ceux dédiés au traitement des signaux physiques correspondant à la couche 1 du modèle d'interconnexion de systèmes ouverts (ou « OSI » pour « Open Systems Interconnection » en anglais). Ces dispositifs récepteurs doivent assurer la combinaison des données transmises par les différents modules de traitement des signaux physiques de façon à mettre à profit la redondance d'informations (qui découle de la réception de plusieurs copies d'une même donnée d'origine). De plus, il est nécessaire de minimiser les échanges d'information entre les modules (modules de traitement des signaux physiques et module commun de traitement des données) qui ont été éloignés pour assurer la diversité spatiale. En effet, dans des applications de type vidéo, le débit des données à traiter est très élevé et il n'est pas souhaitable d'augmenter ce débit de façon importante par ajout d'informations extraites des modules de traitement des signaux physiques.
Afin de pallier à des erreurs de transmission de données inhérentes au canal de transmission, il est d'usage d'utiliser des codes correcteurs d'erreurs (ou « FEC » pour « Forward Error Correction » en anglais) dans les systèmes de communication. Un des codes correcteurs d'erreurs les plus utilisés dans les réseaux sans-fil est le code de Reed Solomon (RS). Ce code peut être défini comme un code C(n, k) où n représente un nombre total de symboles du mot de code après encodage et k un nombre de symboles de données d'origine (il y a donc n-k symboles de redondance). Dans le code de Reed Solomon, un symbole est un ensemble de m bits. Une valeur souvent utilisée dans les réalisations matérielles est m=8. Le code de Reed Solomon possède une capacité de correction de (nûk)/2 erreurs ou de (n û k) effacements, un effacement étant une erreur sur un symbole dont la position est connue. Plus généralement, la capacité de correction C d'un tel code se définit de la manière suivante : C=2xnombre d'erreurs + nombre d'effacements, la borne supérieure de C étant « d », la distance minimale du code avec d = (n û k) +1 .
Afin d'atteindre la capacité limite de correction d'un décodeur de Reed Solomon, il est nécessaire de marquer la position des effacements. Plusieurs méthodes sont déjà bien connues pour cela. Par exemple, une méthode applicable dans le cas d'un système à multiples copies d'un même mot de code (les multiples copies résultant par exemple d'une multiple lecture ou une multiple réception) est décrite dans le document de brevet US 6,389,573. Ce document propose de marquer les positions d'effacements en effectuant une comparaison symbole à symbole des différentes copies d'un même mot de code. Les positions d'effacements sont marquées aux endroits où les symboles sont différents d'une copie à l'autre. Pour chaque position autre que les positions d'effacements, la copie à décoder (à transmettre au décodeur avec le vecteur d'effacements) comprend le symbole qui est identique dans les différentes copies. La capacité de décodage de cette méthode est limitée à la capacité du décodeur, malgré l'apport de redondance apporté par les multiples copies d'un même mot de code. Il est à noter par ailleurs que la plupart des systèmes de communications de données actuels mettent en oeuvre une combinaison de systèmes de correction d'erreurs, en combinant plusieurs codes correcteurs d'erreurs. Un exemple bien connu concerne l'utilisation d'un code de type « Reed Solomon » et d'un code convolutif, tel qu'illustré sur la figure 1 (décrite en détail par la suite). En effet, la concaténation d'un code en blocs traitant des symboles (ensemble de bits) et d'un encodeur de type convolutif traitant des bits permet d'avoir une grande capacité de correction d'erreurs. A la réception, le décodage des données générées selon le code convolutif est classiquement effectué par un décodeur basé sur l'algorithme de Viterbi. L'algorithme de Viterbi sélectionne, dans un diagramme de treillis (diagramme représentant des transitions possibles entre des différents états de l'encodeur), un chemin de vraisemblance maximale (correspondant au chemin possédant un niveau de fiabilité le plus élevé). Ce décodeur est notamment décrit dans un document « A.J. VITERBI » ("Error bounds for convolutional codes and an asymptotically optimum decoding algorithm", IEEETrans. IT., Vol 13 (1967), pp. 260-269). Pour un bref rappel sur les codes convolutifs et leur décodage par l'algorithme de Viterbi, on pourra également se référer à la publication de « J. K. OMURA » ("On the Viterbi Algorithm", IEEE Trans.
IT., Jan. 1979, pp. 177-179). Plusieurs variantes de l'algorithme de Viterbi ont déjà été proposées afin de disposer d'une information symbole par symbole sur la fiabilité du décodage réalisé. De telles variantes ont notamment été proposées dans les publications suivantes : - « G. BATTAIL » ("Pondération des symboles décodés par l'algorithme de Viterbi", Ann. Télécomm., Vol. 42 (1987), No 1-2, pp. 31-38) ; - « J. HAGENAUER, P. HOEHER » ("A Viterbi algorithm with soft-decision output and its applications", IEEE Globecom, Dallas, 1989, pp. 47.1.1-47.1.7). - R. SFEZ, G. BATTAIL ("Une variante à sortie pondérée de l'algorithme de Viterbi pour des schémas concaténés à code intérieur convolutif', Eurocode 90, Udine, Italie) ; - document de brevet EP0758167.
Ces algorithmes permettent d'obtenir une information de fiabilité de la donnée décodée et sont plus connus sous le terme d'algorithme de type « SOVA » (pour « Soft Output Viterbi Algorithm » en anglais). Dans un système de transmission mettant en oeuvre une redondance spatiale et/ou temporelle de données, c'est-à-dire un système dans lequel de multiples copies d'une même donnée encodée sont reçues afin de minimiser les erreurs de transmission sur le canal de transmission (ou d'en faciliter l'identification), le problème est de déterminer quels sont les symboles et le vecteur d'effacements à transmettre à un décodeur (par exemple de type Reed Solomon) pour avoir un taux d'erreur minimal en sortie de décodage. Ce problème est particulièrement préoccupant dans le cas d'une transmission de données où les débits des données à transmettre sont très élevés (cas par exemple d'une transmission de données vidéo numériques haute définition) et où il n'est donc pas possible ou il est pénalisant d'ajouter aux données beaucoup d'informations supplémentaires permettant d'obtenir le résultat recherché en sortie de décodage, c'est-à-dire un taux d'erreur binaire le plus faible possible. En effet, dans ce cas, les bus de données reliant les différentes couches (c'est-à-dire les différents modules) du dispositif récepteur doivent transporter un grand débit d'information (plusieurs Gbps), et il n'est pas souhaitable d'augmenter de façon importante ce débit. Le document de brevet US 2007/0115801 décrit : - une première méthode de sélection de signaux reçus par de multiples antennes (ou chaînes de réception) afin d'améliorer la qualité de réception du signal. Cette première méthode est basée sur l'utilisation d'un paramètre représentatif de la qualité du signal reçu sur chaque chaîne comme par exemple une mesure RSSI (pour « Received Signal Strength Indication » en anglais ou « indication de puissance d'un signal reçu » en français) ou bien encore une mesure SNR (pour « Signal-to-noise ratio" en anglais ou "rapport signal sur bruit" en français). - une deuxième méthode de combinaison des signaux de sortie de blocs FFT (ou « FFT » pour « Fast Fourier Transform » en anglais ou « Transformée de Fourier rapide » en français) de chaque chaîne de réception. Cette deuxième méthode est basée sur la MRC (pour « Maximum Ratio Combining » en anglais ou « Combinaison de rapport Maximum » en français) consistant à effectuer une combinaison linéaire de deux signaux d'antenne de façon à obtenir un signal résultant maximisant le niveau de réception avant d'appliquer la démodulation. Le signal résultant issu du module MRC est ensuite démodulé et décodé au moyen d'un turbo décodeur. Ce document de brevet décrit une première méthode de sélection de signaux et une deuxième méthode de combinaison de signaux, qui se situent en amont de la démodulation. Ces méthodes se basent sur un niveau de puissance en réception pour décider du signal à décoder ; ainsi la sélection s'effectue, en amont du décodeur.
Cependant, un signal présentant un fort niveau de puissance en réception n'est pas forcément celui qui permet de garantir le meilleur taux d'erreur en sortie du décodeur. Le document de brevet US 6,065,149 décrit un système de correction d'erreurs permettant d'effectuer une opération de décodage très précise et d'obtenir un faible taux d'erreur binaire. Le décodeur interne (« inner decoder» en anglais) est du type SOYA.
Le système est basé sur l'utilisation d'un algorithme CRC (pour « Cyclic Redundancy Check » en anglais ou « contrôle de redondance cyclique ») qui fournit une information d e fiabilité supplémentaire à celle fournie par le décodeur interne. Ces deux informations sont utilisées pour déterminer le vecteur d'effacements à l'entrée du décodeur externe.
Le document de brevet US 7,228,489 décrit un système de codage combinant un décodeur Viterbi et un décodeur de Reed Solomon, de façon à améliorer les performances du système de correction d'erreur. Le décodeur interne est du type SOVA et l'information de fiabilité qu'il fournit est sommée sur un symbole de façon à déterminer la fiabilité du symbole. Les symboles qui sont le plus probablement en erreur sont pointés dans le vecteur d'effacements du décodeur de Reed Solomon. Les documents de brevet US 6,065,149 et US 7,228,489 précités proposent donc chacun une mise en oeuvre particulière d'un système de communication combinant deux codes correcteurs d'erreurs (code interne (« inner code » en anglais) et code externe (« outer code » en anglais)), mais aucun ne se situe dans le contexte particulier où le système de communication met en oeuvre une redondance spatiale et/ou temporelle (système à copies multiples). A fortiori, aucun de ces deux documents ne propose une solution permettant, dans ce contexte particulier, de minimiser le taux d'erreurs en sortie du décodage externe. 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 permettant, dans un système de transmission mettant en oeuvre une redondance spatiale et/ou temporelle des données, à un dispositif récepteur d'avoir un taux d'erreur minimal en sortie de décodeur (décodeur d'un premier type). Un autre objectif d'au moins un mode de réalisation de l'invention est de fournir une telle technique permettant, dans le cas où le décodeur d'un premier type est utilisé en combinaison avec au moins un décodeur d'un second type fournissant des informations de fiabilité des symboles décodés (selon le décodage de second type), de limiter le volume des échanges, au sein du dispositif récepteur, entre un premier bloc de traitement comprenant le premier décodeur et un second bloc de traitement comprenant un ou plusieurs décodeur(s) d'un second type. Un autre objectif d'au moins un mode de réalisation de l'invention est de fournir une telle technique qui soit simple à mettre en oeuvre et de faible coût. 4. EXPOSÉ DE L'INVENTION Dans un mode de réalisation particulier de l'invention, il est proposé un procédé de détermination d'une copie à décoder et d'un vecteur d'effacements associé, par un dispositif récepteur recevant au moins deux copies d'une même donnée encodée selon un code correcteur d'erreur, chaque copie reçue comprenant plusieurs symboles associés chacun à un indice de position dans ladite copie, ladite copie à décoder étant destinée à être décodée en tenant compte dudit vecteur d'effacement par un décodeur d'un premier type appliquant un décodage adapté audit code correcteur d'erreur. Ce procédé est remarquable en ce qu'il comprend des étapes consistant à : - pour au moins un symbole de chaque copie reçue, obtenir un niveau de fiabilité de transmission associé audit symbole ; - pour au moins un indice de position donné associé à un symbole compris dans ladite copie à décoder, marquer ou non un effacement pour ledit indice de position donné dans ledit vecteur d'effacements, en fonction des niveaux de fiabilité associés aux symboles qui sont positionnés audit indice de position donné dans lesdites copies reçues. Ainsi, ce mode de réalisation particulier de l'invention repose sur une approche tout à fait nouvelle et inventive consistant à déterminer le vecteur d'effacements associé à un bloc de données à décoder (qui, comme détaillé par la suite, est construit à partir des copies reçues), en utilisant des niveaux de fiabilité de transmissions associés à des symboles contenus dans différentes copies d'un même bloc de données reçues. On évite ainsi d'effectuer des comparaisons symbole à symbole sur l'ensemble des copies reçues pour marquer les positions d'effacements, minimisant ainsi les opérations à effectuer pour déterminer le vecteur d'effacements. En outre, du fait qu'il tient compte des niveaux de fiabilité de transmissions, le marquage des effacements est optimisé puisqu'on augmente la probabilité que seuls de « véritables » effacements soient marqués comme tels. Ceci permet de ne pas engendrer un nombre d'effacements trop élevé (même dans le cas où la transmission de certaine(s) copie(s) reçue(s) est peu fiable), et donc d'avoir un nombre d'effacements qui ne dépasse pas la capacité de correction du premier décodeur. Au final, on réduit donc le taux d'erreurs en sortie du premier décodeur (qui est par exemple un décodeur en bloc de type Reed Solomon). De façon avantageuse, ce procédé comprend des étapes consistant à : - pour chaque copie reçue, obtenir un ensemble d'un nombre N d'indice(s) de position associé(s) à N symbole(s) de ladite copie reçue dont le(s) niveau(x) de fiabilité associé(s) est(sont) le(s) N plus faible(s) parmi les niveaux de fiabilité de tous les symboles de ladite copie reçue, avec N supérieur ou égal à 1 ; - pour au moins un indice de position donné correspondant à un symbole compris dans ladite copie à décoder, marquer un effacement dans ledit vecteur d'effacements, si ledit indice de position donné appartient à tous les ensembles de N indice(s) de position obtenus pour toutes les copies reçues.
Ainsi, un effacement n'est marqué pour un indice de position donné que si la fiabilité du symbole placé à cet indice est faible sur toutes les copies. Ce critère de décision est simple à mettre en oeuvre et nécessite peu de calculs. Avantageusement, le nombre N d'indice(s) de position de chaque ensemble est fonction d'un débit d'information maximal que peut accepter une interface depuis : - un premier bloc de traitement comprenant un décodeur d'un second type générant lesdits niveaux de fiabilité ; - un second bloc de traitement comprenant ledit décodeur de premier type. En effet, plus la valeur de N est forte, meilleures sont les performances de décodage (taux d'erreur le plus bas), au détriment cependant d'un débit d'informations supplémentaires (relatives aux niveaux de fiabilité à transmettre). Ainsi, il est possible d'optimiser les performances du décodage en fonction des capacités de communication entre les blocs de traitement. Selon une caractéristique avantageuse, le procédé comprend des étapes consistant à, pour un symbole positionné à un indice de position donné dans ladite copie à décoder : - déterminer un ensemble de symbole(s) restant(s) tel que pour chaque copie reçue, le symbole positionné à l'indice de position donné dans ladite copie reçue appartient audit ensemble si ledit indice de position donné n'appartient pas à l'ensemble de N indice(s) de position obtenu pour ladite copie reçue ; - vérifier s'il existe une majorité de symbole(s) restant(s) possédant une même valeur ; - en cas de vérification positive, choisir ladite même valeur pour ledit symbole positionné audit indice de position donné dans ladite copie à décoder. En effet, la probabilité d'avoir des mêmes erreurs sur chacune des copies étant très faible, il est considéré que la même valeur que possèdent ladite majorité de symboles restants est une valeur fiable. Selon une caractéristique avantageuse, le procédé comprend des étapes consistant à : 30 - en cas de vérification négative : 25 * pour chaque copie reçue dont le symbole positionné audit indice de position donné est un symbole restant, obtenir un niveau de fiabilité globale associé à ladite copie reçue ; * choisir, pour ledit symbole positionné audit indice de position donné dans ladite copie à décoder, la valeur du symbole restant qui est compris dans la copie reçue associée au plus grand niveau de fiabilité globale obtenu. Ainsi, on augmente la probabilité de ne pas introduire d'erreur dans la copie à décoder en sélectionnant la copie présentant le niveau de fiabilité globale le meilleur. Selon une caractéristique avantageuse, ledit dispositif récepteur recevant des 10 première et seconde copies, le procédé comprend des étapes consistant à, pour au moins un indice de position donné, correspondant à un symbole compris dans ladite copie à décoder : - sélectionner, pour ledit symbole positionné audit indice de position donné dans ladite copie à décoder, la valeur du symbole audit indice de position donné dans la deuxième copie reçue si ledit indice de position donné appartient à un premier ensemble de N indice(s) de position obtenu pour ladite première copie reçue ; - sélectionner, pour ledit symbole positionné audit indice de position donné dans ladite copie à décoder, la valeur du symbole audit indice de position donné dans la première copie reçue si ledit indice de position donné appartient à un deuxième ensemble de N indice(s) de position obtenu pour ladite deuxième copie reçue. Ainsi, dans le cas particulier d'une réception de deux copies uniquement, on augmente la probabilité de ne pas introduire d'erreur dans la copie à décoder en sélectionnant un symbole de niveau de fiabilité supérieur. Selon une autre caractéristique avantageuse, le procédé comprend une étape consistant à, si ledit indice de position donné appartient à aucun ensemble parmi lesdits premier et deuxième ensembles de N indice(s) de position et si les symboles dans les première et seconde copies reçues possèdent une même valeur, choisir ladite même valeur. 30 Ainsi, on augmente la probabilité de ne pas introduire d'erreur dans la copie à décoder en sélectionnant un symbole pour lequel les copies reçues sont accordées. 15 20 25 Selon une caractéristique avantageuse, le procédé comprend en outre des étapes consistant à, si ledit indice de position donné appartient à aucun ensemble parmi lesdits premier et deuxième ensembles de N indice(s) de position : * pour chaque copie reçue dont le symbole positionné audit indice de position donné est un symbole restant tel que l'indice de position donné n'appartient pas à l'ensemble de N indice(s) de position obtenu pour ladite copie reçue, obtenir un niveau de fiabilité globale associé à ladite copie reçue ; * choisir, pour ledit symbole positionné audit indice de position donné dans ladite copie à décoder, la valeur du symbole restant qui est compris dans la copie reçue associée au plus grand niveau de fiabilité globale obtenu. Ainsi, on augmente la probabilité de ne pas introduire d'erreur dans la copie à décoder en sélectionnant la copie présentant le niveau de fiabilité globale le meilleur. Selon une caractéristique avantageuse, le procédé comprend des étapes consistant à : 15 - vérifier si un nombre total d'effacement(s) marqué(s) dans ledit vecteur d'effacements est supérieur à un nombre maximal prédéterminé S ; et en cas de vérification positive : - réinitialiser le vecteur d'effacements, en supprimant le(s) effacement(s) préalablement marqué(s) ; 20 - construire une liste d'indices de position pour lesquels un effacement a été préalablement marqué dans le vecteur d'effacements ; - associer à chaque indice de position de la liste, le niveau de fiabilité le plus élevé parmi ceux associés aux symboles positionnés audit indice de position dans les copies reçues ; 25 - classer la liste par ordre croissant des niveaux de fiabilités associés aux indices de position ; - marquer un effacement pour les S premiers indices de position de la liste classée ; - pour chaque autre indice de position de la liste classée, non marqué comme 30 effacement, choisir, pour le symbole positionné audit indice de position dans ladite copie à décoder, la valeur du symbole dont le niveau de fiabilité est le plus 10 grand parmi les niveaux de fiabilité des symboles positionnés audit indice de position dans les copies reçues. Ainsi, on augmente la probabilité de ne pas introduire d'erreur dans la copie à décoder en sélectionnant les symboles présentant les niveaux de fiabilité les meilleurs, et ce en garantissant que le nombre d'effacements déterminés pour la copie à décoder reste inférieur ou égal au nombre maximal d'effacements prédéterminé S. Selon une caractéristique avantageuse, ledit nombre maximal prédéterminé S d'effacements est inférieur ou égal à une capacité limite de correction dudit code correcteur d'erreurs.
Ainsi, on évite d'amener le premier décodeur à la limite de sa capacité de correction, uniquement avec les effacements. En effet, la valeur du paramètre S étant ajustable, il est possible de conserver une marge de correction d'erreurs complémentaire pour la correction d'erreurs (autres que les effacements) par le premier décodeur, et cela permet donc de minimiser le taux d'erreur en sortie du premier décodeur.
Avantageusement, le décodeur de premier type est de type décodeur en bloc et que le ou les décodeurs de second type sont un (des) décodeur(s) convolutif(s). Ainsi, l'invention s'applique particulièrement dans le cas où le décodage effectué par le décodeur de premier type est un décodage externe (« outer decoding » en anglais) qui est combiné avec un décodage interne (« inner decoding » en anglais) effectué par un ou plusieurs décodeurs de second type, ce décodage interne fournissant une information de fiabilité relative au décodage interne de chaque symbole. 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 dispositif récepteur adapté à déterminer une copie à décoder et un vecteur d'effacements associé, ledit dispositif récepteur recevant au moins deux copies d'une même donnée encodée selon un code correcteur d'erreur, chaque copie reçue comprenant plusieurs symboles associés chacun à un indice de position dans ladite copie, ladite copie à décoder étant destinée à être décodée en tenant compte dudit vecteur d'effacement par un décodeur d'un premier type appliquant un décodage adapté audit code correcteur d'erreur De manière remarquable, le dispositif récepteur comprend : - des moyens d'obtenir, pour au moins un symbole de chaque copie reçue, un niveau de fiabilité de transmission associé audit symbole ; - des moyens de marquer, pour au moins un indice de position donné associé à un symbole compris dans ladite copie à décoder, d'un effacement pour ledit indice de position donné dans ledit vecteur d'effacements, en fonction des niveaux de fiabilité associés aux symboles qui sont positionnés audit indice de position donné dans lesdites copies reçues. 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 illustre schématiquement une technique connue de concaténation (ou combinaison) de codes correcteurs d'erreurs utilisée par exemple dans les systèmes de communication satellitaires ; - la figure 2 illustre schématiquement une architecture d'un système de transmission basé sur une redondance temporelle des données, selon un premier mode de réalisation particulier de l'invention ; - la figure 3 illustre schématiquement une architecture d'un système de transmission basé sur une redondance spatiale des données, selon un second mode de réalisation particulier de l'invention ; - la figure 4 est un organigramme d'un algorithme de génération d'une table de fiabilité, mis en oeuvre dans un module de réception de signaux physiques compris dans le dispositif récepteur de la figure 2 ou 3, selon un mode de réalisation particulier de l'invention ; 25 30 - la figure 5 présente un exemple de table de fiabilité générée par application de l'organigramme de la figure 4 ; - les figures 6 à 8 présentent un organigramme global d'un mode de réalisation particulier du procédé selon l'invention : ^ la figure 6 présente une première partie de cet organigramme global, dans le cas général où le nombre de copies reçues est supérieur ou égal à deux ; ^ la figure 7 présente une variante de la première partie précitée, dans le cas particulier où le nombre de copies reçues est égal à deux ; ^ la figure 8 présente une deuxième partie de cet organigramme, permettant notamment de gérer le nombre d'effacements ; - les figures 9a, 9b et 9c illustrent un exemple d'application de l'organigramme global des figures 6 à 8, dans le cas d'un système à deux copies et lorsqu'il y a peu de corrélation entre les deux copies ; - les figures 10a, l0b et l0c illustrent un exemple d'application de l'organigramme global des figures 6 à 8, dans le cas d'un système à deux copies et lorsqu'il y a beaucoup de corrélation entre les deux copies. 6. DESCRIPTION DÉTAILLÉE La figure 1 illustre schématiquement une technique connue de combinaison de codes correcteurs d'erreurs utilisée par exemple dans les systèmes de communication 20 satellitaires. Cette technique met en oeuvre un encodeur convolutif (aussi appelé plus généralement encodeur interne ou « inner encoder » en anglais), et un encodeur en bloc (aussi appelé plus généralement encodeur externe ou « outer encoder » en anglais), par exemple de type Reed Solomon. 25 Dans un dispositif émetteur 100, des données à transmettre (groupées en symboles de m bits suivant le code de Reed Solomon choisi) sont d'abord fournies à un encodeur de Reed Solomon 110 qui y ajoute des données de redondance. Puis, les données en sortie de l'encodeur de Reed Solomon 110 (c'est-à-dire les données à transmettre et les données de redondance) sont transmises à un entrelaceur 30 120 qui mélange ces données entre elles. Les données mélangées passent ensuite dans un encodeur convolutif 130 qui leur ajoute de nouvelles données de redondance avant 10 15 de les transmettre à un modulateur 140. Ce modulateur 140 module ensuite les données sortant de l'encodeur convolutif 130, de façon à pouvoir les émettre sur un lien radio 150, vers un dispositif récepteur 195. Dans le dispositif récepteur 195, les signaux reçus via le lien radio 150 sont démodulés par un démodulateur 160 qui transfère ensuite les données éventuellement entachées d'erreurs vers un décodeur de Viterbi 170. Celui-ci utilise les données de redondance introduites par l'encodeur convolutif 130 pour détecter et corriger d'éventuelles erreurs. En sortie du décodeur de Viterbi 170, des données corrigées 171 sont ensuite transmises à un désentrelaceur 180 qui effectue une opération de mélange inverse de celle effectuée par l'entrelaceur 120 du dispositif émetteur 110. Les données 181 issues du désentrelaceur 180 sont ensuite regroupées en symboles de Reed Solomon puis appliquées en entrée d'un décodeur de Reed Solomon 190. Ce décodeur de Reed Solomon 190 utilise les données de redondance introduites par l'encodeur de Reed Solomon 110 du dispositif émetteur 100 pour détecter et corriger d'éventuelles erreurs résiduelles. Si le décodeur de Viterbi 170 utilisé implémente un algorithme de décodage de type SOVA et si l'algorithme de décodage du décodeur de Reed Solomon 190 permet de prendre en compte des informations de fiabilité des données entrantes, des données auxiliaires 172 représentant une fiabilité `bit' (ou vraisemblance) des données décodées par le décodeur de Viterbi 170 sont également désentrelacées par le désentrelaceur 180. Ces données auxiliaires sont ensuite transformées en informations de fiabilité 182 de type symbole de Reed Solomon, avant d'être transmises au décodeur de Reed Solomon 190. A chaque information de fiabilité est associé un niveau de fiabilité.
La transformation des informations de fiabilité `bit' 172 issue du décodeur de Viterbi 170 en des informations de fiabilité `symbole de Reed Solomon' 182 se fait en moyennant les informations de fiabilité `bit' sur les m bits du symbole, ou en choisissant l'information de fiabilité `bit' la plus faible (c'est-à-dire celle dont le niveau de fiabilité associé est le plus faible), ou bien encore en utilisant tout autre algorithme de transformation d'information de fiabilité connu de l'homme du métier.
La figure 2 illustre schématiquement une architecture d'un système de transmission basé sur une redondance temporelle des données, selon un premier mode de réalisation particulier de l'invention. Dans la suite de la description, on entend par module un bloc de traitement de données. Un dispositif émetteur 200 est constitué de deux principaux modules : un module MAC TX 220 et un module PHY TX 210. Les données à transmettre sont fournies par une couche application du dispositif émetteur 200 à un bloc d'interface entrée/sortie 225 du module MAC TX 220, qui les transmet ensuite à un module processeur MAC 233. Le module processeur MAC 233 effectue toutes les opérations de mise en oeuvre d'un protocole de contrôle d'accès à un medium de transmission, encore appelé protocole MAC (pour «Medium Access Control » en anglais). Les données sont ensuite transmises à un encodeur en bloc de type Reed Solomon 232 qui, après ajout de données de redondance, les transmets à un entrelaceur 231. Celui-ci mélange alors les données encodées par permutation d'éléments binaires afin d'améliorer la robustesse aux erreurs du système de correction d' erreur. Les données sont ensuite transférées à un module d'interface PHY/MAC 224 qui les transmet au module PHY TX 210 par le lien 240.
Le module PHY TX 210 est chargé d'effectuer les opérations permettant de transférer des données sur le lien radio ainsi qu'une opération d'encodage permettant de minimiser le taux d'erreur binaire de la communication. Ce module PHY TX 210 comprend un module processeur PHY 215 permettant de traiter des données et les transformer en un signal bande de base.
Il comprend également un module radio RF 216 qui transpose ce signal bande de base en un signal radio avant de le transmettre à une antenne d'émission 217. Le module processeur PHY 215 comprend principalement un module encodeur convolutif 211 qui ajoute de nouveau des redondances aux données à transmettre et un modulateur 212 qui transforme les données en un signal transmissible par radio vers un dispositif récepteur 250.
Le dispositif récepteur 250 est constitué de deux principaux modules : un module MAC RX 270 et un module PHY RX 260. Le signal radio en provenance du dispositif émetteur 200 est reçu par une antenne 267 du dispositif récepteur 250, puis traité dans le module PHY RX 260. Ce traitement est effectué par un module radio RF 266 qui le transpose en un signal bande de base transmis ensuite vers un module processeur PHY 265. Ce module processeur PHY 265 comprend principalement un module démodulateur 262 qui transforme le signal bande de base en données, et un décodeur de Viterbi 261 de type SOVA qui effectue une première correction d'erreur en exploitant les informations de redondance introduites par l'encodeur convolutif 211 du dispositif émetteur 200. Le décodeur de Viterbi 261 fournit des données corrigées avec pour chacune d'entre elles une information de fiabilité. Ces données corrigées sont fournies à un module multi-copies PHY 268 qui applique un algorithme d'élaboration d'une table de fiabilité plus amplement décrit ci-après en relation avec la figure 4. Cet algorithme permet notamment d'adapter le flux des données issues du décodeur de Viterbi 261 à la capacité du lien de communication 271, 272 entre le module PHY RX 260 et le module MAC RX 270, ce lien assurant le transport des données corrigées et des tables de fiabilité associées. Le module PHY RX 260 fournit donc au module MAC RX 270, pour chaque copie reçue, toutes les données décodées accompagnées d'un certain nombre d'informations de fiabilité. Dans le cas où la redondance de données est de type temporelle (réception successive de plusieurs copies d'une même donnée), le module PHY RX 260 délivrera successivement au module MAC RX 270, par exemple dans le cas de deux réceptions successives, des données corrigées D' accompagnées de tables de fiabilité Rel', puis des données corrigées D" accompagnées de tables de fiabilité Rel". Les données corrigées D' et D" sont transmises sur un lien de communication 271 et les tables de fiabilité Rel' et Rel" sont transmises sur un lien de communication 272. Les liens de communication 271 et 272, ainsi que le lien de communication 240, peuvent consister en une interface de communication, de type série par exemple, permettant le déport par un câble des modules PHY RX 260 ou PHY TX 210. Ces liens de communication peuvent dans un autre mode de réalisation consister en des interfaces de communication, de type parallèle par exemple, sur carte (« on-board interface » en anglais). Ces liens peuvent en outre être partagés avec d'autres communications inter- modules que celles décrites ci-après, ce qui limite la bande passante disponible sur ces liens de communication pour les communications entre le dispositif émetteur 200 et le dispositif récepteur 250. Les données et informations sont reçues dans le module MAC RX 270 par un bloc d'interface entrée/sortie PHY/MAC 274 qui se charge de la communication entre le module MAC RX 270 et le module PHY RX 260. Une fois les données remises à un format permettant le traitement dans le module MAC RX 270, ces données sont transmises à un désentrelaceur 281 qui effectue l'opération inverse de celle effectuée à l'émission par l'entrelaceur 231. I1 est à noter que le module désentrelaceur 281 désentrelace également les informations de la table de fiabilité accompagnant les données issues du décodeur de Viterbi 261. Les données et informations sont ensuite transmises à un module multi-copies MAC 282 qui exécute un algorithme permettant de déterminer les symboles de Reed Solomon (formant une copie à décoder) et un vecteur d'effacements associé, à transmettre à un décodeur de Reed Solomon 283. Cet algorithme est plus amplement décrit par la suite en relation avec les figures 6 à 8. Le décodeur de Reed Solomon 283 extrait ensuite les données à recouvrer et corrige d'éventuelles erreurs résiduelles en utilisant les propriétés du code de Reed Solomon choisi. Puis il les transmet à un processeur MAC 284 qui effectue toutes les opérations de mise en oeuvre du protocole MAC utilisé dans le système. Les données issues du processeur MAC 284 sont ensuite transmises à la couche application du dispositif récepteur 250. De façon préférentielle, les modules processeur MAC TX 220 et processeur MAC RX 270 intègrent également une mémoire vive 222 (ou «RAM » pour « Random Access Memory » en anglais), qui fonctionne comme une mémoire principale, et une unité de calcul 221 (ou « CPU » pour « Central Processor Unit » en anglais). La capacité de cette mémoire vive 222 peut être étendue par une mémoire vive optionnelle connectée à un port d'expansion (non illustrée sur la figure 2). L'unité CPU 221 est capable d'exécuter des instructions lors de la mise sous tension du dispositif de communication (dispositif émetteur 200 ou dispositif récepteur 250) à partir d'une mémoire morte 223 (ou « ROM » pour « Read Only Memory » en anglais). Après la mise sous tension, l'unité CPU 221 est capable d'exécuter des instructions de la mémoire RAM 222 relatives à un programme d'ordinateur une fois ces instructions chargées à partir de la mémoire ROM 223 ou d'une mémoire externe (non illustrée sur la figure 2). Un tel programme d'ordinateur, s'il est exécuté par l'unité CPU 221, provoque une partie ou la totalité des étapes des algorithmes décrits par la suite en relation avec les figures 4 et 6 à 8. Il est important de noter que la présente invention ne nécessite aucun traitement particulier des données dans l'émetteur 200 et que ni le décodeur de Viterbi 261 de type SOYA, ni le décodeur de Reed Solomon 283 du dispositif récepteur 250 ne sont modifiés pour sa mise en oeuvre. Dans un mode de réalisation particulier de l'invention, une copie comprend un mot de code (« codeword» en anglais) de Reed Solomon. Dans une première variante, chaque copie ne contient qu'une partie d'un mot de code, et dans ce cas, il est nécessaire de reconstituer le mot de code à partir des différentes copies avant d'appliquer les algorithmes des figures 6 à 8. Dans une seconde variante, une copie comprend plusieurs mots de code, et dans ce cas l'algorithme des figures 6 à 8 doit être appliqué successivement sur les données constituant chaque mot de code. La figure 3 illustre schématiquement une architecture d'un système de transmission basé sur une redondance spatiale des données, selon un second mode de réalisation particulier de l'invention. L'architecture du dispositif émetteur 200 est inchangée et n'est donc pas détaillée de nouveau. La figure 3 illustre le cas d'un dispositif récepteur 350 comprenant deux modules PHY RX 260 identiques à ceux décrits sur la figure 2, et un module MAC RX 370.
Chaque module PHY RX 260 comprend une antenne 267 pour la réception des données en provenance du dispositif émetteur 200. Chaque module PHY RX 260 fournit au module MAC RX 370 des données corrigées et des tables de fiabilité issues du signal radio reçu par son antenne.
Dans l'exemple de la figure 3, des données corrigées D' accompagnées de tables de fiabilité Rel' sont (à gauche sur la figure 3) sur des liens 271 et 272 reliant le premier module PHY RX 260 et le module MAC RX 370. Egalement, des données corrigées D" accompagnées de tables de fiabilité Rel" sont transmises sur des liens 273 et 274 reliant le second module PHY RX 260 (à droite sur la figure 3) et le module MAC RX 370. Les données et informations sont reçues dans le module MAC RX 370 par deux instanciations d'un bloc d'interface entrée/sortie PHY/MAC 375, qui se chargent de la communication entre le module MAC RX 370 et les deux modules PHY RX 260. Une fois les données remises à un format permettant le traitement dans le module MAC RX 370, ces données sont transmises à deux désentrelaceurs 381 qui effectuent une opération inverse de celle effectuée à l'émission par l'entrelaceur 231, ces désentrelaceurs 381 désentrelaçant également les informations de fiabilité qui accompagnent les données issues des décodeurs de Viterbi de type SOYA. La différence dans la mise en oeuvre de l'invention dans une architecture d'un système de transmission basé sur une redondance temporelle (cas de la figure 2) et la mise en oeuvre dans une architecture d'un système de transmission basé sur une redondance spatiale à deux modules physiques (cas de la figure 3) se limite donc en la duplication du module PHY RX 260, du module d'interface PHY/MAC 375 et du désentrelaceur 381.
Les algorithmes mis en oeuvre dans les modules multi-copies PHY 268 et les modules multi-copies MAC 282 et 382 sont identiques pour les deux types de redondance. La figure 4 illustre un organigramme d'un algorithme de génération d'une table de fiabilité, mis en oeuvre dans un module PHY RX compris dans le dispositif récepteur de la figure 2 ou 3, selon un mode de réalisation particulier de l'invention.
Cet algorithme est mis en oeuvre dans chaque module multi-copies PHY 268 du dispositif récepteur 250 et 350 et permet la création des tables de fiabilité destinées au module multi-copies MAC 282 et 382 intégré dans le module MAC RX 270 et 370. Soit un paramètre S correspondant à un nombre maximal prédéterminé d'effacements souhaités. Ce nombre par exemple est défini par l'utilisateur. Sa valeur peut prendre au maximum la valeur « n-k » pour un code de Reed Solomon C(n,k). Cette valeur du paramètre S peut aussi être inférieure à cette valeur maximum, de façon à laisser au décodeur une marge de correction d'erreurs. Par exemple, pour un code de Reed Solomon C(114, 96), la capacité de correction de ce code est 18 (114-96 = 18), donc la valeur maximale pour le paramètre S est 18. A titre d'exemple, on prend S égal à 10 Dans une première étape 410, le module multi-copies PHY 268 s'initialise et charge le paramètre S, l'ensemble des données issues du décodeur de Viterbi 261 ainsi que les informations de fiabilité relatives à ces données.
Dans une étape suivante 420, une table intermédiaire est créée en déterminant, à partir des informations de fiabilité `bit' fournies par le décodeur de Viterbi 261, les informations de fiabilité `symboles de Reed Solomon'. Ces informations de fiabilité sont ensuite classées par ordre croissant de leur niveau de fiabilité (on rappelle que chaque information de fiabilité est associée à un niveau de fiabilité).
Dans une étape suivante 430, la table de fiabilité 500 (figure 5) est créée à partir de la table intermédiaire de la façon suivante. Tout d'abord, on détermine les indices d'un nombre N de symboles dont les niveaux de fiabilité sont les plus faibles, et correspondent donc aux indices de position situés en tête de la table intermédiaire. Puis, ces indices sont insérés au début de la table de fiabilité. Le nombre N correspond au nombre d'informations de fiabilité transmises par le module PHY RX 260 vers le module MAC RX 270 ou 370. Ce nombre N dépend du taux d'informations que le lien de communication 272 ou 273 peut supporter.
Plus la valeur de N est importante, plus les performances de décodage du système sont élevées, mais plus il est coûteux en terme de réalisation matérielle (débit nécessaire entre les modules). La valeur maximale de N correspond au nombre de symboles contenus dans la copie. Dans un tel cas, cela équivaut à doubler le débit des données à transmettre entre les modules PHY RX 260 et le module MAC RX 270 ou 370. Ce qui n'est pas souhaitable pour une application à haut débit. Puis, on insère, sur les N positions suivantes de la table de fiabilité, les niveaux de fiabilité correspondant aux indices insérés aux N premières positions de la table de fiabilité Puis on insère, à la fin de la table de fiabilité, un niveau de fiabilité globale, qui est par exemple la valeur moyenne (« Relmean ») des niveaux de fiabilité des symboles compris dans le bloc de données (c'est-à-dire la copie) issu du décodeur de Viterbi 261. Dans une étape suivante 440, la table de fiabilité composée de 2*N+1 valeurs est transformée en un signal pour être transmise au module MAC RX 270 et 370 sur le lien de communication 272 ou 273. La nature de la transformation est dépendante de la technologie de transfert des données choisie entre le module PHY RX 260 et le module MAC RX 270 ou 370, comme par exemple une sérialisation ou bien encore l'application d'un protocole particulier. La technologie de transfert choisie est fonction des performances souhaitées et des contraintes matérielles. Nous allons maintenant détailler un exemple de calcul d'un taux d'informations supplémentaires à transmettre au module MAC RX 270 ou 370 pour mettre en oeuvre la présente invention. Pour un système mettant en oeuvre un code de Reed Solomon C(114, 96) avec des symboles de Reed Solomon codés sur 8 bits, une valeur de N paramétrée à 4, un indice codé sur 7 bits et une fiabilité codée sur 8 bits, le nombre de bits à transmettre est de 114 *8= 912 bits. La table de fiabilité comporte 4 * (7 + 8)+8= 68 bits. Cela donne un taux d'informations supplémentaires à transmettre de 7%, ce taux correspondant au ratio des 68bits de la table de fiabilité sur les 912 bits correspondant au flux de données à transmettre.
On peut ainsi constater que, dans cet exemple, l'ajout de données pour la réalisation de la présente invention est faible par rapport aux nombre de données à transmettre. La figure 5 présente un exemple de table de fiabilité générée par application de l'organigramme de la figure 4. Les quatre premières valeurs (Indl à Ind4) de la table de fiabilité (avec N=4) correspondent aux indices de position des symboles ayant les plus faibles niveaux de fiabilité (Indl étant l'indice correspondant à la donnée la moins fiable, c'est-à-dire de plus faible niveau de fiabilité), parmi les niveaux de fiabilité de tous les symboles de la copie associée. Les quatre valeurs Rell à Re14 correspondent aux niveaux de fiabilité des quatre symboles correspondants (c'est-à-dire dont les indices de position sont Indl à Ind4). La dernière valeur « Relmean » de la table correspond au niveau de fiabilité global (valeur moyenne calculée sur l'ensemble des niveaux de fiabilité des symboles de la copie associée). La figure 6 présente une première partie de cet organigramme global, dans le cas général où le nombre de copies reçues est supérieur ou égal à deux. Il est à noter que l'organigramme de la figure 6 est le même quelle que soit l'origine des multi-copies (c'est-à-dire s'il s'agisse d'une redondance temporelle ou d'une redondance spatiale). Soit m le nombre de copies reçues, n l'indice des symboles à l'intérieur de chaque copie et i l'indice des copies (1 < i < m). Dans une étape d'initialisation 610, les m copies ainsi que les m tables de fiabilité associées sont reçues des m modules PHY RX 260. Les valeurs d'un vecteur d'effacements EV(n) pour chaque indice n sont également mises à zéro dans cette étape 610. Dans une étape 615, l'indice n est initialisé à la valeur 1. Dans une étape suivante 620, on vérifie si cet indice n est listé dans toutes les tables de fiabilité reçues.
Si le résultat du test de l'étape 620 est positif, cela signifie que le niveau de fiabilité du symbole correspondant est faible sur toutes les copies. Ce symbole est alors considéré comme effacé. Dans une étape 625, on marque un effacement pour cet indice de position n. Pour cela, l'élément EV(n) du vecteur d'effacements de cet indice n est alors mis à une valeur « 1 » indiquant au décodeur de Reed Solomon que ce symbole est erroné. La valeur du symbole à décoder So(n) pour cet indice n peut être mise à une valeur quelconque du fait qu'elle ne sera pas utilisée par le décodeur. Si le résultat du test de l'étape 620 est négatif, dans une étape 630, on élimine les symboles Si(n) dont l'indice n est listé dans la table de fiabilité de la copie i. On élimine donc les symboles qui ont été détectés comme parmi les moins fiables par le décodeur de Viterbi. Dans une étape suivante 640, on vérifie l'intégrité des symboles restants (c'est-à-dire non éliminés) en vérifiant si ces symboles d'indice n ont la même valeur. Si le résultat du test effectué dans l'étape 640 est positif, la probabilité d'avoir les mêmes erreurs sur chacune des copies étant très faible, il est considéré que la valeur reçue est bonne, et donc que ces symboles sont fiables. Le vecteur d'effacements EV(n) reste nul pour cet indice n et, dans une étape 645, on affecte alors au symbole à décoder So(n) pour cet indice n la valeur du symbole Si(n). I1 est à noter que les étapes 640 et 645 ne sont pas indispensables au bon déroulement de l'algorithme de la figure 6, au vu des étapes suivantes vérifiant si une majorité de symboles restant possède une même valeur de symboles. Si le résultat du test effectué dans l'étape 640 est négatif, cela signifie qu'un ou plusieurs des symboles restants a été corrompu pendant la transmission, bien que l'indice de fiabilité calculé indique que la valeur du symbole est fiable.
Dans ce cas, on vérifie dans une étape 650 si une majorité de symboles Si(n) restants parmi les j (1 < j < i) symboles retenus dans l'étape 630 ont la même valeur. Si le résultat du test de l'étape 650 est positif, une valeur Sk(n) reçue dans une majorité k des copies est considérée comme la bonne. Dans une étape 655, cette valeur Sk(n) est alors affectée au symbole à décoder So(n) pour cet indice n.
Si le résultat du test de l'étape 650 est négatif, c'est-à-dire s'il y a autant de symboles Si(n) ayant des valeurs différentes, est retenu la valeur transmise par la copie r qui aura un niveau de fiabilité globale « Relmean » le plus élevé. Dans une étape 660, on affecte alors au symbole à décoder So(n) la valeur du symbole Sr(n) de la copie r. A la sortie des étapes 625, 645, 655 et 660, la valeur du symbole So(n) a été affectée quelles que soient les valeurs des copies. Les niveaux de fiabilité des symboles ainsi que le vecteur d'effacements EV(n) ont été éventuellement mis à jour. Dans une étape 670, on passe à l'indice de position suivant en incrémentant la valeur de n. Dans une étape suivante 680, on vérifie si la fin de la copie a été atteinte. Si le résultat du test de l'étape 680 est négatif, l'étape 620 est de nouveau exécutée pour traiter le symbole suivant. Sinon, on passe à la deuxième partie de l'algorithme global décrit ci-après en relation avec la figure 8, et permettant notamment de gérer le nombre d'effacement. La figure 7 présente une variante de la première partie précitée, dans le cas particulier où le nombre de copies reçues est égal à deux. Il est à noter que l'organigramme de la figure 7 est le même quelle que soit l'origine des multi-copies, c'est-à-dire qu'il s'agisse d'une redondance temporelle ou d'une redondance spatiale. Dans une étape 710 d'initialisation, les deux copies, ainsi que les deux tables de fiabilité associées, provenant des deux modules PHY RX 260 sont reçues. Cette étape met à zéro les valeurs du vecteur d'effacements EV(n) pour chaque indice n. Dans une étape 715, l'indice n est initialisé à la valeur 1.
Dans une étape suivante 720, on vérifie si cet indice n est listé dans les deux tables de fiabilité. Si le résultat du test de l'étape 720 est positif, cela signifie que le niveau de fiabilité du symbole correspondant est faible sur les deux copies. Ce symbole est alors considéré comme effacé.
Dans une étape 725, on marque un effacement pour cet indice de position n. Pour cela, l'élément EV(n) du vecteur d'effacements de cet indice n est alors mis à une valeur « 1 » indiquant au décodeur de Reed Solomon que ce symbole est erroné. La valeur du symbole à décoder So(n) pour cet indice n peut être mise à une valeur quelconque du fait qu'elle ne sera pas utilisée par le décodeur. Si le résultat du test de l'étape 720 est négatif, dans une étape 730, on vérifie si l'indice n est listé dans la table de fiabilité de la première copie, nommée TF1. Si le résultat de l'étape 730 est positif, l'indice n n'étant pas listé dans toutes les tables, cela signifie que, a priori, le symbole de la deuxième copie est fiable.
Dans une étape 735, on affecte alors la valeur S2(n) au symbole à décoder So(n) pour cet indice n. Si le résultat de l'étape 730 est négatif, dans une étape 740, on vérifie si l'indice n est listé dans la table de fiabilité de la deuxième copie, nommée TF2. Si le résultat de l'étape 740 est positif et comme l'indice n n'est pas listé dans la table de fiabilité de la première copie TF1, cela signifie que, a priori, le symbole de la première copie est fiable. Dans une étape 745, on affecte alors la valeur Sl(n) au symbole à décoder So(n) pour cet indice n. Si le résultat de l'étape 740 est négatif (c'est-à-dire que l'indice n n'est listé dans aucune des deux tables de fiabilité), dans une étape 750, on teste l'intégrité des symboles S l (n) et S2(n) en vérifiant si ces symboles d'indice n ont la même valeur. Si le résultat du test effectué dans l'étape 750 est positif, la probabilité d'avoir les mêmes erreurs sur chacune des copies étant très faible, la valeur reçue est considérée comme bonne. Ces symboles sont donc fiables et leur valeur peut êtres transmise au décodeur de Reed Solomon dans une étape 755. Le vecteur d'effacements reste nul pour cet indice. Si le résultat du test effectué dans l'étape 750 est négatif, cela signifie qu'un ou les deux symboles a (ont) été corrompu(s) pendant la transmission, bien que le(s) indice(s) de fiabilité calculé(s) indique(nt) que la(les) valeur(s) du(des) symbole(s) est(sont) fiable(s).
Dans ce cas, dans une étape 760, on retient la valeur transmise par la copie r qui aura un niveau de fiabilité globale « Relmean » la plus élevée. Le symbole à décoder So(n) est alors affecté de la valeur du symbole Sr(n). Il est à noter que l'étape 760 peut également être effectuée directement après l'exécution des étapes 720 à 740, sans effectuer le test de l'étape 750. Dans ce cas, pour chaque copie reçue dont le symbole d'indice de position donné n est un symbole, dit symbole restant, tel que l'indice de position donné n n'est pas listé dans la table de fiabilité de la première copie ni dans la table de fiabilité de la deuxième copie, l'étape 760 consiste à obtenir un niveau de fiabilité globale « Relmean » associé à ladite copie reçue, puis de choisir pour ledit symbole à décoder (So(n)) d'indice de position donné (n) dans ladite copie à décoder, la valeur du symbole restant compris dans la copie reçue associée au plus grand niveau de fiabilité globale obtenu. Il est important de noter que dans ce cas, le risque de mauvais choix de symbole n'est pas nul. Selon un mode de réalisation particulier de l'invention, il est alors avantageux de ne pas choisir la valeur maximale pour le paramètre S, et de conserver ainsi une capacité de correction d'erreurs dans le décodeur de Reed Solomon. En d'autres termes, on prend une valeur de S inférieure à la capacité de correction C du décodeur de Reed Solomon. A la sortie des étapes 725, 735, 745, 755 et 760, la valeur du symbole So(n) ayant été affectée quelles que soient les valeurs des copies et la fiabilité des symboles, le vecteur d'effacements EV(n) ayant été éventuellement mis à jour, l'indice de position suivant est testé en incrémentant la valeur de n dans une étape 770. Dans une étape suivante 780, on vérifie si la fin de la copie n'a pas été atteinte. Si le résultat du test de l'étape 780 est négatif, l'étape 720 est de nouveau exécutée pour traiter le symbole suivant. Sinon, on passe à la deuxième partie de l'algorithme global, décrit ci-après en relation avec la figure 8, et permettant de gérer le nombre d'effacement(s). Le nombre d'effacements déterminés par la première partie de l'organigramme global présenté sur la figure 6 ou la figure 7 peut être supérieur au nombre d'effacements souhaité S, ce qui est très préjudiciable dans le cas où le paramètre S est fixé à sa valeur maximale (n-k). En effet, le décodeur de Reed Solomon fournit dans ce cas des données erronées. La deuxième partie de l'organigramme global illustrée en figure 8 propose une solution à cette problématique. La figure 8 présente une deuxième partie de l'organigramme global, permettant notamment de gérer le nombre d'effacements. Une étape 810 permet de calculer le nombre d'effacements déterminé par la première partie de l'organigramme global de la figure 6 ou 7, en faisant par exemple la somme des éléments du vecteur d'effacements EV (les indices des symboles considérés effacés sont à 1 et les autres à 0).
Puis, dans cette même étape 810, on vérifie si ce nombre d'effacements est inférieur au nombre d'effacements maximal prédéterminé S. Si le résultat du test de l'étape 810 est positif, le vecteur d'effacements est considéré comme valide et on passe directement à l'étape 860 dans laquelle la copie à décoder (bloc de symboles) et le vecteur d'effacements tels que déterminés par l'algorithme de la figure 6 ou 7 sont transmis au décodeur de Reed Solomon. Si le résultat du test de l'étape 810 est négatif, le vecteur d'effacements et la copie à décoder (bloc de symboles) sont redéfinis dans des étapes 820 à 850. Dans une étape 820, on réinitialise à 0 tous les éléments du vecteur d'effacements. Dans une étape 830, on crée une table de travail TEV (se référer à la figure 10 par exemple) composée de l'indice des symboles de faible fiabilité communs à toutes les tables de fiabilité, ces indices correspondant à un test positif lors de l'étape 620 (figure 6) ou 720 (figure 7). A chacun de ces indices est associé dans la table de travail TEV le niveau de fiabilité le plus élevé parmi les niveaux de fiabilité associés à cet indice dans toutes les tables de fiabilité.
Puis ces indices sont classés par valeurs croissantes des niveaux de fiabilité. Dans une étape 840, on positionne ensuite à la valeur « 1 » les S valeurs des éléments du vecteur d'effacements qui ont les S premiers indices de la table. Les symboles qui ont ces S indices seront considérés comme effacés et leur valeur n'a donc pas d'importance.
Dans une étape 850, les symboles So(n) dont l'indice n ne fait pas partie des S indices cités ci-dessus reçoivent la valeur Si(n) possédant le meilleur niveau de fiabilité. Tous les éléments du vecteur d'effacements et les symboles de la copie à décoder (bloc de symboles) ayant été déterminés, ces données sont ensuite envoyées au décodeur de Reed Solomon dans une étape 860. Les figures 9a à 9c illustrent un exemple d'application de l'organigramme global des figures 6 à 8, dans le cas d'un système à deux copies et lorsqu'il y a peu de corrélation entre les deux copies. Dans ce cas, les erreurs dues à la transmission de chaque copie n'affectent pas les mêmes symboles et le nombre d'effacements créés reste en dessous du nombre S d'effacements souhaité. Dans cet exemple, la valeur du paramètre S est fixée à 3 et le nombre d'informations de fiabilité transmis par le module PHY RX 260 au module MAC RX 270 ou 370 est fixé à 4. Il est également fait l'hypothèse qu'il n'y a pas d'erreurs sur les symboles non listés dans la table de fiabilité. La figure 9a illustre schématiquement un exemple d'une table de fiabilité 901 reçue pour la première copie 902. Parmi les 114 symboles qui composent la première copie, les symboles 7, 59, 103, 110 ont respectivement des niveaux de fiabilité de -20, 10, 25, 28. Le niveau de fiabilité globale de l'ensemble des symboles de la première copie est 39. La figure 9b illustre schématiquement un exemple d'une table de fiabilité 903 reçue pour la seconde copie 904. Parmi les 114 symboles qui composent la seconde copie, les symboles 14, 75, 103, 107 ont respectivement des niveaux de fiabilité de -40, 26, 25, 32. Le niveau de fiabilité globale de l'ensemble des symboles de la seconde copie est de 44. La figure 9c illustre schématiquement le résultat de l'application de l'algorithme global des figures 7 et 8. La première rangée 905 donne l'indice des symboles dans la copie. La deuxième rangée 906 donne la source (Cl pour la première copie et C2 pour la seconde copie) des symboles qui constituent la copie à décoder, c'est-à-dire la copie à envoyer au décodeur.
Pour les symboles 14, 75 et 107, les symboles sont ceux qui proviennent de la première copie. Pour les symboles 7, 59 et 110, les symboles sont ceux qui proviennent de la seconde copie. Tous les autres symboles ayant la même valeur, l'une quelconque des deux copies peut être sélectionnée. La valeur du symbole 103, notée E n'a pas d'importance puisqu'elle est déclarée effacée (présence d'un effacement). La troisième rangée 907 donne le contenu du vecteur d'effacements. Seul l'élément d'indice 103 est à un puisqu'il s'agit d'un symbole de faible fiabilité sur les deux copies. Les autres éléments restent à zéro. Il n'y a donc qu'un seul effacement déclaré au décodeur.
Les figures lOa à lOd illustrent un exemple d'application de l'organigramme global des figures 6 à 8, dans le cas d'un système à deux copies et lorsqu'il y a beaucoup de corrélation entre les deux copies. Dans ce cas, les erreurs dues à la transmission de chaque copie affectent les mêmes symboles et le nombre d'effacements créés doit donc être limité pour ne pas dépasser le nombre S d'effacements souhaité. Dans cet exemple, le paramètre S est fixé à 3 et le nombre d'informations de fiabilité transmis par le module PHY RX 260 au module MAC RX 270 ou 370 est fixé à 4. Il est également fait l'hypothèse qu'il n'y a pas d'erreur sur les symboles non listés dans la table de fiabilité. La figure lOa est un exemple d'une table de fiabilité 1001 reçue pour la première copie. Parmi les 114 symboles qui composent la première copie, les symboles 7, 59, 103, 110 ont respectivement des niveaux de fiabilité de -20, 10, 25, 28. Le niveau de fiabilité globale de l'ensemble des symboles de la première copie est 39.
La figure 10b est un exemple d'une table de fiabilité 1003 reçue pour la seconde copie. Parmi les 114 symboles qui composent la seconde copie, les symboles 7, 59, 103, 110 ont respectivement des niveaux de fiabilité de -40, 26, 25, 32. Le niveau de fiabilité globale de l'ensemble des symboles de la seconde copie est de 44. La figure 10c illustre un exemple, à partir des tables des figures 10a et 10b, d'une table TEV 1008 créée dans l'étape 830 de l'organigramme de la figure 8. Après classement dans un ordre croissant de niveaux de fiabilité, les quatre premiers éléments de cette table TEV sont les indices des symboles les moins fiables sur les deux copies. Les quatre éléments suivants sont pour chaque indice, les meilleures valeurs de fiabilité parmi les deux reçues. Le nombre d'effacements maximal souhaité étant fixé à 3, seuls les symboles correspondant aux 3 premiers indices de la table TEV (7, 103, 59) sont considérés comme effacés (donc l'élément correspondant à cet indice est mis à 1 dans le vecteur d'effacements). Pour le quatrième indice 110 listé dans cette table, le symbole transmis au décodeur est le plus fiable parmi les deux reçus. Dans cet exemple, il s'agit du symbole provenant de la deuxième copie.
La figure lOd illustre le résultat final de l'application de l'algorithme global des figures 7 et 8. La première rangée 1005 donne l'indice des symboles dans la copie. La deuxième rangée 1006 donne la source des symboles qui constituent la copie à décoder (c'est-à-dire la copie à envoyer au décodeur). Pour l'indice 110, le symbole est celui qui provient de la seconde copie. Pour les indices 7, 59, 103, la valeur E importe peu puisque ces symboles sont déclarés effacés. Tous les autres symboles ayant la même valeur, l'une quelconque des deux copies est sélectionnée. La troisième rangée 1007 donne le contenu du vecteur d'effacements. Les éléments d'indices 78, 59, 103 sont à un, les autres restent à zéro. Il y a donc trois effacements déclarés au décodeur.

Claims (14)

  1. REVENDICATIONS1. Procédé de détermination d'une copie à décoder et d'un vecteur d'effacements associé, par un dispositif récepteur (250 ; 350) recevant au moins deux copies d'une même donnée encodée selon un code correcteur d'erreur, chaque copie reçue comprenant plusieurs symboles associés chacun à un indice de position dans ladite copie, ladite copie à décoder étant destinée à être décodée en tenant compte dudit vecteur d'effacement par un décodeur d'un premier type (283 ; 383) appliquant un décodage adapté audit code correcteur d'erreur, ledit procédé étant caractérisé en ce qu'il comprend des étapes consistant à : - pour au moins un symbole de chaque copie reçue, obtenir (610 ; 710) un niveau de fiabilité de transmission associé audit symbole ; - pour au moins un indice de position donné associé à un symbole compris dans ladite copie à décoder, marquer ou non (620, 625 ; 720, 725) un effacement pour ledit indice de position donné dans ledit vecteur d'effacements, en fonction des niveaux de fiabilité associés aux symboles qui sont positionnés audit indice de position donné dans lesdites copies reçues.
  2. 2. Procédé selon la revendication 1, caractérisé en ce qu'il comprend des étapes consistant à : - pour chaque copie reçue, obtenir un ensemble d'un nombre N d'indice(s) de position associé(s) à N symbole(s) de ladite copie reçue dont le(s) niveau(x) de fiabilité associé(s) est(sont) le(s) N plus faible(s) parmi les niveaux de fiabilité de tous les symboles de ladite copie reçue, avec N supérieur ou égal à 1 ; - pour au moins un indice de position donné correspondant à un symbole compris dans ladite copie à décoder, marquer un effacement dans ledit vecteur d'effacements, si ledit indice de position donné appartient à tous les ensembles de N indice(s) de position obtenus pour toutes les copies reçues.
  3. 3. Procédé selon la revendication 2, caractérisé en ce que le nombre N d'indice(s) de position de chaque ensemble est fonction d'un débit d'information maximal que peut accepter une interface (272, 273) depuis : 30 - un premier bloc de traitement (260) comprenant un décodeur (261) d'un second type générant lesdits niveaux de fiabilité ; 25- un second bloc de traitement (270 ; 370) comprenant ledit décodeur (283 ; 383) de premier type.
  4. 4. Procédé selon l'une quelconque des revendications 2 à 3, caractérisé en ce qu'il comprend des étapes consistant à, pour un symbole (So(n)) positionné à un indice de position donné (n) dans ladite copie à décoder : - déterminer (630) un ensemble de symbole(s) restant(s) (Si(n)) tel que pour chaque copie reçue, le symbole positionné à l'indice de position donné dans ladite copie reçue appartient audit ensemble si ledit indice de position donné (n) n'appartient pas à l'ensemble de N indice(s) de position obtenu pour ladite copie reçue ; - vérifier (650) s'il existe une majorité de symbole(s) restant(s) possédant une même valeur ; - en cas de vérification positive, choisir (655) ladite même valeur pour ledit symbole (So(n)) positionné audit indice de position donné dans ladite copie à décoder.
  5. 5. Procédé selon la revendication 4, caractérisé en ce qu'il comprend des étapes consistant à : - en cas de vérification négative : * pour chaque copie reçue dont le symbole positionné audit indice de position donné (n) est un symbole restant, obtenir (660) un niveau de fiabilité globale associé à ladite copie reçue ; * choisir (660), pour ledit symbole (So(n)) positionné audit indice de position donné (n) dans ladite copie à décoder, la valeur du symbole restant qui est compris dans la copie reçue associée au plus grand niveau de fiabilité globale obtenu.
  6. 6. Procédé selon l'une quelconque des revendications 2 à 3, ledit dispositif récepteur recevant des première et seconde copies, caractérisé en ce qu'il comprend des étapes consistant à, pour au moins un indice de position donné (n), correspondant à un symbole (So(n)) compris dans ladite copie à décoder : 30 - sélectionner (730, 735), pour ledit symbole (So(n)) positionné audit indice de position donné (n) dans ladite copie à décoder, la valeur du symbole positionné 15 20 25audit indice de position donné (n) dans la deuxième copie reçue si ledit indice de position donné (n) appartient à un premier ensemble de N indice(s) de position obtenu pour ladite première copie reçue ; - sélectionner (740, 745), pour ledit symbole (So(n)) positionné audit indice de position donné (n) dans ladite copie à décoder, la valeur du symbole positionné audit indice de position donné (n) dans la première copie reçue si ledit indice de position donné (n) appartient à un deuxième ensemble de N indice(s) de position obtenu pour ladite deuxième copie reçue.
  7. 7. Procédé selon la revendication 6, caractérisé en ce qu'il comprend une étape (750, 755) consistant à, si ledit indice de position donné (n) appartient à aucun ensemble parmi lesdits premier et deuxième ensembles de N indice(s) de position et si les symboles dans les première et seconde copies reçues possèdent une même valeur, choisir (755) ladite même valeur.
  8. 8. Procédé selon l'une quelconque des revendications 6 à 7, caractérisé en ce qu'il comprend en outre des étapes consistant à, si ledit indice de position donné (n) appartient à aucun ensemble parmi lesdits premier et deuxième ensembles de N indice(s) de position : - pour chaque copie reçue dont le symbole positionné audit indice de position donné (n) est un symbole restant tel que l'indice de position donné (n) n'appartient pas à l'ensemble de N indice(s) de position obtenu pour ladite copie reçue, obtenir (760) un niveau de fiabilité globale associé à ladite copie reçue ; - choisir (760), pour ledit symbole (So(n)) positionné audit indice de position donné (n) dans ladite copie à décoder, la valeur du symbole restant qui est compris dans la copie reçue associée au plus grand niveau de fiabilité globale obtenu.
  9. 9. Procédé selon l'une quelconque des revendications 1 à 8, caractérisé en ce qu'il comprend des étapes consistant à : - vérifier (810) si un nombre total d'effacement(s) marqué(s) dans ledit vecteur d'effacements est supérieur à un nombre maximal prédéterminé S ; 30 et en cas de vérification positive : 25- réinitialiser (820) le vecteur d'effacements, en supprimant le(s) effacement(s) préalablement marqué(s) ; - construire (830) une liste d'indices de position pour lesquels un effacement a été préalablement marqué dans le vecteur d'effacements ; - associer (830) à chaque indice de position de la liste, le niveau de fiabilité le plus élevé parmi ceux associés aux symboles positionnés audit indice de position dans les copies reçues ; - classer (830) la liste par ordre croissant des niveaux de fiabilités associés aux indices de position ; - marquer (840) un effacement pour les S premiers indices de position de la liste classée ; - pour chaque autre indice de position de la liste classée, non marqué comme effacement, choisir (850), pour le symbole positionné audit indice de position dans ladite copie à décoder, la valeur du symbole dont le niveau de fiabilité est le plus grand parmi les niveaux de fiabilité des symboles positionnés audit indice de position dans les copies reçues.
  10. 10. Procédé selon la revendication 9, caractérisé en ce que ledit nombre maximal prédéterminé S d'effacements est inférieur ou égal à une capacité limite de correction dudit code correcteur d'erreurs. 20
  11. 11. Procédé selon l'une quelconque des revendications 1 à 10, caractérisé en ce que le décodeur de premier type est de type décodeur en bloc et que le ou les décodeurs de second type sont un (des) décodeur(s) convolutif(s).
  12. 12. 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 25 une des revendications 1 à 11, lorsque ledit programme est exécuté sur un ordinateur.
  13. 13. 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 à 11.
  14. 14. Dispositif récepteur (250 ; 350) adapté à déterminer une copie à décoder et un 30 vecteur d'effacements associé, ledit dispositif récepteur recevant au moins deux copies d'une même donnée encodée selon un code correcteur d'erreur, chaque copie reçue 10 15comprenant plusieurs symboles associés chacun à un indice de position dans ladite copie, ladite copie à décoder étant destinée à être décodée en tenant compte dudit vecteur d'effacement par un décodeur d'un premier type (283 ; 383) appliquant un décodage adapté audit code correcteur d'erreur, ledit dispositif récepteur étant caractérisé en ce qu'il comprend : - des moyens d'obtenir, pour au moins un symbole de chaque copie reçue, un niveau de fiabilité de transmission associé audit symbole ; - des moyens de marquer, pour au moins un indice de position donné associé à un symbole compris dans ladite copie à décoder, un effacement pour ledit indice de position donné dans ledit vecteur d'effacements, en fonction des niveaux de fiabilité associés aux symboles qui sont positionnés audit indice de position donné dans lesdites copies reçues.
FR0958559A 2009-12-01 2009-12-01 Procede de determination d'une copie a decoder et d'un vecteur d'effacements associe, produit programme d'ordinateur, moyen de stockage et dispositif recepteur correspondants. Expired - Fee Related FR2953345B1 (fr)

Priority Applications (2)

Application Number Priority Date Filing Date Title
FR0958559A FR2953345B1 (fr) 2009-12-01 2009-12-01 Procede de determination d'une copie a decoder et d'un vecteur d'effacements associe, produit programme d'ordinateur, moyen de stockage et dispositif recepteur correspondants.
US12/957,707 US8423877B2 (en) 2009-12-01 2010-12-01 Method for determining a copy to be decoded and an associated erasures vector, corresponding storage means and receiver device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
FR0958559A FR2953345B1 (fr) 2009-12-01 2009-12-01 Procede de determination d'une copie a decoder et d'un vecteur d'effacements associe, produit programme d'ordinateur, moyen de stockage et dispositif recepteur correspondants.

Publications (2)

Publication Number Publication Date
FR2953345A1 true FR2953345A1 (fr) 2011-06-03
FR2953345B1 FR2953345B1 (fr) 2015-12-11

Family

ID=42310816

Family Applications (1)

Application Number Title Priority Date Filing Date
FR0958559A Expired - Fee Related FR2953345B1 (fr) 2009-12-01 2009-12-01 Procede de determination d'une copie a decoder et d'un vecteur d'effacements associe, produit programme d'ordinateur, moyen de stockage et dispositif recepteur correspondants.

Country Status (2)

Country Link
US (1) US8423877B2 (fr)
FR (1) FR2953345B1 (fr)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9779016B1 (en) * 2012-07-25 2017-10-03 Smart Modular Technologies, Inc. Computing system with backup and recovery mechanism and method of operation thereof
US10043523B1 (en) * 2017-06-16 2018-08-07 Cypress Semiconductor Corporation Advanced packet-based sample audio concealment

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2185367A (en) * 1985-12-11 1987-07-15 Nippon Telegraph & Telephone Method for decoding error correcting block codes
EP0844741A2 (fr) * 1996-11-21 1998-05-27 Matsushita Electric Industrial Co., Ltd. Dispositif de correction d'erreur
US6301681B1 (en) * 1998-01-07 2001-10-09 Pocketmail Inc. Messaging communication protocol
US20030139140A1 (en) * 2002-01-23 2003-07-24 Tao Chen Selective combining of multiple non-synchronous transmissions in a wireless communication system
WO2004038931A2 (fr) * 2002-10-25 2004-05-06 Qualcomm Incorporated Procede et systeme permettant de combiner des codes dans un decodeur externe dans un systeme de communication
WO2005034413A1 (fr) * 2003-09-30 2005-04-14 Siemens Aktiengesellschaft Procede et dispositif de decodage de paquets de donnees codes transmis par l'intermediaire de reseaux de transmission de donnees orientes paquets et procede et dispositif de codage et decodage de paquets de donnees a transmettre par l'intermediaire de reseaux de transmission de donnees orientes paquets
US20070089038A1 (en) * 2005-10-17 2007-04-19 Newport Media, Inc. Error detection and correction in data transmission packets
US7228489B1 (en) * 2003-12-26 2007-06-05 Storage Technology Corporation Soft viterbi Reed-Solomon decoder

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE4416203C2 (de) 1994-05-06 1996-03-14 Siemens Ag Einrichtung zum Bestimmen von Schadstoffen in einem flüssigen Brennstoff
US6389573B1 (en) * 1999-06-29 2002-05-14 Maxtor Corporation Enhanced read retrial scheme
US8441913B2 (en) * 2005-09-27 2013-05-14 Qualcomm Incorporated Switching diversity in broadcast OFDM systems based on multiple receive antennas

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2185367A (en) * 1985-12-11 1987-07-15 Nippon Telegraph & Telephone Method for decoding error correcting block codes
EP0844741A2 (fr) * 1996-11-21 1998-05-27 Matsushita Electric Industrial Co., Ltd. Dispositif de correction d'erreur
US6301681B1 (en) * 1998-01-07 2001-10-09 Pocketmail Inc. Messaging communication protocol
US20030139140A1 (en) * 2002-01-23 2003-07-24 Tao Chen Selective combining of multiple non-synchronous transmissions in a wireless communication system
WO2004038931A2 (fr) * 2002-10-25 2004-05-06 Qualcomm Incorporated Procede et systeme permettant de combiner des codes dans un decodeur externe dans un systeme de communication
WO2005034413A1 (fr) * 2003-09-30 2005-04-14 Siemens Aktiengesellschaft Procede et dispositif de decodage de paquets de donnees codes transmis par l'intermediaire de reseaux de transmission de donnees orientes paquets et procede et dispositif de codage et decodage de paquets de donnees a transmettre par l'intermediaire de reseaux de transmission de donnees orientes paquets
US7228489B1 (en) * 2003-12-26 2007-06-05 Storage Technology Corporation Soft viterbi Reed-Solomon decoder
US20070089038A1 (en) * 2005-10-17 2007-04-19 Newport Media, Inc. Error detection and correction in data transmission packets

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
GULLIVER T A: "Diversity combining and Reed-Solomon coding for fast frequency hopped noncoherent MFSK", PROC., IEEE MILITARY COMMUNICATIONS CONFERENCE, MILCOM'90, 30 September 1990 (1990-09-30), pages 106 - 110, XP010002754 *

Also Published As

Publication number Publication date
US20110131475A1 (en) 2011-06-02
FR2953345B1 (fr) 2015-12-11
US8423877B2 (en) 2013-04-16

Similar Documents

Publication Publication Date Title
EP2274852B1 (fr) Procédé de décodage d&#39;un signal mettant en oeuvre une construction progressive d&#39;un arbre de décodage, produit programme d&#39;ordinateur et dispositif de décodage correspondants
FR2845227A1 (fr) Procede de reception d&#39;un signal module selon une technique de codage multi-niveaux, procede de decodage, dispositif de reception, systeme de codage-decodage et applications correspondant
FR2910201A1 (fr) Systeme de telecommunication a adaptation de liaison
EP2606583A1 (fr) Procede et dispositif de relayage dans un reseau de communication
EP2957057A1 (fr) Procede et dispositif de prediction des performances d&#39;un systeme de communication sur un canal de transmission
EP2193620B8 (fr) Procede et equipement de transmission de donnees depuis l&#39;infrastructure d&#39;un reseau de radiocommunication vers des equipements utilisateur
FR2952252A1 (fr) Procede et dispositif de decodage, produit programme d&#39;ordinateur, moyen de stockage correspondants et noeud destination correspondants
FR2837044A1 (fr) Procede de modulation et de determination du nombre de bits a transmettre sur un canal de transmission
EP3084995A1 (fr) Procédé de transmission d&#39;un signal numérique pour un système marc a un relais half-duplex dynamique, produit programme et dispositif relais correspondants
FR2960725A1 (fr) Procede et dispositif de configuration d&#39;un schema d&#39;encodage/decodage global dans un reseau de communication, produit programme d&#39;ordinateur et moyen de stockage correspondants
EP2415193B1 (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
FR2953345A1 (fr) Procede de determination d&#39;une copie a decoder et d&#39;un vecteur d&#39;effacements associe, produit programme d&#39;ordinateur, moyen de stockage et dispositif recepteur correspondants.
WO2015092303A1 (fr) Procede de transmission d&#39;un signal numerique pour un systeme marc a plusieurs relais half-duplex dynamiques, produit programme et dispositif relais correspondants
EP2478681A1 (fr) Procede de transmission d&#39;un signal numerique pour un systeme marc avec relais half-duplex, produit programme et dispositif relais correspondants
FR2948246A1 (fr) Procede et dispositif d&#39;allocation de bande passante liberee dans un reseau de communication, produit programme d&#39;ordinateur et moyen de stockage correspondants
WO2006048374A1 (fr) Procede de reception iteratif pour systeme de type mimo, recepteur et programme d&#39;ordinateur correspondants
WO2006005835A1 (fr) Systeme de compensation de dephasage pour turbo decodeur
WO2015197990A1 (fr) Procédé de transmission dynamique et sélectif fd-dsdf d&#39;un signal numérique pour un système marc avec un relais full-duplex, produit programme et dispositif relais correspondants
EP2245779B1 (fr) Procede de decodage d&#39;un signal transmis dans un systeme multi-antennes, produit programme d&#39;ordinateur et dispositif de decodage correspondants
EP2722992B1 (fr) Méthode de codage pour canal à évanouissement quasi-périodique
EP4142247A1 (fr) Procede de transmission et dispositif noeud implementant ledit procede
EP2893679A1 (fr) Procede d&#39;emission cooperative, signal, entite source, entite relais, procede de reception, entite destinataire, systeme et programme d&#39;ordinateur correspondant
EP2191583B1 (fr) Codage spatio-temporel pour systeme cooperatif
FR2932628A1 (fr) Procede et dispositif de decodage par commutation d&#39;un mode multicopies vers un mode monocopie, produit programme d&#39;ordinateur et moyen de stockage correspondants
FR2941340A1 (fr) Procede et dispositif de configuration, permettant de determiner des noeuds participant a un codage reseau dans un reseau maille, produit programme d&#39;ordinateur et moyen de stockage correspondants

Legal Events

Date Code Title Description
PLFP Fee payment

Year of fee payment: 7

ST Notification of lapse

Effective date: 20170831