FR2890806A1 - Procede d'amelioration de decodage iteratif de codes - Google Patents

Procede d'amelioration de decodage iteratif de codes Download PDF

Info

Publication number
FR2890806A1
FR2890806A1 FR0509220A FR0509220A FR2890806A1 FR 2890806 A1 FR2890806 A1 FR 2890806A1 FR 0509220 A FR0509220 A FR 0509220A FR 0509220 A FR0509220 A FR 0509220A FR 2890806 A1 FR2890806 A1 FR 2890806A1
Authority
FR
France
Prior art keywords
decoding
vector
crc
value
demodulator
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
FR0509220A
Other languages
English (en)
Other versions
FR2890806B1 (fr
Inventor
Jacques Eudes
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Thales SA
Original Assignee
Thales SA
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Thales SA filed Critical Thales SA
Priority to FR0509220A priority Critical patent/FR2890806B1/fr
Priority to EP06793408A priority patent/EP1932241A2/fr
Priority to PCT/EP2006/066227 priority patent/WO2007028834A2/fr
Priority to US12/066,119 priority patent/US8332717B2/en
Publication of FR2890806A1 publication Critical patent/FR2890806A1/fr
Application granted granted Critical
Publication of FR2890806B1 publication Critical patent/FR2890806B1/fr
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/29Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes
    • H03M13/2957Turbo codes and decoding
    • H03M13/2975Judging correct decoding, e.g. iteration stopping criteria
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/09Error detection only, e.g. using cyclic redundancy check [CRC] codes or single parity bit
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/29Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/37Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35
    • H03M13/3707Adaptive decoding and hybrid decoding, e.g. decoding methods or techniques providing more than one decoding algorithm for one code
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/37Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35
    • H03M13/3738Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35 with judging correct decoding
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/37Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35
    • H03M13/3746Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35 with iterative decoding
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/63Joint error correction and other techniques
    • H03M13/635Error control coding in combination with rate matching
    • H03M13/6362Error control coding in combination with rate matching by puncturing
    • H03M13/6368Error control coding in combination with rate matching by puncturing using rate compatible puncturing or complementary puncturing
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/65Purpose and implementation aspects
    • H03M13/6508Flexibility, adaptability, parametrability and configurability of the implementation

Landscapes

  • Physics & Mathematics (AREA)
  • Probability & Statistics with Applications (AREA)
  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Error Detection And Correction (AREA)

Abstract

Procédé d'amélioration de décodage itératif de codes courts au sein d'un démodulateur (5) caractérisé en ce qu'il comporte au moins les étapes suivantes :● Décoder le vecteur de métriques des bits considérés en sortie du démodulateur (5),● comparer (8) la valeur du code de contrôle du CRC du mot décodé à une valeur prédéterminée,● Si la valeur du CRC est considérée comme formant un message acceptable pour l'étape de décodage, transmettre le mot décodé au destinataire,● Si la valeur du CRC est incompatible d'un message correctement décodé, alors modifier les paramètres de décodage itératif du message initial reçus du démodulateur et exécuter au moins une nouvelle étape de décodage itératif avec ces nouveaux paramètres.

Description

PROCEDE D'AMELIORATION DE DECODAGE ITERATIF DE CODES
L'invention concerne notamment un procédé permettant d'améliorer le décodage itératif de codes courts (une centaine de bits) à moyennement longs (de la taille MPEG = 1504 bits par exemple) codés avec un code correcteur d'erreur de rendement faible tel que 1/3 ou élevé : 90% ou plus.
Elle s'applique, notamment, dans le domaine des télécommunications, par exemple pour les communications satellite.
Dans la description, on introduit la notion de décodeur super itératif pour différencier une itération effectuée au sein d'un décodeur selon 10 l'art antérieur et l'étape d'itération dans le procédé selon l'invention.
Les communications à accès multiples (TDMA time Divisional multiple access) ou lorsque la latence doit être faible utilisent généralement des codes courts ou moyennement longs précités (par exemple de la taille MPEG) .
Dans ces conditions, pour les turbo codes au sens général du terme, incluant les turbo codes ou TPC Turbo Product Codes, les codes obtenus par concaténation en série des codes convolutionnels ou SCCC (abréviation anglo-saxonne de Serial Concatenated Convolutional Code), les codes obtenus par une concaténation en parallèle de codes convolutionnels ou PCCC (abréviation anglo-saxonne de Parallel Concatenated convolutional code), les contrôles de parité faible densité LDPC (abréviation anglo saxonne de Low density parity check), dans leur variante binaire ou maire, un compromis doit être trouvé entre complexité de décodage et performances du code.
Le principe du décodage itératif est de générer deux informations de cohérence locale dans deux dimensions, aussi indépendantes que possible. L'indépendance est notamment assurée entre les deux dimensions par un entrelaceur.
La taille du mot de code limite le découplage entre les deux dimensions. Une taille réduite amplifie aussi l'effet statistique d'un mauvais codage local, qui est moins bien compensé par le reste du code.
Pour cette raison, les codes de petite ou de moyenne taille sont aujourd'hui assez loin de la limite théorique pour des complexités de 10 décodage raisonnable.
Pour des codes de grande taille (supérieure par exemple à 5000 bits d'information), il est connu de l'art antérieur des méthodes de concaténation, par exemple des concaténations de code LPCD et turbo, pour réduire le plancher d'erreur (error floor) du turbo code, dû à une distance libre (au sens de Hamming) trop faible.
Une autre possibilité consiste à ne pas réduire le taux de codage du code interne. Le taux de codage étant plus petit, le point de fonctionnement (exprimé en Eb/NO avec Eb Energie par bit et NO densité spectrale de bruit et non des bits codés par le code externe) n'est pas compensé par le gain du code externe.
Lorsque le système utilise des codes petits, soit pour des problèmes de latence liée à de petits débits tels que dans la téléphonie, ou pour des problèmes de granularité dans des systèmes à allocation dynamique, le système de codage utilisant de grands mots de code devient inefficace.
L'invention concerne un procédé d'amélioration de décodage itératif de codes courts au sein d'un démodulateur caractérisé en ce qu'il comporte au moins les étapes suivantes: É Décoder le vecteur de métriques des bits considérés en sortie du démodulateur, É comparer la valeur du code de contrôle du CRC du mot décodé à une valeur prédéterminée, É Si la valeur du CRC est considérée comme formant un message acceptable pour l'étape de décodage, transmettre le mot décodé au destinataire, le super décodeur transmet le mot décodé, É Si la valeur du CRC est incompatible d'un message correctement décodé, alors modifier les paramètres de décodage itératif du message initial reçus du démodulateur et exécuter au moins une nouvelle étape de décodage itératif avec ces nouveaux paramètres. Le super décodeur modifie les paramètres de décodage itératif.
La valeur du CRC est définie, par exemple, afin que le taux de codage global ne soit pas changé par l'insertion du CRC, grâce à une 15 perforation effectuée dans le code décodé itérativement.
L'invention présente notamment les avantages suivants: É Une réduction du rapport signal à bruit nécessaire pour obtenir un taux d'erreur binaire donné, É Une indication de validité du paquet reçu afin de destruction éventuelle par les couches protocolaires supérieures.
D'autres caractéristiques et avantages de la présente invention apparaîtront mieux à la lecture de la description d'un exemple de réalisation donné à titre illustratif et nullement limitatif annexé des figures qui représentent: É La figure 1 le schéma de mise en oeuvre de l'invention, indiquant les blocs ajoutés: CRC (2), vérification du CRC (8) et fonction de rétroaction (6) et le point d'action du retour de décision utilisé par l'invention, É La figure 2 indique le gain de l'invention dans le cas d'une cellule ATM (asynchronous transfer mode), et É La figure 3 indique le gain de l'invention dans le cas d'une cellule ATM.
L'idée de base du procédé selon l'invention est notamment d'utiliser un code de contrôle CRC (abréviation anglo-saxonne de Cyclic redondancy check) adapté pour indiquer, notamment en fin de décodage soit que le résultat obtenu doit être considéré comme valide, CRC exact, ou au contraire que le résultat décodé ne peut être conforme au message émis. Lorsque le CRC n'est pas correct, le décodeur recommence un décodage depuis la première itération, mais en modifiant l'information initiale reçue du démodulateur.
Sur la figure 1, on a représenté en traits pleins, les étapes et les moyens mis en oeuvre par l'invention dans le cas où le procédé de décodage inclus déjà un CRC. En traits pointillés, un moyen permettant d'introduire un CRC au niveau du codeur est représenté.
La source 1 émet des signaux composés de bits qui sont codés par un codeur itératif 3. Les bits codés sont ensuite transmis à un modulateur 4. Les bits modulés transitent à travers un canal de propagation et sont reçus par un récepteur 5,6,7,8. Le récepteur comprend, par exemple, un démodulateur 5 recevant le signal issu du canal de propagation. Les signaux démodulés sont ensuite transmis à un décodeur super itératif 6,7, 8 présentant les caractéristiques de l'invention et comprenant notamment un dispositif anti-gradient 6, un décodeur itératif 7 et un dispositif de contrôle de CRC 8.
Le contrôleur 8 a notamment pour fonction de contrôler la valeur du code de contrôle CRC présent dans le signal à une valeur fixée au préalable. La fonction décodage est notamment adaptée à : É Sortir les informations pondérées qu'elle utilise pour la dernière itération, par exemple les deux itérations pour un PCCC. On utilise l'information issue du décodage (en anglo-saxon soft output brute) et non la métrique extrinsèque utilisée lors du rebouclage itératif, On rappelle que l'équation métrique extrinsèque est égale à l'information issue du décodage ou soft output brute la (< métrique 10 intrinsèque É Le décodeur est notamment adapté à détecter la fin de convergence de code. Différents critères connus de l'Homme du métier peuvent être utilisés. Le critère de convergence de décodage d'un TPC est extrêmement simple, puisque le décodage peut s'arrêter dès lors que le mot correspondant à la sortie (soft output brute) d'une demi-itération est un mot de code pour l'autre itération. Des méthodes existent de la même façon pour les autres codes à décodages itératifs.
L'information introduite dans le CRC est, par exemple, une valeur de type binaire, message acceptable ou message incorrectement décodé. Le 20 procédé selon l'invention met en oeuvre notamment les étapes suivantes: A) Super encodage à l'émission: É Ajout d'un CRC au message original (dans le cas où il n'existe pas) ou utilisation d'un CRC dans le cas où les couches hautes le définissent explicitement), É Encodage du message original grâce à un code susceptible de décodage itératif.
B) Super décodage à la réception: É Décodage du vecteur de métrique en sortie du démodulateur, On décode le vecteur de métriques des bits considérés en sortie du démodulateur, É Comparaison de la valeur du code de contrôle CRC du mot décodé à une valeur prédéterminée, par exemple la valeur du CRC calculé sur le message décodé, É Si le CRC calculé sur le mot décodé est conforme à la valeur du CRC décodée, la valeur est considérée comme formant un message acceptable pour l'étape de décodage, alors, le super décodeur transmet le mot décodé au destinataire, É Si la valeur du CRC n'est pas cohérente, c'est à dire si la valeur du CRC est incompatible d'un message correctement décodé, alors le super-décodeur modifie les paramètres de décodage itératif du message initial reçues du démodulateur et exécute au moins une nouvelle étape de décodage itératif avec ces nouveaux paramètres.
La modification des paramètres de décodage peut alors être une modification de la vitesse de convergence, une modification de la puissance de calcul, une modification des entrées du décodeur telle que détaillée dans la suite.
Pour un dispositif ne comportant pas de vérification intrinsèque (2) , le procédé comporte une étape où l'on ajoute ce vérificateur intrinsèque et l'on exécute ensuite les étapes de décodage précitées.
Selon une variante de réalisation, on ajoute un CRC adapté à détecter un faux décodage et à relancer un deuxième décodage itératif, lorsque le taux de codage global est diminué par l'insertion du CRC, le code décodé itérativement conservant son taux de codage.
Le CRC ajouté est par exemple adapté à relancer un deuxième décodage itératif, lorsque le taux de codage global n'est pas changé par l'insertion du CRC, grâce à une perforation c'est à dire la suppression arbitraire de certains bits codés, le plus souvent uniformément répartis dans le message codé) effectuée dans le code décodé, et l'on en informe le décodeur par l'envoi pour le bit perforé d'une valeur correspondant à pas d'information a priori , le plus souvent la LLR (Log Likelihood Ratio) nulle).
Selon une variante de mise en oeuvre, le procédé comporte, par exemple, un CRC existant et adapté à relancer un deuxième décodage itératif, en partant du même vecteur d'initialisation (i.e. les valeurs pondérées fournies par le démodulateur) fourni par le démodulateur, avec un procédé de décodage plus onéreux, mais plus proche de l'optimal.
Selon une variante de mise en oeuvre, le procédé utilise un CRC déjà existant pour décider de relancer un deuxième décodage itératif, en partant du même vecteur d'initialisation fourni par le, mais avec un procédé de décodage à convergence plus lente en utilisant des coefficients de pondération de la métrique extrinsèque plus faibles que lors du premier décodage. Ce deuxième décodage peut également utiliser plus d'itérations que la première tentative. Le décodage itératif classique fourni par le décodeur classique comporte plusieurs itérations.
A la fin de ces itérations, le décodeur 7 fournit au comparateur de CRC 8 l'information décodée.
Le comparateur de CRC choisit alors de valider le résultat proposé par le décodeur, ou choisit de demander à l'opérateur gradient inverse 6 un nouveau point de départ pour un nouveau décodage du mot de code à décoder. Ce nouveau décodage prendra alors plusieurs itérations.
Dans une seconde variante de réalisation, le deuxième décodage est exécuté en partant d'un vecteur d'initialisation différent du vecteur d'initialisation fourni par le démodulateur. Le vecteur correctif, représentant la différence entre le vecteur initial et le vecteur sur lequel est tenté le nouveau décodage est fourni par un bruit de faible amplitude_(faible température) suivant une méthode de recuit simulé.
Dans une autre variante de réalisation, le deuxième décodage peut être exécuté en partant d'un vecteur d'initialisation différent du vecteur d'initialisation fourni par le démodulateur, lorsque le vecteur correctif, représentant la différence entre le vecteur initial et le vecteur sur lequel est tenté le nouveau décodage est fourni par l'anti-gradient des dernières demi itérations. On appelle ici anti-gradient le vecteur quasi nul constitué, pour ses valeurs non nulles, des valeurs décodées considérées comme étant les moins fiables lors de la dernière demi itération, de l'avant dernière demi itération ou d'une pondération des demi itérations du décodage itératif classique. Le nombre des valeurs retenues non nulles dans cet anti-gradient est typiquement de l'ordre de trois quarts de la distance libre du code sans que cette valeur constitue une obligation. La valeur absolue des points non nuls de l'anti-gradient est typiquement égale à la moitié de la métrique moyenne. Leur signe est inverse de la décision correspondant au décodage.
Selon une autre variante de mise en oeuvre, le deuxième décodage est une combinaison des deux méthodes précédentes, lorsque le vecteur correctif, représentant la différence entre le vecteur initial et le vecteur sur lequel est tenté le nouveau décodage est nul sur les points présentant une métrique décodée importante, et un bruit aléatoire (par exemple gaussien) sur les points correspondant à une moins bonne convergence, caractérisés par une métrique décodée faible.
Dans une sous variante de ce décodage par modification du vecteur d'initialisation, le deuxième décodage est par exemple de type multi hypothèse et consiste à forcer un bit décodé à une valeur donnée, correspondant par exemple à l'inverse de la valeur trouvée par le décodage de la première super itération; le vecteur correctif correspond alors à une décision dure, et force la métrique (LLR) du bit considéré à la valeur maximale correspondant à un bit extrêmement sûr. La deuxième super itération est répétée pour différentes position de bits. La position du bit inversé est prise a priori (comme pour un recuit simulé) ou a posteriori grâce au décodage de la première super itération (comme pour un gradient inverse).
Le nombre de super itérations peut être supérieur à deux et le point de départ de la nouvelle super itération constitué du point initial en sortie du démodulateur, et d'un vecteur correctif de taille (nombre de coordonnées non nulles) ou de poids (norme euclidienne) variable en fonction de l'itération (typiquement croissant) ou fixe.
Le nombre de super itérations est par exemple supérieur à 2 et le point de départ de la nouvelle super itération est constitué, itérativement donc, du point en entrée de la super itération précédente, et d'un vecteur correctif de taille ou de poids fixe ou non.
La suite de la description concerne deux exemples de mise en oeuvre du procédé donnés à titre illustratif et nullement limitatif.
Les figures 2 et 3 expriment le gain d'un point de vue théorique; gain en TEB (taux d'erreur binaire) pour un rapport signal à bruit donné.
Exemple 1
Le graphique représenté sur les figures 2 et 3 montre l'intérêt du procédé dans de cadre d'un turbo code voisin de hiperlan2: un turbo code produit basé sur un BCH(26,32,t=1) étendu par contrôle de parité, ce qui lui garantit une distance libre de 4 pour chaque composant (ligne/colonne) pour une composante de spectre qui vaut sensiblement Sligne=Scolonne=1000.
La distance libre est donc dfree=dl*d2=4*4=16 et le premier terme du spectre du code produit est STPC=S1*S2=1000*1000.
La première composante de la borne de l'union est donc sensiblement: PER^É=STpCÉQ(dfree.2.Eb/No) 1 " u2 où Q(x)= f exp du 2p Y 2 i Le code transporte ici 80 octets = 640 bits. Ces 80 octets sont protégés par 10 bits de CRC. Les 10 bits ajoutés dans l'information sont perforés aléatoirement dans le code produit afin de garder le taux de codage strictement égal à celui du code classique. Le code produit initial est raccourci d'une ligne.
Dans le code initial, 10 bits de bourrage (arbitrairement pris égaux 10 à zéro) sont ajoutés aux 640 bits pour entrer dans la matrice initiale 650=26*25.
Le codeur ajoute des bits de redondance de manière classique, jusqu'à concurrence de 31*32=992 bits. Le codeur extrait des 10 bits de bourrage, qui n'ont pas besoin d'être transmis, et fournit 982 bits au modulateur, soit un taux de codage de 640/982= 0,65173... voisin de 2/3.
Le nouveau codeur ajoute 10 bits de CRC (par exemple). Il ne doit donc pas ajouter de bits de bourrage. Le code produit sort 992 bits dont aucun bit de bourrage. Le nouveau codeur perfore donc 10 bits codés à des positions déterminées. Ces positions ne font pas l'objet du procédé.
Exemple 2
Un exemple pratique est donné sur un code petit, comportant 96 bits de données, 4 bits de CRC, et protégé par un BCH(11) étendu par parité sur les lignes et les colonnes et raccourci d'une ligne et d'une colonne.
Le taux du code sans CRC est de 96/221. Dans cet exemple avec 25 conservation du taux de codage, le code avec CRC est donc perforé de 4 bits.
La matrice d'entrée est donc la suivante, en considérant que l'information initiale est uniformément nulle.
La redondance est en italique, le CRC est en gras, et les 4 positions perforées sont marquées ?? , et correspondent à une métrique nulle.
Entrée du décodeur: 7 1 -5 30 19 0 31 14 3 26 19 19 32 25 9 12 5 13 18 28 14 17 25 10 16 8 22 15 9 6 19 0 13 19 17 18 -15 22 25 ?? 11 27 14 19 10 27 38 19 19 5 13 18 -13 34 -8 15 6 28 15 16 22 37 18 15 13 16 19 12 18 26 7 10 15 21 -5 18 22 34 10 5 ?? 18 19 10 22 5 16 16 24 36 14 26 19 26 24 18 24 7 12 13 21 35 31 20 21 4 -8 36 -13 19 26 17 10 -1 19 8 -13 32 32 26 39 47 5 2 6 4 7 33 14 42 34 22 14 15 -6 13 3 0 21 4 2 2 11 25 8 -3 -3 ?? 9 16 -3 0 23 42 8 11 8 -23 6 3 1 -6 7 44 19 29 13 5 18 28 -4 0 2 12 12 18 3 34 23 9 8 23 28 19 21 30 -1 12 -2 12 3 10 26 10 11 ?? 13 5 -13 23 4 -4 3 13 15 4 33 8 11 -6 -2 21 1 36 40 14 21 22 13 10 19 _ 4 Sortie du décodeur après la première super itération: 59 29 40 30 62 55 52 31 30 55 55 42 74 46 45 51 29 43 32 74 55 46 35 37 58 45 46 52 25 48 -13 41 -7 50 59 -10 38 42 -31 41 42 45 46 41 51 51 40 15 37 49 -10 -3 50 -31 41 -6 70 44 41 74 60 47 30 50 57 37 37 44 53 47 29 42 34 41 52 52 7 37 50 37 47 37 57 39 35 45 54 62 58 69 48 43 72 66 57 32 47 48 58 61 60 55 54 51 -13 60 - 7 55 56 10 -3 30 41 39 -6 68 44 54 63 77 71 16 41 49 39 31 59 51 76 57 68 40 46 51 -13 41 -7 37 50 10 -3 30 41 54 -6 42 25 41 51 50 40 7 55 66 -10-. '-- ' -3 35 -31 39 -6 42 25 45 78 50 49 21 41 55 50 32 35 46 46 30 52 25 61 59 29 40 41 54 58 39 45 30 46 45 42 46 49 57 66 -13 46 ' -7 37 49 =10 39 35 -31 39 29 42 34 45 51 33 41 16 48 49 60 42 37 56 60 30 46 51 45 La sortie du décodeur est plus vraisemblable que le message initial: on vérifie que les sommes des produits métriques fois décision (Log Likelihood Ratio) pour le décodage correspondant au message initial (tout zéro) est inférieure à celle du message décodé.
Message initial 267 219 246 166 222 217 217 205 171 147 202 217 249 206 238 Message décodé 267 227 246 148 222 217 221 185 171 217 202 209 249 206 238 différence 0 8 0 -18 0 0 4 -20 0 70 0 -8 0 0 0 Le calcul du CRC donne une valeur non nulle pour le message décodé pour le TPC seul.
L'analyse après relève les valeurs des douze nombres suivants comme ayant la plus petite valeur absolue: -3 -6 -7 -3 -6 -7 -3 -6 -3 -6 Elle crée donc le rétro stimuli. 7
4 9 7 4 9 6 8 6 o La nouvelle entrée pour la deuxième super itération est donc: 7 1 -5 30 19 0 31 14 3 26 19 19 32 25 9 12 5 13 18 28 14 17 25 10 16 8 22 15 9 6 19 0 13 24 17 18 -15 22 25 0 11 27 14 19 10 27 38 19 19 5 13 18 -3 34 -8 15 13 28 15 16 22 37 18 15 13 16 19 12 18 26 7 10 15 21 -5 18 22 34 5 5 0 18 19 10 22 5 16 16 24 36 14 26 19 26 24 18 24 7 12 13 21 35 31 20 21 4 -8 36 -9 19 26 17 19 -1 19 8 -6 32 32 26 39 47 5 2 6 4 7 33 14 42 34 22 14 15 -6 13 7 0 21 4 11 2 11 25 14 -3 -3 0 9 16 -3 0 23 42 8 19 8 -23 6 9 1 -6 7 44 19 29 13 5 18 28 -4 0 2 12 12 18 3 34 23 9 8 23 28 19 21 30 -1 12 -2 12 3 10 26 10 11 0 13 5 -13 23 4 -4 3 13 15 4 33 8 11 - 6 -2 21 1 36 40 14 21 22 13 10 19 4 Le décodage converge alors vers la valeur du message initial. Le CRC est alors évidemment vérifié.
Dans l'exemple précédent, le faible nombre de bits de CRC, 4 bits, permet un gain asymptotique de la méthode réduit à un facteur 2^4=16 sur le taux 5 d'erreur paquet.

