FR2804556A1 - Procede et dispositif de decodage a maximum de vraisemblance associes a un turbodecodage, procede et dispositif de codage correspondants et systemes les mettant en oeuvre - Google Patents
Procede et dispositif de decodage a maximum de vraisemblance associes a un turbodecodage, procede et dispositif de codage correspondants et systemes les mettant en oeuvre Download PDFInfo
- Publication number
- FR2804556A1 FR2804556A1 FR0001254A FR0001254A FR2804556A1 FR 2804556 A1 FR2804556 A1 FR 2804556A1 FR 0001254 A FR0001254 A FR 0001254A FR 0001254 A FR0001254 A FR 0001254A FR 2804556 A1 FR2804556 A1 FR 2804556A1
- Authority
- FR
- France
- Prior art keywords
- decoding
- sequence
- data
- elementary
- data frame
- 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
Links
Classifications
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, 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/37—Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35
- H03M13/39—Sequence estimation, i.e. using statistical methods for the reconstruction of the original codes
- H03M13/41—Sequence estimation, i.e. using statistical methods for the reconstruction of the original codes using the Viterbi algorithm or Viterbi processors
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, 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/29—Coding, 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/2957—Turbo codes and decoding
Landscapes
- Physics & Mathematics (AREA)
- Probability & Statistics with Applications (AREA)
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Error Detection And Correction (AREA)
Abstract
Pour décoder une trame de données provenant d'une source d'information, cette trame de données ayant été préalablement codée au moyen d'un code correcteur d'erreurs comportant au moins un code constitutif élémentaire et ayant été transmise sur un canal de transmission bruité, lors de la réception de la trame de données : on effectue une première opération de décodage (603), consistant à décoder la trame de données suivant une technique de décodage adaptée à décoder le code correcteur d'erreurs en minimisant le taux d'erreur symbole, cette première opération de décodage fournissant une estimation sur des bits représentatifs du code constitutif élémentaire, et on effectue une seconde opération de décodage (605), consistant à décoder l'estimation suivant une technique de décodage à maximum de vraisemblance adaptée à décoder le code constitutif élémentaire.
Description
<Desc/Clms Page number 1>
La présente invention se rapporte à un procédé et à un dispositif de décodage à maximum de vraisemblance associés à un turbodécodage, à un procédé et à un dispositif de décodage correspondants, et à des systèmes les mettant en #uvre.
Classiquement, un turbocodeur est constitué de trois parties essentielles : deux codeurs convolutifs récursifs systématiques élémentaires et un entrelaceur.
Le décodeur associé est constitué des deux décodeurs élémentaires à entrées et sorties dites douces correspondant aux codeurs convolutifs, d'un entrelaceur et de son entrelaceur inverse (appelé aussi "désentrelaceur"). Les deux décodeurs élémentaires sont à sorties douces et déterminent une mesure de fiabilité associée à chaque symbole décodé Ils minimisent généralement le taux d'erreur symbole.
On trouvera une description des turbocodes dans l'article "Near Shannon limit error-correcting coding and decoding. turbo codes" correspondant à la présentation faite par C BERROU, A GLAVIEUX et P.
THITIMAJSHIMA lors de la conférence ICC à Genève en mai 1993
Le turbodécodage est une opération itérative bien connue de l'homme du métier. Pour plus de détails, on pourra se référer : - au rapport de S. BENEDETTO, G. MONTORSI (Politecnico di Tonno, Italie), D DIVSALAR et F. POLLARA (Jet Propulsion Laboratory, USA) intitulé "Soft Output decoding algorithms in Iterative decoding of turbo codes" publié par JPL dans TDA Progress Report 42-124, en février 96 ;
Le turbodécodage est une opération itérative bien connue de l'homme du métier. Pour plus de détails, on pourra se référer : - au rapport de S. BENEDETTO, G. MONTORSI (Politecnico di Tonno, Italie), D DIVSALAR et F. POLLARA (Jet Propulsion Laboratory, USA) intitulé "Soft Output decoding algorithms in Iterative decoding of turbo codes" publié par JPL dans TDA Progress Report 42-124, en février 96 ;
<Desc/Clms Page number 2>
- à l'article de L. R BAHL, J. COCKE, F. JELINEK et J. RAVIV intitulé "Optimal decoding of linear codes for minimizing symbol error rate", publié dans la revue IEEE Transactions on Information Theory, pages 284 à 287 en mars 1974
L'utilisation d'un algorithme minimisant le taux d'erreur symbole (SER, de l'anglais "Symbol Error Rate" ou BER, taux d'erreur binaire, de l'anglais "Bit Error Rate", lorsque les symboles sont binaires) lors d'une opération de turbodécodage peut entraîner un taux d'erreur trame (FER, de l'anglais "Frame Error Rate") relativement élevé.
L'utilisation d'un algorithme minimisant le taux d'erreur symbole (SER, de l'anglais "Symbol Error Rate" ou BER, taux d'erreur binaire, de l'anglais "Bit Error Rate", lorsque les symboles sont binaires) lors d'une opération de turbodécodage peut entraîner un taux d'erreur trame (FER, de l'anglais "Frame Error Rate") relativement élevé.
Ceci est particulièrement gênant lorsqu'une application est très sensible à des erreurs sur les symboles ou lorsque, dans un système de communication, la présence d'une seule erreur sur une donnée binaire entraîne un rejet et/ou une retransmission d'une trame entière
La présente invention a pour but de remédier aux inconvénients précités
Dans ce but, la présente invention propose un procédé de décodage d'une trame de données provenant d'une source d'information, cette trame de données ayant été préalablement codée au moyen d'un code correcteur d'erreurs comportant au moins un code constitutif élémentaire et ayant été transmise sur un canal de transmission bruité de la source d'information vers un récepteur de données, remarquable en ce que, lors de la réception de la trame de données - on effectue une première opération de décodage, consistant à décoder la trame de données suivant une technique de décodage adaptée à décoder le code correcteur d'erreurs en minimisant le taux d'erreur symbole, cette première opération de décodage fournissant une estimation sur des bits représentatifs du code constitutif élémentaire ; et - on effectue une seconde opération de décodage, consistant à décoder cette estimation suivant une technique de décodage à maximum de
vraisemblance (ML, en anglais "Maximum Likelihoocf') adaptée à décoder le code constitutif élémentaire.
La présente invention a pour but de remédier aux inconvénients précités
Dans ce but, la présente invention propose un procédé de décodage d'une trame de données provenant d'une source d'information, cette trame de données ayant été préalablement codée au moyen d'un code correcteur d'erreurs comportant au moins un code constitutif élémentaire et ayant été transmise sur un canal de transmission bruité de la source d'information vers un récepteur de données, remarquable en ce que, lors de la réception de la trame de données - on effectue une première opération de décodage, consistant à décoder la trame de données suivant une technique de décodage adaptée à décoder le code correcteur d'erreurs en minimisant le taux d'erreur symbole, cette première opération de décodage fournissant une estimation sur des bits représentatifs du code constitutif élémentaire ; et - on effectue une seconde opération de décodage, consistant à décoder cette estimation suivant une technique de décodage à maximum de
vraisemblance (ML, en anglais "Maximum Likelihoocf') adaptée à décoder le code constitutif élémentaire.
<Desc/Clms Page number 3>
Ainsi, on tire profit de la première opération de décodage, qui améliore la fiabilité d'au moins une partie des symboles représentatifs de la sortie d'un codeur élémentaire et on améliore le taux d'erreur trame global grâce à la seconde opération de décodage. La solution est par ailleurs simple à mettre en #uvre.
Selon une caractéristique particulière, le code correcteur d'erreurs est un turbocode et la première opération de décodage est une opération de turbodécodage
Cette caractéristique est particulièrement avantageuse puisque les procédés de turbodécodage offrent des performances remarquables en ce qui concerne les taux d'erreur symbole en fournissant des estimations sur les bits d'information de plus en plus fiables lorsque le nombre d'itérations augmente et peuvent produire aussi une estimation améliorée sur des bits de parité correspondant à un code constitutif élémentaire du turbocode
Selon une caractéristique particulière, le turbocode est de type convolutif parallèle
Selon une autre caractéristique particulière, le turbocode est de type série ou hybride parallèle/série.
Cette caractéristique est particulièrement avantageuse puisque les procédés de turbodécodage offrent des performances remarquables en ce qui concerne les taux d'erreur symbole en fournissant des estimations sur les bits d'information de plus en plus fiables lorsque le nombre d'itérations augmente et peuvent produire aussi une estimation améliorée sur des bits de parité correspondant à un code constitutif élémentaire du turbocode
Selon une caractéristique particulière, le turbocode est de type convolutif parallèle
Selon une autre caractéristique particulière, le turbocode est de type série ou hybride parallèle/série.
Les avantages de ces caractéristiques sont ceux du type de turbocode considéré : avec les turbocodes convolutifs parallèles, on optimise le taux d'erreur à très faible rapport signal sur bruit ; avec les turbocodes convolutifs séries ou hybrides, on optimise le taux d'erreur à plus fort rapport signal sur bruit
Selon une caractéristique particulière, la première opération de décodage utilise un algorithme de type BCJR (du nom de ses auteurs BAHL, COCKE, JELINEK et RAVIV).
Selon une caractéristique particulière, la première opération de décodage utilise un algorithme de type BCJR (du nom de ses auteurs BAHL, COCKE, JELINEK et RAVIV).
Cette caractéristique est particulièrement avantageuse puisque le BCJR est un algorithme optimisant le taux d'erreur symbole et que sa mise en #uvre présente une complexité raisonnable.
Selon une caractéristique particulière, lors de la première opération de décodage, on effectue itérativement :
<Desc/Clms Page number 4>
- au moins une première opération élémentaire de décodage d'un code correcteur d'erreurs, consistant à décoder une première sous-trame de la trame de données par une technique de décodage mettant en #uvre un premier polynôme diviseur et prenant en compte une première séquence d'information a priori, de façon à obtenir une première séquence d'information extrinsèque et des première et deuxième séquences estimées ; - au moins une opération d'entrelacement d'une séquence représentative de la trame de données, prenant en compte la première séquence d'information extrinsèque, de façon à obtenir une deuxième séquence d'information a priori et une séquence entrelacée représentative de la trame de données ; - au moins une deuxième opération élémentaire de décodage d'un code correcteur d'erreurs, consistant à décoder une deuxième sous-trame de la trame de données par une technique de décodage mettant en #uvre un deuxième polynôme diviseur et prenant en compte la deuxième séquence d'information a priori et la séquence entrelacée, de façon à obtenir une deuxième séquence d'information extrinsèque et des troisième et quatrième séquences estimées , et - au moins une opération de désentrelacement de la deuxième séquence d'information extrinsèque, de façon à obtenir la première séquence d'information a priori
Cette caractéristique permet de bénéficier des avantages généraux liés aux turbocodes
Selon une caractéristique particulière, lors de la seconde opération de décodage : - on effectue une première opération de décodage à maximum de vraisemblance, consistant à recevoir les première et deuxième séquences estimées obtenues à l'issue de la première opération élémentaire de décodage, de façon à obtenir une cinquième séquence estimée représentative de la trame de données
Cette caractéristique permet de bénéficier des avantages généraux liés aux turbocodes
Selon une caractéristique particulière, lors de la seconde opération de décodage : - on effectue une première opération de décodage à maximum de vraisemblance, consistant à recevoir les première et deuxième séquences estimées obtenues à l'issue de la première opération élémentaire de décodage, de façon à obtenir une cinquième séquence estimée représentative de la trame de données
<Desc/Clms Page number 5>
Selon une caractéristique particulière, lors de la seconde opération de décodage, en plus ou en lieu et place de la première opération de décodage à maximum de vraisemblance : - on effectue une seconde opération de décodage à maximum de vraisemblance, consistant à recevoir en entrée les troisième et quatrième séquences estimées obtenues à l'issue de la seconde opération élémentaire de décodage, de façon à obtenir une sixième séquence estimée.
Les deux caractéristiques précédentes permettent d'améliorer les performances en termes de taux d'erreur trame, tout en conservant une mise en #uvre simple.
Selon une caractéristique particulière, le procédé de décodage comporte en outre : - une opération de désentrelacement de la sixième séquence estimée, de façon à obtenir une septième séquence estimée représentative de la trame de données.
Cette caractéristique permet de retrouver le même format de séquence qu'initialement.
Selon une caractéristique particulière, la seconde opération de décodage utilise un algorithme de type Viterbi.
Cette caractéristique est particulièrement avantageuse puisque l'algorithme de Viterbi est un algorithme optimisant le taux d'erreur trame et que sa mise en oeuvre est simple.
Selon une caractéristique particulière, le procédé de décodage comporte en outre une opération de contrôle, consistant à commander la mise en #uvre ou non de la seconde opération de décodage
Selon une caractéristique particulière, cette opération de contrôle commande la mise en #uvre de la seconde opération de décodage en fonction d'un paramètre de contrôle définissant si une optimisation du taux d'erreur trame est souhaitée ou non.
Selon une caractéristique particulière, cette opération de contrôle commande la mise en #uvre de la seconde opération de décodage en fonction d'un paramètre de contrôle définissant si une optimisation du taux d'erreur trame est souhaitée ou non.
Ainsi, on adapte le décodage aux besoins du destinataire d'information d'une façon simple.
<Desc/Clms Page number 6>
Selon une caractéristique particulière, l'opération de contrôle commande la mise en #uvre d'une opération de conversion, consistant à éliminer les données de parité dans une séquence estimée obtenue à l'issue de la première opération de décodage, de façon à obtenir une séquence de données douces, et/ou à transformer la séquence de données douces en une séquence de données dures.
Ainsi, la première opération de décodage fournit des données sous une forme standard, que celles-ci soient utilisées ou non par la seconde opération de décodage ; ceci est simple à mettre en #uvre.
Selon une caractéristique particulière, le paramètre de contrôle est fourni par la source d'information.
Ceci est particulièrement avantageux car la source maîtrise parfaitement la nature des données transmises.
Selon une caractéristique particulière, le paramètre de contrôle est fourni par le récepteur des données.
Ceci est particulièrement avantageux car le paramètre de contrôle est local. Il peut alors dépendre non seulement de l'application et du type de données utilisées mais de critères propres aux conditions de transmission : par exemple, lorsque le FER est suffisamment bas à l'issue de la mise en #uvre de la première opération de décodage ; par ailleurs, on peut souhaiter limiter ponctuellement la mise en #uvre de la seconde opération de décodage pour économiser des batteries ou diminuer un temps de latence dû au décodage.
Selon une caractéristique particulière, le paramètre de contrôle est fonction du type d'application.
Le type de décodage est alors particulièrement bien adapté à l'application considérée.
Selon une caractéristique particulière, le paramètre de contrôle diffère selon qu'on utilise ou non un protocole comportant une répétition automatique des trames erronées.
Cela permet une adaptation particulièrement bonne au type de protocole utilisé, sachant qu'on choisira d'optimiser le taux d'erreur trame si un
<Desc/Clms Page number 7>
protocole de type à répétition automatique des trames erronées est mis en #uvre.
Selon une caractéristique particulière, l'opération de contrôle pourra en outre comparer les résultats obtenus à l'issue de la première et de la seconde opérations de décodage.
Cela peut être particulièrement utile pour mesurer ponctuellement l'intérêt de mettre en #uvre la seconde opération de décodage selon des critères liés par exemple aux conditions de transmission ou aux besoins de l'application. Si la première opération de décodage est itérative, on peut aussi optimiser le nombre d'itérations de l'opération
Dans le même but que celui indiqué plus haut, la présente invention propose en outre un procédé de codage d'une trame de données issue d'une source d'information, comportant une opération de codage au moyen d'un code correcteur d'erreurs comportant au moins un code constitutif élémentaire, cette trame de données étant destinée à être transmise sur un canal de transmission bruité vers un récepteur de données et à être décodée par un procédé de décodage tel que ci-dessus, ce procédé de codage étant remarquable en ce que la source d'information fournit le paramètre de contrôle mentionné plus haut.
Dans le même but que celui indiqué plus haut, la présente invention propose en outre un procédé de codage d'une trame de données issue d'une source d'information, comportant une opération de codage au moyen d'un code correcteur d'erreurs comportant au moins un code constitutif élémentaire, cette trame de données étant destinée à être transmise sur un canal de transmission bruité vers un récepteur de données et à être décodée par un procédé de décodage tel que ci-dessus, ce procédé de codage étant remarquable en ce que la source d'information fournit le paramètre de contrôle mentionné plus haut.
Toujours dans le même but, la présente invention propose également un dispositif de décodage d'une trame de données provenant d'une source d'information, cette trame de données ayant été préalablement codée au moyen d'un code correcteur d'erreurs comportant au moins un code constitutif élémentaire et ayant été transmise sur un canal de transmission bruité de la source d'information vers un récepteur de données, remarquable en ce qu'il a un module de réception de la trame de données comportant .
- un premier module de décodage, pour décoder la trame de données suivant une technique de décodage adaptée à décoder le code correcteur d'erreurs en minimisant le taux d'erreur symbole, le premier module de décodage fournissant une estimation sur des bits représentatifs du code constitutif élémentaire , et
<Desc/Clms Page number 8>
- un second module de décodage, pour décoder l'estimation précitée suivant une technique de décodage à maximum de vraisemblance adaptée à décoder le code constitutif élémentaire.
Toujours dans le même but, la présente invention propose aussi un dispositif de codage d'une trame de données issue d'une source d'information, comportant un module de codage au moyen d'un code correcteur d'erreurs comportant au moins un code constitutif élémentaire, cette trame de données étant destinée à être transmise sur un canal de transmission bruité vers un récepteur de données et à être décodée par un dispositif de décodage tel que ci-dessus, ce dispositif de codage étant remarquable en ce que la source d'information fournit le paramètre de contrôle mentionné plus haut.
La présente invention vise aussi un appareil de traitement de signaux numériques, comportant des moyens adaptés à mettre en #uvre un procédé de décodage et/ou un procédé de codage tels que ci-dessus.
La présente invention vise aussi un appareil de traitement de signaux numériques, comportant un dispositif de décodage et/ou un dispositif de codage tels que ci-dessus.
La présente invention vise aussi un réseau de télécommunications, comportant des moyens adaptés à mettre en #uvre un procédé de décodage et/ou un procédé de codage tels que ci-dessus
La présente invention vise aussi un réseau de télécommunications, comportant un dispositif de décodage et/ou un dispositif de codage tels que cidessus.
La présente invention vise aussi un réseau de télécommunications, comportant un dispositif de décodage et/ou un dispositif de codage tels que cidessus.
La présente invention vise aussi une station mobile dans un réseau de télécommunications, comportant des moyens adaptés à mettre en #uvre un procédé de décodage et/ou un procédé de codage tels que ci-dessus.
La présente invention vise aussi une station mobile dans un réseau de télécommunications, comportant un dispositif de décodage et/ou un dispositif de codage tels que ci-dessus.
La présente invention vise aussi un dispositif de traitement de signaux représentatifs de parole, comportant un dispositif de décodage et/ou un dispositif de codage tels que ci-dessus.
<Desc/Clms Page number 9>
La présente invention vise aussi un dispositif de transmission de données comportant un émetteur adapté à mettre en #uvre un protocole de transmission par paquets, comportant un dispositif de décodage et/ou un dispositif de codage et/ou un dispositif de traitement de signaux représentatifs de parole tels que ci-dessus.
Selon une caractéristique particulière du dispositif de transmission de données, le protocole de transmission par paquets est de type ATM (mode de transfert asynchrone, en anglais "Asynchronous Transfer Mode").
En variante, le protocole de transmission par paquets est de type IP (protocole de transmission utilisé sur Internet, en anglais "Intemet Protocol").
L'invention vise aussi : - un moyen de stockage d'informations lisible par un ordinateur ou un microprocesseur conservant des instructions d'un programme informatique, permettant la mise en oeuvre d'un procédé de décodage et/ou d'un procédé de codage tels que ci-dessus, et - un moyen de stockage d'informations amovible, partiellement ou totalement, lisible par un ordinateur ou un microprocesseur conservant des instructions d'un programme informatique, permettant la mise en #uvre d'un procédé de décodage et/ou d'un procédé de codage tels que ci-dessus.
L'invention vise aussi un programme d'ordinateur comportant des séquences d'instructions pour mettre en #uvre un procédé de décodage et/ou un procédé de codage tels que ci-dessus.
Les caractéristiques particulières et les avantages du procédé de codage, des dispositifs de décodage et de codage, des différents appareils de traitement de signaux numériques, des différents réseaux de télécommunications, des différentes stations mobiles, du dispositif de traitement de signaux représentatifs de parole, du dispositif de transmission de données, des moyens de stockage d'informations et du programme d'ordinateur étant les mêmes que ceux du procédé de décodage selon l'invention, ils ne sont pas rappelés ici.
D'autres aspects et avantages de l'invention apparaîtront à la lecture de la description détaillée qui suit de modes particuliers de réalisation, donnés à
<Desc/Clms Page number 10>
titre d'exemples non limitatifs. La description se réfère aux dessins qui l'accompagnent, dans lesquels : - la figure 1 représente schématiquement un dispositif électronique comportant un dispositif de codage conforme à la présente invention, dans un mode particulier de réalisation ; - la figure 2 représente schématiquement, sous forme de schéma bloc, un dispositif de codage correspondant à un turbocode convolutif parallèle, conforme à la présente invention, dans un mode particulier de réalisation ; - la figure 3 représente schématiquement un dispositif électronique comportant un dispositif de décodage conforme à la présente invention, dans un mode particulier de réalisation ; - la figure 4 représente schématiquement, sous forme de schéma bloc, un dispositif de décodage correspondant à un turbocode convolutif parallèle, conforme à la présente invention, dans un mode particulier de réalisation ; - la figure 5 est un organigramme représentant schématiquement le fonctionnement d'un dispositif de codage tel que celui inclus dans le dispositif électronique de la figure 1, dans un mode particulier de réalisation ; - la figure 6 est un organigramme représentant schématiquement des opérations de décodage et de correction d'erreur mises en #uvre par un dispositif de décodage tel que celui inclus dans le dispositif électronique de la figure 3, conformément à la présente invention, dans un mode particulier de réalisation ; - la figure 7 représente schématiquement un dispositif de décodage correspondant à un turbocode convolutif parallèle conforme à une variante de réalisation de la présente invention ; et - la figure 8 est un organigramme représentant schématiquement une opération de turbodécodage proprement dite, dans une variante de réalisation de la présente invention.
De façon générale, un turbocodeur du type de ceux apparaissant dans l'invention, ayant pour rendement 1/3, peut être considéré comme une paire de codeurs élémentaires récursifs convolutifs mettant en #uvre des
<Desc/Clms Page number 11>
polynômes diviseurs. Le premier codeur produit une séquence de contrôle à partir d'une séquence de symboles à coder u et le second codeur produit une séquence de contrôle à partir d'une séquence entrelacée u* obtenue par entrelacement de la séquence u.
Soit hi(x) le polynôme multiplicateur du premier codeur
Soit h2(x) le polynôme multiplicateur du deuxième codeur.
Soit h2(x) le polynôme multiplicateur du deuxième codeur.
Soit gi(x) le polynôme diviseur du premier codeur, relativement premier (en anglais "relatively prime") avec h1(x).
Soit g2(x) le polynôme diviseur du deuxième codeur, relativement premier avec h2(x).
On suppose que les polynômes gi(x). g2(x), hi(x) et h2(x) ont tous un même degré m, bien que l'invention ne se limite pas à ce cas : l'invention s'étend au cas où les codeurs élémentaires sont quelconques.
Dans la suite, on supposera que gi(x) = g2(x). Par convention, gi(x) et g2(x) seront notés g(x).
Le premier codeur produit une séquence de contrôle à partir d'une séquence de symboles d'informations binaires à coder u de longueur n-m.
La séquence de symboles u possède une représentation polynomiale u (x), de degré n-m-1, avec des coefficients binaires
Généralement, on initialise chacun des codeurs élémentaires à un état nul et au moins un des codeurs élémentaires détermine m bits dits d'ajout ou de padding, qu'il ajoute à la séquence u pour former une séquence a de longueur n et multiple de g. Le premier codeur aura alors un état final nul après codage de la séquence a. m-1 Ainsi, le premier codeur code une séquence a (x) u (x) +#p1,xi+n i=0 en une séquence v1(x) = a(x).h1(x)/g(x) où - hi(x) et g (x) deux polynômes relativement premiers entre eux, et - les m symboles binaires p1, (bits de padding) sont choisis de telle façon que a (x) un multiple de g(x).
Généralement, on initialise chacun des codeurs élémentaires à un état nul et au moins un des codeurs élémentaires détermine m bits dits d'ajout ou de padding, qu'il ajoute à la séquence u pour former une séquence a de longueur n et multiple de g. Le premier codeur aura alors un état final nul après codage de la séquence a. m-1 Ainsi, le premier codeur code une séquence a (x) u (x) +#p1,xi+n i=0 en une séquence v1(x) = a(x).h1(x)/g(x) où - hi(x) et g (x) deux polynômes relativement premiers entre eux, et - les m symboles binaires p1, (bits de padding) sont choisis de telle façon que a (x) un multiple de g(x).
<Desc/Clms Page number 12>
A titre d'illustration, on considère dans ce qui suit un polynôme diviseur g (x) à 1 +X 2+X3.
On considère une séquence à coder de 144 bits (n = 147) et des polynômes hi(x) et h2(x) tous deux égaux à h(x)=1+x+x3.
Un entrelaceur ayant une mise en #uvre simple est par exemple un entrelaceur "x vers x32" défini comme suit : si a désigne la séquence d'entrée et a* la séquence permutée, cet entrelaceur permute chaque bit en position i dans a vers une position (32.imodulo 147) dans a*.
Cet entrelaceur préserve la divisibilité par g, tout en conservant une mise en #uvre simple : si a est divisible par g alors a* le sera aussi. Ainsi, le deuxième codeur initialisé à un état nul aura un état final nul après codage de la séquence a*. Le turbocodeur a alors une propriété de retour à zéro de ses codeurs élémentaires.
Le deuxième codeur code une séquence a* (x) une séquence V2(X) = a*(x).h2(x)/g(x) où h2(x) et g (x) deux polynômes relativement premiers entre eux.
Globalement, le turbocodeur produit les séquences a, v1 et v2 qui seront transmises sur un canal.
L'utilisation d'un entrelaceur préservant la divisibilité par g simplifie la mise en #uvre d'un turbocodeur et permet dans certains cas d'améliorer les performances Néanmoins, en variante, on pourra aussi utiliser des turbocodeurs qui n'ont pas la propriété de retour à zéro des codeurs élémentaires ; on trouve dans l'art antérieur diverses façons de traiter ce problème, notamment :
1. Absence de retour à zéro : on initialise les codeurs à l'état nul et on les laisse évoluer vers un état quelconque sans intervenir.
1. Absence de retour à zéro : on initialise les codeurs à l'état nul et on les laisse évoluer vers un état quelconque sans intervenir.
2. Remise à zéro du premier codeur : on initialise les codeurs à l'état nul et on ajoute des bits de padding pour imposer un état final nul uniquement au premier codeur.
3. "Turbo codes convolutifs orientés trame" (FOCTC, en anglais "Frame Oriented Convolutional Turbo Codes") . on initialise le premier codeur et on prend comme état initial du second codeur l'état final du premier codeur.
<Desc/Clms Page number 13>
Lorsqu'on utilise une classe d'entrelaceurs ayant certaines propriétés, l'état final du second codeur est nul. On se reportera utilement à ce sujet à l'article de C.
BERROU et M. JEZEQUEL intitulé "Frame oriented convolutional turbo-codes", in Electronics Letters, Vol. 32, n 15,18 juillet 1996, pages 1362 à 1364, Stevenage, Herts, Grande Bretagne.
4. Remises à zéro indépendantes des deux codeurs : oninitialise les codeurs à l'état nul et on ajoute de façon indépendante des bits de padding à chacune des séquences entrant dans les codeurs. Une description générale de remises à zéro indépendantes des codeurs est donnée dans le rapport de D.
DIVSALAR et F. POLLARA intitulé "TDA progress report 42-123 On the design of turbo codes", publié en novembre 1995 par JPL (Jet Propulsion Laboratory).
5 Remises à zéro intrinsèques des deux codeurs - on initialise les codeurs à l'état nul et on ajoute des bits de padding à la séquence qui entre dans le premier codeur. Lorsqu'on utilise un entrelaceur garantissant le retour à zéro tel qu'exposé dans le document de brevet FR-A-2 773 287 et qu'on entrelace la séquence comprenant les bits de padding, le second codeur a automatiquement un état final nul.
Pour chacune des solutions de l'art antérieur mentionnées ci-dessus, il existe une terminaison de treillis adaptée pour chaque décodeur correspondant, que celui-ci soit de type minimisant le SER ou ML conformément à l'invention. Ces décodeurs prennent en compte la terminaison ou non des treillis, ainsi que, le cas échéant, le fait que chacun des deux codeurs utilise les mêmes bits de padding.
On notera qu'un algorithme utilisé pour minimiser le SER est l'algorithme BCJR. On trouvera notamment une description de l'algorithme BCJR dans l'article de L.R. BAHL, J. COCKE, F. JELINEK et J. RAVIV mentionné plus haut.
Par ailleurs, pour décoder les codes convolutifs, un algorithme ML très largement utilisé est l'algorithme de Viterbi, décrit notamment dans l'article de G. David FORNEY, Jr., intitulé "The Viterbi algorithm", publié dans la revue Proceedings of the IEEE, vol. 61, no. 3, en mars 1973.
<Desc/Clms Page number 14>
On décrit maintenant un mode particulier de réalisation de la présente invention, à l'aide des figures 1 à 8.
La figure 1 illustre schématiquement la constitution d'une station de réseau ou station de codage informatique, sous forme de schéma synoptique.
Cette station comporte un clavier 111, un écran 109, une source d'information externe 110, un émetteur hertzien 106, conjointement reliés à un port d'entrées/sorties 103 d'une carte de traitement 101.
La carte de traitement 101 comporte, reliés entre eux par un bus d'adresses et de données 102 : - une unité centrale de traitement 100 ; - une mémoire vive RAM 104 ; - une mémoire morte ROM 105 ;et - le port d'entrées/sorties 103.
Chacun des éléments illustrés en figure 1 est bien connu de l'homme du métier des micro-ordinateurs et des systèmes de transmission et, plus généralement, des systèmes de traitement de l'information. Ces éléments communs ne sont donc pas décrits ici. On observe, cependant, que : - la source d'information 110 est, par exemple, un périphérique d'interface, un capteur, un démodulateur, une mémoire externe ou un autre système de traitement d'information (non représenté), et est de préférence adaptée à fournir des séquences de signaux représentatifs de parole, de messages de service ou de données multimédia, sous forme de séquences de données binaires, et que - l'émetteur hertzien 106 est adapté à mettre en oeuvre un protocole de transmission par paquets sur un canal non filaire, et à transmettre ces paquets sur un tel canal.
On observe en outre que le mot "registre" utilisé dans la description désigne, dans chacune des mémoires 104 et 105, aussi bien une zone mémoire de faible capacité (quelques données binaires) qu'une zone mémoire de grande capacité (permettant de stocker un programme entier).
La mémoire vive 104 conserve des données, des variables et des résultats intermédiaires de traitement, dans des registres de mémoire portant,
<Desc/Clms Page number 15>
dans la description, les mêmes noms que les données dont ils conservent les valeurs. La mémoire vive 104 comporte notamment : - un registre "données source", dans lequel sont conservées, dans l'ordre de leur arrivée sur le bus 102, les données binaires en provenance de la source d'information 110, sous forme d'une séquence u, - un registre "nb~données", qui conserve un nombre entier correspondant au nombre de données binaires dans le registre "données source",
- un registre "données~permutées" , dans lequel sont conservées, dans l'ordre de leur arrivée sur le bus 102, les données binaires permutées, comme décrit plus loin à l'aide de la figure 5, sous forme d'une séquence a*, et - un registre "données~à~émettre", dans lequel sont conservées les séquences à transmettre.
- un registre "données~permutées" , dans lequel sont conservées, dans l'ordre de leur arrivée sur le bus 102, les données binaires permutées, comme décrit plus loin à l'aide de la figure 5, sous forme d'une séquence a*, et - un registre "données~à~émettre", dans lequel sont conservées les séquences à transmettre.
La mémoire morte 105 est adaptée à conserver, dans des registres qui, par commodité, possèdent les mêmes noms que les données qu'ils conservent .
- le programme de fonctionnement de l'unité centrale de traitement 100, dans un registre "program", - la séquence g, dans un registre "g", - le degré m de g (x), un registre "m", - la séquence h, dans un registre "h", - la valeur de n, dans un registre "n", et
- le tableau définissant l'entrelaceur, dans un registre "entrelacez".
- le tableau définissant l'entrelaceur, dans un registre "entrelacez".
L'unité centrale de traitement 100 est adaptée à mettre en oeuvre l'organigramme illustré en figure 5.
On observe, en figure 2, qu'un dispositif de codage correspondant à un turbocode convolutif parallèle avec entrelaceur préservant la divisibilité, conforme à la présente invention, comporte notamment - une entrée de symboles à coder 201, où la source d'information 110 fournit une séquence de symboles binaires à transmettre, ou "à coder", u, - un premier codeur 202, qui fournit, à partir de la séquence u, deux séquences a et v1 de symboles représentatives de la séquence u,
<Desc/Clms Page number 16>
- un entrelaceur 203, qui fournit, à partir de la séquence a, une séquence entrelacée a*, dont les symboles sont les symboles de la séquence a, mais dans un ordre différent, et - un second codeur 204, qui fournit, à partir de la séquence entrelacée a*, une séquence v2 de symboles représentative de la séquence a*.
Les trois séquences a, v1 et v2 sont transmises pour être, ensuite, décodées.
Dans la suite de la description, on s'intéresse de préférence aux turbocodes basés sur des entrelaceurs de type "x vers x3" de taille 147, bien que la présente invention ne se limite pas à ce type de turbocodes, mais concerne, bien plus généralement, tous les turbocodes convolutifs, que ceux-ci soient parallèles, séries ou hybrides, tels que décrits dans le rapport de D.
DIVSALAR et F. POLLARA (Jet Propulsion Laboratory, USA) intitulé "Hybrid concatenated codes and iterative decoding", publié par JPL TDA Progress Report 42-130 en août 1997.
La figure 3 illustre schématiquement la constitution d'une station de réseau ou station de décodage informatique, sous forme de schéma synoptique.
Cette station comporte un clavier 311, un écran 309, un destinataire d'information externe 310, un récepteur hertzien 306, conjointement reliés à un port d'entrées/sorties 303 d'une carte de traitement 301.
La carte de traitement 301 comporte, reliés entre eux par un bus d'adresses et de données 302 : - une unité centrale de traitement 300 ; - une mémoire vive RAM 304 ; - une mémoire morte ROM 305 , et - le port d'entrées/sorties 303.
Chacun des éléments illustrés en figure 3 est bien connu de l'homme du métier des micro-ordinateurs et des systèmes de transmission et, plus généralement, des systèmes de traitement de l'information. Ces éléments communs ne sont donc pas décrits ici. On observe, cependant, que :
<Desc/Clms Page number 17>
- le destinataire d'information 310 est, par exemple, un périphérique d'interface, un afficheur, un modulateur, une mémoire externe ou un autre système de traitement d'information (non représenté), et est de préférence adapté à recevoir des séquences de signaux représentatifs de parole, de messages de service ou de données multimédia, sous forme de séquences de données binaires, et que - le récepteur hertzien 306 est adapté à mettre en #uvre un protocole de transmission par paquets sur un canal non filaire, et à recevoir ces paquets sur un tel canal.
On observe, en outre, que le mot "registre" utilisé dans la description désigne, dans chacune des mémoires 304 et 305, aussi bien une zone mémoire de faible capacité (quelques données binaires) qu'une zone mémoire de grande capacité (permettant de stocker un programme entier).
La mémoire vive 304 conserve des données, des variables et des résultats intermédiaires de traitement, dans des registres de mémoire portant, dans la description, les mêmes noms que les données dont ils conservent les valeurs. La mémoire vive 304 comporte notamment : - un registre "données reçues", dans lequel est conservée, dans l'ordre d'arrivée des données binaires sur le bus 302 en provenance du canal de transmission, une estimation douce de ces données binaires, équivalente à une mesure de fiabilité, sous forme d'une séquence r, ainsi qu'une estimation de la séquence entrelacée a*,
- un registre "inf exfrinsèques", dans lequel sont conservées, à un instant donné, les informations extrinsèques correspondant à la séquence a, et éventuellement aux séquences v1 et Y2, - un registre "données estimées", dans lequel sont conservées, à
un instant donné, des séquences estimées â, v'l, y|2l â*, â2*, qui et û2 utilisées ou fournies en sortie par le dispositif de décodage de l'invention, comme décrit plus loin à l'aide de la figure 4,
- un registre "nb iteration", qui conserve un nombre entier correspondant à un compteur d'itérations effectuées par le dispositif de
- un registre "inf exfrinsèques", dans lequel sont conservées, à un instant donné, les informations extrinsèques correspondant à la séquence a, et éventuellement aux séquences v1 et Y2, - un registre "données estimées", dans lequel sont conservées, à
un instant donné, des séquences estimées â, v'l, y|2l â*, â2*, qui et û2 utilisées ou fournies en sortie par le dispositif de décodage de l'invention, comme décrit plus loin à l'aide de la figure 4,
- un registre "nb iteration", qui conserve un nombre entier correspondant à un compteur d'itérations effectuées par le dispositif de
<Desc/Clms Page number 18>
décodage concernant une séquence r reçue, comme décrit plus loin à l'aide de la figure 4, et - un registre "nb~données", qui conserve un nombre entier correspondant au nombre de données binaires dans le registre "données~reçues" .
La mémoire morte 305 est adaptée à conserver, dans des registres qui, par commodité, possèdent les mêmes noms que les données qu'ils conservent : - le programme de fonctionnement de l'unité centrale de traitement 300, dans un registre "Program", - le tableau définissant l'entrelaceur et son entrelaceur inverse, dans un registre "Entrelaceur', - la séquence g, dans un registre "g", - le degré m de g (x), un registre "m", - la séquence h, dans un registre "h", - la valeur de n, dans un registre "n", et - le nombre prédéterminé maximal d'itérations à effectuer lors de l'opération de turbodécodage 603 d'une séquence u reçue, décrite plus loin à l'aide de la figure 6, dans un registre "nb~iteration~max"
L'unité centrale de traitement 300 est adaptée à mettre en oeuvre l'organigramme illustré en figure 6.
L'unité centrale de traitement 300 est adaptée à mettre en oeuvre l'organigramme illustré en figure 6.
En figure 4, on observe qu'un dispositif de décodage adapté à décoder les séquences issues d'un dispositif de codage tel que celui inclus dans le dispositif électronique de la figure 1 comporte notamment .
- trois entrées 401,402 et 403 de séquences représentatives de a,
Y1 et v2 qui, par commodité, sont aussi notées a, Y1 et V2, la séquence reçue, constituée de ces trois séquences, étant notée r ; - un dispositif de turbodécodage 400, - un premier décodeur à maximum de vraisemblance 413, - un deuxième décodeur à maximum de vraisemblance 414, - un entrelaceur 408,
Y1 et v2 qui, par commodité, sont aussi notées a, Y1 et V2, la séquence reçue, constituée de ces trois séquences, étant notée r ; - un dispositif de turbodécodage 400, - un premier décodeur à maximum de vraisemblance 413, - un deuxième décodeur à maximum de vraisemblance 414, - un entrelaceur 408,
<Desc/Clms Page number 19>
- deux sorties 411 et 412 de séquences estimées de u, notées û1 et û2.
Le dispositif de turbodécodage 400 comporte notamment : - les trois entrées 401, 402 et 403, - un premier décodeur 404 à entrée et sortie douces (en anglais "soft input soft output) correspondant au codeur 202 (figure 2) :
Le premier décodeur 404 reçoit en entrée : - les séquences a et v1, et - une séquence d'information a priori W4.
Le premier décodeur 404 reçoit en entrée : - les séquences a et v1, et - une séquence d'information a priori W4.
Le premier décodeur 404 fournit en sortie : - une séquence d'information extrinsèque w1, - une séquence estimée â sur une sortie 410, et - une séquence estimée v'1 sur une sortie 416
Le dispositif de turbodécodage illustré en figure 4 comporte en outre : - un entrelaceur 405 (noté "Entrelaceur #" sur la figure 4), basé sur la même permutation que celle définie par l'entrelaceur 203 utilisé dans le dispositif de codage ;l'entrelaceur 405 reçoit en entrée les séquences a et W1 et les entrelace respectivement en des séquences a* et w2 ; - le second décodeur 406 à entrée et sortie douces, correspondant au second codeur 204.
Le dispositif de turbodécodage illustré en figure 4 comporte en outre : - un entrelaceur 405 (noté "Entrelaceur #" sur la figure 4), basé sur la même permutation que celle définie par l'entrelaceur 203 utilisé dans le dispositif de codage ;l'entrelaceur 405 reçoit en entrée les séquences a et W1 et les entrelace respectivement en des séquences a* et w2 ; - le second décodeur 406 à entrée et sortie douces, correspondant au second codeur 204.
Ce second décodeur 406 reçoit en entrée - les séquences a* et v2, et - la séquence d'information a priori w2.
Le second décodeur 406 fournit en sortie : - une séquence d'information extrinsèque W3, - une séquence estimée â*, et - une séquence estimée v'2 sur une sortie 417
Le dispositif de turbodécodage illustré en figure 4 comporte de plus : - un désentrelaceur 407 (noté "Entrelaceur #-1@ sur la figure 4), inverse de l'entrelaceur 405, recevant en entrée la séquence d'information extrinsèque w3 et fournissant en sortie la séquence d'information a priori W4 ;
Le dispositif de turbodécodage illustré en figure 4 comporte de plus : - un désentrelaceur 407 (noté "Entrelaceur #-1@ sur la figure 4), inverse de l'entrelaceur 405, recevant en entrée la séquence d'information extrinsèque w3 et fournissant en sortie la séquence d'information a priori W4 ;
<Desc/Clms Page number 20>
- la sortie 410, sur laquelle le dispositif de turbodécodage fournit la séquence estimée â, en sortie du premier décodeur 404, - la sortie 416, sur laquelle le dispositif de turbodécodage fournit la séquence estimée v'1, en sortie du premier décodeur 404, - la sortie 409, sur laquelle le dispositif de turbodécodage fournit la séquence estimée â*, en sortie du second décodeur 406, - la sortie 417, sur laquelle le dispositif de turbodécodage fournit la séquence estimée v'2, en sortie du second décodeur 406.
On ne prend en compte une séquence estimée â ou #* qu'à la suite d'un nombre d'itérations prédéterminé, l'estimation de â ou â* s'améliorant avec les estimations (voir l'article "Near Shannon limit error-correcting coding and decoding : turbocodes" cité supra).
On ne prendra en compte, de préférence, une séquence estimée v'1 ou v'2 qu'à la suite d'un nombre d'itérations prédéterminé ; on prendra en compte, de préférence, une information extrinsèque portant sur les séquences de parité pour estimer v'1 ou v'2.
Dans le mode de réalisation préféré décrit ici, on peut utiliser un algorithme de type BCJR ou, plus généralement, un algorithme minimisant le taux d'erreur symbole (SER) pour chacun des décodeurs 404 et 406. La mise en #uvre d'un tel algorithme est bien connue de l'homme du métier des turbocodes.
Le premier décodeur à maximum de vraisemblance 413 à entrées douces et sorties dures correspond au codeur 202 (figure 2). Il reçoit en entrée les séquences â et v'1 et fournit en sortie, après suppression des bits de padding, une séquence estimée û1 sur une sortie 411.
Le deuxième décodeur à maximum de vraisemblance 414 à entrées douces et sorties dures correspond au codeur 204 (figure 2) Il reçoit en entrée les séquences â* et v'2 et fournit en sortie une séquence estimée â2* sur une sortie 415
Le désentrelaceur 408 (noté "Entrelaceur #-1" sur la figure 4), inverse de l'entrelaceur 203, reçoit en entrée la séquence â2* et fournit en
Le désentrelaceur 408 (noté "Entrelaceur #-1" sur la figure 4), inverse de l'entrelaceur 203, reçoit en entrée la séquence â2* et fournit en
<Desc/Clms Page number 21>
sortie, après suppression des bits de padding, une séquence estimée û2, sur une sortie 412.
Dans les décodeurs 413 ou 414 ou plus généralement dans les décodeurs à maximum de vraisemblance conformément au mode préféré de réalisation, on utilise un algorithme de Viterbi à entrées douces et sorties dures, bien connu de l'homme du métier du codage de canal.
On peut utiliser de préférence une seule des sorties û1, ou û2.
Ainsi, en première variante, on utilise uniquement û1, on supprime les éléments propres à la production de la séquence û2, c'est-à-dire les sorties 409 et 417, le décodeur ML 414 et le désentrelaceur 408.
En deuxième variante, on utilise uniquement û2, on supprime les éléments propres à la production de la séquence û1, c'est-à-dire les sorties 410 et 416 et le décodeur ML 413.
Sur la figure 5, qui représente le fonctionnement d'un dispositif de codage tel que celui inclus dans le dispositif électronique illustré en figure 1, on observe qu'après une opération d'initialisation 500, au cours de laquelle les registres de la mémoire vive 104 sont initialisés (nb~données = "0"), au cours d'une opération 501, l'unité centrale 100 attend de recevoir, puis reçoit une donnée binaire à transmettre, la positionne en mémoire vive 104 dans le registre "données~source" et incrémente le compteur "nb~données" d'une unité.
Ensuite, au cours d'un test 502, l'unité centrale 100 détermine si le nombre entier conservé dans le registre "nb~données" est égal ou non à n-m (les valeurs de n et m sont conservées en mémoire morte 105).
Lorsque le résultat du test 502 est négatif, l'opération 501 est réitérée.
Lorsque le résultat du test 502 est positif, au cours d'une opération 508, le premier codeur 202 effectue simultanément : - la détermination de la séquence de padding p1, - la division suivant les puissances croissantes (en anglais "long division") par g (x) polynôme a (x) à la séquence de données binaires
<Desc/Clms Page number 22>
obtenue par concaténation des séquences u et p1 (p1 étant déterminé pour que le reste de cette division soit nul), et - le produit du résultat de cette division par h(x).
La séquence a et le résultat v1 de cette opération sont mis en mémoire dans le registre "données~à~émettre" de la mémoire vive 104.
Ensuite, au cours d'une opération 506, les données binaires de la séquence a sont successivement lues dans le registre "données~à~émettre", dans l'ordre décrit par le tableau "entrelaceur" conservé en mémoire morte 105, pour former une séquence entrelacée a*. Les données qui résultent successivement de cette lecture sont mises en mémoire dans le registre
"données permutées" de la mémoire vive 104
Ensuite, au cours d'une opération 507, le deuxième codeur 204 effectue simultanément : - la division par g (x) polynôme a* (x) à la séquence de données binaires obtenue par entrelacement de la séquence a et - le produit de cette division par h(x).
"données permutées" de la mémoire vive 104
Ensuite, au cours d'une opération 507, le deuxième codeur 204 effectue simultanément : - la division par g (x) polynôme a* (x) à la séquence de données binaires obtenue par entrelacement de la séquence a et - le produit de cette division par h(x).
Le résultat v2 de cette opération est mis en mémoire dans le registre "données~à~émettre".
Au cours d'une opération 509, les séquences a, v1 et v2 sont émises en utilisant, à cet effet, l'émetteur 106. Ensuite, les registres de la mémoire 104 sont à nouveau initialisés. En particulier, le compteur "nb~données" est remis à "0" et l'opération 501 est réitérée.
En variante, au cours de l'opération 509, les séquences a, v1 et v2 ne sont pas émises intégralement : seul un sous-ensemble de celles-ci est émis Cette variante est connue de l'homme du métier sous le nom de poinçonnage.
En figure 6, qui représente le fonctionnement d'un dispositif de décodage tel que celui inclus dans le dispositif électronique illustré en figure 3, on observe qu'après une opération d'initialisation 600, au cours de laquelle les registres de la mémoire vive 304 sont initialisés (nb~données = "0"), au cours d'une opération 601, l'unité centrale 300 attend de recevoir, puis reçoit une donnée sous forme douce correspondant à une mesure de fiabilité d'une donnée émise par l'émetteur 106 et reçue par le récepteur 306, la positionne en
<Desc/Clms Page number 23>
mémoire vive 304, dans le registre "données reçues", et incrémente le compteur "nb~données" d'une unité.
Ensuite, au cours d'un test 602, l'unité centrale 300 détermine si le nombre entier conservé dans le registre "nb~données" est égal ou non à 3. n (n étant une valeur conservée en mémoire morte 305), 3. n étant le nombre total de données binaires émises par l'émetteur 106
Lorsque le résultat du test 602 est négatif, l'opération 601 est réitérée.
Lorsque le résultat du test 602 est négatif, l'opération 601 est réitérée.
Lorsque le résultat du test 602 est positif, au cours d'une opération de turbodécodage 603, bien connue de l'homme du métier des turbocodes, après un nombre d'itérations correspondant au nombre d'itérations maximal,
nb iteration max, stocké dans la ROM 305, le dispositif de turbodécodage donne une estimation â et v'1 des séquences a et v1 transmises. (On décrit ici un mode de réalisation compatible avec la première variante décrite à l'aide de la figure 4)
Ensuite, lors d'une opération 605 de décodage à maximum de vraisemblance, le décodeur 413 donne une estimation û1 de la séquence de données û
Puis, au cours d'une opération 604, l'unité centrale 300 fournit cette estimation û au destinataire d'information 310.
nb iteration max, stocké dans la ROM 305, le dispositif de turbodécodage donne une estimation â et v'1 des séquences a et v1 transmises. (On décrit ici un mode de réalisation compatible avec la première variante décrite à l'aide de la figure 4)
Ensuite, lors d'une opération 605 de décodage à maximum de vraisemblance, le décodeur 413 donne une estimation û1 de la séquence de données û
Puis, au cours d'une opération 604, l'unité centrale 300 fournit cette estimation û au destinataire d'information 310.
Ensuite, les registres de la mémoire 304 sont à nouveau initialisés.
En particulier, le compteur "nb~données" est remis à "0" et l'opération 601 est réitérée.
Selon une première variante (compatible avec la deuxième variante décrite en regard de la figure 4), lorsque le résultat du test 602 est positif, au cours de l'opération de turbodécodage 603, le dispositif de turbodécodage donne une estimation entrelacée â* de la séquence a transmise et une estimation v'2 de la séquence v2 transmise.
Ensuite, lors de l'opération 605 de décodage à maximum de vraisemblance, le décodeur 414 donne une estimation â2* de la séquence de données â*. Ensuite, le désentrelaceur 408 désentrelace cette séquence pour
<Desc/Clms Page number 24>
produire une séquence û2 après suppression des bits correspondant aux bits de padding.
Selon une deuxième variante, lorsque des bits codés auront été poinçonnés lors de l'opération de codage, on initialisera les entrées douces correspondant à ces bits à une valeur nulle lors des opérations de turbodécodage ou de décodage à maximum de vraisemblance.
En figure 7, on observe qu'un dispositif de décodage adapté à décoder les séquences issues du dispositif de codage décrit à l'aide de la figure 1, comporte notamment : - une entrée 700 de séquences représentatives de a, v1 et v2 qui, par commodité, sont aussi notées a, v1 et v2, la séquence reçue, constituée de ces trois séquences, étant notée r ; - un dispositif de turbodécodage 703 pouvant être identique au dispositif de turbodécodage 400 décrit à l'aide de la figure 4 ; - un dispositif d'aiguillage 704 ; - un décodeur à maximum de vraisemblance 707 ; - un dispositif de contrôle d'application 701 ; - un convertisseur 708 ; - deux sorties 710 et 711 de séquences estimées de u qui seront notées û3 et û1.
Le dispositif de turbodécodage 703 reçoit en entrée la séquence r. Il fournit une séquence estimée â sur une sortie 709 et une séquence estimée v'1 sur une sortie 712. La séquence estimée â est une estimation des bits d'information non entrelacés a et la séquence v'1 est une estimation des bits de parité issus du premier codeur, v1.
On ne prend en compte les séquences estimées â et v'1 qu'à la suite d'un nombre d'itérations prédéterminé, l'estimation de â s'améliorant avec les itérations (voir l'article "Near Shannon limit error-correcting coding and decoding: turbocodes" cité supra).
On ne prendra en compte de préférence une séquence estimée v'1 qu'à la suite d'un nombre d'itérations prédéterminé ; on prendra en compte de
<Desc/Clms Page number 25>
préférence une information extrinsèque portant sur la séquence de parité v1 pour estimer v'1.
Dans le mode de réalisation préféré décrit ici, on utilise un algorithme de type BCJR ou, plus généralement, un algorithme minimisant le taux d'erreur symbole (SER) pour chacun des décodeurs constitutifs.
Le dispositif de contrôle d'application 701 fournit une séquence de
contrôle "control data" sur une sortie 702. Ce dispositif de contrôle d'application peut être lié à une source d'information telle que la source 110 décrite à l'aide de la figure 1, à un destinataire d'information tel que le destinataire 310 décrit à l'aide de la figure 3, un moyen de reconnaissance du type de données émises ou reçues, un protocole d'acquittement et de retransmission ACK/ARQ ou tout autre moyen de contrôle d'application destiné à valider ou non l'utilisation d'un décodeur à maximum de vraisemblance à la suite d'une opération de turbodécodage On comprend aisément que pour certaines applications, il est préférable d'optimiser le SER alors que pour d'autres applications, on
optimisera plutôt le FER. Ainsi, la séquence de contrôle "control~data" indique le type d'optimisation souhaité.
contrôle "control data" sur une sortie 702. Ce dispositif de contrôle d'application peut être lié à une source d'information telle que la source 110 décrite à l'aide de la figure 1, à un destinataire d'information tel que le destinataire 310 décrit à l'aide de la figure 3, un moyen de reconnaissance du type de données émises ou reçues, un protocole d'acquittement et de retransmission ACK/ARQ ou tout autre moyen de contrôle d'application destiné à valider ou non l'utilisation d'un décodeur à maximum de vraisemblance à la suite d'une opération de turbodécodage On comprend aisément que pour certaines applications, il est préférable d'optimiser le SER alors que pour d'autres applications, on
optimisera plutôt le FER. Ainsi, la séquence de contrôle "control~data" indique le type d'optimisation souhaité.
Dans un premier mode de fourniture de la séquence de contrôle, la source d'information émet cette séquence conjointement aux données en fonction du type de données. Cette séquence sera de préférence bien protégée contre les risques d'erreurs de transmission. Elle pourra être liée à la qualité de service requise pour la transmission des données.
Dans un second mode de fourniture de la séquence de contrôle, le destinataire d'information configure cette séquence par défaut pour optimiser, soit le SER, soit le FER, et fournir une nouvelle séquence de contrôle en fonction du type d'application ou éventuellement par relation homme - machine.
Dans un troisième mode de fourniture de la séquence de contrôle, un moyen de reconnaissance du type de données utilisant des informations internes ou externes aux données elles-mêmes (par exemple, des données liées au protocole de communication) pourra aussi fournir une séquence de contrôle.
<Desc/Clms Page number 26>
Dans un quatrième mode de fourniture de la séquence de contrôle, la séquence de contrôle commandera une optimisation du FER dans le cas où un protocole de retransmission ACK/ARQ est utilisé et une optimisation du SER dans le cas contraire.
D'une façon générale, les modes de fourniture décrits ci-dessus visent à permettre une adéquation entre le type de décodage requis et le type de données.
Néanmoins, selon un cinquième mode de fourniture de la séquence de contrôle, le paramètre de contrôle est utilisé en fonction de critères différents, comme par exemple les conditions de transmission (en fonction du rapport signal à bruit du canal, on préféra optimiser soit le SER, soit le FER), la durée de décodage ou la présence de batteries (Si on veut raccourcir cette durée ou limiter l'énergie consommée par un décodeur, on n'utilisera pas le décodeur à maximum de vraisemblance ou on diminuera le nombre d'itérations du turbodécodeur).
Le dispositif d'aiguillage 704 reçoit en entrée, d'une part, les séquences estimées â (entrée 709) et v'1 (entrée 712) et, d'autre part, la
séquence de contrôle "controLdata" (entrée 702) Ce dispositif aiguille .
séquence de contrôle "controLdata" (entrée 702) Ce dispositif aiguille .
- la séquence estimée â, soit vers une sortie 705, si une optimisation du SER est indiquée par la séquence de contrôle, soit vers une sortie 706 dans le cas contraire, et - la séquence estimée v'1 vers une sortie 713, si une optimisation du FER est indiquée par la séquence de contrôle
Si une optimisation du SER est indiquée par la séquence de contrôle, le convertisseur 708 prend en compte la séquence estimée â. Il élimine ensuite les données de parité ou de padding qui ne sont pas utiles au destinataire d'information. Ensuite, il transforme la séquence de données douces ainsi obtenue en une séquence de données dures û3, qui est transmise sur une sortie 710 au destinataire d'information
Si une optimisation du FER est indiquée par la séquence de contrôle, le décodeur à maximum de vraisemblance 707 à entrées douces et sorties dures correspond au codeur 202 (figure 2) Il reçoit en entrée les séquences â
Si une optimisation du SER est indiquée par la séquence de contrôle, le convertisseur 708 prend en compte la séquence estimée â. Il élimine ensuite les données de parité ou de padding qui ne sont pas utiles au destinataire d'information. Ensuite, il transforme la séquence de données douces ainsi obtenue en une séquence de données dures û3, qui est transmise sur une sortie 710 au destinataire d'information
Si une optimisation du FER est indiquée par la séquence de contrôle, le décodeur à maximum de vraisemblance 707 à entrées douces et sorties dures correspond au codeur 202 (figure 2) Il reçoit en entrée les séquences â
<Desc/Clms Page number 27>
et v'1 et fournit en sortie, après suppression des bits de padding, une séquence estimée û1 sur une sortie 711, qui sera transmise au destinataire d'information.
En variante, le dispositif de turbodécodage 703 fournit sur une sortie 709 une estimation des bits d'informations entrelacés, â'*, et une estimation des bits de parité issus du deuxième codeur, v'2. Si une optimisation du SER est
indiquée par la séquence de contrôle "control~data", le convertisseur 708 prend en compte la séquence â'* et comporte une opération de désentrelacement des données. Ensuite, il transforme la séquence de données douces ainsi obtenue en une séquence de données dures û3, qui est transmise sur une sortie 710 au destinataire d'information. Par ailleurs, dans cette variante, si une optimisation du FER est indiquée par la séquence de contrôle, le décodeur à maximum de vraisemblance 707 à entrées douces et sorties dures correspond au codeur 204 (figure 2). Il reçoit en entrée les séquences â* et v'2 et fournit en sortie, après désentrelacement et après suppression des bits de padding, une séquence estimée û2 sur une sortie 711, qui sera transmise au destinataire d'information.
indiquée par la séquence de contrôle "control~data", le convertisseur 708 prend en compte la séquence â'* et comporte une opération de désentrelacement des données. Ensuite, il transforme la séquence de données douces ainsi obtenue en une séquence de données dures û3, qui est transmise sur une sortie 710 au destinataire d'information. Par ailleurs, dans cette variante, si une optimisation du FER est indiquée par la séquence de contrôle, le décodeur à maximum de vraisemblance 707 à entrées douces et sorties dures correspond au codeur 204 (figure 2). Il reçoit en entrée les séquences â* et v'2 et fournit en sortie, après désentrelacement et après suppression des bits de padding, une séquence estimée û2 sur une sortie 711, qui sera transmise au destinataire d'information.
L'organigramme de la figure 8 représente le fonctionnement d'un dispositif de décodage tel que celui inclus dans le dispositif électronique illustré sur la figure 3, comportant en outre un registre control data dans la RAM 304, et conforme au schéma-bloc illustré sur la figure 7.
On observe qu'après une opération d'initialisation 800, au cours de laquelle les registres de la mémoire vive 304 sont initialisés (nb~données = "0"), au cours d'une opération 801, l'unité centrale 300 attend de recevoir, puis reçoit une donnée sous forme douce, correspondant à une mesure de fiabilité d'une donnée émise par l'émetteur 106 et reçue par le récepteur 306, la positionne en mémoire vive 304 dans le registre "données source" et incrémente le compteur "nb données" d'une unité.
Ensuite, au cours d'un test 802, l'unité centrale 300 détermine si le nombre entier conservé dans le registre "nb~données" est égal, ou non, à 3.n (n étant une valeur conservée en mémoire morte 305), 3. n étant le nombre total de données binaires émises par l'émetteur 106.
Lorsque le résultat du test 802 est négatif, l'opération 801 est réitérée.
<Desc/Clms Page number 28>
Lorsque le résultat du test 802 est positif, au cours d'une opération de turbodécodage 803, bien connue de l'homme du métier des turbocodes, après un nombre d'itérations correspondant au nombre d'itérations maximal, nb~iteration~max, stocké dans la ROM 305, le dispositif de turbodécodage donne des estimations â et v'1 des séquences a et v1 transmises.
Ensuite ou éventuellement parallèlement aux opérations précédentes, au cours d'une opération 807, l'unité centrale 300 met à jour le registre "control~data" dans la mémoire vive 304 d'une façon quelconque telle que décrite à l'aide de la figure 7.
Ensuite, au cours d'un test 806, l'unité centrale 300 détermine si le FER (par opposition au SER) doit être optimisé en fonction de la valeur de "control~data" conservée dans la RAM 304.
Lorsque le résultat du test 806 est positif, lors d'une opération 805 de décodage à maximum de vraisemblance, le décodeur 707 donne une estimation û1 de la séquence de données û à partir des séquences â et v'1.
Lorsque le résultat du test 806 est négatif, lors d'une opération 808, le convertisseur 708 convertit les données de la façon décrite à l'aide de la figure 7 et donne une estimation û3 de la séquence de données u
Après l'une des opérations 805 ou 808, au cours d'une opération 804, l'unité centrale 300 fournit cette estimation û1 ou û3 au destinataire d'information 310. Ensuite, les registres de la mémoire 304 sont à nouveau initialisés. En particulier, le compteur "nb~données" est remis à "0" et l'opération 601 est réitérée.
Après l'une des opérations 805 ou 808, au cours d'une opération 804, l'unité centrale 300 fournit cette estimation û1 ou û3 au destinataire d'information 310. Ensuite, les registres de la mémoire 304 sont à nouveau initialisés. En particulier, le compteur "nb~données" est remis à "0" et l'opération 601 est réitérée.
Dans une variante correspondant à celle décrite à l'aide de la figure 7, au cours de l'opération de turbodécodage 803, le dispositif de turbodécodage donne des estimations â et v'2 des séquences a et v2 transmises. Lorsque le résultat du test 806 est positif, lors d'une opération 805 de décodage à maximum de vraisemblance, le décodeur 707 donne une estimation û2 de la séquence de données û à partir des séquences â et v'2 Au cours de l'opération 804, l'unité centrale 300 fournit cette estimation û2 ou û3 au destinataire d'information 310.
<Desc/Clms Page number 29>
D'une façon générale, l'invention ne se limite pas aux turbocodeurs composés de deux codeurs ou aux turbocodeurs à une entrée, mais peut s'appliquer à des turbocodeurs composés de plusieurs codeurs élémentaires ou à plusieurs entrées tels que décrits dans l'article "On the design of turbo codes" de D. DIVSALAR et F. POLLARA cité supra
L'invention peut aussi s'appliquer aux turbocodes séries ou hybrides (voir TDA Progress Report 42-126).
L'invention peut aussi s'appliquer aux turbocodes séries ou hybrides (voir TDA Progress Report 42-126).
On notera que les décodeurs des turbocodes séries ou hybrides produisent naturellement une information extrinsèque sur certains bits de parité.
Il n'y a alors aucun surcoût à la mise en application de l'invention qui requiert de préférence une information extrinsèque sur les bits de parité.
Il peut aussi y avoir une interaction plus grande entre les décodeurs ML et le turbodécodeur. Ainsi, on peut par exemple mesurer la validité du décodage par comparaison des résultats fournis par le turbodécodeur et le décodeur à maximum de vraisemblance. On peut aussi limiter plus ou moins le nombre d'itérations du turbodécodeur lorsque le résultat du décodeur à maximum de vraisemblance est satisfaisant
Claims (48)
1. Procédé de décodage d'une trame de données provenant d'une source d'information, ladite trame de données ayant été préalablement codée au moyen d'un code correcteur d'erreurs comportant au moins un code constitutif élémentaire et ayant été transmise sur un canal de transmission bruité de ladite source d'information vers un récepteur de données, caractérisé en ce que, lors de la réception de ladite trame de données : - on effectue une première opération de décodage, consistant à décoder ladite trame de données suivant une technique de décodage adaptée à décoder ledit code correcteur d'erreurs en minimisant le taux d'erreur symbole, ladite première opération de décodage fournissant une estimation sur des bits représentatifs dudit code constitutif élémentaire ; et - on effectue une seconde opération de décodage, consistant à décoder ladite estimation suivant une technique de décodage à maximum de vraisemblance adaptée à décoder ledit code constitutif élémentaire.
2. Procédé de décodage selon la revendication 1, caractérisé en ce que ledit code correcteur d'erreurs est un turbocode et ladite première opération de décodage est une opération de turbodécodage.
3. Procédé de décodage selon la revendication 2, caractérisé en ce que ledit turbocode est de type convolutif parallèle.
4. Procédé de décodage selon la revendication 2, caractérisé en ce que ledit turbocode est de type série ou hybride
5. Procédé de décodage selon l'une quelconque des revendications précédentes, caractérisé en ce que ladite première opération de décodage utilise un algorithme de type BCJR.
6. Procédé de décodage selon l'une quelconque des revendications précédentes, caractérisé en ce que lors de ladite première opération de décodage, on effectue itérativement : - au moins une première opération élémentaire de décodage d'un code correcteur d'erreurs, consistant à décoder une première sous-trame de ladite trame de données par une technique de décodage mettant en oeuvre un
<Desc/Clms Page number 31>
premier polynôme diviseur (g1(x)) et prenant en compte une première séquence d'information a priori (w4), de façon à obtenir une première séquence d'information extrinsèque (w1) et des première et deuxième séquences estimées (â, v'1); - au moins une opération d'entrelacement d'une séquence représentative de ladite trame de données, prenant en compte ladite première séquence d'information extrinsèque (w1), de façon à obtenir une deuxième séquence d'information a priori (w2) et une séquence entrelacée (a*) représentative de ladite trame de données ; - au moins une deuxième opération élémentaire de décodage d'un code correcteur d'erreurs, consistant à décoder une deuxième sous-trame de ladite trame de données par une technique de décodage mettant en oeuvre un deuxième polynôme diviseur (g2(x)) et prenant en compte ladite deuxième séquence d'information a priori (w2) et ladite séquence entrelacée (a*), de façon à obtenir une deuxième séquence d'information extrinsèque (w3) et des troisième et quatrième séquences estimées (â*, V'2) ; et - au moins une opération de désentrelacement de ladite deuxième séquence d'information extrinsèque (w3), de façon à obtenir ladite première séquence d'information a priori (A4).
7. Procédé de décodage selon la revendication 6, caractérisé en ce que, lors de ladite seconde opération de décodage : - on effectue une première opération de décodage à maximum de vraisemblance, consistant à recevoir lesdites première et deuxième séquences estimées (â, v'1) obtenues à l'issue de ladite première opération élémentaire de décodage, de façon à obtenir une cinquième séquence estimée (û1) représentative de ladite trame de données.
8 Procédé de décodage selon la revendication 7, caractérisé en ce que, lors de ladite seconde opération de décodage, en plus ou en lieu et place de ladite première opération de décodage à maximum de vraisemblance : - on effectue une seconde opération de décodage à maximum de vraisemblance, consistant à recevoir en entrée lesdites troisième et quatrième séquences estimées (â*, v'2) obtenues à l'issue de ladite seconde opération
<Desc/Clms Page number 32>
élémentaire de décodage, de façon à obtenir une sixième séquence estimée (â2*).
9. Procédé de décodage selon la revendication 8, caractérisé en ce qu'il comporte en outre : - une opération de désentrelacement de ladite sixième séquence estimée (â2*), de façon à obtenir une septième séquence estimée (û2) représentative de ladite trame de données.
10. Procédé de décodage selon l'une quelconque des revendications précédentes, caractérisé en ce que ladite seconde opération de décodage utilise un algorithme de type Viterbi.
11. Procédé de décodage selon l'une quelconque des revendications précédentes, caractérisé en ce qu'il comporte en outre une opération de contrôle, consistant à commander la mise en oeuvre ou non de ladite seconde opération de décodage.
12. Procédé de décodage selon la revendication 11, caractérisé en ce que lors de ladite opération de contrôle, on commande la mise en oeuvre de ladite seconde opération de décodage en fonction d'un paramètre de contrôle définissant si une optimisation du taux d'erreur trame est souhaitée ou non
13. Procédé de décodage selon la revendication 11 ou 12, caractérisé en ce que ladite opération de contrôle commande la mise en oeuvre d'une opération de conversion, consistant à éliminer les données de parité dans une séquence estimée (â) obtenue à l'issue de ladite première opération de décodage, de façon à obtenir une séquence de données douces, et/ou à transformer ladite séquence de données douces en une séquence de données dures (û3).
14 Procédé de décodage selon la revendication 12 ou 13, caractérisé en ce que ledit paramètre de contrôle est fourni par ladite source d'information
15. Procédé de décodage selon la revendication 12 ou 13, caractérisé en ce que ledit paramètre de contrôle est fourni par ledit récepteur de données.
<Desc/Clms Page number 33>
16. Procédé de décodage selon la revendication 15, caractérisé en ce que ledit paramètre de contrôle est fonction du type d'application.
17. Procédé de décodage selon la revendication 12 ou 13, caractérisé en ce que ledit paramètre de contrôle est fonction d'un protocole comportant une répétition automatique des trames erronées.
18. Procédé de décodage selon l'une quelconque des revendications 11 à 17, caractérisé en ce que ladite opération de contrôle consiste en outre à comparer les résultats obtenus à l'issue de la première et de la seconde opérations de décodage.
19. Procédé de codage d'une trame de données issue d'une source d'information, comportant une opération de codage au moyen d'un code correcteur d'erreurs comportant au moins un code constitutif élémentaire, ladite trame de données étant destinée à être transmise sur un canal de transmission bruité vers un récepteur de données et à être décodée par un procédé de décodage selon l'une quelconque des revendications 12 à 18, caractérisé en ce que ladite source d'information fournit ledit paramètre de contrôle.
20. Dispositif de décodage d'une trame de données provenant d'une source d'information, ladite trame de données ayant été préalablement codée au moyen d'un code correcteur d'erreurs comportant au moins un code constitutif élémentaire et ayant été transmise sur un canal de transmission bruité de ladite source d'information vers un récepteur de données, caractérisé en ce qu'il a des moyens de réception de ladite trame de données comportant : - des premiers moyens de décodage (400), pour décoder ladite trame de données suivant une technique de décodage adaptée à décoder ledit code correcteur d'erreurs en minimisant le taux d'erreur symbole, lesdits premiers moyens de décodage (400) fournissant une estimation sur des bits représentatifs dudit code constitutif élémentaire ; et - des seconds moyens de décodage (413,414), pour décoder ladite estimation suivant une technique de décodage à maximum de vraisemblance adaptée à décoder ledit code constitutif élémentaire.
<Desc/Clms Page number 34>
21. Dispositif de décodage selon la revendication 20, caractérisé en ce que ledit code correcteur d'erreurs est un turbocode et lesdits premiers moyens de décodage (400) utilisent une technique de turbodécodage.
22. Dispositif de décodage selon la revendication 21, caractérisé en ce que ledit turbocode est de type convolutif parallèle.
23. Dispositif de décodage selon la revendication 21, caractérisé en ce que ledit turbocode est de type série ou hybride.
24. Dispositif de décodage selon l'une quelconque des revendications 20 à 23, caractérisé en ce que lesdits premiers moyens de décodage (400) utilisent un algorithme de type BCJR.
25. Dispositif de décodage selon l'une quelconque des revendications 20 à 24, caractérisé en ce que lesdits premiers moyens de décodage (400) comportent : - au moins des premiers moyens élémentaires de décodage d'un code correcteur d'erreurs (404), pour décoder une première sous-trame de ladite trame de données par une technique de décodage mettant en #uvre un premier polynôme diviseur (gi(x)) et prenant en compte une première séquence d'information a priori (w4), lesdits premiers moyens élémentaires de décodage (404) fournissant en sortie une première séquence d'information extrinsèque (wi) et des première et deuxième séquences estimées (â, v'1); - au moins un moyen d'entrelacement (405) d'une séquence représentative de ladite trame de données, prenant en compte ladite première séquence d'information extrinsèque (w1) et fournissant en sortie une deuxième séquence d'information a priori (w2) et une séquence entrelacée (a*) représentative de ladite trame de données ; - au moins des deuxièmes moyens élémentaires de décodage d'un code correcteur d'erreurs (406), pour décoder une deuxième sous-trame de ladite trame de données par une technique de décodage mettant en #uvre un deuxième polynôme diviseur (g2(x)) et prenant en compte ladite deuxième séquence d'information a priori (wz) et ladite séquence entrelacée (a*), lesdits deuxièmes moyens élémentaires de décodage (406) fournissant en sortie une
<Desc/Clms Page number 35>
deuxième séquence d'information extrinsèque (w3) et des troisième et quatrième séquences estimées (â*, v'2); et - au moins un moyen de désentrelacement (407) de ladite deuxième séquence d'information extrinsèque (w3), fournissant en sortie ladite première séquence d'information a priori (w4), lesdits premiers et deuxièmes moyens élémentaires de décodage, lesdits moyens d'entrelacement et de désentrelacement (404,406, 405,407) opérant itérativement.
26. Dispositif de décodage selon la revendication 25, caractérisé en ce que lesdits seconds moyens de décodage comportent : - des premiers moyens de décodage à maximum de vraisemblance (413), recevant en entrée lesdites première et deuxième séquences estimées (â, v'1) fournies par lesdits premiers moyens élémentaires de décodage (404), lesdits premiers moyens de décodage à maximum de vraisemblance (413) fournissant en sortie une cinquième séquence estimée (û1) représentative de ladite trame de données.
27. Dispositif de décodage selon la revendication 26, caractérisé en ce que lesdits seconds moyens de décodage comportent, en plus ou en lieu et place desdits premiers moyens de décodage à maximum de vraisemblance (413) : - des seconds moyens de décodage à maximum de vraisemblance (414), recevant en entrée lesdites troisième et quatrième séquences estimées (â*, v'2) fournies par lesdits seconds moyens élémentaires de décodage (406), lesdits seconds moyens de décodage à maximum de vraisemblance (414) fournissant en sortie une sixième séquence estimée (â2*).
28 Dispositif de décodage selon la revendication 27, caractérisé en ce qu'il comporte en outre : - un moyen de désentrelacement (408) de ladite sixième séquence estimée (â2*), fournissant en sortie une septième séquence estimée (û2) représentative de ladite trame de données
<Desc/Clms Page number 36>
29. Dispositif de décodage selon l'une quelconque des revendications 20 à 28, caractérisé en ce que lesdits seconds moyens de décodage (413,414) utilisent un algorithme de type Viterbi.
30 Dispositif de décodage selon l'une quelconque des revendications 20 à 29, caractérisé en ce qu'il comporte en outre des moyens de contrôle, pour commander la mise en #uvre ou non desdits seconds moyens de décodage (707).
31. Dispositif de décodage selon la revendication 30, caractérisé en ce que lesdits moyens de contrôle commandent la mise en #uvre desdits seconds moyens de décodage (707) en fonction d'un paramètre de contrôle définissant si une optimisation du taux d'erreur trame est souhaitée ou non.
32. Dispositif de décodage selon la revendication 30 ou 31, caractérisé en ce que lesdits moyens de contrôle commandent la mise en #uvre de moyens de conversion (708), pour éliminer les données de parité dans une séquence estimée (â) fournie par lesdits premiers moyens de décodage, de façon à fournir une séquence de données douces les données obtenues en sortie desdits premiers moyens de décodage (703), et/ou pour transformer ladite séquence de données douces en une séquence de données dures (û3).
33 Dispositif de décodage selon la revendication 31 ou 32, caractérisé en ce que ledit paramètre de contrôle est fourni par ladite source d'information.
34. Dispositif de décodage selon la revendication 31 ou 32, caractérisé en ce que ledit paramètre de contrôle est fourni par ledit récepteur de données.
35 Dispositif de décodage selon la revendication 34, caractérisé en ce que ledit paramètre de contrôle est fonction du type d'application.
36. Dispositif de décodage selon la revendication 31 ou 32, caractérisé en ce que ledit paramètre de contrôle est fonction d'un protocole comportant une répétition automatique des trames erronées
37. Dispositif de décodage selon l'une quelconque des revendications 30 à 36, caractérisé en ce que lesdits moyens de contrôle ont en
<Desc/Clms Page number 37>
outre pour fonction de comparer les résultats obtenus en sortie des premiers et des seconds moyens de décodage.
38 Dispositif de codage d'une trame de données issue d'une source d'information, comportant des moyens de codage au moyen d'un code correcteur d'erreurs comportant au moins un code constitutif élémentaire, ladite trame de données étant destinée à être transmise sur un canal de transmission bruité vers un récepteur de données et à être décodée par un dispositif de décodage selon l'une quelconque des revendications 31 à 37, caractérisé en ce que ladite source d'information fournit ledit paramètre de contrôle.
39. Appareil de traitement de signaux numériques, caractérisé en ce qu'il comporte des moyens adaptés à mettre en #uvre un procédé de décodage selon l'une quelconque des revendications 1 à 18 et/ou un procédé de codage selon la revendication 19.
40 Appareil de traitement de signaux numériques, caractérisé en ce qu'il comporte un dispositif de décodage selon l'une quelconque des revendications 20 à 37 et/ou un dispositif de codage selon la revendication 38.
41. Réseau de télécommunications, caractérisé en ce qu'il comporte des moyens adaptés à mettre en #uvre un procédé de décodage selon l'une quelconque des revendications 1 à 18 et/ou un procédé de codage selon la revendication 19.
42. Réseau de télécommunications, caractérisé en ce qu'il comporte un dispositif de décodage selon l'une quelconque des revendications 20 à 37 et/ou un dispositif de codage selon la revendication 38.
43. Station mobile dans un réseau de télécommunications, caractérisée en ce qu'elle comporte des moyens adaptés à mettre en #uvre un procédé de décodage selon l'une quelconque des revendications 1 à 18 et/ou un procédé de codage selon la revendication 19
44 Station mobile dans un réseau de télécommunications, caractérisée en ce qu'elle comporte un dispositif de décodage selon l'une quelconque des revendications 20 à 37 et/ou un dispositif de codage selon la revendication 38.
<Desc/Clms Page number 38>
45 Dispositif de traitement de signaux représentatifs de parole, caractérisé en ce qu'il comporte un dispositif de décodage selon l'une quelconque des revendications 20 à 37 et/ou un dispositif de codage selon la revendication 38.
46 Dispositif de transmission de données comportant un émetteur adapté à mettre en #uvre un protocole de transmission par paquets, caractérisé en ce qu'il comporte un dispositif de décodage selon l'une quelconque des revendications 20 à 37 et/ou un dispositif de codage selon la revendication 38 et/ou un dispositif de traitement de signaux représentatifs de parole selon la revendication 45.
47. Dispositif de transmission de données selon la revendication 46, caractérisé en ce que ledit protocole est de type ATM.
48. Dispositif de transmission de données selon la revendication 46, caractérisé en ce que ledit protocole est de type IP.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
FR0001254A FR2804556B1 (fr) | 2000-02-01 | 2000-02-01 | Procede et dispositif de decodage a maximum de vraisemblance associes a un turbodecodage, procede et dispositif de codage correspondants et systemes les mettant en oeuvre |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
FR0001254A FR2804556B1 (fr) | 2000-02-01 | 2000-02-01 | Procede et dispositif de decodage a maximum de vraisemblance associes a un turbodecodage, procede et dispositif de codage correspondants et systemes les mettant en oeuvre |
Publications (2)
Publication Number | Publication Date |
---|---|
FR2804556A1 true FR2804556A1 (fr) | 2001-08-03 |
FR2804556B1 FR2804556B1 (fr) | 2002-08-23 |
Family
ID=8846540
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
FR0001254A Expired - Fee Related FR2804556B1 (fr) | 2000-02-01 | 2000-02-01 | Procede et dispositif de decodage a maximum de vraisemblance associes a un turbodecodage, procede et dispositif de codage correspondants et systemes les mettant en oeuvre |
Country Status (1)
Country | Link |
---|---|
FR (1) | FR2804556B1 (fr) |
-
2000
- 2000-02-01 FR FR0001254A patent/FR2804556B1/fr not_active Expired - Fee Related
Non-Patent Citations (4)
Title |
---|
CHUNG-WAI Y ET AL: "On the FER performance and decoding complexity of turbo codes", 1999 IEEE 49TH VEHICULAR TECHNOLOGY CONFERENCE, vol. 3, 16 May 1999 (1999-05-16) - 20 May 1999 (1999-05-20), Houston, TX, USA, pages 2214 - 2218, XP002150058 * |
KALOFONOS D N ET AL: "Performance comparisons of concatenated codes with iterative decoding for DS-CDMA systems with application to IS-95-based cellular systems", IEEE WIRELESS COMMUNICATIONS AND NETWORKING CONFERENCE, vol. 1, 21 September 1999 (1999-09-21) - 24 September 1999 (1999-09-24), New Orleans, LA, USA, pages 461 - 465, XP002150138 * |
NARAYANAN K R ET AL: "A novel ARQ technique using the turbo coding principle", IEEE COMMUNICATIONS LETTERS, vol. 1, no. 2, March 1997 (1997-03-01), USA, pages 49 - 51, XP002150134 * |
NARAYANAN K R ET AL: "List decoding of turbo codes", 1998 IEEE INTERNATIONAL CONFERENCE ON COMMUNICATIONS, vol. 1, 7 June 1998 (1998-06-07) - 11 June 1998 (1998-06-11), Atlanta, GA, USA, pages 141 - 145, XP002150090 * |
Also Published As
Publication number | Publication date |
---|---|
FR2804556B1 (fr) | 2002-08-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
FR2815199A1 (fr) | Procedes de turbocodage circulaire de grande distance minimale, et systemes pour leur mise en oeuvre | |
JP3343574B2 (ja) | サービス品質に応じたフレーム処理を行うターボチャネル符号化/復号化装置及びその方法 | |
FR2804260A1 (fr) | Procede de transmission numerique de type a codage correcteur d'erreurs | |
FR2747255A1 (fr) | Procede et dispositif de codage convolutif de blocs de donnees, et procede et dispositif de decodage correspondants | |
EP1230736B1 (fr) | Procede de decodage de donnees codees a l'aide d'un code entropique, dispositif de decodage et systeme de transmission correspondants | |
EP1249940B1 (fr) | Procédé d'optimisation, sous contrainte de ressources, de la taille de blocs de données codées | |
EP1128589B1 (fr) | Critère d'interruption pour un décodeur turbo | |
FR2790621A1 (fr) | Dispositif et procede d'entrelacement pour turbocodage et turbodecodage | |
FR2807895A1 (fr) | Procedes et dispositifs de codage et de decodage et systemes les mettant en oeuvre | |
JP3674851B2 (ja) | スケーリングフィードバックターボ復号器 | |
US6807239B2 (en) | Soft-in soft-out decoder used for an iterative error correction decoder | |
FR2802735A1 (fr) | Procede et dispositif de codage, procede et dispositif de decodage, et systemes les mettant en oeuvre | |
FR2828359A1 (fr) | Emetteur, recepteur, procedes, programme et signal adaptes a des modulations a grand nombre d'etats | |
KR100912600B1 (ko) | 임의 개수의 정보 비트들을 위한 테일바이팅 터보 코드 | |
FR2806177A1 (fr) | Procede de transmission numerique de type a codage correcteur d'erreurs | |
Guillemot et al. | Joint source-channel decoding of variable-length codes with soft information: A survey | |
EP1249939B1 (fr) | Procédé et dispositif d'optimisation, sous contrainte de performances, de la taille de blocs de données codées | |
FR2804556A1 (fr) | Procede et dispositif de decodage a maximum de vraisemblance associes a un turbodecodage, procede et dispositif de codage correspondants et systemes les mettant en oeuvre | |
FR2850810A1 (fr) | Procede de controle du nombre d'iterations d'un processus de decodage iteratif et dispositif pour la mise en oeuvre du procede | |
Calhan et al. | Comparative performance analysis of forward error correction techniques used in wireless communications | |
Tomar et al. | Efficiency enhancement techniques for wireless communication systems | |
Shoup | Hardware implementation of a high-throughput 64-PPM serial concatenated turbo decoder | |
FR2804806A1 (fr) | Procede et dispositif d'entrelacement, procedes et dispositifs de codage et de decodage et systemes les mettant en oeuvre | |
FR2801446A1 (fr) | Procede et dispositif de codage, procede et dispositif de decodage, et systemes les mettant en oeuvre | |
FR2829329A1 (fr) | Procedes de turbocodage a entrelaceurs verrous, et systemes pour leur mise en oeuvre |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
ST | Notification of lapse |
Effective date: 20141031 |