FR2915335A1 - Procede et dispositif optimise de decodage iteratif dans un systeme de transmission a redondance incrementale - Google Patents
Procede et dispositif optimise de decodage iteratif dans un systeme de transmission a redondance incrementale Download PDFInfo
- Publication number
- FR2915335A1 FR2915335A1 FR0702894A FR0702894A FR2915335A1 FR 2915335 A1 FR2915335 A1 FR 2915335A1 FR 0702894 A FR0702894 A FR 0702894A FR 0702894 A FR0702894 A FR 0702894A FR 2915335 A1 FR2915335 A1 FR 2915335A1
- Authority
- FR
- France
- Prior art keywords
- decoding
- module
- iterative
- data
- error
- 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
- 238000000034 method Methods 0.000 title claims abstract description 20
- 238000004891 communication Methods 0.000 title description 3
- 230000005540 biological transmission Effects 0.000 claims description 40
- 238000012360 testing method Methods 0.000 claims description 10
- 238000001514 detection method Methods 0.000 claims description 9
- 238000012545 processing Methods 0.000 claims description 4
- 230000004913 activation Effects 0.000 claims description 3
- 230000003213 activating effect Effects 0.000 claims description 2
- 125000004122 cyclic group Chemical group 0.000 abstract description 2
- 238000012937 correction Methods 0.000 description 7
- 230000006870 function Effects 0.000 description 3
- 238000010586 diagram Methods 0.000 description 2
- 230000015556 catabolic process Effects 0.000 description 1
- 238000006731 degradation reaction Methods 0.000 description 1
- 238000005265 energy consumption Methods 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 238000004080 punching Methods 0.000 description 1
- 238000009877 rendering Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/12—Arrangements for detecting or preventing errors in the information received by using return channel
- H04L1/16—Arrangements for detecting or preventing errors in the information received by using return channel in which the return channel carries supervisory signals, e.g. repetition request signals
- H04L1/18—Automatic repetition systems, e.g. Van Duuren systems
- H04L1/1812—Hybrid protocols; Hybrid automatic repeat request [HARQ]
- H04L1/1819—Hybrid protocols; Hybrid automatic repeat request [HARQ] with retransmission of additional or different redundancy
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/004—Arrangements for detecting or preventing errors in the information received by using forward error control
- H04L1/0056—Systems characterized by the type of code used
- H04L1/0061—Error detection codes
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/12—Arrangements for detecting or preventing errors in the information received by using return channel
- H04L1/16—Arrangements for detecting or preventing errors in the information received by using return channel in which the return channel carries supervisory signals, e.g. repetition request signals
- H04L1/18—Automatic repetition systems, e.g. Van Duuren systems
- H04L1/1829—Arrangements specially adapted for the receiver end
- H04L1/1835—Buffer management
- H04L1/1845—Combining techniques, e.g. code combining
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Detection And Prevention Of Errors In Transmission (AREA)
Abstract
La présente invention concerne un procédé optimisé de décodage itératif dans un système de transmission à redondance incrémentale et un dispositif de mise en oeuvre du procédé. Les données (7', 8') reçues sont traitées par un décodeur itératif (21), puis un décodeur CRC (11) vérifie les données produites par le décodeur itératif (21). Le décodeur CRC (11) retourne un indicateur d'erreur (12'), qui combiné dans un module logique (27) avec la valeur Nit du nombre d'itérations déjà effectuées par le décodeur itératif (21), permet d'arrêter l'itération. L'invention s'applique notamment aux équipements de communications sans fil, et en particulier aux systèmes de communications terrestres mobiles.
Description
Procédé et dispositif optimisé de décodage itératif dans un système de
transmission à redondance incrémentale
La présente invention concerne un procédé optimisé de décodage itératif dans un système de transmission à redondance incrémentale et un dispositif de mise en oeuvre du procédé. Plus particulièrement, elle concerne la couche d'accès radio d'un système de télécommunications, c'est à dire, pour reprendre la terminologie de l'Organisation Internationale des Standards, la couche physique et la couche de liaison. L'invention s'applique notamment aux équipements de communications sans fil, et en particulier aux systèmes de communications terrestres mobiles.
Dans le domaine des télécommunications, une transmission de données numériques peut être vue comme un déplacement d'information entre un codeur et un décodeur via un canal de transmission. Le canal de transmission comprend successivement un émetteur, un milieu de transmission, et un récepteur. Un message à transmettre est généralement codé, modulé en signal analogique, puis envoyé dans le milieu de transmission. Le milieu de transmission peut subir des perturbations qui conduisent à dégrader le signal transmis. Le récepteur reçoit ainsi un signal analogique potentiellement erroné, en conséquence de quoi, le message issu du canal de transmission peut être au moins partiellement faux.
Afin de corriger certaines des erreurs précitées, il est connu de transmettre, en plus du message initial, des informations redondantes correspondant à un code correcteur d'erreurs. De cette manière, la probabilité d'erreurs au décodage peut être réduite. Généralement, plus la quantité d'informations redondantes est importante, plus la probabilité d'erreur au décodage est faible. Toutefois, le code correcteur d'erreurs ne garantit pas l'absence d'erreurs dans le message décodé. Afin de vérifier l'intégrité d'un message reçu, il est courant d'associer au message initial un code détecteur d'erreurs de type CRC en référence au sigle anglo-saxon Cyclic Redundancy Code . Une autre méthode appliquée à la transmission de données est la demande automatique de répétition, souvent appelée ARQ, sigle anglo-saxon pour Automatic Repeat reQuest . Cette méthode consiste à ré émettre le message à transmettre tant que celui-ci n'a pas été correctement reçu. Associée à un CRC, elle permet de s'assurer qu'aucune erreur n'est présente dans le message reçu. Cette méthode présente comme inconvénient de nécessiter une grande quantité d'informations à transmettre pour aboutir à une transmission sans erreur. Selon le principe de I'ARQ hybride, également connu de l'art antérieur et basé sur la notion de redondance incrémentale, lorsque le récepteur reçoit un paquet de données erroné, plutôt que de retransmettre le même paquet de données, l'émetteur envoie un paquet de redondance. Ce 1 o paquet de redondance correspond à un code correcteur dont l'entrée est constituée des données à transmettre. A la réception, le paquet de redondance est concaténé avec le paquet de données, l'ensemble étant alors décodé. L'intégrité de cet ensemble décodé est ensuite testée. En cas d'erreur détectée, l'émetteur transmet un second paquet de redondance 15 complétant, par concaténation, le paquet de redondance précédemment transmis, puis un nouveau décodage est effectué du côté du récepteur à partir du paquet de redondance complété. La transmission par redondance incrémentale est rendue possible grâce aux codes de rendement compatibles, souvent appelés RCPC selon l'expression anglo-saxonne 20 Rate Compatible Punctured Codes . Ces paquets de redondance particuliers sont obtenus à partir d'un code de rendement minimum, lequel est poinçonné itérativement afin d'obtenir des paquets de redondances successives. Ce principe de poinçonnage est bien connu de l'homme du métier. 25 Par ailleurs, un des moyens connus pour obtenir un meilleur décodage que celui obtenu avec un décodage dur est de transmettre directement les signaux analogiques issus d'un démodulateur au décodeur. Cette option comporte notamment l'avantage de ne pas perdre d'information par prise de décision ferme a priori. Les décodeurs pouvant traiter des 30 données analogiques sont qualifiés de décodeur souple . Les données analogiques qu'ils reçoivent en entrée sont alors qualifiées de données souples , par opposition aux données décidées . Un type de décodage souple est le décodage itératif qui utilise, pour une itération donnée, les résultats de l'itération précédente. Ensuite, du côté du récepteur, un décodage CRC permet alors de s'assurer que les données ont été correctement transmises et décodées. La figure 1 illustre à titre d'exemple la transmission de données à redondance incrémentale selon l'art antérieur. La partie 1 correspond à un émetteur, la partie 2 à un milieu de transmission, et la partie 3 à un récepteur. Actuellement, il est connu de fonctionner selon un système de transmission à redondance incrémentale tout en procédant au décodage des données en deux temps. Dans un premier temps, un décodage itératif classique 13 est effectué sur des données souples (6', 7', 8') issues de la réception. Dans un second temps, un décodage CRC 11 est effectué sur les données issues du décodage itératif classique 13. Trois étapes de transmission 14, 15, 16 sont présentées sur la figure 1. Lors de la première étape de transmission 14, seul un décodage CRC 11 est effectué car aucun paquet de redondance n'est transmis. Les autres références indiquées sur la figure seront explicitées à la figure 3. Pour mieux comprendre le principe de codage adapté à la redondance incrémentale, la figure 2 illustre un exemple de ce type de codage selon l'art antérieur. Un code CRC, 5, est d'abord accolé au mot d'information 4, l'ensemble {mot d'information 4 utile, CRC 5} constituant alors un paquet initial 6 de longueur L. Ensuite, un paquet principal 9 de redondance est calculé à partir de ce paquet initial 6. Dans cet exemple, le paquet principal 9 de redondance est de rendement 1/3, ce qui signifie que l'ensemble constitué par la concaténation du paquet initial 6 et du paquet principal 9 de redondance est trois fois plus long que le paquet de données initial 6. Par ailleurs, le paquet principal 9 de redondance a été calculé pour avoir des propriétés de type RCPC. Il peut donc être scindé en plusieurs paquets de redondance. Dans cet exemple, le paquet principal 9 est composé d'un premier paquet de redondance 7 et d'un second paquet de redondance 8, chacun de même longueur L que celle du paquet initial 6.
Selon une variante de l'invention, les premier et second paquets de redondance 7, 8 peuvent être de longueurs différentes. Le paquet principal 9 est ensuite accolé au paquet initial 6. Lors du décodage itératif classique 13, un nombre maximum d'itérations à exécuter est généralement fixé. Quel que soit le résultat de chacune des itérations successives, le décodage itératif se poursuit jusqu'à atteindre ce nombre maximal d'itération fixé. Dans le cas des canaux de transmission faiblement bruités, ce décodage itératif peut converger rapidement vers un message décodé sans erreur, des itérations superflues peuvent ainsi être exécutées.
Or, le décodage itératif est complexe. II nécessite des temps de calculs, des ressources matérielles importantes, et une consommation énergétique élevée. Un inconvénient du procédé de décodage précité est donc que chaque itération superflue est coûteuse en temps et en énergie. Un but de l'invention est notamment de pallier les inconvénients précités en proposant un procédé de décodage performant et moins gourmant en ressources. A cet effet, l'invention a pour objet un procédé de transmission de données dans un système à redondance incrémentale comportant au moins une étape d'émission des données et une étape de réception, l'étape de réception comprenant une ou plusieurs étapes de décodage, une étape de décodage comportant l'initialisation d'un nombre d'itérations Nit à une valeur maximale N. et l'exécution d'au moins une itération comprenant les étapes suivantes : o transmettre les données à un module de décodage itératif ; o décoder et transmettre les données décodées à un décodeur de code détecteur d'erreur retournant un indicateur d'erreur et des données décodées ; ^ si l'indicateur d'erreur ne signale pas d'erreur, arrêter le décodage, ^ si l'indicateur d'erreur signale une erreur, comparer le nombre d'itérations Nit déjà effectuées par le module de décodage itératif à la valeur Nmax • si Nit est inférieur à Nmax, passer à l'itération suivante du décodage, • sinon, arrêter le décodage.
Le procédé selon l'invention peut comporter, en outre, les étapes suivantes : o avant la première étape de décodage itératif, initialiser un nombre Nmin d'itérations minimal à effectuer, o après une exécution du module de décodage itératif, comparer la valeur Nit à la valeur Nmin : ^ si Nit < Nmin, exécuter l'itération suivante, sans effectuer le décodage de code correcteur, ^ sinon, exécuter toutes les étapes de l'itération.
L'invention a également pour objet un dispositif de décodage optimisé de données comportant au moins : o un décodeur itératif traitant les données, produisant des données traitées, et fournissant un nombre d'itérations Nit déjà effectuées, o des moyens de détection d'erreur décodant les données traitées pour produire un indicateur d'erreur et des données décodées, o et un module adapté à combiner l'indicateur d'erreur avec la valeur Nit pour produire un signal de commande d'activation ou d'arrêt du décodeur itératif.
Le dispositif selon l'invention peut comporter un interrupteur placé entre le décodeur itératif et les moyens de détection d'erreur, l'interrupteur comportant un module de test générant un signal de commande plaçant l'interrupteur dans une position connectant le décodeur itératif avec les moyens de détection d'erreur si la valeur Nit est inférieure à un nombre minimum Nmin d'itérations, ou dans une position dissociant le décodeur itératif des moyens de détection d'erreur, sinon, l'état du signal de commande indiquant, pour cette dernière position, une activation du décodeur itératif.
Le dispositif selon l'invention peut comporter deux modules d'aiguillage interconnectés et recevant chacun un signal indiquant le niveau de redondance NR du code utilisé par le module de décodage itératif, le premier module d'aiguillage étant placé en entrée du module de décodage itératif, et le second module d'aiguillage placé en sortie du module de décodage itératif, les deux modules d'aiguillage comportant au moins deux positions d'aiguillage des données, une première position court-circuitant l'exécution du module de décodage itératif et activée lorsque NR est nul, et une deuxième position permettant l'exécution du module de décodage itératif activée lorsque NR n'est pas nul.35 D'autres caractéristiques et avantages apparaîtront à la lecture de la description détaillée donnée à titre d'exemple et non limitative qui suit faite en regard de dessins annexés qui représentent : la figure 1, un procédé de transmission de données selon l'art antérieur, la figure 2, un principe de codage selon l'art antérieur adapté à la transmission à redondance incrémentale, la figure 3, un procédé de transmission de données selon l'invention, la figure 4, un schéma fonctionnel d'un module de décodage itératif selon l'invention, la figure 5, un exemple de dispositif de décodage itératif selon l'invention, la figure 6, une variante de réalisation du dispositif selon l'invention.
La figure 3 présente un schéma de transmission des données mettant en oeuvre le procédé selon l'invention, qui repose, notamment sur l'utilisation d'un module de décodage optimisé 20 dont un exemple de fonctionnement est présenté en figure 4. On souhaite transmettre un mot d'information 4. Un cycle d'envoi par l'émetteur 1 commence par une transmission du mot d'information 4 dans un codeur 10 adapté au codage pour transmission à redondance incrémentale. Selon le principe de l'art antérieur présenté en figure 2, la donnée issue du codeur 10 est composée de trois paquets de données 6, 7, et 8, chacun de longueur L. Le paquet initial 6 contient le mot d'information 4, c'est à dire la donnée utile, et le CRC 5, tandis que les premier et second paquets 7 et 8 constituent deux paquets de redondance. Le codage 10 étant effectué, l'émetteur 1 entame une première étape 14 d'envoi du paquet initial 6 que le récepteur 3 reçoit alors sous la forme d'un premier paquet reçu 6' potentiellement erroné. Le premier paquet 6' est transmis au module de décodage optimisé 20 selon l'invention. Celui-ci vérifie l'intégrité du premier paquet 6' et produit un premier indicateur 12 d'erreur et un premier paquet décodé 4'. Le premier indicateur 12 a notamment pour fonction de signaler une éventuelle erreur de décodage et le premier paquet décodé 4' est le résultat du décodage 20. Si le premier indicateur 12 ne signale pas d'erreur, alors le premier paquet décodé 4' est considéré valide et un nouveau cycle d'envoi de paquets de données peut débuter du côté émetteur 1. Dans le cas contraire, autrement dit, si le premier indicateur 12 signale une erreur de décodage, l'émetteur 1 envoie le premier paquet de redondance 7 que le récepteur reçoit alors sous la forme d'un deuxième paquet reçu 7', là encore potentiellement erroné. Une deuxième étape 15 de décodage commence alors. Comme illustré par la suite dans la description détaillée du module de décodage itératif 20 en figure 5, le premier paquet reçu 6' est concaténé, avec le deuxième paquet reçu 7' puis l'ensemble concaténé [6' 7'] de longueur 2L subit un décodage optimisé 20 de rendement Y2 pour produire un deuxième paquet décodé 4". Le deuxième paquet décodé 4" issu du décodage optimisé 20 est valide si le deuxième indicateur 12' ne signale pas d'erreur. Dans le cas contraire, l'émetteur 1 envoie le deuxième paquet de redondance 8. Ce dernier arrive au récepteur 1 sous la forme d'un paquet reçu 8', et une troisième étape 16 de décodage est entamée selon le même principe que la deuxième étape 15. Cette fois-ci, c'est un deuxième ensemble concaténé [6' 7' 8'] de longueur 3L qui subit, dans l'exemple, un décodage optimisé 20 de rendement 1 /3 pour produire un troisième paquet décodé 4"'. Si une erreur 12" est levée lors de ce dernier décodage 20, différentes stratégies connues de l'homme du métier sont envisageables. Sinon, le troisième paquet 4"' est considéré valide et un nouveau cycle d'envoi peut commencer. La figure 4 illustre un exemple de fonctionnement du module de décodage optimisé 20 selon l'invention. Les données souples à décoder sont transmises à un décodeur itératif 21 qui produit des symboles souples 22.
Les symboles souples 22 sont ensuite traités par un module de décision 23 permettant de fournir des bits décidés 25, par exemple. Les bits décidés sont transmis à un module décodeur CRC 11. Le décodeur CRC 11 fournit d'une part des données décodées 4", et d'autre part un indicateur d'erreur 12' sur l'intégrité des données décodées 4". L'indicateur d'erreur 12' est une sortie du module de décodage optimisé 20, mais il est également combiné dans un module logique 27 avec le nombre d'itérations Nit déjà effectuées par le décodeur itératif 21 pour produire un signal de commande 28. Ce signal de commande, selon son état, active ou non l'arrêt des itérations du module de décodage itératif 21.35 La figure 5 présente un exemple de réalisation du module de décodage optimisé 20 selon l'invention. L'illustration de la figure 5 correspond à un fonctionnement du module de décodage optimisé 20 lors de la deuxième étape de transmission 15 présentée en figure 3. Le module de décodage optimisé 20 fonctionne de manière analogue pour les autres étapes de transmission (14, 16). Le module de décodage optimisé 20 selon la figure 5 comporte une entrée 20a, une première sortie 20b, et une seconde sortie 20c. Il comprend en outre un compteur 30, une mémoire 32, un module de concaténation 34, un premier module d'aiguillage 36, un second module d'aiguillage 36', un module de décodage itératif 38, un module de démappage 40, un module de seuillage 42, un module décodeur CRC 44, un inverseur d'état logique 46, un module de test logique 48, et un OU logique inclusif 50. Un paquet reçu 6', 7', 8', lors d'une étape de transmission 14, 15, 15 16est reçu par l'entrée 20a et est transmis à la fois vers le compteur 30 et vers la mémoire 32. Le compteur 30 selon l'exemple de réalisation comporte une entrée de données 30a adaptée à recevoir un paquet reçu 6', 7', 8', et un registre, non représenté sur la figure pour des raisons de simplification, 20 mémorisant une valeur NR initialisée à 0 avant tout cycle d'envoi, c'est-à-dire avant d'entamer la première étape de transmission 14 (figure 3). Lorsque le compteur 30 reçoit un paquet, la valeur NR est incrémentée d'une unité. La valeur NR correspond ainsi au niveau de redondance du code correcteur à utiliser pour le décodage itératif. A l'issue de la première étape 25 de transmission 14, le premier paquet reçu 6' a déjà activé le compteur 30 une première fois, donc le registre mémorise une valeur NR égale à 1 . Lors de la deuxième étape 15 d'envoi, la valeur NR est de nouveau incrémentée par l'arrivée du deuxième paquet 7' ; la valeur NR passe alors à la valeur 2 . Le compteur 30 comporte également une entrée de 30 commande 30b permettant la réinitialisation à 0 du registre et une sortie 30c fournissant un signal de comptage 31 contenant la valeur NR mémorisée par le registre. Le signal de comptage 31 est transmis aux deux modules d'aiguillage 36, 36', et au décodeur itératif 38. La mémoire 32 comprend des cellules d'enregistrement 32a, 32b, 35 32c, pour stocker les paquets reçus. Initialement, avant la première étape de transmission 14, les cellules d'enregistrement sont vides. Dans cet exemple, la mémoire 32 comprend autant de cellules d'enregistrement que le niveau maximal de redondance NRmax accepté par le décodeur itératif 38, soit, dans cet exemple, trois cellules d'enregistrement 32a, 32b, 32c, chacune pouvant mémoriser un paquet reçu par l'entrée 20a. La première cellule d'enregistrement 32a de la mémoire 32 mémorise le premier paquet reçu 6'. Lorsque le deuxième paquet reçu 7' est réceptionné par la mémoire 32, il est mémorisé par la deuxième cellule d'enregistrement 32b, vide. Une liaison 33a, 33b, 33c relie chaque cellule d'enregistrement de la mémoire 32 au module de concaténation 34. Une première liaison 33a peut donc transmettre le premier paquet reçu 6' au module de concaténation 34, et une deuxième liaison 33b peut transmettre le deuxième paquet reçu 7' au module de concaténation 34. Le module de concaténation 34 concatène les paquets transmis par les liaisons 33a, 33b, 33c. Le paquet de redondance utilisé ensuite pour le décodage itératif peut ainsi être reconstruit par concaténation des paquets de redondance stockés dans les cellules d'enregistrement. La sortie du module de concaténation 34 fournit le résultat de la concaténation au premier module d'aiguillage 36. Ainsi, à la première étape de transmission 14, seul le premier paquet reçu 6' est transmis au premier module d'aiguillage 36, tandis qu'à la deuxième étape de transmission 15, l'ensemble [6', 7'] formé par les deux paquets successivement reçus est fourni par le module de concaténation 34. Le premier module d'aiguillage 36 comporte une entrée de données 36a reliée au module de concaténation 34, deux sorties de données 36b, 36c et une entrée de commande 36d adaptée à recevoir le signal de comptage 31. Une première sortie de données 36b est reliée au second module d'aiguillage 36'. Une seconde sortie de données 36c est reliée au module de décodage itératif 38. Le premier module d'aiguillage 36 dirige l'entrée de données 36a vers une des deux sorties de données 36b, 36c en fonction de la valeur NR du signal de comptage 31. Dans l'exemple, lorsque la valeur NR du signal de comptage 31 est inférieure à 2 , alors les données entrant dans le premier module d'aiguillage 36 sont dirigées vers le second module d'aiguillage 36', sinon ces données sont dirigées vers le module de décodage itératif 38.
Le second module d'aiguillage 36' comporte deux entrées 36b', 36c', une entrée de commande 36d' adaptée à recevoir le signal de comptage 31, et une sortie de données 36a'. Une première entrée 36b' est reliée au premier module d'aiguillage 36, une seconde entrée 36c' est reliée au module de décodage itératif 38. La sortie de données 36a' est reliée au module de démappage 40. Le second module d'aiguillage 36' dirige, en fonction de la valeur NR fournie par le signal de comptage 31, une des deux entrées de données 36b', 36c' vers la sortie de données 36a'. Dans l'exemple, lorsque la valeur NR est inférieure à 2 , alors les données entrant par la première entrée 36b' du second module d'aiguillage 36' sont dirigées vers la sortie de données 36a', sinon, c'est la seconde entrée 36c' qui est dirigée vers la sortie 36a'. Les deux modules d'aiguillage 36, 36' sont commandés selon la même condition logique, dans l'exemple selon le résultat du test suivant : NR inférieure à 2 . En effet, soit les données issues du module de concaténation 34 sont directement transmises au module de démappage 40, soit ces données subissent d'abord une itération du décodeur itératif 38 avant d'être transmises au module de démappage 40. Ainsi, les deux modules d'aiguillage 36, 36' sont utilisés pour court-circuiter l'exécution du décodeur itératif 38 lors de la première étape de transmission 14. En effet, lors de cette première étape de transmission 14, seul le premier paquet 6 étant transmis, aucun paquet de redondance ne pourrait être utilisé par le module de décodage itératif 38, rendant donc son exécution inutile. Le module de décodage itératif 38 comporte une entrée de données 38a reliée au premier module d'aiguillage 36, une première sortie 38b reliée au second module d'aiguillage 36', une seconde sortie 38c reliée au module de test logique 48, une première entrée de commande 38d adaptée à recevoir le signal de comptage 31, et une seconde entrée de commande 38e adaptée à recevoir un signal issu du OU logique inclusif 50.
Des données souples devant subir un décodage sont reçues dans le module de décodage itératif 38 par l'entrée de données 38a et des symboles souples résultant du décodage sont fournis par la première sortie 38b. La seconde sortie 38c fournit le nombre d'itérations Nit exécutées par le décodeur itératif au cours de l'étape de transmission courante. Le nombre Nit est initialisé à 0 et incrémenté d'une unité à chaque itération du décodeur itératif 38.
Par ailleurs, le décodeur itératif 38 est configuré avec un nombre maximal Nmax d'itérations autorisé. Le signal de comptage 31, reçu via la première entrée de commande 38d, permet de configurer le rendement du code correcteur utilisé par le module de décodage itératif 38. Pour la deuxième étape de transmission 15, le rendement du code correcteur est égal à 1/2 , puisque l'ensemble [6',7') des données à décoder est de longueur 2L, tandis que, par exemple, lors de la troisième étape de transmission 16, le code correcteur est de rendement 1/3 . Les symboles souples 39 issus du deuxième module d'aiguillage 36' sont transmis au module de démappage 40. Ce module, connu de l'art antérieur, permet de convertir les symboles souples 39 en bits décidés 43. Le module de démappage 40 remplit la fonction du module de décision 23 présenté en figure 4. Les bits décidés 43 issus du module de démappage 40 sont ensuite transmis au module décodeur CRC 44 afin de vérifier l'intégrité des données. Le décodeur CRC 44 comporte une première sortie 44a fournissant le paquet décodé 4' (figure 3) et reliée à la première sortie 20b du module de décodage optimisé 20. Il comporte également une deuxième sortie 44b générant l'indicateur d'erreur 12' et reliée à la seconde sortie 20c du module de décodage optimisé 20. L'indicateur d'erreur 12' est transmis à l'inverseur d'état logique 46 pour produire un indicateur d'erreur d'état logique inversé 47. D'autre part, le module de test logique 48 reçoit la valeur Nit fournie par le décodeur itératif 38 et correspondant au nombre d'itérations effectuées. Le module de test logique 48 produit un signal logique 49 en sortie selon, par exemple, le test suivant : si la valeur Nit est inférieure au nombre maximal d'itérations Nmax, alors le signal logique 49 en sortie est mis à l'état logique faux , sinon il est mis à l'état logique vrai . L'indicateur d'erreur inversé 47 est combiné avec le signal logique 49 dans le OU logique inclusif 50 pour générer un signal de commande 51 qui, selon sa valeur, entraîne l'arrêt ou non du décodage itératif. Le décodeur itératif 38 est par exemple arrêté si le nombre maximal d'itérations Nmax a été atteint ou si aucune erreur 12' n'a été détectée par le décodeur CRC 44. Afin de générer la condition d'arrêt de l'itération, des variantes sont possibles, notamment par la combinaison d'autres modules logiques.
Le signal de commande 51 est transmis au décodeur itératif 38 via sa deuxième entrée de commande 38e, au compteur 30 via son entrée de commande 30b, et à la mémoire 32. Le signal de commande 51 permet de commander un vidage des cellules d'enregistrement 32a, 32b, 32c, une réinitialisation du registre du compteur 30, et un arrêt des itérations du module de décodage itératif 38. Ainsi, lorsqu'après un certain nombre d'itérations Nit, pouvant être inférieur à Nmax, aucune erreur n'est signalée par le décodeur CRC 44, le module de décodage itératif 38 est arrêté et aucune exécution superflue n'est effectuée, ce qui permet d'éviter l'exécution de Nmax Nit itérations inutiles. D'autres mode de réalisation sont possibles pour mettre en oeuvre le procédé selon l'invention. Notamment, tous types de décodeur détecteur d'erreurs peuvent être utilisés pour remplir le rôle du décodeur CRC 44. La figure 6 présente une variante de réalisation qui comporte, par rapport au schéma de la figure 5, une boucle interne . Tant que le nombre d'itérations Nit n'a pas atteint une valeur Nmin donnée, le démappage 40 et le décodage CRC 44 ne sont pas effectués. Selon cette variante, le module de décodage optimisé 20 comporte, en plus, un interrupteur 61. L'interrupteur 61 est placé sur la liaison raccordant le deuxième module d'aiguillage 36' au module de démappage 40. En outre, il comporte une entrée recevant la valeur du nombre d'itérations Nit, transmise par la seconde sortie 38c du décodeur itératif 38. Sa position initiale est, par exemple, ouverte laissant ainsi le deuxième module d'aiguillage 36' et le module de démappage 40 déconnectés l'un de l'autre. L'interrupteur 61 comporte un module de test, non représenté dans la figure 6, générant un signal de commande différent selon que la valeur Nit du signal de comptage 31 est inférieure ou non à la valeur Nmin. Si Nit est inférieure à Nmin, alors le module de test génère un signal de commande pour placer l'interrupteur 61 en position ouverte. Pour permettre alors au module de décodage itératif 38 de continuer l'itération, l'état de l'indicateur d'erreur 12' est par exemple laissé à une valeur indiquant une erreur. Dans le cas contraire, c'est-à-dire si Nit est supérieure ou égale à Nmin, l'interrupteur 61 est fermé, activant ainsi les modules dedémappage 40 et de décodage CRC 44. Un avantage de cette variante est de réduire le nombre 35 d'exécutions du décodeur CRC 44 et du module de démappage 40. En effet, l'expérience montre que dans certains cas, un nombre minimal d'itérations Nmin est nécessaire afin d'obtenir des données décodées valides. II est donc inutile d'exécuter le module de décodage CRC 44, tant que le nombre d'itérations effectuées n'a pas atteint Nmin. Un nombre Nmin optimal peut par exemple être déduit de l'expérience du traitement de précédents paquets reçus lors d'une transmission. Un avantage de l'invention est de diminuer la charge de calculs des systèmes intégrant ce type de procédé, permettant ainsi rendre des ressources matérielles disponibles pour l'exécution d'autres tâches.10
Claims (5)
1. Procédé de transmission de données dans un système à redondance incrémentale comportant au moins une étape d'émission des données et une étape de réception, l'étape de réception comprenant une ou 5 plusieurs étapes de décodage, caractérisé en ce qu'une étape de décodage comporte l'initialisation d'un nombre d'itérations Nit à une valeur maximale Nmax et l'exécution d'au moins une itération comprenant les étapes suivantes : o transmettre les données (7', 8') à un module de décodage itératif (21) ; o décoder et transmettre les données décodées (22) à un décodeur de code détecteur d'erreur (11) retournant un indicateur d'erreur (12', 12") et des données décodées (4", 4'ä). ^ si l'indicateur d'erreur (12', 12") ne signale pas d'erreur, arrêter le décodage, ^ si l'indicateur d'erreur (12', 12") signale une erreur, comparer le nombre d'itérations Nit déjà effectuées par le module de décodage itératif (21) à la valeur Nmax, 20 • si Nit est inférieur à Nmax, passer à l'itération suivante du décodage, • sinon, arrêter le décodage.
2. Procédé selon la revendication 1, caractérisé en ce qu'il comporte en 25 outre les étapes suivantes : o avant la première étape de décodage itératif, initialiser un nombre Nmin d'itérations minimal à effectuer, o après une exécution du module de décodage itératif (21), comparer la valeur Nit à la valeur Nmin : 30 ^ si Nit < Nm;n, exécuter l'itération suivante, sans effectuer le décodage de code correcteur (11), ^ sinon, exécuter toutes les étapes de l'itération. 10 15
3. Dispositif de décodage optimisé (20) de données (6', 7', 8'), caractérisé en ce qu'il comporte au moins : o un décodeur itératif (21, 38) traitant les données (6', 7', 8'), produisant des données traitées (22), et fournissant un nombre 5 d'itérations Nit déjà effectuées, o des moyens de détection d'erreur (23, 11, 40, 44) décodant les données traitées (22) pour produire un indicateur d'erreur (12, 12', 12") et des données décodées (4', 4", 4"'), o et un module (27) adapté à combiner l'indicateur d'erreur (12, 12', 10 12") avec la valeur Nit pour produire un signal de commande (28, 51) d'activation ou d'arrêt du décodeur itératif (21, 38).
4. Dispositif de décodage optimisé selon la revendication 3, caractérisé en ce qu'il comporte un interrupteur (61) placé entre le décodeur 15 itératif (38) et les moyens de détection d'erreur (40, 44), l'interrupteur (61) comportant un module de test générant un signal de commande plaçant l'interrupteur (61) dans une position connectant le décodeur itératif (38) avec les moyens de détection d'erreur (40, 44) si la valeur Nit est inférieure à un nombre minimum Nmin d'itérations, ou dans une 20 position dissociant le décodeur itératif (38) des moyens de détection d'erreur (40, 44), sinon, l'état du signal de commande (51) indiquant, pour cette dernière position, une activation du décodeur itératif (38).
5. Dispositif de décodage optimisé (20) selon la revendication 3, 25 caractérisé en ce qu'il comporte deux modules d'aiguillage (36, 36') interconnectés et recevant chacun un signal indiquant le niveau de redondance NR du code utilisé par le module de décodage itératif (38), le premier module d'aiguillage (36) étant placé en entrée (38a) du module de décodage itératif (38), et le second module d'aiguillage 30 (36') placé en sortie (38b) du module de décodage itératif (38), les deux modules d'aiguillage (36, 36') comportant au moins deux positions d'aiguillage des données (6', 7', 8'), une première position court-circuitant l'exécution du module de décodage itératif (38) et activée lorsque NR est nul, et une deuxième position permettantl'exécution du module de décodage itératif (38) activée lorsque NR n'est pas nul.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
FR0702894A FR2915335B1 (fr) | 2007-04-20 | 2007-04-20 | Procede et dispositif optimise de decodage iteratif dans un systeme de transmission a redondance incrementale |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
FR0702894A FR2915335B1 (fr) | 2007-04-20 | 2007-04-20 | Procede et dispositif optimise de decodage iteratif dans un systeme de transmission a redondance incrementale |
Publications (2)
Publication Number | Publication Date |
---|---|
FR2915335A1 true FR2915335A1 (fr) | 2008-10-24 |
FR2915335B1 FR2915335B1 (fr) | 2009-10-30 |
Family
ID=38941856
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
FR0702894A Active FR2915335B1 (fr) | 2007-04-20 | 2007-04-20 | Procede et dispositif optimise de decodage iteratif dans un systeme de transmission a redondance incrementale |
Country Status (1)
Country | Link |
---|---|
FR (1) | FR2915335B1 (fr) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6233709B1 (en) * | 1998-12-07 | 2001-05-15 | Nokia Mobile Phones Ltd. | Dynamic iterative decoding for balancing quality of service parameters |
US20010056560A1 (en) * | 1998-10-08 | 2001-12-27 | Farooq Khan | Method and system for measurement based automatic retransmission request in a radiocommunication system |
EP1339170A1 (fr) * | 2000-11-30 | 2003-08-27 | Matsushita Electric Industrial Co., Ltd. | Dispositif et procede de decodage |
US7043678B2 (en) * | 1999-10-11 | 2006-05-09 | Nokia Corporation | Method for identifying bad frames |
-
2007
- 2007-04-20 FR FR0702894A patent/FR2915335B1/fr active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20010056560A1 (en) * | 1998-10-08 | 2001-12-27 | Farooq Khan | Method and system for measurement based automatic retransmission request in a radiocommunication system |
US6233709B1 (en) * | 1998-12-07 | 2001-05-15 | Nokia Mobile Phones Ltd. | Dynamic iterative decoding for balancing quality of service parameters |
US7043678B2 (en) * | 1999-10-11 | 2006-05-09 | Nokia Corporation | Method for identifying bad frames |
EP1339170A1 (fr) * | 2000-11-30 | 2003-08-27 | Matsushita Electric Industrial Co., Ltd. | Dispositif et procede de decodage |
Non-Patent Citations (1)
Title |
---|
ROWITCH D N ET AL: "ON THE PERFORMANCE OF HYBRID FEC/ARQ SYSTEMS USING RATE COMPATIBLE PUNCTURED TURBO (RCPT) CODES", IEEE TRANSACTIONS ON COMMUNICATIONS, IEEE SERVICE CENTER, PISCATAWAY, NJ, US, vol. 48, no. 6, June 2000 (2000-06-01), pages 948 - 959, XP000954425, ISSN: 0090-6778 * |
Also Published As
Publication number | Publication date |
---|---|
FR2915335B1 (fr) | 2009-10-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP0891656B1 (fr) | Procede et dispositif de codage convolutif de blocs de donnees, et procede et dispositif de decodage correspondants | |
FR2905209A1 (fr) | Procede et dispositif de decodage de blocs encodes avec un code ldpc | |
EP0481549A1 (fr) | Système et procédé de codage/décodage de signaux numériques transmis en modulation codée | |
FR2954631A1 (fr) | Procede et dispositif de configuration en boucle fermee d'un reseau d'antenne | |
FR2765749A1 (fr) | Decodeur a base de syndrome a decision ponderee pour codes a convolution | |
FR2900294A1 (fr) | Chargement de la memoire d'entree d'un decodeur ldpc avec des donnees a decoder | |
EP0848524A1 (fr) | MAQ à codage perforé en trellis, avec décodage itératif | |
EP1841078A1 (fr) | Circuit de réception double canaux | |
EP3084995A1 (fr) | Procédé de transmission d'un signal numérique pour un système marc a un relais half-duplex dynamique, produit programme et dispositif relais correspondants | |
EP2415193B1 (fr) | Procédé et dispositif de modulation mettant en oeuvre une modulation différentielle, procédé et dispositif de démodulation, signal et produits programme d'ordinateur correspondants | |
EP0774840B1 (fr) | Procédé de transmission d'une séquence de bits d'information avec protection sélective contre les erreurs de transmission, procédés de codage et de correction pouvant être mis en oeuvre dans un tel procédé de transmission | |
FR2891419A1 (fr) | Decodage d'une pluralite de flux d'informations codees selon un algorithme de codage par blocs. | |
FR2655222A1 (fr) | Procede et dispositif de transmission numerique d'informations, avec demande automatique de retransmission, ou "arq". | |
FR3009462B1 (fr) | Procede ameliore de decodage d'un code correcteur avec passage de message, en particulier pour le decodage de codes ldpc ou codes turbo | |
FR2915335A1 (fr) | Procede et dispositif optimise de decodage iteratif dans un systeme de transmission a redondance incrementale | |
EP2865100B1 (fr) | Dispositif de correction de deux erreurs avec un code de distance de hamming trois ou quatre | |
WO2006005835A1 (fr) | Systeme de compensation de dephasage pour turbo decodeur | |
WO2006087497A2 (fr) | Procede et dispositif de synchronisation trame | |
EP0982866B1 (fr) | Procédé de codage convolutif et de transmission par paquets d'un flux série de données numériques, procédé et dispositif de décodage correspondants | |
EP3963757B1 (fr) | Procédé et dispositif récepteur pour détecter le début d'une trame d'un signal de communications par satellite | |
FR2952254A1 (fr) | Procede de reception et recepteur pour transmission numerique serie codee sur un canal non stationnaire | |
EP2342855B1 (fr) | Procédé d'amélioration d'acquisition d'un ensemble de données émises de façon répétitive en environnement difficile | |
FR2796785A1 (fr) | Systeme de communication, recepteur, dispositif et procede de correction d'erreurs dues au canal | |
FR2924288A1 (fr) | Procede et dispositif de decodage iteratif par effacement, produit programme d'ordinateur et moyen de stockage correspondants | |
EP0320844B1 (fr) | Procédé de détection d'effacements affectant une liaison hertzienne numérique et chaîne de réception mettant en oeuvre un tel procédé |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PLFP | Fee payment |
Year of fee payment: 10 |
|
PLFP | Fee payment |
Year of fee payment: 11 |
|
PLFP | Fee payment |
Year of fee payment: 12 |
|
PLFP | Fee payment |
Year of fee payment: 14 |
|
PLFP | Fee payment |
Year of fee payment: 15 |
|
PLFP | Fee payment |
Year of fee payment: 16 |
|
PLFP | Fee payment |
Year of fee payment: 17 |
|
PLFP | Fee payment |
Year of fee payment: 18 |