Claims (4)

REVENDICATIONS
1 Procédé d'amélioration de décodage itératif de codes courts au sein d'un démodulateur (5) caractérisé en ce qu'il comporte au moins les étapes 5 suivantes: É Décoder (6, 7, 8) le vecteur de métriques des bits considérés en sortie du démodulateur (5), É comparer (8) la valeur du code de contrôle du CRC du mot décodé à une valeur prédéterminée, É Si la valeur du CRC est considérée comme formant un message acceptable pour l'étape de décodage, transmettre le mot décodé au destinataire, É Si la valeur du CRC est incompatible d'un message correctement décodé, alors modifier les paramètres de décodage itératif du message initial reçus du démodulateur et exécuter au moins une nouvelle étape de décodage itératif avec ces nouveaux paramètres.
2 Procédé selon la revendication 1 caractérisé en ce que l'on définit la valeur du CRC afin que le taux de codage global ne soit pas changé par l'insertion du CRC, grâce à une perforation effectuée dans le code décodé itérativement.
3 Procédé selon la revendication 1 caractérisé en ce que l'on utilise un CRC existant, en partant du même vecteur d'initialisation fourni par le 25 démodulateur.
4 Procédé selon la revendication 1 caractérisé en ce que l'on utilise un CRC existant, en partant du même vecteur d'initialisation fourni par le démodulateur, avec un procédé de convergence utilisant des coefficients de la métrique extrinsèque plus faibles que ceux utilisés lors du premier décodage.
Procédé selon la revendication 1 caractérisé en ce qu'on exécute le deuxième décodage (7) en partant d'un vecteur d'initialisation différent du vecteur d'initialisation fourni par le démodulateur (5), lorsque le vecteur correctif, représentant la différence entre le vecteur initial et le vecteur sur lequel est tenté le nouveau décodage est fournit un bruit de faible amplitude (faible température) suivant une méthode de recuit simulé.
6 - Procédé selon la revendication 1 caractérisé en ce que le deuxième décodage (7) est effectué en partant d'un vecteur d'initialisation différent du vecteur d'initialisation fourni par le démodulateur (5), lorsque le vecteur correctif, représentant la différence entre le vecteur initial et le vecteur sur lequel est tenté le nouveau décodage est obtenu par un anti-gradient (6) des dernières demi-itérations, l'anti-gradient étant constitué des valeurs décodées les moins fiables lors de la dernière demi-itération, de l'avant dernière demi-itération ou d'une pondération des demi-itérations du décodage itératif classique.
7 - Procédé selon la revendication 6 caractérisé en ce que l'on retient comme nombre des valeurs retenues non nulles dans cet anti-gradient (6) un nombre typiquement de l'ordre de trois quarts de la distance libre du code sans que cette valeur constitue une obligation, la valeur absolue des points non nuls de l'anti-gradient (6) est typiquement égale à la moitié de la métrique moyenne, leur signe est choisi inverse de la décision correspondant au décodage.
8 - Procédé selon la revendication 1 caractérisé en ce que pour le deuxième 5 décodage (8) on injecte un bruit sur un nombre réduit de points.
9 - Procédé selon la revendication 1 caractérisé en ce que dans la deuxième étape de décodage (7), on force un bit décodé à une valeur donnée, inverse de la valeur trouvée.
Procédé selon la revendication 1 caractérisé en ce que la deuxième super itération est répétée pour différentes position de bits.
11 - Procédé selon la revendication 1 caractérisé en ce que le nombre de super itérations (6, 7, 8) est supérieur à deux et le point de départ de la nouvelle super itération est constitué du point initial en sortie du démodulateur, et d'un vecteur correctif de taille (nombre de coordonnées non nulles) ou de poids (norme euclidienne) variable en fonction de l'itération (typiquement croissant) ou fixe.
12 - Procédé selon la revendication 1 caractérisé en ce que le nombre de super itérations (6, 7, 8) est supérieur à 2 et le point de départ de la nouvelle super itération est constitué, itérativement donc, du point en entrée de la super itération précédente, et d'un vecteur correctif de taille ou de poids fixe ou non.
FR0509220A 2005-09-09 2005-09-09 Procede d'amelioration de decodage iteratif de codes Expired - Fee Related FR2890806B1 (fr)

