FR2829329A1 - Procedes de turbocodage a entrelaceurs verrous, et systemes pour leur mise en oeuvre - Google Patents

Procedes de turbocodage a entrelaceurs verrous, et systemes pour leur mise en oeuvre Download PDF

Info

Publication number
FR2829329A1
FR2829329A1 FR0111479A FR0111479A FR2829329A1 FR 2829329 A1 FR2829329 A1 FR 2829329A1 FR 0111479 A FR0111479 A FR 0111479A FR 0111479 A FR0111479 A FR 0111479A FR 2829329 A1 FR2829329 A1 FR 2829329A1
Authority
FR
France
Prior art keywords
column
whose
sequence
denotes
circulating matrix
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
FR0111479A
Other languages
English (en)
Other versions
FR2829329B1 (fr
Inventor
Philippe Piret
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Canon Inc
Original Assignee
Canon Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Canon Inc filed Critical Canon Inc
Priority to FR0111479A priority Critical patent/FR2829329B1/fr
Publication of FR2829329A1 publication Critical patent/FR2829329A1/fr
Application granted granted Critical
Publication of FR2829329B1 publication Critical patent/FR2829329B1/fr
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

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/27Coding, 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 using interleaving techniques
    • H03M13/276Interleaving address generation
    • 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/27Coding, 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 using interleaving techniques
    • H03M13/2703Coding, 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 using interleaving techniques the interleaver involving at least two directions
    • H03M13/271Row-column interleaver with permutations, e.g. block interleaving with inter-row, inter-column, intra-row or intra-column permutations
    • 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

Landscapes

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

Abstract

La présente invention concerne des procédés de turbocodage utilisant un premier codeur RSC opérant sur des séquences de données binaires a, et un second codeur RSC opérant sur des séquences binaires a* obtenues chacune à partir de a au moyen d'une permutation prédéterminée. Ces permutations sont conçues de manière à ce que, pour toute séquence a représentée par un polynôme divisible par le polynôme de rétroaction, la séquence a* associée soit également représentée par un polynôme divisible par ledit polynôme de rétroaction, et de manière à ce que les mots du code résultant bénéficient pour la plupart d'un poids binaire élevé.Application à des dispositifs et à des appareils mettant en oeuvre ces procédés.

Description

<Desc/Clms Page number 1>
La présente invention concerne les systèmes de communication dans lesquels, afin d'améliorer la fidélité de la transmission, les données à transmettre sont soumises à un codage de canal. Elle concerne plus particulièrement un procédé de turbocodage , ainsi que les dispositifs et appareils destinés à mettre en oeuvre ce procédé.
On rappelle que le codage dit de canal consiste, quand on forme les mots de code envoyés au récepteur, à introduire une certaine redondance dans les données à transmettre. Au niveau du récepteur, le procédé de décodage associé exploite alors judicieusement cette redondance pour détecter d'éventuelles erreurs de transmission et si possible les corriger.
Plus précisément, on définit la distance de Hamming entre deux séquences binaires de même longueur comme étant le nombre d'emplacements où les deux séquences possèdent un élément binaire différent. Les mots de code obéissent à certaines règles définies par le procédé de codage considéré, ce qui permet au récepteur de remplacer le mot reçu par le mot de code légal situé à la distance de Hamming la plus courte de ce mot reçu.
Il est clair que cette procédure de correction d'erreurs est d'autant plus fiable que la distance de Hamming minimale entre les divers mots de code est plus grande. On notera que la distance entre un mot de code donné et le mot de code nul (celui dont tous les éléments binaires sont nuls) est égale au nombre d'éléments binaires égaux à 1, appelé poids binaire , de ce mot de code donné. On en déduit qu'un procédé de codage est, toutes choses égales par ailleurs, d'autant meilleur que la distance minimale du code, c'est-à-dire, la valeur minimale du poids binaire de ses mots de code (à l'exclusion du mot nul) est élevée. Pour plus de détails, on se référera par exemple au livre Computer Networks de A. Tannenbaum, 3ème édition, Prentice-Hatt International, New Jersey, 1996, page 184.
En outre, il est apparu avec l'expérience que la correction d'erreurs de transmission est d'autant plus efficace que le code de canal utilisé possède un faible pourcentage de mots de code dont le poids est voisin de la distance minimale du code. Dans certains cas, on obtient même de meilleurs résultats avec un code dont les mots ont presque tous un poids nettement supérieur à la
<Desc/Clms Page number 2>
distance minimale de ce code, qu'avec un autre code de distance minimale pourtant plus grande que la précédente, mais dont beaucoup de mots ont un poids à peine supérieur à cette plus grande distance minimale.
La présente invention a notamment pour but de proposer des codes de canal bénéficiant chacun d'une grande distance minimale, et dont la plupart des mots ont un poids nettement supérieur à cette distance minimale.
Parmi les procédés de codage connus, certains sont appelés codes cycliques redondants . Dans un tel procédé, on fait le choix d'un polynôme g (x), dit polynôme générateur , à coefficients binaires, de degré d et de terme constant égal à 1. On met chaque séquence d'informations à transmettre, éventuellement en la prolongeant avec des éléments nuls, sous la forme d'une séquence binaire u ayant une longueur 1 fixe. Puis on forme une
Figure img00020001

séquence a en prolongeant la séquence u au moyen d'un nombre de bits égal à d, ces bits dits de bourrage ( padding bits en anglais) étant choisis de manière à ce que le polynôme
Figure img00020002
Figure img00020003

associé à a soit divisible par g (x) (modulo 2). Ce sont les séquences a (de longueur n =/+ d) qui sont envoyées au récepteur. Les erreurs de transmission sont alors détectées en examinant le reste de la division du mot de code reçu par le polynôme générateur (voir par exemple A. Tannenbaum, op. cit., pages 187-188).
On a proposé récemment des procédés de codage très efficaces, appelés turbocodes , dans lesquels on accroît la redondance en transmettant, pour chaque séquence y. de données d'information initiales, outre la séquence tv elle-même, plusieurs séquences supplémentaires appelées séquences de parité , chacune de ces séquences de parité résultant du passage de la séquence u au travers d'un codeur élémentaire (ou d'un enchaînement de plusieurs codeurs élémentaires successifs) correspondant à cette parité .
De plus, les turbocodes font partie des codes dits convolutifs , c'est-à-dire des codes dans lesquels chaque bit sortant d'un codeur résulte du
<Desc/Clms Page number 3>
traitement, au sein de ce codeur, non seulement de ce bit mais également de l'ensemble des bits précédemment introduits dans le codeur ; de ce fait, le résultat du codage d'une séquence dans un codeur convolutif dépend en général des séquences traitées précédemment par le codeur.
Pour plus de détails sur les turbocodes, on se reportera utilement - à l'article de C. Berrou, A. Glavieux et P. Thitimajshima intitulé
Figure img00030001

Near Shannon Limit Error-Correcting Coding and Decoding : Turbo-codes , ICC'93, Genève (édité par IEEE, Piscataway, NJ, USA, 1993), - à l'article de R. de Gaudenzi et M. Luise intitulé Audio and Video Digital Radio Broadcasting Systems and Techniques , Actes du Sixième Séminaire International de Tirrenia sur les Télécommunications Numériques, pages 215 à 226 (1993), - à l'article de J. Hagenauer, P. Robertson et L. Papke intitulé Iterative (Turbo) Decoding of Systematic Convolutional Codes with the MAP and SOVA Algorithms ?, Informationstechnische Gesellschaft (ITG) Fachbericht, pages 21 à 29 (octobre 1994), - à l'article de J. Hagenauer, E. Offer et L. Papke intitulé Iterative Decoding of Binary Block and Convolutionai Codes , IEEE Transactions on Information Theory (édité par IEEE, Piscataway, NJ, USA, 1996), - à l'article de C. Berrou, S. Evano et G. Battail intitulé Turbo-block Codes , Actes du séminaire Turbo-Coding organisé par le Département d'électronique appliquée de l'Institut de Technologie de Lund, Suède) (août 1996), et - à l'article de C. Berrou et A. Glavieux intitulé Near Optimum Error- Correcting Coding and Decoding : Turbo-Codes > > , IEEE Transactions on Communications, vol. 44, n 10, pages 1261 à 1271 (édité par IEEE, Piscataway, NJ, USA, 1996).
Nous allons décrire à présent une classe particulièrement avantageuse de turbocodes à deux parités. Selon ces turbocodes, on transmet, pour chaque séquence y. de données initiales, trois séquences a, 12. et c obtenues comme suit.
Figure img00030002

1
<Desc/Clms Page number 4>
Figure img00040001

La séquence b est produite par un dispositif que nous appellerons le premier codeur , habituellement sur la base de la représentation polynomiale b (x) = a (x). f1 (x)/g (x), où a (x) est le polynôme associé à ladite séquence a, g (x) un premier polynôme prédéterminé à coefficients binaires de degré d et de terme constant égal à 1, et fui (x) un deuxième polynôme prédéterminé à coefficients binaires sans diviseur commun avec g (x). Le polynôme g (x) est appelé polynôme de rétroaction pour des raisons liées à la réalisation concrète de la division par g (x) impliquée par l'expression de b (x).
Quant à la séquence a, elle peut être prise identique à u, mais elle est de préférence obtenue, comme dans les codes cycliques redondants , en prolongeant la séquence u au moyen de bits de bourrage choisis de manière à ce que a (x) soit divisible par g (x). En effet, comme il est connu de l'homme du métier, cette divisibilité permet de garantir la même qualité de décodage pour les derniers bits de chaque séquence que pour les autres bits, à condition toutefois que la longueur n de la séquence a soit un multiple de la période m du polynôme de rétroaction (la période d'un polynôme g (x) est définie comme étant le plus petit entier positif m tel que ledit polynôme g (x) divise ( ? + 1) module 2 ; pour d'autres propriétés déjà connues de ladite période, on pourra consulter l'ouvrage classique de F. J. Mc Williams et N. J. A.
Sloane intitulé The Theory of Error-Correcting Codes , publié par NorthHolland en 1977 et dont la septième édition a eu lieu en 1992). Dans le cadre de la présente invention, on prendra donc : n= m, où rest un entier strictement positif.
La séquence c, enfin, est produite par un dispositif que nous appellerons le second codeur , habituellement sur la base de la représentation polynomiale c (x) = a* (x)'f2 (x)/g* (x), où g* (x) est un troisième polynôme prédéterminé à coefficients binaires de degré d et de terme constant égal à 1, où ) est un quatrième polynôme
<Desc/Clms Page number 5>
Figure img00050001

prédéterminé à coefficients binaires, sans diviseur commun avec g* (x), et où le polynôme a* (x) représente une séquence binaire a* qui résulte de manière prédéterminée d'une permutation des éléments binaires de u ou de a (opération appelée entrelaçage , interleaving en anglais).
Pour ces turbocodes à deux parités, c'est donc pour le triplet v = (a, P, c), considéré comme une seule séquence, que l'on cherche à obtenir un poids binaire minimal élevé.
Le turbodécodage du message transmis fonctionne de la manière suivante : le décodeur reçoit trois séquences de nombres, notées a', b' et c', et qui ont été produites par l'action du bruit du canal de transmission sur les séquences émises a, Q et c. Le turbodécodeur met alors en oeuvre un processus itératif (utilisant b'et c'en alternance) destiné à calculer une valeur estimée à de a avec une fiabilité qui croît avec le nombre d'itérations choisi. Si l'on a utilisé des bits de bourrage, il suffit évidemment, une fois la valeur finale de à obtenue, d'en supprimer les d derniers bits pour obtenir la valeur estimée û de u.
Les remarques faites ci-dessus concernant l'utilité de la divisibilité des polynômes a (x) par le polynôme g (x) au niveau du premier codeur s'appliquent également au niveau du second codeur, pour lequel se pose le problème de la divisibilité des polynômes a* (x) par le polynôme de rétroaction g* (x), ce problème devant être résolu dans le cadre où chacun de ces polynômes a* (x) est issu d'un polynôme a (x) divisible par g (x). Une solution connue consiste, en premier lieu, à permuter de manière prédéterminée les éléments binaires de u pour obtenir une séquence u*, et, en second lieu, à former a* en prolongeant u* au moyen de d bits de bourrage de manière à ce que a* (x) soit divisible par g* (x) (on choisira alors de préférence g* (x) identique à g (x) par souci de simplicité) ; mais un tel procédé de turbocodage présente l'inconvénient que l'efficacité du turbodécodage n'est pas idéale en raison du fait que a et a* contiennent des jeux de bits de bourrage choisis indépendamment l'un de l'autre ; il en résulte une certaine perte de fiabilité (mesurée en termes de taux d'erreurs) de la transmission.
1
<Desc/Clms Page number 6>
La demande de brevet EP 0 928 071, au nom de CANON, résout ce problème délicat grâce à des entrelaceurs dans lesquels la séquence a* est obtenue directement par permutation des éléments binaires de a ; pour chacun des entrelaceurs divulgués dans cette demande, on peut toujours trouver un polynôme g* (x) tel que, quel que soit le polynôme a (x) divisible par g (x), le polynôme a* (x) soit également divisible par g* (x). Ainsi, une fois la séquence a constituée, on n'a pas à ajouter de bits de bourrage indépendants des premiers pour obtenir a*.
De plus, ces permutations préservant la divisibilité sont telles que la période du polynôme de rétroaction g* (x) correspondant est égale à celle de
Figure img00060001

g (x). Comme les séquences a et a* ont la même longueur, le décodage associé au second codeur bénéficie lui aussi d'une qualité uniforme pour tous les bits de chaque séquence.
Pour plus de détails sur les permutations préservant la divisibilité , on se reportera utilement - à l'article de M. Hattori, J. Murayama et R. J. McEliece intitulé Pseudorandom and Self-terminating Interleavers for Turbocodes > > , Séminaire de Théorie de l'Information, San Diego, février 1998, - à l'article de R. J. McEliece, C. Le Dantec et P. Piret intitulé Permutations Preserving Divisibility , IEEE Trans. on Inform. Theory (à paraître), et - à l'article de M. van Dijk, S. Egner, R. Motwani et A. Koppelaer intitulé Simultaneous Zero-tailing of Paral/el Convolutional Codes) > , Actes du Symposium International de l'IEEE de Théorie de l'Information, Sorrento, juin 2000.
On peut alors se demander si, parmi ces permutations préservant la divisibilité , il n'en existerait pas certaines qui auraient de surcroît l'avantage, d'une part, de garantir une distance minimale élevée pour les codes utilisant ces permutations particulières dans leurs entrelaceurs, et d'autre part de garantir que les mots d'un tel code auront, pour la plupart d'entre eux, un poids nettement supérieur à la distance minimale de ce code.
Figure img00060002

1
<Desc/Clms Page number 7>
La demande de brevet EP 1 098 445, au nom de CANON, divulgue justement des entrelaceurs, dits entrelaceurs verrous (en anglais, wheel interleavers ), ayant ces propriétés. Les entrelaceurs verrous sont applicables à des séquences de longueur n = r-m, où r n'est pas premier. Autrement dit, r = R M, où R et M sont des entiers supérieurs à 1 ; pour fixer les idées, R désignera ci-dessous le plus grand de ces deux facteurs (R M).
Une façon commode d'effectuer la permutation associée à un entrelaceur verrou donné est d'utiliser les étapes suivantes :
1) les éléments binaires de chaque séquence a sont disposés successivement, ligne après ligne, dans un tableau S comportant r lignes et m colonnes, puis l'on opère sur chaque colonne du tableau S séparément,
2) les éléments de la colonne k choisie (k = 0,..., m - 1) sont disposés, ligne après ligne, dans un tableau Sk comportant R lignes et M colonnes, puis chaque colonne i (i = 0,..., M - 1) du tableau Sk est soumise à une permutation circulaire d'amplitude Hk, ce qui donne un tableau S*k, de sorte que la transformation de Sk en S*k est définie par un vecteur il k dont les composantes sont les nombres Hki, à savoir des entiers positifs ou nuls (définis modulo R), ledit vecteur étant choisi de manière à être multiple d'un vecteur # prédéterminé, i.e. #k = dk #, avec dk entier,
3) les éléments du tableau S*k ainsi obtenu sont replacés dans le tableau S de manière à former la colonne k d'un tableau transformé S*, et
4) l'on effectue une permutation circulaire des éléments d'une colonne au moins du tableau S*, le tableau S* ainsi obtenu contenant, dans l'ordre, les composantes de la séquence entrelacée a* associée à a.
Avec les entrelaceurs verrous ainsi définis, g* (x) est identique à g (x), autrement dit a* (x) est automatiquement divisible par g (x) quand a (x) l'est.
Cette demande de brevet EP 1 098 445 enseigne comment il faut choisir lesdits vecteurs il de manière à ce que les codes utilisant des entrelaceurs verrous possèdent une distance minimale élevée. Pour pouvoir corriger les erreurs de transmission, il est de plus utile que deux éléments
<Desc/Clms Page number 8>
binaires quelconques de a occupant des positions relativement proches dans cette séquence occupent des positions relativement éloignées dans la séquence entrelacée a* correspondante : comme expliqué dans ce document, on peut satisfaire ce critère de manière optimale moyennant un choix approprié du vecteur d (dont les composantes sont lesdits entiers dk) et du vecteur e dont chaque composante ek (k = 0,..., m-1) est l'amplitude de ladite permutation circulaire appliquée à la colonne k du tableau S*.
Les tests effectués avec des codes utilisant ces entrelaceurs ont montré qu'ils possèdent l'avantage supplémentaire que seul un pourcentage relativement faible de mots de code ont un poids binaire voisin de la distance minimale du code considéré.
Toutefois, dans ce document, les preuves de l'efficacité des codes divulgués reposent sur l'hypothèse que l'entier R défini ci-dessus est choisi parmi les nombres premiers. Cette condition implique évidemment une certaine limitation dans le choix de la longueur des séquences transmises. Vu les avantages multiples offerts par les entrelaceurs verrous (tels que ceux déjà mentionnés, et aussi une grande facilité de mise en oeuvre pratique), le besoin est donc apparu de pouvoir utiliser des entrelaceurs verrous dans une gamme plus étendue de longueurs de séquences.
Pour résoudre ce problème, la présente invention propose des entrelaceurs verrous qui présentent toutes les propriétés recherchées sans que l'entier R soit nécessairement premier. Ce but est atteint selon l'invention en choisissant ledit vecteur fI de manière à ce que, d'une part, tous les résidus modulo R de ses M composantes soient différents deux à deux, et d'autre part : - si R est impair ou si R/2 est un entier pair, chaque composante nonnulle de fi est un nombre relativement premier avec R, et - si R12 est un entier impair, chaque composante non-nulle de Fi est un nombre relativement premier avec R ou un nombre égal au double d'un nombre relativement premier avec R/2.
Grâce à ces dispositions, les codes de canal selon l'invention, qui bénéficient donc d'un poids binaire élevé pour la plupart de leurs mots'de code et aussi d'une qualité uniforme de décodage pour tous les bits transmis,
<Desc/Clms Page number 9>
peuvent être mis en oeuvre conformément à des normes de transmission stipulant des longueurs de séquences que l'homme du métier n'aurait pas cru pouvoir utiliser dans ce but d'après l'enseignement fourni par l'art antérieur.
De plus, on choisira les entiers dk et les permutations circulaires finales des éléments de certaines colonnes de S* selon le même critère que celui mentionné ci-dessus dans le cas de R premier : on se référera donc au document EP 1 098 445 pour plus de détails sur la marche à suivre à cet égard. Toutefois, on mettra ici une condition supplémentaire, à savoir que les entiers dk doivent être relativement premiers avec R (cette condition était trivialement satisfaite dans le cas de R premier).
Enfin, la présente invention divulgue des conditions supplémentaires sur le choix de fi dont l'application dépend de la valeur de M. Il s'agit en fait de modes de réalisation de plus en plus préférés pour des valeurs minimales croissantes de M. Comme on le montrera plus bas, ces conditions sont particulièrement favorables pour obtenir un code dont les mots (en l'occurrence, les triplets y) ont presque tous un poids binaire élevé.
Ainsi, selon des caractéristiques particulières, si M > 5, on choisira
Figure img00090001

fi tel que les résidus modulo R des composantes des vecteurs Pi et HP2 soient non-nuls, où : - P1 désigne la matrice circulante Mx M dont la première colonne est [1-210... Of. et - P2 désigne la matrice circulante Mx M dont la première colonne est [2-2 0 0... Of.
On rappelle qu'une matrice carrée est dite circulante lorsque chacune de ses colonnes (à partie de la deuxième) se déduit de la précédente par une permutation circulaire d'amplitude 1.
Selon des caractéristiques encore plus particulières, si M > 7, on choisira tel que, en outre, les résidus modulo R des composantes des vecteurs P, (i = 3,..., 8) soient non-nuls, où : - P3 désigne la matrice circulante M x M dont la première colonne est [1-1-110... Of, - P4 désigne la matrice circulante M x M dont la première colonne est
<Desc/Clms Page number 10>
Figure img00100001

[1-1 1-1 0... Of, - P5 désigne la matrice circulante Mx M dont la première colonne est [1 0-2 1 0... Of, - P6 désigne la matrice circulante M x M dont la première colonne est [1-2 0 1 0... Of, - P7 désigne la matrice circulante M x M dont la première colonne est [2 -1 -1 0 0 ... 0]T, et - Ps désigne la matrice circulante M x M dont la première colonne est [11-200... Of.
Selon des caractéristiques encore plus particulières, si M > 9, on choisira Fr tel que, en outre, les résidus modulo R des composantes des vecteurs fi (i = 9, ..., 20) soient non-nuls, où : - Pg désigne la matrice circulante Mx M dont la première colonne est [11-1-100...0]T, - Pio désigne la matrice circulante Mx M dont la première colonne est [1-101-10...0]T, - Pu désigne la matrice circulante Mx M dont la première colonne est [1-10-110...0]T, - P12 désigne la matrice circulante M x M dont la première colonne est [10-1-110...0]T, - P13 désigne la matrice circulante M x M dont la première colonne est [1-1-1010...0]T, - P14 désigne la matrice circulante M x M dont la première colonne est [10-11-10...0]T, - P15 désigne la matrice circulante Mx M dont la première colonne est [1-110-10...0]T, - P16 désigne la matrice circulante M x M dont la première colonne est [10-2010...0]T, - P17 désigne la matrice circulante Mx M dont la première colonne est [100-210...0]T, - Pis désigne ta matrice circulante M x M dont la première colonne est [1-20010...0]T,
<Desc/Clms Page number 11>
- P19 désigne la matrice circulante M x M dont la première colonne est [101 -200... O]T, et
Figure img00110001

- P20 désigne la matrice circulante Mx M dont la première colonne est [2-1 0-1 0 0... Of.
Selon d'autres caractéristiques particulières, si M > 5, on pourra également choisir H tel que les résidus modulo R des composantes des vecteurs HP, (i= 21,..., 24) soient non-nuls, où : - P21 désigne la matrice circulante Mx M dont la première colonne est [1 -3 2 0 0... 0], - P22 désigne la matrice circulante M x M dont la première colonne est [2-3100... Of, - P23 désigne la matrice circulante Mx M dont la première colonne est [1-22-10... Of. et - P24 désigne la matrice circulante Mx M dont la première colonne est [3-3000... Of.
Selon un autre de ses aspects, l'invention concerne un procédé de codage à deux parités, ledit procédé étant remarquable en ce qu'il comprend une étape d'entrelacement réalisée au moyen de l'un quelconque des procédés décrits succinctement ci-dessus.
Corrélativement, l'invention concerne un procédé de turbodécodage, ledit procédé étant remarquable en ce qu'il permet de décoder des séquences reçues qui ont été émises après avoir été codées à l'aide d'un procédé de codage selon l'invention.
Selon encore un autre de ses aspects, l'invention concerne divers dispositifs.
Elle concerne ainsi un dispositif de codage de séquences de données destinées à être transmises à l'aide d'un procédé de codage selon l'invention, ledit dispositif étant remarquable en ce qu'il comporte : - des moyens pour obtenir, pour chaque séquence de données u, ladite
Figure img00110002

séquence a associée à u en prolongeant la séquence u au moyen desdits d bits de bourrage, et 1
<Desc/Clms Page number 12>
- au moins un codeur comportant un entrelaceur 1t1 apte à réaliser la permutation prévue dans ledit procédé.
Corrélativement, l'invention concerne un dispositif de décodage destiné à mettre en oeuvre un procédé de turbodécodage selon l'invention, ledit dispositif étant remarquable en ce qu'il comporte : - au moins un turbodécodeur comportant deux entrelaceurs 1t1 aptes à réaliser la permutation prévue dans ledit procédé, et un désentrelaceur 7C2 apte à inverser cette permutation, et - des moyens pour produire une séquence binaire Q en ôtant les d derniers bits de la séquence estimée à obtenue à la fin du turbodécodage des
Figure img00120001

séquences reçues a', b'et c'correspondant respectivement auxdites séquences émises a, 11., et c.
La présente invention vise également : - un appareil d'émission de signaux numériques codés, comportant un dispositif de codage tel que décrit succinctement ci-dessus, et comportant des moyens pour émettre lesdites séquences codées a, b, et c, - un appareil de réception de signaux numériques codés, comportant un dispositif de décodage tel que décrit succinctement ci-dessus, et comportant des moyens pour recevoir lesdites séquences a', b', et c', - un réseau de télécommunications, comportant au moins un appareil d'émission ou un appareil de réception de signaux numériques codés tels que décrits succinctement ci-dessus, - un moyen de stockage permanent de données, caractérisé en ce qu'il comporte des instructions de code de programme informatique pour l'exécution des étapes d'un procédé d'entrelacement ou d'un procédé de codage ou encore d'un procédé de turbodécodage selon l'invention, - un moyen de stockage de données amovibles, partiellement ou totalement, caractérisé en ce qu'il comporte des instructions de code de programme informatique pour l'exécution des étapes d'un procédé d'entrelacement ou d'un procédé de codage ou encore d'un procédé de turbodécodage selon l'invention, et
Figure img00120002

1
<Desc/Clms Page number 13>
- un programme d'ordinateur, contenant des instructions telles que, lorsque ledit programme commande un dispositif de traitement de données programmable, lesdites instructions font que ledit dispositif de traitement de données met en oeuvre un procédé d'entrelacement ou un procédé de codage ou encore un procédé de turbodécodage selon l'invention.
Les avantages offerts par ces dispositifs, appareils de traitement de signaux numériques, réseaux de télécommunications, moyens de stockage de données et programmes d'ordinateur sont essentiellement les mêmes que ceux offerts par les procédés selon l'invention.
D'autres aspects et avantages de l'invention apparaîtront à la lecture de la description détaillée, que l'on trouvera ci-dessous, de modes de réalisation préférés donnés à titre d'exemples non limitatifs. Cette description se réfère aux dessins annexés, dans lesquels : - la figure 1 est un organigramme illustrant les étapes successives de la sélection, selon un mode de réalisation de l'invention, d'un procédé de codage, - la figure 2 représente de façon schématique un mode de réalisation de l'invention au sein d'un dispositif de turbocodage à deux parités, - la figure 3a représente de façon schématique le fonctionnement classique du premier codeur illustré sur la figure 2, - la figure 3b représente de façon schématique le fonctionnement classique du second codeur illustré sur la figure 2, - la figure 4 représente de façon schématique un appareil d'émission de signaux numériques selon un mode de réalisation de l'invention, - la figure 5 représente de façon schématique un mode de réalisation de l'invention au sein d'un dispositif de turbodécodage à deux parités, - la figure 6 représente de façon schématique un appareil de réception de signaux numériques selon un mode de réalisation de l'invention, - la figure 7 représente de façon schématique un mode de réalisation de réseau de télécommunications sans fil susceptible de mettre en oeuvre l'invention,
Figure img00130001

1
<Desc/Clms Page number 14>
- la figure 8 est un graphique illustrant les résultats d'une simulation d'un procédé de codage et décodage selon un mode de réalisation de l'invention dans lequel R est impair, et - la figure 9 est un graphique illustrant les résultats d'une simulation d'un procédé de codage et décodage selon un autre mode de réalisation de l'invention dans lequel R/2 est pair.
Pour commencer, on va expliquer, à l'aide d'exemples numériques, les principes mathématiques sur lesquels repose l'invention.
Comme expliqué ci-dessus, la première étape d'un entrelacement selon l'invention d'une séquence a consiste à disposer les éléments binaires de cette séquence successivement, ligne après ligne, dans un tableau S comportant r = R-M lignes (où R et M sont des entiers supérieurs à 1, avec
Figure img00140001

R M) et m colonnes. Le polynôme a (x) associé à cette séquence s'écrit donc :
Figure img00140002
Figure img00140003


Figure img00140004
Figure img00140005

décrit la contribution à a (x) des éléments binaires de a situés dans la k-ème colonne du tableau S. On appellera k-ème composante homogène de a (x) le polynôme a (k) (xm), pour lequel le polynôme a (k) (y) est une version simplifiée . Quand une séquence a est associée à un polynôme a (x) dont toutes les composantes homogènes sont nulles à l'exception d'une seule, on dira que l'on a affaire à une séquence homogène .
Dans les étapes suivantes d'un entrelacement selon l'invention, comme expliqué ci-dessus, on opère sur chaque colonne du tableau S séparément.)) en résulte immédiatement que si a est homogène, la séquence entrelacée correspondante a* est elle aussi homogène.
Pour les séquences homogènes, la divisibilité de a (x) et a* (x) par
Figure img00140006

g (x) s'exprime de manière très simple : il faut et il suffit que a (et donc a*) possède un nombre pair d'éléments non-nuls (c'est-à-dire égaux à 1). En effet,
<Desc/Clms Page number 15>
m étant la période de g (x), le polynôme (1 + xm) est divisible par g (x). D'autre part, par définition des séquences homogènes, a (x) est un polynôme en xm ; a (x) est donc divisible par (1 + xm) si, et seulement si, a (x) possède un nombre pair de coefficients non-nuls. La divisibilité par g (x) en résulte.
En ce qui concerne l'obtention d'un code où les mots v transmis ont généralement un poids binaire élevé, la présente invention utilise la stratégie suivante :
1) on détermine de manière exhaustive les conditions sur fI pour que les séquences a homogènes de très faible poids (à savoir, 2,4 ou 6) fournissent des triplets v de poids aussi élevé que possible ; les séquences a homogènes de poids supérieur ou égal à 8 fournissent automatiquement des triplets v de poids élevé puisque le poids de v = (a, b, c) est au moins égal au poids de a (et même au moins égal à 56 dans les cas considérés ci-dessous) ;
2) on détermine, à l'aide de la méthode expliquée en détail dans le document EP 1 098 445, un ensemble de vecteurs d et e donnant lieu à une bonne dispersion des composantes de chaque séquence a quand elles deviennent les composantes de la séquence entrelacée correspondante a* ; et enfin,
3) on teste les codes associés à ces différentes valeurs de d et de # pour déterminer quel est le couple (d, ê) associé au code offrant les meilleures performances en termes de corrections d'erreurs ; on prend ainsi en compte, en pratique, les effets des séquences a non-homogènes.
Concentrons-nous donc sur les séquences a homogènes possédant un nombre pair d'éléments non-nuls. On va calculer, pour ces séquences, la relation exacte entre le poids de a et le poids de v = ( ?, 12, f).
Pour ce faire, il est utile d'introduire la notion de portée (en anglais, span ) sp (z) d'un polynôme z (x) possédant un nombre pair de coefficients binaires non-nuls. Si l'on désigne par i, i2,...,/2s les indices successifs de ces coefficients non-nuls, on pose : SP (Z) = (il + (i4-i3) + + (i2s-i2s-l)-
<Desc/Clms Page number 16>
De plus, si l'on appelle z la séquence binaire associée à z (x), z* la séquence obtenue par entrelacement de z, et z* (x) le polynôme associé à z*, on définit la portée totale (en anglais, full span ) fsp (z) du polynôme z (x) par : fsp (z) # sp (z) + sp (z*).
Figure img00160001
En effet, la relation entre le poids de a, noté W (a) et le poids de v, noté W (v), fait intervenir la portée totale fsp (a). Par exemple, on prouve aisément que, si l'on effectue un codage à deux parités avec g (x) = g* (x) =1 + + x, f, (x) = 1 + x + , et f2 (x) = 1 + x + x2 + , ou avec g (x) = g* (x) = 1 + x + x, , (x) = 1 + x2 + x, et f2 (x) = 1 + x + x2 + x\ cette relation s'écrit : W (v) = 4 fsp (a) + 3 W (a).
Le problème se ramène donc, pour toute séquence homogène a donnée, à trouver la permutation qui va maximiser fsp (a). Le but étant de construire un entrelaceur verrou, cette permutation doit être choisie, comme expliqué ci-dessus, parmi celles où :
1) les coefficients de la version simplifiée z (y) # a(k) (y) sont disposés, ligne après ligne, dans un tableau Sk comportant R lignes et M colonnes ; puis
2) chaque colonne i (i = 0, ..., M-1) du tableau Sk est soumise à une permutation circulaire d'amplitude Hk, où les composantes Hk'du vecteur h == ho sont des entiers positifs ou nuis (définis modulo R).
On peut alors démontrer, concernant la portée totale de z (y), un certain nombre de propriétés que l'on va énoncer à présent. Ces propriétés, qui font référence aux matrices P1 à P24 définies ci-dessus, stipulent des conditions
Figure img00160002

sur le choix du vecteur h, qui doit dans tous les cas être tel que : - si R est impair ou si R/2 est un entier pair, chaque composante nonnulle de # est un nombre relativement premier avec R, et - si R/2 est un entier impair, chaque composante non-nulle de h est un nombre relativement premier avec R ou un nombre égal au double d'un nombre relativement premier avec R/2.
<Desc/Clms Page number 17>
Ces propriétés sont les suivantes :
1) pour z de poids 2, si tous les résidus modulo R des composantes de sont différents deux à deux, alors : fsp (z) 2 M ;
Figure img00170001

2) pour M > 5 et z de poids 4, si tous les résidus modulo R des composantes de h sont différents deux à deux, et si les résidus modulo R des composantes des vecteurs P1 et Ji P2 sont non-nuls, alors : fsp (z) 2 6 ;
3) pour M > 7 et z de poids 4, si tous les résidus modulo R des composantes de # sont différents deux à deux, et si les résidus modulo R des composantes des vecteurs h P, (í = 1,..., 8) sont non-nuls, alors : fsp (z) 2 8 ;
Figure img00170002

