FR 2912574 A1 20080815 FR 0753228 A 20070213 PROCÉDÉ DE DÉCODAGE À PASSAGE DE MESSAGES ET À CONVERGENCE FORCÉE DESCRIPTION DOMAINE TECHNIQUE La présente invention concerne le décodage de codes correcteurs d'erreurs dans le domaine des télécommunications ou de l'enregistrement de données. Plus précisément, l'invention est relative à une méthode de décodage itératif à passage de messages de codes correcteurs d'erreurs susceptibles d'une représentation par graphe bipartite, tels que les codes LDPC (Low Density Parity Check) ou les turbocodes. ÉTAT DE LA TECHNIQUE ANTÉRIEURE Les codes correcteurs d'erreurs susceptibles de représentation par graphe bipartite recouvrent une large variété de codes, notamment les codes LDPC, initialement décrits par R. Gallager dans son article intitulé Low density parity check codes publié dans IEEE Trans. Inform. Theory, vol. IT-8, pages 21-28, 1962, dont les intéressantes propriétés ont été redécouvertes récemment, et les turbocodes introduits par C. Berrou et al. dans son article fondateur Near optimum error correcting coding and decoding : turbo-codes paru dans IEEE Trans. Inform. Theory, vol. 44, N 10, pages 1261-1271, 1996. On appelle graphe bipartite un graphe non orienté dont l'ensemble des noeuds est constitué de deux sous- ensembles disjoints tels que deux noeuds quelconques d'un même sous-ensemble ne sont pas reliés entre eux par une arête du graphe. Certains codes correcteurs d'erreurs sont susceptibles d'une représentation par graphe bipartite. Le graphe est partitionné en un premier sous-ensemble de noeuds associés aux symboles constituant un mot de code et un second sous-ensemble de noeuds associés aux contraintes du code, typiquement aux contrôles de parité. Un graphe bipartite associé à un groupe de contraintes est encore appelé graphe de Tanner. Les symboles du mot de code sont en général des éléments du corps de Galois F2 ={0,1}, autrement dit des bits, mais ils peuvent plus généralement être des éléments d'un corps de caractéristique 2 quelconque F21, et par conséquent d'un alphabet 2p-aire. Dans la suite, nous nous limiterons sans perte de généralité au cas p =l, c'est-à-dire aux codes binaires. Les codes susceptibles de représentation par graphe bipartite peuvent être décodés au moyen d'un décodage itératif à passage de messages, dit aussi de type MP (Message Passing) ou BP (Belief Propagation). On trouvera une description générique de cette méthode de décodage dans la thèse de N. Wiberg intitulée Codes and decoding on general graphs , 1996. Le décodage itératif de type MP est en fait une généralisation d'algorithmes bien connus dans le domaine du décodage à savoir l'algorithme forward-backward utilisé pour les turbocodes et l'algorithme de Gallager pour les codes LDPC. Dans un souci de simplification, nous rappellerons ci-après le principe du décodage itératif par passage de messages dans le cadre d'un code LDPC. Nous considérons un code linéaire (K,N) où K est la dimension du code représentant le nombre de bits d'information et N est la longueur du code, représentant le nombre de bits codés. M = N û K correspond au nombre de bits de parité ou, de manière équivalente, le nombre de contraintes de parité. On a illustré en Fig. 1 le graphe de Tanner d'un code linéaire (K,N). On a fait figurer à gauche du graphe les noeuds correspondant aux bits du code, encore dénommés noeuds de type variable ou encore plus simplement variables et à droite les noeuds correspondant aux contrôles de parité, encore dénommés noeuds de type contrôle ou encore plus simplement contrôles . La matrice d'incidence du graphe correspond à la matrice de parité du code qui est de dimension M x N. Ainsi, le graphe bipartite comprend N noeuds de type variable et M noeuds de type contrôle , un noeud n de variable étant relié à un noeud m de contrôle si et seulement si hmn =1 . Par exemple, le graphe de la Fig. 1, correspond à un code (10,5) possédant la matrice de parité suivante : (1 1 1 1 0 0 0 0 0 1 0 0 0 1 1 1 0 0 0 H= 0 1 0 0 1 0 0 1 1 0 0 0 1 0 0 1 0 1 0 1 0001001011 1~ (1) On rappelle de manière générale qu'un code linéaire est défini par une matrice génératrice G dont les éléments sont des valeurs binaires et qu'un mot de code x = (xl,x2,..,xN) est obtenu à partir d'un mot de bits d' information a = (al,a2,..,aK) au moyen de : x=aG (2) Puisque tous les mots de code vérifient les contrôles de parité, on a la relation : H.GT = 0 (3) où l'on a noté GT la transposée de la matrice G. Le mot de code x est transmis sur un canal de communication ou enregistré sur un support de données. A la réception ou à la lecture du support, on récupère une version bruitée de x, soit y = (Yl'Y2'..,YN) L'opération de décodage consiste à retrouver x et donc a à partir de l'observation y. Nous conviendrons des notations suivantes avant de décrire le principe du décodage itératif à passage de messages . H(n) désigne l'ensemble des contrôles reliés à la 25 variable n dans le graphe bipartite, autrement dit l'ensemble des noeuds adjacents au noeud n H(m) est l'ensemble des variables reliées au contrôle m dans le graphe bipartite, autrement dit l'ensemble des noeuds adjacents au noeud m ; représente l'information a priori concernant la variable n du graphe bipartite, autrement dit l'information a priori concernant le nième bit du mot de code. Cette information prend en compte le signal reçu et les caractéristiques du canal de transmission. Elle constitue l'entrée du décodeur et est généralement fournie par le démodulateur sous la forme de valeurs souples, soit en termes de probabilités : an = (pno, pn) (4) où pn = Pr(xn= a yn) , a E {0,1}, soit, plus commodément, sous la forme d'un rapport logarithmique de probabilités, dit logarithme de rapport de vraisemblance ou LLR (Log Likelihood Ratio) . ccn = ln ( Pr (xn = O y ) Pr(xn =1yn)/ (5) Ainsi, pour un bruit BBCG (bruit blanc centré gaussien) et une modulation BPSK, le démodulateur calcule simplement . _ 2 17 anù62Jn où 62 est la variance du bruit. (6) représente le message transmis par la variable n au contrôle m E H(n). Par référence aux turbocodes, a mn est encore appelée information extrinsèque ; Rnm représente de manière symétrique le message transmis par le contrôle m à la variable ne H(m). Il est également qualifié d'information extrinsèque ; représente l'information a posteriori relative à la variable n : elle prend en compte à la fois l'information a priori d, et les messages P. reçus par la variable n de ses contrôles adjacents pendant le décodage ; est la valeur dure correspondant à la valeur souple d,, autrement dit la décision prise pour le bit xn . Le principe du décodage itératif par passage de messages est illustré en Fig. 2. A l'étape 210, on procède à l'initialisation des messages d., pour chaque couple de variable n et de contrôle me H(n). Les messages amn sont généralement initialisés par les informations a priori c'est-à-dire : dmn =an, VmE H(n) . On initialise également le compteur d'itérations Iter à o. L'étape d'initialisation est suivie d'une boucle d'itération comprenant les étapes suivantes : En 220, on procède au traitement des contrôles. Plus précisément, pour chaque contrôle m, on calcule les messages P., du contrôle m à destination des variables respectives nE H(m), soit : Pmn =Fc({amn,n'E H(m)ù{n}}) (7) où l'on a noté Fc la fonction de traitement des contrôles. Pour un couple de noeuds m , nE H(m) quelconque donné, le message P. est calculé en fonction des messages qu'a lui-même reçu le contrôle m des variables n'E H(m)û{n}. On constate par conséquent qu'il n'y a pas renvoi d'information extrinsèque d'un noeud de variable sur lui-même. L'étape de traitement des contrôles est aussi appelée étape horizontale. En 230, on procède symétriquement au traitement des variables. Plus précisément, pour chaque variable n, on calcule les messages amn à destination des contrôles respectifs me H( n), soit : = Fv ({ m,n m'E H(n) û {m}}) (8) où l'on a noté Fv la fonction de traitement des variables. Pour un couple de noeuds n, mE H(n) donné, le message amn est calculé en fonction des messages qu'a elle-même reçu la variable n des contrôles m'E H(n)û{m}, de sorte que, comme précédemment, il n'y a pas renvoi d'information extrinsèque d'un noeud sur lui-même. L'étape de traitement des variables est aussi appelée étape verticale. En 240, on estime l'information a posteriori ôcä à partir de l'information a priori în et des messages P. reçus par la variable n de la part de ses noeuds de contrôle adjacents me H(n), ce que l'on exprime symboliquement par : FAP({an} {Nmn m E H(n)}) (9) où l'on a noté FAP la fonction d'estimation a posteriori. En 250, on prend une décision sur les valeurs dures à partir des valeurs souples ân, soit : n = FD(an) (10) où l'on a noté Fu la fonction de décision. Typiquement, pour une modulation BPSK, la décision est prise sur le signe de la valeur souple, c'est-à-dire cn =sgn(ân). On identifiera dans la suite pour raison de commodité la valeur d'un bit avec sa valeur modulée. On représentera conventionnellement le bit 0 par la valeur +1 et le bit 1 par la valeur -1 . En 260, on vérifie si le vecteur â=g,az,••,cT ) est un mot de code, c'est-à-dire s'il satisfait aux contrôles de parité. Dans l'affirmative, on sort de la boucle en 265, le mot décodé étant a. Dans la négative, on incrémente le nombre d'itérations en 267 et on compare en 270, si le nombre d'itérations effectuées Iter a atteint une valeur de seuil Iter max. Si ce n'est pas le cas, on poursuit le décodage itératif en rebouclant à l'étape 220. A défaut, on conclut à l'échec de l'opération de décodage et on sort en 275. L'ordre des étapes dans la boucle d'itération peut différer de celui exposé en Fig. 2. En particulier, on peut intervertir l'ordre de traitement des variables et des contrôles et alors commencer par une initialisation des messages (3m12 : Pmn =0, VnE {1,...N} et VmE H(n) . Selon le principe de décodage itératif présenté en Fig. 2, on procède au traitement de tous les contrôles puis de toutes les variables ou bien, comme mentionné ci-dessus, au traitement de toutes les variables puis de tous les contrôles. On parle alors d' ordonnancement parallèle ou encore d' ordonnancement par inondation (flooding scheduling). D'autres types d'ordonnancements ont été proposés dans la littérature ; ils peuvent être classés en deux catégories : ordonnancement de type série, catégorie dans laquelle on peut ranger les ordonnancements dénommés serial scheduling , shuffledûBP , horizontal shuffled ou vertical shuffled . L'ordonnancement de type série est applicable aussi bien aux contrôles qu'aux variables. Pour une application aux contrôles, le décodage utilise la stratégie suivante : • on procède tout d'abord au traitement d'un seul contrôle m en calculant les messages Rmn à destination des variables ne H(m) ; • on met à jour et on transmet les messages oc chaque variable ne H(m) à destination des contrôles m'E H(n)û{m}. On met également à jour les informations a posteriori c relatives à ces mêmes variables ; • on procède au traitement du contrôle suivant et l'on itère les deux étapes précédentes jusqu'à épuisement des contrôles. De manière duale, on peut effectuer un traitement variable par variable au lieu d'effectuer un traitement contrôle par contrôle. Selon le cas envisagé, on parlera d'ordonnancement horizontal shuffled ou d'ordonnancement vertical shuffled . On peut aussi hybrider les deux ordonnancements précités sous la forme d'un ordonnancement dit mixte ou group-shuffled . On trouvera une description de la stratégie de décodage correspondant à un ordonnancement mixte dans l'article de J. Zhang et al. intitulé Shuffled iterative decoding paru dans IEEE Trans. on Comm., Vol. 53, N 2, Février 2005, pages 209-213. La stratégie est basée sur une partition des noeuds par groupes, le traitement étant en parallèle au sein d'un groupe et en série d'un groupe au suivant. Plus précisément, pour une partition en groupes de contrôles . • on procède au traitement d'un premier groupe G formé par les contrôles {ml,m2,..,mg} en calculant les messages (3,~.n à destination des variables nE H(m;) , pour i =1,...,g ; • on met à jour et on transmet les messages oc chaque variable ne H( i =1,...,g à destination des contrôles respectifs m'E H(n)û{ml}. On met également à jour les informations a posteriori d, relatives à ces mêmes variables ; • on procède au traitement du groupe de contrôles suivant et l'on itère les deux étapes précédentes jusqu'à épuisement des groupes de contrôles. De manière duale, on peut opérer sur la base d'une partition par groupes de variables au lieu d'une partition par groupes de contrôles. On connaît deux algorithmes principaux de décodage itératif à passage de messages pour les codes LDPC : l'algorithme SPA (Sum Product Algorithm), encore appelé log-BP et l'algorithme Min-Sum , encore appelé based BP . On trouvera une description détaillée de ces deux algorithmes dans l'article de W.E. Ryan intitulé An introduction to LDPC codes , publié dans CRC Handbook for coding and signal processing for recording systems, et disponible sous le lien www.csee.wvu.edu/wcrl/ldpc.htm. Les algorithmes SPA et Min-Sum ne diffèrent que par l'étape de traitement des contrôles qui sera détaillée plus loin. Les autres étapes sont identiques, à savoir : L'étape 230 de traitement des variables consiste à calculer les messages a'mn comme suit : OGmn = In Pr(xn = 0 Pr(xn =1 * yn,Bmn,Cmn * yn , Bmn , Cmn Ou Bmn représente l'ensemble des messages Pm', reçus par la variable n de la part des contrôles m'E H(n)ù{m} et C. représente l'évènement correspondant à un contrôle de parité vérifié pour chacun de ces contrôles. Sous réserve de l'indépendance des Yn' on montre que a'mn peut s'exprimer sous forme de LLR par : amn =an+ LNr'n (12) m'eH(n)ù{m} L'étape 240 d'estimation de l'information a posteriori consiste à calculer : ( Pr(xn =Oyn,Bn,Cn Pr(xn = 1 yn , Bn , Cn où Bn représente les messages reçus par la variable n de tous les contrôles de H(n) et Cn représente l'évènement correspondant à un contrôle de parité vérifié pour chacun de ces contrôles. Sous la même hypothèse que précédemment, on montre que ân peut s'exprimer sous forme de LLR par : (13) an = 0Gn + L Nmn meH(n) On remarque d'après (12) et (14) que : îmn = an -13 mn L'étape 230 de traitement des variables peut par conséquent être placée en fin d'itération, après l'estimation de l'information a posteriori. 10 L'expression (15) traduit le fait que l'on ne retourne pas l'information extrinsèque (ici P.) envoyée par un noeud (m) vers lui-même. L'étape 250 de décision des valeurs dures est 15 simplement réalisée par : '(7n = sgn(ân) (16) où sgn(x)=1 si x est positif et sgn(x)=ù1 sinon. 20 La vérification en 260 des contrôles de parité sur les valeurs dures passe par le calcul des contrôlesde parité : 25 cm = fin , m =1,...,M (17) nEH(m) Les contrôles de parité sont tous satisfaits si et seulement si . 13 (14) (15) M cm = M 14 (18) m=1 L'étape de traitement des contrôles 220 consiste à calculer, pour l'algorithme SPA : /Pr(Cm =1xn =0, Amn) Pr(. =1xn =1,Amn) (19) Pmn ln où cm=1 signifie une condition de parité satisfaite pour le contrôle m et Amn représente l'ensemble des 10 messages amn, reçus par le contrôle m de la part des variables Weil( par : W. On montre que P. peut s'exprimer f sgn(îmn') L (îmn' ) \n'eH(m)ù{n} / \n'eH(m)ù{n} R mn (20) 15 ~~x+1~ l lx avec (D(x) = ln x = -ln tank ù ve -1/ 2,// Le traitement des contrôles selon l'algorithme Min-Sum correspond à une simplification de l'expression 20 (20). Du fait de la décroissance rapide de la fonction c(x) et de l'égalité de c(x) avec sa réciproque, i.e. cl(D(x))= x, on peut légitimement effectuer l'approximation suivante : 15 ( fJsgn(amn' n'eH(m)-{n}n'eHn(m~))--{n}( amn,) (21) L'algorithme de décodage Min-Sum est sensiblement plus simple que l'algorithme de décodage SPA car il n'effectue que des additions, comparaisons et changements de signe. De surcroît, les performances de l'algorithme Min-Sum sont indépendantes de l'estimation de la variance du bruit a . En contrepartie, l'approximation des valeurs (3 mn selon l'expression (21), conduit à une perte de performances par rapport à l'algorithme de décodage SPA. Bien que les performances de l'algorithme de décodage SPA soient effectivement meilleures que celles de l'algorithme Min-Sum, elles peuvent toutefois sévèrement se dégrader dans le cas d'une mauvaise estimation de la puissance de bruit. Différentes versions modifiées de l'algorithme MinSum ont été proposées dans le but d'améliorer ses performances. Par exemple, l'article de W.E. Ryan précité fait intervenir un terme correctif dans l'approximation (21). Les performances de l'algorithme ainsi modifié se rapprochent de celles de l'algorithme SPA mais deviennent fortement dépendantes de l'erreur d'estimation de la puissance de bruit. En outre, le terme correctif accroît sensiblement la complexité du décodage. Cette version modifiée a été encore raffinée dans le document 3GPP TSG RAN WG1 #43 du 7 Novembre 2005, intitulé Rate-compatible LDPC codes with low complexity encoder and decoder . La méthode qui y est exposée consiste à n'apporter un terme correctif dans (21) que pour les b valeurs îmn, les plus faibles, c'est-à-dire celles plus contributives dans l'expression (20). Cet algorithme reste toutefois sensible à l'erreur d'estimation de la puissance de bruit. L'objet général de la présente invention est de proposer un algorithme de décodage itératif de type à passage de messages permettant de décoder un code correcteur d'erreurs susceptible de représentation par graphe bipartite, possédant de meilleures performances en termes de taux d'erreur et de vitesse de convergence que l'algorithme Min-Sum, sans toutefois présenter la complexité et la sensibilité à l'estimation du bruit de l'algorithme SPA. EXPOSÉ DE L'INVENTION La présente invention est définie par une méthode de décodage itératif de type à passage de messages pour décoder un code correcteur d'erreurs susceptible de représentation par un graphe bipartite comprenant une pluralité de noeuds de variable et une pluralité de noeuds de contrôle, lesdits messages étant exprimés en termes de logarithme de rapport de vraisemblance. A chaque itération d'une pluralité d'itérations de décodage, pour chaque couple constitué d'un noeud de variable et d'un noeud de contrôle, on détecte un changement de signe de l'information extrinsèque destinée à être transmise comme message par ledit noeud de variable au dit noeud de contrôle par rapport à celle transmise à l'itération précédente, et en cas de changement de signe, on soumet ladite information extrinsèque à une opération de réduction d'amplitude avant de la transmettre au dit noeud de contrôle. Selon une première variante de réalisation, l'opération de réduction d'amplitude est une opération non linéaire. Par exemple, l'opération de réduction d'amplitude est une opération de seuillage de la valeur absolue de ladite information intrinsèque par rapport à une valeur de seuil. De préférence, la valeur de seuil est calculée de manière adaptative. Selon un premier exemple de loi d'adaptation, la valeur de seuil est obtenue comme la valeur absolue de l'information intrinsèque transmise à l'itération précédente dudit noeud de variable au dit noeud de contrôle. Selon valeur de valeurs transmises variable au dit noeud de contrôle. Selon une seconde variante de réalisation, l'opération de réduction d'amplitude est une opération linéaire, par exemple une multiplication par un coefficient strictement positif et strictement inférieur à 1. Avantageusement, ledit coefficient est calculé de manière adaptative. Selon un troisième exemple, l'opération de seuillage de l'information extrinsèque est suivie par une multiplication de l'information extrinsèque ainsi un second exemple de loi d'adaptation, ladite seuil est obtenue comme la plus petite des absolues des informations intrinsèques aux itérations précédentes dudit noeud de traitée par un coefficient strictement positif et strictement inférieur à 1. Ladite information extrinsèque peut être calculée par amnp =anûPmn où ôcn est la valeur a priori de la variable associée au noeud de variable d'indice n et Pmn est le message transmis par le noeud de contrôle d'indice m au noeud de variable d'indice n. Le message P. d'un noeud de contrôle d'indice n à un noeud de variable d'indice m peut être calculé par : n sgn (a mn' 011(m)-{n}n'eHn(m~))--{n}( amn' où amn, désigne le message du noeud de variable d'indice n' au noeud de contrôle d'indice m , H(m) l'ensemble des noeuds de variable adjacents au noeud de contrôle d'indice m, sgn(x) =l si x est positif et sgn(x) =û1 sinon. L'invention concerne également un programme d'ordinateur comprenant des moyens logiciels adaptés à mettre en oeuvre les étapes de la méthode de décodage exposée ci-dessus lorsqu'il est exécuté par un ordinateur. BRÈVE DESCRIPTION DES DESSINS La Fig. 1 représente un exemple de graphe de Tanner pour un code (K,N) ; La Fig. 2 illustre de manière schématique le principe d'un décodage itératif par passage de messages connu de l'état de la technique ; La Fig. 3 illustre schématiquement la méthode de 5 décodage itératif par passage de messages selon un mode de réalisation de l'invention ; La Fig. 4 indique le taux d'erreur obtenu par la méthode de décodage selon l'invention par comparaison aux méthodes de l'état de la technique, pour deux codes 10 LDPC particuliers. EXPOSÉ DÉTAILLÉ DE MODES DE RÉALISATION PARTICULIERS On considère à nouveau un code correcteur d'erreurs susceptible d'une représentation par un graphe 15 bipartite avec N variables et M contrôles. Nous supposerons dans la suite, dans un but d'illustration et sans perte de généralité, que ce code correcteur est un code LDPC. La présente invention repose sur la 20 constatation suivante : lorsque les messages de variables, c'est-à-dire les valeurs d'information extrinsèque exprimées sous forme de LLR amn, oscillent d'une itération à la suivante ou de manière générale lorsqu'elles reproduisent un schéma oscillatoire, 25 l'algorithme Min-Sum ne converge pas ou ne converge que très lentement. Les oscillations de valeurs cc,mn sont généralement dues à la répartition du bruit dans le mot reçu. Le principe de l'invention est de contenir ces oscillations lorsqu'elles se produisent, de manière à forcer l'algorithme à entrer dans un régime de convergence. La Fig. 3 représente le procédé de décodage selon un mode de réalisation de l'invention. Les étapes 310, 360, 365, 367, 370 et 375 sont respectivement identiques aux étapes 210, 260, 265, 267, 270 et 275 de la Fig. 2. L'étape 320 correspond à l'étape 220 de la Fig. 2, dans laquelle on a explicité l'estimation des messages (3m, selon l'algorithme Min-Sum, correspondant à l'expression (21). L'étape 340 correspond à l'étape 240 de la Fig. 2 dans laquelle on a explicité l'expression (14) des valeurs a posteriori ân. Enfin, l'étape 350 correspond à l'étape 250 de la Fig. 2 dans laquelle on a explicité l'expression (16) de la fonction de décision. On supposera que les valeurs d'information extrinsèque ocmn sont rangées dans un tableau, ce tableau étant mis à jour à chaque itération. L'étape 330 débute par un calcul des nouvelles 20 valeurs extrinsèques sous forme de LLR à partir de l'expression (15) amnp =anû(3mn . Toutefois, à la différence du procédé de décodage Min-Sum classique, chaque valeur ainsi calculée est d'abord mémorisée comme valeur intermédiaire avant d'être traitée puis 25 stockée dans le tableau des valeurs d'information extrinsèque. On notera que le traitement est effectué séquentiellement sur les valeurs de n et m en 330, de sorte qu'une seule variable intermédiaire est nécessaire. Le signe de la valeur intermédiaire comparé à celui de amn déjà stocké, c'est-à-dire au signe de la valeur d'information extrinsèque obtenue à l'itération précédente et transmise comme message du noeud de variable n au noeud de contrôle m . Si ces signes sont identiques, sgn(amnp)=sgn(amn), il n'y a pas est a temp mn d'oscillation, on rafraîchit amn par a = î temp mn mn et on transmet cette valeur telle quelle au noeud de contrôle En revanche, si les deux signes sont différents, sgn(amnp)=ûsgn(OCmn), le basculement de signe traduit un manque de fiabilité de la valeur amnp . On tient compte de ce manque de fiabilité en réduisant l'amplitude de amnp On rafraîchit ensuite amn avec la valeur ainsi obtenue, soit : î mn Fred cette valeur étant transmise au noeud de contrôle m. Selon une première variante de réalisation, l'opération de réduction d'amplitude amnp est non linéaire, par exemple une opération de seuillage. La mise à jour des valeurs amn s'effectue alors par : amn = sb"(amnp~'min(lia mnp ,amn (23) où amn est une valeur de seuil positive associée au noeud de variable n et au noeud de contrôle m. temp ) mn (22) Avantageusement, les seuils amn , 1 signe est détecté, l'amplitude de l'information extrinsèque est atténuée : 20 a = %,Q( temp mn mn où X est un coefficient tel que 0 Avantageusement, on choisira pour des raisons 25 d'implémentation ? =1ù2-b avec b entier strictement positif. Le coefficient X pourra être choisi adaptatif. 10 si amnp La Fig. 4 permet de comparer les performances en termes de taux d'erreurs (BER) des algorithmes Min-Sum et SPA conventionnels avec l'algorithme Min-Sum selon l'invention (IMSA), ce pour une plage importante de rapport signal à bruit. On a utilisé ici le second exemple de loi d'adaptation de la valeur de seuil, donnée par l'expression (26). Le nombre d'itérations effectuées est égal à 200 dans tous les cas. Les deux codes utilisés sont des codes LDPC irréguliers [1008,2016] et [4032,8064] donc de rendement 1/2. Le canal a été supposé AWGN (Additive White Gaussian Noise) et la modulation est QPSK. On remarque que les performances de l'algorithme Min-Sum selon l'invention sont très proches de celles de l'algorithme SPA et ce pour une complexité comparable à celle de l'algorithme Min-Sum conventionnel. La présente invention s'applique au décodage de codes correcteurs d'erreurs susceptibles de représentation par graphe bipartite, notamment des codes LDPC ou des turbocodes. Elle peut être utilisée dans le domaine de l'enregistrement de données ou des télécommunications, en particulier pour les systèmes de télécommunications utilisant déjà des codes LDPC, par exemple ceux obéissant aux normes IEEE 802.3a (Ethernet 10Gbits/s), DVBS2 (diffusion de vidéo par satellite), IEEE 802.16 (WiMAX), ou susceptibles de les utiliser, par exemple les systèmes obéissant aux normes IEEE 802. 11 (WLAN) et IEEE 802.20 (Mobile Broadband Wireless Access). REVENDICATIONS 1. Méthode de décodage itératif de type à passage de messages pour décoder un code correcteur d'erreurs susceptible de représentation par un graphe bipartite comprenant une pluralité de noeuds de variable et une pluralité de noeuds de contrôle, lesdits messages étant exprimés en termes de logarithme de rapport de vraisemblance, caractérisée en ce qu'à chaque itération d'une pluralité d'itérations de décodage, pour chaque couple constitué d'un noeud de variable et d'un noeud de contrôle, on détecte un changement de signe de l'information extrinsèque destinée à être transmise (oc") comme message par ledit noeud de variable au dit noeud de contrôle par rapport à celle transmise (cc.) à l'itération précédente, et en cas de changement de signe, on soumet ladite information extrinsèque à une opération de réduction d'amplitude (Fed) avant de la transmettre au dit noeud de contrôle. 2. Méthode de décodage selon la revendication 1, caractérisée en ce que l'opération de réduction d'amplitude est une opération non linéaire. 3. Méthode de décodage selon la revendication 2, caractérisée en ce que l'opération de réduction d'amplitude est une opération de seuillage de la valeur absolue de ladite information intrinsèque par rapport à une valeur de seuil (îL).30 4. Méthode de décodage selon la revendication 3, caractérisée en ce que ladite valeur de seuil est calculée de manière adaptative. 5. Méthode de décodage selon la revendication 4, caractérisée en ce que la valeur de seuil est obtenue comme la valeur absolue de l'information intrinsèque transmise à l'itération précédente dudit noeud de variable au dit noeud de contrôle. 6. Méthode de décodage selon la revendication 3, caractérisée en ce que la valeur de seuil est obtenue comme la plus petite des valeurs absolues des informations intrinsèques transmises aux itérations précédentes dudit noeud de variable au dit noeud de contrôle. 7. Méthode de décodage selon la revendication 1, caractérisée en ce que l'opération de réduction d'amplitude est une opération linéaire. 8. Méthode de décodage selon la revendication 7, caractérisée en ce que l'opération de réduction d'amplitude est une multiplication par un coefficient strictement positif et strictement inférieur à 1. 9. Méthode de décodage selon la revendication 8, caractérisée en ce que ledit coefficient est calculé de manière adaptative.30 10. Méthode de décodage selon l'une des revendications 3 à 6, caractérisée en ce que l'opération de seuillage de l'information extrinsèque est suivie par une multiplication de l'information extrinsèque ainsi traitée par un coefficient strictement positif et strictement inférieur à 1. 11. Méthode de décodage selon l'une des revendications précédentes, caractérisée en ce que ladite information extrinsèque est calculée par amnp =anùEmn où c est la valeur a priori de la variable associée au noeud de variable d'indice n et P. est le message transmis par le noeud de contrôle d'indice m au noeud de variable d'indice n. 12. Méthode de décodage selon l'une des revendications précédentes, caractérisée en ce que le message P. d'un noeud de contrôle d'indice n à un noeud de variable d'indice m est calculé par : 13 mn n sgn (oc mn' 011(m)-{n} n'eHn(m~))--{n}( amn' où dmn, désigne le message du noeud de variable d'indice n' au noeud de contrôle d'indice m , H(m) l'ensemble des noeuds de variable adjacents au noeud de contrôle d'indice m, sgn(x) =l si x est positif et sgn(x) =ù1 sinon. 13. Programme d'ordinateur comprenant des moyens logiciels adaptés à mettre en oeuvre les étapes de la méthode de décodage selon l'une des revendications précédentes, lorsqu'il est exécuté par un ordinateur.