Priority Applications (4)

Application Number Priority Date Filing Date Title
FR0509220A FR2890806B1 (fr) 2005-09-09 2005-09-09 Procede d'amelioration de decodage iteratif de codes
EP06793408A EP1932241A2 (fr) 2005-09-09 2006-09-11 Procede d'amelioration de decodage iteratif de codes
PCT/EP2006/066227 WO2007028834A2 (fr) 2005-09-09 2006-09-11 Procede d'amelioration de decodage iteratif de codes
US12/066,119 US8332717B2 (en) 2005-09-09 2006-09-11 Method of improving the iterative decoding of codes

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
FR0509220A FR2890806B1 (fr) 2005-09-09 2005-09-09 Procede d'amelioration de decodage iteratif de codes

Publications (2)

Publication Number Publication Date
FR2890806A1 true FR2890806A1 (fr) 2007-03-16
FR2890806B1 FR2890806B1 (fr) 2008-02-22

Family

ID=36128608

Family Applications (1)

Application Number Title Priority Date Filing Date
FR0509220A Expired - Fee Related FR2890806B1 (fr) 2005-09-09 2005-09-09 Procede d'amelioration de decodage iteratif de codes

Country Status (4)

Country Link
US (1) US8332717B2 (fr)
EP (1) EP1932241A2 (fr)
FR (1) FR2890806B1 (fr)
WO (1) WO2007028834A2 (fr)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7904793B2 (en) * 2007-03-29 2011-03-08 Sandisk Corporation Method for decoding data in non-volatile storage using reliability metrics based on multiple reads
US7966546B2 (en) * 2007-03-31 2011-06-21 Sandisk Technologies Inc. Non-volatile memory with soft bit data transmission for error correction control
US7971127B2 (en) * 2007-03-31 2011-06-28 Sandisk Technologies Inc. Guided simulated annealing in non-volatile memory error correction control
US7975209B2 (en) * 2007-03-31 2011-07-05 Sandisk Technologies Inc. Non-volatile memory with guided simulated annealing error correction control
US7966550B2 (en) * 2007-03-31 2011-06-21 Sandisk Technologies Inc. Soft bit data transmission for error correction control in non-volatile memory
US20090077457A1 (en) * 2007-09-19 2009-03-19 Rajaram Ramesh Iterative decoding of blocks with cyclic redundancy checks
FR2938141B1 (fr) * 2008-11-04 2010-11-19 Thales Sa Procede d'amelioration d'acquisition d'un ensemble de donnees emises de facon repetitive en environnement difficile
US10304550B1 (en) 2017-11-29 2019-05-28 Sandisk Technologies Llc Sense amplifier with negative threshold sensing for non-volatile memory
US10643695B1 (en) 2019-01-10 2020-05-05 Sandisk Technologies Llc Concurrent multi-state program verify for non-volatile memory
US11024392B1 (en) 2019-12-23 2021-06-01 Sandisk Technologies Llc Sense amplifier for bidirectional sensing of memory cells of a non-volatile memory
US11082069B1 (en) * 2020-04-08 2021-08-03 Kioxia Corporation Decoding scheme for error correction code structure in data storage devices

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10303759A (ja) * 1997-04-23 1998-11-13 Mitsubishi Electric Corp 誤り訂正復号装置および誤り訂正復号方式
US6094465A (en) * 1997-03-21 2000-07-25 Qualcomm Incorporated Method and apparatus for performing decoding of CRC outer concatenated codes
EP1179934A1 (fr) * 2000-08-11 2002-02-13 Mitsubishi Electric Information Technology Centre Europe B.V. Turbo-égalisation adaptative
US20050091568A1 (en) * 1999-08-10 2005-04-28 Sharon Levy Iterative decoding process
GB2407945A (en) * 2003-10-25 2005-05-11 Andrew John Rogers Cyclic redundancy checking using punctured party bits

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2002045005A1 (fr) * 2000-12-01 2002-06-06 Lizardtech, Inc. Codage sans perte d'image numérique par approximation de transformées linéaires et conservation de propriétés sélectionnées
EP1249958B1 (fr) * 2001-04-09 2005-01-19 Alcatel Méthode et appareil pour le décodage adaptif Turbo de plusieurs canaux radio en effectuant un contrôl CRC à la fin de chaque itération
US20030101402A1 (en) * 2001-10-25 2003-05-29 Cute Ltd. Hard-output iterative decoder
US7139959B2 (en) * 2003-03-24 2006-11-21 Texas Instruments Incorporated Layered low density parity check decoding for digital communications
TWI350066B (en) * 2003-04-17 2011-10-01 Icera Inc Apparatus and method for turbo decoder termination
US7418308B2 (en) * 2003-10-31 2008-08-26 Corning Incorporated Method of optimizing glass strain
KR20050118056A (ko) * 2004-05-12 2005-12-15 삼성전자주식회사 다양한 부호율을 갖는 Block LDPC 부호를 이용한이동 통신 시스템에서의 채널부호화 복호화 방법 및 장치

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6094465A (en) * 1997-03-21 2000-07-25 Qualcomm Incorporated Method and apparatus for performing decoding of CRC outer concatenated codes
JPH10303759A (ja) * 1997-04-23 1998-11-13 Mitsubishi Electric Corp 誤り訂正復号装置および誤り訂正復号方式
US20050091568A1 (en) * 1999-08-10 2005-04-28 Sharon Levy Iterative decoding process
EP1179934A1 (fr) * 2000-08-11 2002-02-13 Mitsubishi Electric Information Technology Centre Europe B.V. Turbo-égalisation adaptative
GB2407945A (en) * 2003-10-25 2005-05-11 Andrew John Rogers Cyclic redundancy checking using punctured party bits

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
ALI S ET AL: "An adaptive M-algorithm convolutional decoder", VEHICULAR TECHNOLOGY CONFERENCE, 2005. VTC-2005-FALL. 2005 IEEE 62ND DALLAS, TX, USA 25-28 SEPT., 2005, PISCATAWAY, NJ, USA,IEEE, 25 September 2005 (2005-09-25), pages 2177 - 2181, XP010878837, ISBN: 0-7803-9152-7 *
GORJI ZADEH S A ET AL: "An iterative m-algorithm based decoder for convolutional codes", ELECTRICAL AND COMPUTER ENGINEERING, 2005. CANADIAN CONFERENCE ON SASKATOON, SK, CANADA MAY 1-4, 2005, PISCATAWAY, NJ, USA,IEEE, 1 May 2005 (2005-05-01), pages 1626 - 1629, XP010869088, ISBN: 0-7803-8885-2 *
PATENT ABSTRACTS OF JAPAN vol. 1999, no. 02 26 February 1999 (1999-02-26) *