4) pour M > 9 et z de poids 4, si tous les résidus modulo R des composantes de # sont différents deux à deux, et si les résidus modulo R des composantes des vecteurs h P, (i = 1,..., 20) sont non-nuls, alors : fsp (z) 2 10 ;
Figure img00170003

5) pour M > 5 et z de poids 6, si les résidus modulo R des composantes des vecteurs h P, (i= 21,..., 24) sont non-nuls, alors : fsp (z) 2 8.
De plus, si h vérifie l'une quelconque des conditions 1) à 5), la propriété correspondante reste vraie pour tout multiple de ce vecteur par un entier relativement premier avec R.
Les entrelaceurs selon l'invention résultent évidemment de ces propriétés.
De manière générale, la procédure conduisant à la sélection d'un procédé de codage/décodage selon l'invention comprendra de préférence les étapes suivantes, décrites en référence à la Figure 1. A l'étape 1201, on choisit un polynôme de rétroaction g (x) déterminé, ainsi que les polynômes f1 (x) et f2 (x), sur la base de critères bien connus du spécialiste des procédés de codage convolutifs (on prend habituellement des polynômes f1 (x) et f2 (x) de même degré d que g (x)). A l'étape 1202, on calcule la période m du polynôme g (x). A l'étape 1203, on choisit les paramètres R et M, ce qui détermine la longueur n = R. M'm des séquences codées a à transmettre ; le respect des normes techniques associées au canal de transmission concerné limitera, habituellement, les possibilités de choix quant à la longueur des séquences a,
<Desc/Clms Page number 18>
ou plutôt des triplets j/= (a, b, c). A l'étape 1204, on choisit un vecteur fi obéissant à au moins certaines, et de préférence toutes, les conditions énoncées ci-dessus. A l'étape 1205, on détermine un ensemble de bons vecteurs d et e, comme expliqué ci-dessus. A l'étape 1206, on fait des tests (ou des simulations) de corrections d'erreurs pour chaque code associé à une paire (d, e) dans cet ensemble de façon à trouver quel est le meilleur d'entre eux, ce qui détermine la valeur optimale du couple (d, e). Enfin, à l'étape 1207, on choisit le nombre d'itérations mis en oeuvre par le turbodécodeur, en fonction de la qualité de transmission requise, mais également de la vitesse de traitement souhaitée (on constate d'ailleurs en pratique qu'au-delà de dix ou vingt itérations, les bénéfices en termes de corrections d'erreurs sont marginaux).
La figure 2 représente un exemple de mise en oeuvre de l'invention : il s'agit ici d'un dispositif de turbocodage à deux parités, dans lequel le codage des données aux fins de transmission est effectué par un turbocodeur constitué de deux codeurs convolutifs et d'un entrelaceur 1t1.
On rappelle qu'un turbocodeur classique est constitué de deux codeurs convolutifs récursifs systématiques (en anglais : RSC, Recursive Systematic Convolutional > ) et d'un entrelaceur, disposés comme le montre la
Figure img00180001

figure 2. Le turbocodeur fournit, en sortie, pour chaque séquence d'éléments binaires entrante a, trois séquences d'éléments binaires a, b, et c, où a est la sortie dite systématique du turbocodeur, c'est-à-dire n'ayant subi aucune modification par rapport au signal d'entrée, 12 est la sortie codée par le premier codeur (désigné par RSC1) et c est la sortie codée par le second codeur (désigné par RSC2) après passage dans l'entrelaceur i.
Dans le mode préféré de réalisation, le signal transportant la séquence de données u alimente un module de bourrage 30. Ce module 30 est chargé de prolonger la séquence y. au moyen de bits de bourrage, comme expliqué ci-dessus, de manière à obtenir une séquence a dont la longueur n est un multiple de la période m du polynôme g (x), et dont le polynôme associé a (x) est divisible par g (x). Le signal résultant alimente alors le turbocodeùr 40. Ce
<Desc/Clms Page number 19>
Figure img00190001

dernier comporte un entrelaceur 7t1 selon l'invention, c'est-à-dire produisant, à partir de la séquence a, une permutation a* divisible par g (x).
La figure 3a est un schéma de fonctionnement du premier codeur RSC (celui produisant une séquence b à partir d'une séquence a), dans le cas où l'on prend, par exemple,
Figure img00190002

fi (x) = 1 +x+x et g (x) = 1 + x + x3.
Ce codeur porte en mémoire vive trois bits Si, S2, et s3. L'ensemble de ces bits constitue ce qu'on appelle fêtât du codeur . Le fait que la longueur n de chaque séquence a est un multiple de la période m du polynôme g (x), et que le polynôme associé a (x) est divisible par g (x), ont pour conséquence que l'état final du codeur (c'est-à-dire à la fin du codage d'une séquence quelconque) est identique à son état initial (au début du codage de ladite séquence), ce qui garantit une qualité de décodage uniforme pour tous
Figure img00190003

les bits d'une même séquence b.
La figure 3b est un schéma de fonctionnement du second codeur RSC (celui produisant une séquence c à partir d'une séquence a*), dans le cas où l'on prend, par exemple,
Figure img00190004

f2 (x) = 1 + x + x + X3, et f g* (x) = 1 + x + X3.
Ce codeur porte en mémoire trois bits s*,, S*2, et S*3. Avec les entrelaceurs selon l'invention, l'état final de ce second codeur est, séquence après séquence, identique à son état initial, ce qui garantit une qualité de décodage uniforme pour tous les bits d'une même séquence c.
Ces deux codeurs RSC sont illustrés sur les figures 3a et 3b sous la forme d'éléments de retard, tels que des bascules par exemple. Ces séquences d'éléments de retard réalisent les fonctions logiques représentées par des multiplications ou des divisions par des polynômes. Cette représentation est classique et bien connue de l'homme du métier.
Enfin, le turbocodeur 40 envoie les trois séquences de données a, b, et c ainsi obtenues vers l'émetteur 906 (voir la figure 4).
<Desc/Clms Page number 20>
La figure 4 montre, de façon très schématique, un appareil d'émission de signaux numériques 48 incorporant le dispositif de la figure 2. Ce dernier comprend, un clavier 911, un écran 909, une source d'informations externe 910, un émetteur hertzien 906, conjointement reliés à des ports d'entrée/sortie 903 d'un dispositif de codage 901 qui est réalisé ici sous la forme d'une unité logique.
Le dispositif de codage 901 comporte, reliés entre eux par un bus d'adresses et de données 902 : - une unité centrale de traitement 900, - une mémoire vive RAM 904, - une mémoire morte 905, et - lesdits ports d'entrée/sortie 903.
Chacun des éléments illustrés en figure 4 est bien connu de l'homme du métier des micro-ordinateurs et des systèmes de transmission et, plus généralement, des systèmes de traitement de l'information. Ces éléments connus ne sont donc pas décrits ici. On observe, cependant, que : - la source d'informations 910 pourrait être, par exemple, un périphérique d'interface, un capteur, un démodulateur, une mémoire externe ou un autre système de traitement de l'information (non représenté), et pourrait par exemple fournir des séquences de signaux représentatifs de parole, de messages de service ou de données multimédia notamment de type IP ou ATM, sous forme de séquences de données binaires, - l'émetteur hertzien 906 est adapté à mettre en oeuvre un protocole de transmission par paquets sur un canal non filaire, et à transmettre ces paquets sur un tel canal.
La mémoire vive 904 conserve des données, des variables et des résultats intermédiaires de traitement, dans des registres de mémoire portant, dans la description, les mêmes noms que les données dont ils conservent les valeurs. On observera, au passage, que le mot registre désigne, à travers la présente description, aussi bien une zone mémoire de faible capacité (quelques données binaires) qu'une zone mémoire de grande capacité
<Desc/Clms Page number 21>
(permettant de stocker un programme entier) au sein d'une mémoire vive ou d'une mémoire morte.
La mémoire vive 904 comporte notamment les registres suivants :
Figure img00210001

- un registre nb~données dans lequel est conservée la longueur k de la séquence de données ! d, - un registre a , dans lequel est conservée la séquence a obtenue en prolongeant~ au moyen de bits de bourrage, - un registre a* dans lequel est conservée la séquence entrelacée a* - un registre a, b, c dans lesquels sont conservées les séquences a, b et c résultant du turbo codage, et - un registre trame radio dans lequel est conservée l'intégralité de
Figure img00210002

la trame radio à émettre.
La mémoire morte 905 est adaptée à conserver, dans des registres qui, par commodité, possèdent les mêmes noms que les données qu'ils conservent : - le programme de fonctionnement de l'unité centrale de traitement 900, dans un registre programme , - les coefficients du polynôme g (x), dans un registre g , - les coefficients du polynôme f1 (x), dans un registre fi , - les coefficients du polynôme f2 (x), dans un registre f2 ,
Figure img00210003

- la longueur des séquences a et a*, dans un registre n , - la permutation définissant l'entrelaceur, dans un registre entrelaceur , et - la valeur m de la période de g dans un registre m .
La figure 5 représente un dispositif de décodage 1101 apte à décoder des données fournies par un appareil tel que celui de la figure 4. Le décodage après réception est effectué par un turbodécodeur constitué de deux décodeurs, de deux entrelaceurs 7r,, d'un désentrelaceur 1t2, d'un additionneur 70 et d'une unité de décision 80 ; les décodeurs, qui sont désignés par Décodeur 1 et Décodeur 2 sur la figure 5, sont de préférence des décodeurs MAP (initiales des mots anglais Maximum A Posteriori
<Desc/Clms Page number 22>
Probability , c'est-à-dire Probabilité Maximum A Posteriori ), par exemple du type BCJR, c'est-à-dire utilisant l'algorithme de Bahl, Cocke, Jelinek et Raviv ; mais on pourra également utiliser d'autres genres de décodeurs, par exemple du type SOVA (en anglais : Soft Output Viterbi Algorithm ). De préférence aussi, le décodage tient compte de la valeur courante du rapport Signal sur Bruit.
Un turbodécodeur classique nécessite également un rebouclage de la sortie du désentrelaceur 1t2 sur l'entrée du premier décodeur afin de transmettre au premier décodeur l'information dite extrinsèque produite par le second décodeur.
Le turbodécodeur 300 reçoit les séquences codées a', & 'et c'en provenance d'un récepteur 1106 (voir la figure 6). Une fois le décodage
Figure img00220001

terminé, la séquence a, qui est une estimation de la séquence a émise par l'émetteur 906, est envoyée à un module tronqueur 335 ; ce tronqueur 335, selon l'invention, produit une séquence û en ôtant les d derniers bits de à (correspondant aux bits de bourrage placé par le module 30 de la figure 2) ; enfin, cette séquence û est envoyée vers un destinataire d'informations 1110.
Le schéma synoptique de la figure 6 représente un appareil de réception de signaux numériques 333 incorporant le dispositif de la figure 5. Ce dernier comprend un clavier 1111, un écran 1109, un destinataire d'informations externe 1110, un récepteur hertzien 1106, conjointement reliés à des ports d'entrée/sortie 1103 d'un dispositif de décodage 1101 qui est réalisé ici sous la forme d'une unité logique.
Le dispositif de décodage 1101 comporte, reliés entre eux par un bus d'adresses et de données 1102 : - une unité centrale de traitement 1100, - une mémoire vive RAM 1104, - une mémoire morte 1105, et - lesdits ports d'entrée/sortie 1103.
Chacun des éléments illustrés en figure 6 est bien connu de l'homme du métier des micro-ordinateurs et des systèmes de transmission et,
<Desc/Clms Page number 23>
plus généralement, des systèmes de traitement de l'information. Ces éléments connus ne sont donc pas décrits ici. On observe, cependant, que : - le destinataire d'informations 1110 pourrait être, par exemple, un périphérique d'interface, un afficheur, un modulateur, une mémoire externe ou un autre système de traitement de l'information (non représenté), et pourrait être adapté à recevoir des séquences de signaux représentatifs de parole, de messages de service ou de données multimédia notamment de type IP ou ATM, sous forme de séquences de données binaires, - le récepteur hertzien 1106 est adapté à mettre en oeuvre un protocole de transmission par paquets sur un canal non filaire, et à transmettre ces paquets sur un tel canal.
La mémoire vive 1104 conserve des données, des variables et des résultats intermédiaires de traitement, dans des registres de mémoire portant, dans la description, les mêmes noms que les données dont ils conservent les valeurs. La mémoire vive 1104 comporte notamment les registres suivants : - des registres données reçues , dans lesquels sont respectivement
Figure img00230001

conservées les séquences reçues a', b', etc', - des registres inf extrinsèques , dans lesquels sont respectivement conservées les séquences intermédiaires de décodage en sortie du Décodeur 2 de la figure 5, - un registre données estimées , dans lequel sont conservées la séquence décodée à et la séquence entrelacée correspondante â*, - un registre b itérations , dans lequel est conservée la valeur du nombre d'itérations déjà effectuées par le turbodécodeur, - un registre nb~données dans lequel est conservée la longueur de la séquence Q issue du tronqueur 335, et - un registre trame~radio dans lequel est conservée l'intégralité de la trame radio reçue.
La mémoire morte 1105 est adaptée à conserver, dans des registres qui, par commodité, possèdent les mêmes noms que les données qu'ils conservent :
Figure img00230002

1
<Desc/Clms Page number 24>
- le programme de fonctionnement de l'unité centrale de traitement 1100, dans un registre programme , - les coefficients du polynôme g (x), dans un registre g , - les coefficients du polynôme f1 (x), dans un registre f1 , - les coefficients du polynôme f2 (x), dans un registre /2 ,
Figure img00240001

- la longueur des séquences à et â*, dans un registre n , - la permutation définissant l'entrelaceur, dans un registre entrelaceur , - la valeur m de la période de g dans un registre m , et - le nombre maximal d'itérations dans un registre nb~iteratoon max .
On notera que, dans certaines applications, il sera commode d'utiliser le même dispositif informatique (fonctionnant en mode multi-tâches) pour l'émission et la réception de signaux selon l'invention ; dans ce cas, les unités 901 et 1101 seront physiquement identiques.
Les procédés selon l'invention peuvent être mis en oeuvre au sein d'un réseau de télécommunications, comme le montre la figure 7. Le réseau représenté, qui peut par exemple être constitué par un des futurs réseaux de communication tels que les réseaux UMTS, est constitué d'une station dite station de base SB désignée par la référence 64, et de plusieurs stations périphériques SP, (i = 1,..., P, où p est un entier supérieur ou égal à 1), respectivement désignées par les références 661, 662,..., 66p. Les stations périphériques 661, 662,..., 66p sont éloignées de la station de base SB, reliées chacune par une liaison radio avec la station de base SB et susceptibles de se déplacer par rapport à cette dernière.
La station de base SB et chaque station périphérique SP, peuvent comprendre un dispositif de codage 901 tel que décrit en référence aux figures 4,5 et 6, un bloc d'émission et un module radio muni d'un émetteur classique comportant un ou plusieurs modulateurs, des filtres et une antenne.
La station de base SB et chaque station périphérique SP, selon l'invention peuvent comprendre également un dispositif de décodage 1101 tel que décrit en référence aux figures 5 et 6, un bloc de réception et un module radio avec son antenne.
<Desc/Clms Page number 25>
La station de base SB et les stations périphériques SP, peuvent comprendre de surcroît, selon les besoins, une caméra numérique, un ordinateur, une imprimante, un serveur, un télécopieur, un scanner ou un appareil photographique numérique.
Pour terminer, on présente ci-dessous les résultats de deux simulations de codage et de décodage selon l'invention.
Pour la première simulation, on a choisi un procédé de codage à deux parités, avec :
Figure img00250001

g (x) = g* (x) =1 + x + x, (x) =1 + x + x, et M = 1 + x + x2 + x. f
On vérifie facilement que la période m de ce polynôme de rétroaction est égale à 7.
Figure img00250002
D'autre part, on prend R = 25 et M = 8, soit r= 200. Les séquences a, Q et c ont donc toutes pour longueur n = 1400, et les mots de code v une longueur égale à 4200.
On vérifie que le vecteur T H = [0 1 11 13 19 18 8 6f est tel que - ses composantes non-nulles sont premières avec 25 (puisque nondivisibles par 5), - tous les résidus modulo 25 de ses composantes (égaux aux composantes elles-mêmes puisqu'elles sont inférieures à 25) sont différents deux à deux, et - les résidus modulo 25 des composantes des vecteurs JVP,
Figure img00250003

(i = 1,..., 24) sont non-nuls.
A l'aide de la méthode expliquée dans EP 1 098 445, on a trouvé que les vecteurs d = [1 24 8 6 4 19 9], et
Figure img00250004

è = [0 121 178 137 92 101 158J donnent lieu à une bonne dispersion des composantes de chaque séquence a.
On a alors simulé les performances de ce turbocode sur un'canal à bruit blanc gaussien, avec un turbodécodeur pouvant opérer jusqu'à 50
<Desc/Clms Page number 26>
Figure img00260001

itérations et comprenant deux décodeurs de type MAP . Les résultats ont été exprimés en termes de probabilités d'erreurs résiduelles, par trame FER (en anglais, Frame Error Ratio ) d'une part, et par bit BER (en anglais, Bit Error Ratio ) d'autre part, en fonction du rapport Signal sur Bruit SNR (en anglais, Signal to Noise Ratio ) par bit d'information sur le canal. Ces résultats sont représentés sur la figure 8.
Une fois la simulation achevée, on a constaté qu'aucune des séquences Je associées à une estimation erronée n'avait un poids binaire inférieur à 34. Comme il est connu de l'homme du métier, ce résultat, combiné à la valeur relativement élevée de SNR atteinte (comme on peut le voir d'après la forme des graphiques illustrés sur la figure 8), est une forte indication que la distance minimale de ce turbocode doit être égale à 34.
Pour la deuxième simulation, on a choisi un autre procédé de codage à deux parités, avec : g (x) = g* (x) = 1 + x + (3, f1 (x) = 1 + 0 + (3, et fix) = 1 + x + x2 + (3. f On vérifie facilement que la période m de ce polynôme de rétroaction est elle aussi égale à 7.
D'autre part, on prend R = 10 et M = 7, soit r = 70. Les séquences a, b et c ont donc pour longueur n = 490, et les mots de code v une longueur égale à 1470.
On vérifie que le vecteur fI= [0 1 9 2 4 7 6f est tel que - ses composantes non-nulles sont soit premières avec 10 (c'est-à-dire non-divisibles par 2 ou par 5), soit égales au double d'un nombre premier avec 10/2 = 5 (en l'occurrence, les composantes égales à 2, 4 et 6), - tous les résidus modulo 10 de ses composantes (égaux aux composantes elles-mêmes puisqu'elles sont inférieures à 10) sont différents deux à deux, et - les résidus modulo 10 des composantes des vecteurs HP, pour i = 1, 2, 21, 22, 23 et 24, sont non-nuls.
Enfin, on trouve qu'un bon choix pour Ci et e est :
<Desc/Clms Page number 27>
d = [1 1 3 3 7 9 9], et ë = [0 17 34 46 13 49 66].
Les résultats en termes de probabilités d'erreurs résiduelles par trame de cette seconde simulation sont représentés sur la figure 9. A titre de comparaison, on a porté sur le même graphique les résultats d'une simulation analogue réalisée avec un entrelaceur selon la norme du 3 Génération Partnership Project (ou 3GPP ) opérant sur des séquences de même longueur 490.
On peut constater sur les figures 8 et 9 que les taux d'erreurs résiduelles caractéristiques des procédés selon l'invention sont très faibles ; de plus, ils ne présentent qu'un effet de nivellement très modéré aux grandes valeurs du rapport Signal sur Bruit.

Claims (15)

REVENDICATIONS
1. Procédé d'entrelacement de données binaires formant une séquence a de longueur n = r-m, où m est un nombre entier supérieur à 1 et r = R-M, où R et M sont des entiers supérieurs à 1, avec R M, dans lequel la séquence entrelacée a* peut être considérée comme ayant été obtenue au moyen des étapes suivantes : a) les éléments binaires de la séquence a sont disposés successivement, ligne après ligne, dans un tableau S comportant r lignes et m colonnes, puis l'on opère sur chaque colonne du tableau S séparément, b) les éléments de la colonne k choisie (k = 0,..., m - 1) sont disposés, ligne après ligne, dans un tableau Sk comportant R lignes et M colonnes, puis chaque colonne i (i = 0, ..., M - 1) du tableau Sk est soumise à une permutation circulaire d'amplitude Hk, ce qui donne un tableau S*k, de sorte que la transformation de Sk en S*k est définie par un vecteur Hk dont les composantes sont les nombres Hk, à savoir des entiers positifs ou nuls (définis modulo R), ledit vecteur Hk étant choisi de manière à être multiple d'un vecteur JV prédéterminé, i. e. = dk H, avec dk entier, c) les éléments du tableau S*k ainsi obtenu sont replacés dans le tableau S de manière à former la colonne k d'un tableau transformé S*, et d) l'on effectue une permutation circulaire des éléments d'une colonne au moins du tableau S*, le tableau S* ainsi obtenu contenant, dans l'ordre, les composantes de ladite séquence entrelacée a*, caractérisé en ce que R n'est pas premier, en ce que lesdits entiers dk sont relativement premiers avec R, en ce que tous les résidus modulo R des M composantes dudit vecteur H sont différents deux à deux, et en ce que : - si R est impair ou si R/2 est un entier pair, chaque composante nonnulle de Fr est un nombre relativement premier avec R, et
<Desc/Clms Page number 29>
- si R/2 est un entier impair, chaque composante non-nulle de fi est un nombre relativement premier avec R ou un nombre égal au double d'un nombre relativement premier avec R/2.
2. Procédé d'entrelacement selon la revendication 1, caractérisé en ce que M > 5, et # est tel que les résidus modulo R des composantes des vecteurs fi P1 et ? 2 soient non-nuls, où : - P1 désigne la matrice circulante M x M dont la première colonne est [1-2 10... O]. et - P2 désigne la matrice circulante M x M dont la première colonne est [2-200...0]T.
3. Procédé d'entrelacement selon la revendication 2, caractérisé en ce que M > 7, et fi est tel que, en outre, les résidus modulo R des composantes des vecteurs HP, (i = 3,..., 8) soient non-nuls, où : - P3 désigne la matrice circulante Mx M dont la première colonne est [1-1-110...0]T, - P4 désigne la matrice circulante Mx M dont la première colonne est [1-11-10...0]T, - pus désigne la matrice circulante Mx M dont la première colonne est [10-210...0]T, - P6 désigne la matrice circulante M x M dont la première colonne est [1-2010...0]T, - P7 désigne la matrice circulante Mx M dont la première colonne est [2-1-10 0... Of, et - Pg désigne la matrice circulante Mx M dont la première colonne est [11-200...0]T.
4. Procédé d'entrelacement selon la revendication 3, caractérisé en ce
Figure img00290001
que M > 9, et fi est tel que, en outre, les résidus modulo R des composantes des vecteurs fI Pi (i = 9,..., 20) soient non-nuls, où : - Pg désigne la matrice circulante Mx M dont la première colonne est [11-1-100...0]T, - P10 désigne la matrice circulante Mx M dont la première colonne est
<Desc/Clms Page number 30>
T [10-11-10... Of, - P15 désigne la matrice circulante Mx M dont la première colonne est [1-110-10...0]T, - Pie désigne) a matrice circulante Mx M dont la première colonne est [10-2010...0]T, - P17 désigne la matrice circulante Mx M dont la première colonne est [100-210...0]T, - Pis désigne la matrice circulante Mx M dont la première colonne est [1-20010...0]T, - pli désigne la matrice circulante Mx M dont la première colonne est [1 0 1-2 0 0... O] T, et - P20 désigne la matrice circulante Mx M dont la première colonne est [2-10-100...0]T.
Figure img00300002
[1-1 0 1-1 0... Of, - Pu désigne la matrice circulante Mx M dont la première colonne est [1-1 0-1 1 0... Of, - P12 désigne la matrice circulante Mx M dont la première colonne est [1 0-1-1 1 0... Of, - P13 désigne la matrice circulante Mx M dont la première colonne est [1-1-1010...0]T, - P14 désigne la matrice circulante Mx M dont la première colonne est
Figure img00300001
5. Procédé d'entrelacement selon la revendication 1, caractérisé en ce que M > 5, et fi est tel que les résidus modulo R des composantes des vecteurs fi Pi (i = 21,..., 24) soient non-nuls, où : -P21 désigne la matrice circulante Mx M dont la première colonne est [1-3200... Of, - P22 désigne la matrice circulante Mx M dont la première colonne est [2-3100...0]T, - P23 désigne la matrice circulante Mx M dont la première colonne est [1 -2 2 -1 0 ... 0]T, et - P24 désigne la matrice circulante Mx M dont la première cotonne est [3-3000... Of.
<Desc/Clms Page number 31>
6. Procédé de codage pour la transmission d'informations, dans lequel, un premier polynôme à coefficients binaires g (x) de degré d et de terme constant égal à 1 ayant été prédéterminé, on présente d'abord lesdites informations sous la forme de séquences binaires u de longueur 1 = n - d, où n est un multiple prédéterminé de la période m dudit polynôme g (x), puis l'on produit pour chacune desdites séquences u un triplet v de séquences binaires (a, b, c) destinées à être transmises et obtenues comme suit : - ladite séquence a est de longueur n et obtenue en prolongeant la
Figure img00310001
séquence u au moyen de d bits de bourrage de manière à ce que le polynôme n-1 a (x) a, x' /=0 associé à a soit divisible par g (x), - ladite séquence Q est représentée par le polynôme b (x) = a (x)-fi (x) /g (x), où f1 (x) est un deuxième polynôme à coefficients binaires prédéterminé, sans diviseur commun avec g (x), et
Figure img00310002
- ladite séquence c est représentée par le polynôme c (x) = a* -f2 (x)/g (x), où f2 (x) est un quatrième polynôme à coefficients binaires prédéterminé, sans diviseur commun avec g (x), et où a* (x) est le polynôme associé à une séquence a* produite par entrelacement de la séquence a, caractérisé en ce que ledit entrelacement est réalisé au moyen d'un procédé selon l'une quelconque des revendications 1 à 5.
7. Procédé de turbodécodage, caractérisé en ce qu'il permet de décoder des séquences reçues qui ont été émises après avoir été codées à l'aide d'un procédé de codage selon la revendication 6.
8. Dispositif de codage (901) de séquences de données destinées à être transmises à l'aide d'un procédé de codage selon la revendication 6, caractérisé en ce qu'il comporte :
Figure img00310003
1
<Desc/Clms Page number 32>
- des moyens (30) pour obtenir, pour chaque séquence de données u, ladite séquence a associée à y. en prolongeant la séquence u au moyen desdits d bits de bourrage, et - au moins un codeur (40) comportant un entrelaceur n, apte à réaliser la permutation prévue dans ledit procédé.
9. Dispositif de décodage (1101) destiné à mettre en oeuvre un procédé de turbodécodage selon la revendication 7, caractérisé en ce qu'il comporte : - au moins un turbodécodeur (300) comportant deux entrelaceurs n, aptes à réaliser la permutation prévue dans ledit procédé, et un désentrelaceur 7t2 apte à inverser cette permutation, et
Figure img00320001
- des moyens (335) pour produire une séquence binaire Q en ôtant les d derniers bits de la séquence estimée à obtenue à la fin du turbodécodage des séquences reçues a', 'et c'correspondant respectivement auxdites séquences émises a, b, et c.
10. Appareil d'émission de signaux numériques codés (48), caractérisé en ce qu'il comporte un dispositif de codage selon la revendication 8, et en ce qu'il comporte des moyens (906) pour émettre lesdites séquences
Figure img00320002
codées a, ë, et c.
11. Appareil de réception de signaux numériques codés (333), caractérisé en ce qu'il comporte un dispositif de décodage selon la revendication 9, et en ce qu'il comporte des moyens (1106) pour recevoir lesdites séquences a', b', et c'.
12. Réseau de télécommunications, caractérisé en ce qu'il comporte au moins un appareil d'émission selon la revendication 10 ou un appareil de réception selon la revendication 11.
13. Moyen de stockage permanent de données, caractérisé en ce qu'il comporte des instructions de code de programme informatique pour l'exécution des étapes d'un procédé d'entrelacement selon l'une quelconque des revendications 1 à 5, et/ou d'un procédé de codage selon la revendication 6, et/ou encore d'un procédé de turbodécodage selon la revendication 7.
<Desc/Clms Page number 33>
14. Moyen de stockage de données amovibles, partiellement ou totalement, caractérisé en ce qu'il comporte des instructions de code de programme informatique pour l'exécution des étapes d'un procédé d'entrelacement selon l'une quelconque des revendications 1 à 5, et/ou d'un procédé de codage selon la revendication 6, et/ou encore d'un procédé de turbodécodage selon la revendication 7.
15. Programme d'ordinateur, contenant des instructions telles que, lorsque ledit programme commande un dispositif de traitement de données programmable, lesdites instructions font que ledit dispositif de traitement de données met en oeuvre un procédé d'entrelacement selon l'une quelconque des revendications 1 à 5, et/ou un procédé de codage selon la revendication 6, et/ou encore un procédé de turbodécodage selon la revendication 7.
FR0111479A 2001-09-05 2001-09-05 Procedes de turbocodage a entrelaceurs verrous, et systemes pour leur mise en oeuvre Expired - Fee Related FR2829329B1 (fr)

Priority Applications (1)

Application Number Priority Date Filing Date Title
FR0111479A FR2829329B1 (fr) 2001-09-05 2001-09-05 Procedes de turbocodage a entrelaceurs verrous, et systemes pour leur mise en oeuvre

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
FR0111479A FR2829329B1 (fr) 2001-09-05 2001-09-05 Procedes de turbocodage a entrelaceurs verrous, et systemes pour leur mise en oeuvre

Publications (2)

Publication Number Publication Date
FR2829329A1 true FR2829329A1 (fr) 2003-03-07
FR2829329B1 FR2829329B1 (fr) 2003-11-28

Family

ID=8866985

Family Applications (1)

Application Number Title Priority Date Filing Date
FR0111479A Expired - Fee Related FR2829329B1 (fr) 2001-09-05 2001-09-05 Procedes de turbocodage a entrelaceurs verrous, et systemes pour leur mise en oeuvre

Country Status (1)

Country Link
FR (1) FR2829329B1 (fr)

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0928071A1 (fr) * 1997-12-30 1999-07-07 Canon Kabushiki Kaisha Entrelaceur pour turbo-codeur
FR2790621A1 (fr) * 1999-03-05 2000-09-08 Canon Kk Dispositif et procede d'entrelacement pour turbocodage et turbodecodage
EP1098445A1 (fr) * 1999-11-04 2001-05-09 Canon Kabushiki Kaisha Méthode d'entrelacement pour le turbocodage de données
FR2800950A1 (fr) * 1999-11-04 2001-05-11 Canon Kk Procede d'entrelacement pour turbo-codage convolutif de donnees
FR2801446A1 (fr) * 1999-11-18 2001-05-25 Canon Kk Procede et dispositif de codage, procede et dispositif de decodage, et systemes les mettant en oeuvre
US20010009030A1 (en) * 1999-12-20 2001-07-19 Philippe Piret Encoding method and device, decoding method and device, and systems using them
FR2805103A1 (fr) * 2000-02-10 2001-08-17 Canon Kk Procede de permutation pour turbo-codage convolutif de donnees

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0928071A1 (fr) * 1997-12-30 1999-07-07 Canon Kabushiki Kaisha Entrelaceur pour turbo-codeur
FR2790621A1 (fr) * 1999-03-05 2000-09-08 Canon Kk Dispositif et procede d'entrelacement pour turbocodage et turbodecodage
EP1098445A1 (fr) * 1999-11-04 2001-05-09 Canon Kabushiki Kaisha Méthode d'entrelacement pour le turbocodage de données
FR2800950A1 (fr) * 1999-11-04 2001-05-11 Canon Kk Procede d'entrelacement pour turbo-codage convolutif de donnees
FR2801446A1 (fr) * 1999-11-18 2001-05-25 Canon Kk Procede et dispositif de codage, procede et dispositif de decodage, et systemes les mettant en oeuvre
US20010009030A1 (en) * 1999-12-20 2001-07-19 Philippe Piret Encoding method and device, decoding method and device, and systems using them
FR2805103A1 (fr) * 2000-02-10 2001-08-17 Canon Kk Procede de permutation pour turbo-codage convolutif de donnees

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
MCELIECE R J ET AL: "Permutations preserving divisibility", IEEE TRANSACTIONS ON INFORMATION THEORY, IEEE INC. NEW YORK, US, vol. 47, no. 3, March 2001 (2001-03-01), pages 1206 - 1207, XP002182010, ISSN: 0018-9448 *

Also Published As

Publication number Publication date
FR2829329B1 (fr) 2003-11-28

Similar Documents

Publication Publication Date Title
FR2815199A1 (fr) Procedes de turbocodage circulaire de grande distance minimale, et systemes pour leur mise en oeuvre
EP0891656B1 (fr) Procede et dispositif de codage convolutif de blocs de donnees, et procede et dispositif de decodage correspondants
US20030177430A1 (en) Method of interleaving a binary sequence
FR2785743A1 (fr) Dispositif et procede d&#39;adaptation des turbocodeurs et des decodeurs associes a des sequences de longueur variable
FR2804260A1 (fr) Procede de transmission numerique de type a codage correcteur d&#39;erreurs
FR2808632A1 (fr) Procede de turbo-decodage avec reencodage des informations erronees et retroaction
FR2790621A1 (fr) Dispositif et procede d&#39;entrelacement pour turbocodage et turbodecodage
EP1230736B1 (fr) Procede de decodage de donnees codees a l&#39;aide d&#39;un code entropique, dispositif de decodage et systeme de transmission correspondants
EP1974472B1 (fr) Procedes d&#39;encodage et de decodage rapides et dispositifs associes
EP1128589B1 (fr) Critère d&#39;interruption pour un décodeur turbo
JP3674851B2 (ja) スケーリングフィードバックターボ復号器
FR2789824A1 (fr) Procede de correction d&#39;erreurs residuelles a la sortie d&#39;un turbo-decodeur
FR2785741A1 (fr) Dispositif et procede de codage et d&#39;entrelacement pour des turbocodes series ou hybrides
FR2807895A1 (fr) Procedes et dispositifs de codage et de decodage et systemes les mettant en oeuvre
FR2802735A1 (fr) Procede et dispositif de codage, procede et dispositif de decodage, et systemes les mettant en oeuvre
EP1128588A1 (fr) Procédé de transmission numérique de type à codage correcteur d&#39;erreurs comprenant une étape de sélection de schéma de poinçonnage
FR2806177A1 (fr) Procede de transmission numerique de type a codage correcteur d&#39;erreurs
FR2838581A1 (fr) Procede de codage et/ou de decodage de codes correcteurs d&#39;erreurs, dispositifs et signal correspondants
FR2829329A1 (fr) Procedes de turbocodage a entrelaceurs verrous, et systemes pour leur mise en oeuvre
FR2972878A1 (fr) Procede d&#39;encodage correcteur d&#39;erreur, procede de decodage et dispositifs associes.
EP1443658A1 (fr) Procédé de contrôle du nombre d&#39;itérations d&#39;un processus de décodage itératif et dispositif pour la mise en oeuvre du procédé
EP1249939B1 (fr) Procédé et dispositif d&#39;optimisation, sous contrainte de performances, de la taille de blocs de données codées
FR2800950A1 (fr) Procede d&#39;entrelacement pour turbo-codage convolutif de donnees
FR2813723A1 (fr) Procedes de turbocodage circulaire de haut rendement, et systemes pour leur mise en oeuvre
FR2773287A1 (fr) Entrelaceur, dispositif de codage, procede de permutation, procede de codage, dispositif et procede de decodage et systemes les mettant en oeuvre

Legal Events

Date Code Title Description
ST Notification of lapse

Effective date: 20140530