Also Published As

Publication number Publication date
EP1932241A2 (fr) 2008-06-18
FR2890806B1 (fr) 2008-02-22
US20080301523A1 (en) 2008-12-04
US8332717B2 (en) 2012-12-11
WO2007028834A2 (fr) 2007-03-15
WO2007028834A3 (fr) 2007-05-18

Similar Documents

Publication Publication Date Title
FR2890806A1 (fr) Procede d&#39;amelioration de decodage iteratif de codes
EP0654910B1 (fr) Procédé de décodage itératif de codes en blocs concaténés
EP2047605B1 (fr) Procédé de décodage à passage de messages avec un classement des noeuds selon la fiabilité de voisinage
EP3443678B1 (fr) Methode de décodage d&#39;un code polaire avec inversion de bits peu fiables
EP2806565B1 (fr) Procede de decodage d&#39;un code correcteur, par exemple un turbo-code, par analyse du spectre etendu des mots du code
EP0848501B1 (fr) Système et procédé de transmission numérique comportant un code produit combiné à une modulation multidimensionnelle
WO1997038495A1 (fr) Procede et dispositif de codage convolutif de blocs de donnees, et procede et dispositif de decodage correspondants
EP0802656A2 (fr) Signal numérique à blocs de référence multiples pour l&#39;estimation de canal, procédés d&#39;estimation de canal et récepteurs correspondants
WO1996024999A1 (fr) Dispositif de reception de signaux numeriques a structure iterative, module et procede correspondants
FR2905209A1 (fr) Procede et dispositif de decodage de blocs encodes avec un code ldpc
FR2785743A1 (fr) Dispositif et procede d&#39;adaptation des turbocodeurs et des decodeurs associes a des sequences de longueur variable
EP0995272A1 (fr) Decodage iteratif de codes produits
FR2849514A1 (fr) Code de geometrie algebrique adapte aux erreurs en rafale
EP1959572B1 (fr) Procédé de décodage à passage de messages et à convergence forcée
EP0848524A1 (fr) MAQ à codage perforé en trellis, avec décodage itératif
WO2008059160A2 (fr) Codage et decodage d&#39;un signal de donnees en fonction d&#39;un code correcteur
EP1974472A1 (fr) Procedes d&#39;encodage et de decodage rapides et dispositifs associes
FR2952252A1 (fr) Procede et dispositif de decodage, produit programme d&#39;ordinateur, moyen de stockage correspondants et noeud destination correspondants
EP0774840B1 (fr) Procédé de transmission d&#39;une séquence de bits d&#39;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
WO2010112606A2 (fr) Procédé et dispositif de modulation mettant en oeuvre une modulation différentielle, procédé et dispositif de démodulation, signal et produits programme d&#39;ordinateur correspondants
EP3311495B1 (fr) Conception de l&#39;entrelaceur pour des codes turbo en fonction du motif de poinçonnage
WO2006108768A1 (fr) Procédé et dispositif de décodage d&#39;un code à longueur variable prenant en compte une information de probabilité a priori
WO2006087497A2 (fr) Procede et dispositif de synchronisation trame
FR2972878A1 (fr) Procede d&#39;encodage correcteur d&#39;erreur, procede de decodage et dispositifs associes.
EP1212873B1 (fr) Procede de decodage et d&#39;egalisation conjointe d&#39;un signal numerique protege par un code defini par un treillis

Legal Events

Date Code Title Description
ST Notification of lapse

Effective date: 20160531