FR2790621A1 - Dispositif et procede d'entrelacement pour turbocodage et turbodecodage - Google Patents

Dispositif et procede d'entrelacement pour turbocodage et turbodecodage Download PDF

Info

Publication number
FR2790621A1
FR2790621A1 FR9902789A FR9902789A FR2790621A1 FR 2790621 A1 FR2790621 A1 FR 2790621A1 FR 9902789 A FR9902789 A FR 9902789A FR 9902789 A FR9902789 A FR 9902789A FR 2790621 A1 FR2790621 A1 FR 2790621A1
Authority
FR
France
Prior art keywords
permutations
sequence
permutation
interleaving
columns
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
FR9902789A
Other languages
English (en)
Other versions
FR2790621B1 (fr
Inventor
Dantec Claude Le
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 FR9902789A priority Critical patent/FR2790621B1/fr
Priority to US09/513,468 priority patent/US6625762B1/en
Publication of FR2790621A1 publication Critical patent/FR2790621A1/fr
Application granted granted Critical
Publication of FR2790621B1 publication Critical patent/FR2790621B1/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/29Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes
    • H03M13/2957Turbo codes and decoding
    • H03M13/2993Implementing the return to a predetermined state, i.e. trellis termination
    • 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/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/2789Interleaver providing variable interleaving, e.g. variable block sizes
    • 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)
  • Detection And Prevention Of Errors In Transmission (AREA)

Abstract

L'invention propose un procédé d'entrelacement de symboles binaires représentatifs d'une grandeur physique, utilisé dans un système de codage avec au moins deux codeurs convolutifs récursifs comportant respectivement un polynôme diviseur ayant une même période donnée, caractérisé en ce qu'il comporte des opérations de :- écriture des symboles binaires dans un tableau ayant un premier nombre de colonnes égal à la période des codeurs et un second nombre de lignes,- premières permutations des symboles sur chacune des colonnes, et- seconde permutation des colonnes entre elles, ladite seconde permutation conservant la propriété de retour à zéro des codeurs.

Description

La présente invention concerne un procédé et un dispositif d'entrelacement
utilisés par des systèmes de turbocodage ou turbodécodage de séquences binaires, qui peuvent être de longueur variable, et des systèmes
les mettant en oeuvre.
Elle s'applique aussi bien au codage de données représentatives d'une grandeur physique, au codage de données sous forme de codes susceptibles de moduler une grandeur physique, au décodage de signaux modulés en données, qu'au décodage de données représentatives de grandeur physique. Ces données peuvent, par exemple, représenter des images, des sons, des données informatiques, des grandeurs électriques, des données
mémorisées.
De manière générale, un turbocodeur met en oeuvre au moins deux codeurs convolutifs récursifs et au moins un circuit de permutation appelé aussi circuit d'entrelacement ou entrelaceur. Le décodeur itératif correspondant est
appelé turbodécodeur.
Les turbocodeurs sont aujourd'hui envisagés pour être utilisés dans les systèmes mobiles de 3ème génération notamment pour certains services de données. Sur ces sujets, des documents qui servent de référence sont, d'une part, I'article de MM. C. BERROU, A. GLAVIEUX et P. THITIMAJSHIMA intitulé "Near Shannon limit error-correcting coding and decoding: turbocodes" publiés avec les comptes-rendus de la conférence "ICC'93", 1993, pages 1064 à 1070, et d'autre part, I'article de MM. C. BERROU et A. GLAVIEUX intitulé "Near Optimum error-correcting coding and decoding: turbo-codes" publié par IEEE Transactions
on Communication, Volume COM-44, pages 1261 à 1271, en octobre 1996.
La formation des dispositifs de permutation est loin d'être parfaitement maîtrisée. En général, ce dispositif utilise des matrices carrées ou rectangulaires dans lesquelles on écrit une ligne après l'autre et on lit une colonne après l'autre. Ces matrices sont généralement très grandes, par exemple de dimension 256 x 256. Selon une autre méthode, dans un article intitulé "Weight distributions for turbo-codes using random and nonrandom permutations" publié par le Jet Propulsion Laboratory, avec "TDA Progress Report", numéro 42-122, le 15 août 1995, MM. DOLINAR et DIVSALAR considèrent les permutations qui, en numérotant les k positions d'information entre 0 et k-1, déplacent les informations binaires placees en une position i jusqu'à une position e i + f, pour des valeurs
"bien choisies" de e et de f.
Dans ce document, les auteurs ne donnent qu'un exemple o k est une puissance de 2. De plus, les auteurs ne discutent pas l'influence réciproque possible du choix du dispositif de permutation et de celui des codeurs convolutifs élémentaires (2,1) à utiliser pour générer les séquences codées produites par le
turbocodeur (3,1).
L'évaluation d'un ou de plusieurs entrelaceurs et d'un turbocode les mettant en oeuvre consiste généralement à simuler l'utilisation du turbocode sur un canal de transmission avec différentes valeurs de rapport signal/bruit et à mesurer la valeur minimum de ce rapport pour laquelle une valeur prédéterminée
de probabilité d'erreur sur les valeurs binaires est atteinte.
Cependant, I'usage des simulations comme outil d'évaluation peut mener à quelques problèmes. En particulier, les conséquences d'un non retour à
zéro sont masquées.
Considérons, par exemple, le dispositif de permutation avec k = 65536 = 256 x 256, évoqué plus haut, et choisissons une probabilité d'erreur prédéterminée égale à 10-5 pour simuler les performances d'un turbocode utilisant ce dispositif. En conséquence, le nombre moyen d'erreurs sur les valeurs binaires par bloc de 256 x 256 sera proche de 1, mais nous ne saurons pas si chaque information binaire possède la même probabilité d'erreur. Cette probabilité d'erreur pourrait être assez élevée pour des valeurs binaires possédant une position "malheureuse" dans le dispositif de permutation et cette probabilité pourrait être beaucoup plus petite pour des positions plus "heureuses". Une voie possible pour remédier à cette situation est de réaliser une conception harmonieuse et conjointe du dispositif de permutation et des deux codeurs convolutifs pour garantir une uniformité raisonnable du taux d'erreur sur les valeurs binaires après décodage, en fonction de la position de l'information
binaire dans le dispositif de permutation.
Un autre problème concerne le manque d'outils algébriques pour spécifier les dispositifs de permutation. Il serait utile de disposer de moyens permettant de spécifier une sélection de dispositifs de permutation possédant des
performances représentatives du jeu de tous les dispositifs de permutation.
L'invention concerne principalement la transmission d'information représentée par des séquences de symboles binaires: U = (, U1, u..., Uk1), appelées "séquences d'information", que l'on va coder en un triplet de séquences binaires, v=(a, b, Jc), chacune de ces séquences a, b et c, étant, à elle seule,
représentative de la séquence u.
Dans la suite de la description, on utilise indifféremment pour
représenter une séquence u, la forme u = (uo, ul,..., Uk1), et la forme polynomiale associée:
U(X) = Uo X0+ U1 X1 +... + Uk-1 Xk-.
Des notations équivalentes seront utilisées pour les séquences a, b et c. En utilisant cette seconde représentation, il est connu pour déterminer le triplet v =(a, b, c): -de choisir a(x) = u(x); - de choisir b(x) = u(x).h1(x) /g(x), o g(x) est un polynôme, par exemple g(x) = t + x + x3, correspondant, selon la représentation en séquence, à la séquence (1, 1, 0, 1); et ho(x) est un polynôme, par exemple ho(x) = 1 + x + x2 + x3, correspondant à la séquence (1, 1, 1, 1); et - en appelant a* une séquence formée par permutation des données binaires de la séquence a, de choisir c(x) = a*(x).h2(x) /g(x) o h2(x) est un polynôme, par exemple h2(x) = (1 + X2 + X3)
correspondant à la séquence (1, 0, 1, 1).
Tout choix des polynômes g(x), ht(x), h2(x) et de la permutation spécifiant l'entrelaceur qui associe la séquence permutée a* à la séquence a, spécifie un codeur que nous appellerons "turbocodeur". L'ensemble des
séquences que peut produire un turbocodeur spécifié sera appelé "turbocode".
Dans la suite de la description, on appelle "premier codeur", le
codeur convolutif récursif élémentaire qui produit la séquence b et "deuxième
codeur", celui qui produit la séquence c.
Les divisions polynomiales mises en oeuvre sont du type division suivant les puissances croissantes, bien connue de l'homme du métier. Elles utilisent l'arithmétique modulo 2. Les séquences a, b et c sont des séquences binaires et dans le cas général les divisions qui définissent b et c présentent un
reste.
Ce type de méthode de codage présente l'avantage de se prêter à
un décodage itératif performant, peu complexe et peu coûteux.
Pour mettre en oeuvre le turbocodage, plusieurs questions se posent: I/ Comment choisir les polynômes g(x), ho(x) et h2(x)? Il/ Comment choisir la permutation des termes de la séquence a qui produit la séquence a* ? Parmi les choix proposés, trois exemples d'entrelaceurs, c'est-à-dire d'opérateurs qui permutent les termes de la séquence a, pour former la séquence a*, sont donnés ci-dessous: A) dans le premier exemple, après avoir rangé les termes de a dans un tableau rectangulaire, successivement ligne par ligne et, pour chaque ligne, de gauche à droite, on forme la séquence a* en prélevant dans ce tableau successivement les termes colonne après colonne et, pour chaque colonne, de haut en bas. Par exemple, dans le cas de séquences de six termes et d'utilisation d'un tableau de deux lignes de trois colonnes, l'entrelaceur transforme la séquence a = (ao, ai, a2, a3, a4, a5) en la séquence a* = (ao, a3, a,,
a4, a2, as).
B) dans un deuxième exemple, le i-ième terme (i = 0, 1, 2,...) a*, de la séquence a* est choisi comme étant le terme aj de la séquence a, avecj = s.i + t calculé modulo le nombre de termes de la séquence a, s et t étant des entiers. Par exemple, si le nombre de termes de la séquence a est six et si s = et t = 3, I'entrelaceur transforme la séquence a = (ao, ai, a2, a3, a4, a5) en la
séquence a* = (a3, a2, a", ao, a5, a4).
C) dans le troisième exemple, la permutation choisie est aléatoire.
Ill/ Comment éviter que la division définissant b(x) ne présente un reste ? et IV/ Comment éviter que la division définissant c(x) ne présente un reste ? Répondre à ces deux demrnières questions revient à résoudre un problème fréquemment mentionné dans la littérature sur les turbocodes qui est celui du "retour à l'état zéro" des codeurs convolutifs élémentaires définissant b et c. Puisque les turbocodeurs possèdent deux codeurs récursifs élémentaires dont le deuxième utilise une permutation a* de la séquence a, on désire garantir que les polynômes a(x) et a*(x) représentant la séquence d'information u(x) soient simultanément divisibles par g(x). Assurer cette condition de divisibilité de a(x) est simple car il suffit de construire a(x) à partir de u(x) en complétant u(x) par des symboles de bourrage, appelés ici symboles de "padding", en nombre égal au degré de g(x) et dont la seule fonction est de garantir l'absence de reste dans la
division servant à produire b(x) à partir de a(x).
Choisir une permutation produisant a*(x) à partir de a(x) qui garantisse à la fois la divisibilité de a*(x) par g(x) et de bonnes performances de correction
d'erreur pour le turbocode ainsi spécifié est, en revanche, plus difficile.
Ce problème peut entraîner des disparités entre les probabilités
d'erreurs après décodage des différents bits constituant u(x).
Dans un article paru dans le volume 31, No. 1 de la revue "Electronics Letters" le 5 janvier 1995, MM. BARBULESCU et PIETROBON exposent qu'un entrelaceur peut être décrit en rangeant successivement et cycliquement les termes de la séquence a dans un nombre de séquences égal au degré du polynôme g(x) incrémenté de un, et que, dans ce cas, des permutations internes à chacune des séquences ainsi formées entraînent une égalité entre le reste de la division définissant la séquence b et celui de la
division définissant la séquence c.
Toutefois, et contrairement à ce qui est dit dans cet article, cette
affirmation n'est vraie que si le polynôme g(x) est de la forme Zi=O à m x.
Dans un article intitulé "Turbo-block-codes" et publié avec les comptesrendus du séminaire "turbo coding" organisé par l'Institut de Technologie de Lund (Suède) (Département d'électronique appliquée) en août 1996, MM. C. BERROU, S. EVANO et G. BATTAIL exposent que, en rangeant les termes de la séquence u, cycliquement, dans un nombre de colonnes égal à un multiple du degré NO du polynôme de type xn - 1 de plus faible degré strictement positif qui soit divisible par g(x), des permutations internes à chacune des colonnes ainsi formées entraînent que la somme du reste de la division définissant la séquence b et de celui de la division définissant la séquence c est nulle, si bien que la concaténation des séquences est divisible
par gq.
Ce document, tout comme le précédent, restreint donc le choix des entrelaceurs à des formes particulières travaillant indépendamment sur des sous-ensembles des termes de la séquence a en leur appliquant des permutations internes. Il ne garantit toutefois pas que individuellement a(x) et a*(x) soient divisibles par g(x). Seule est garantie la divisibilité par g(x) du polynôme représentant la concaténation (a, a*), consistant à mettre bout à bout
les deux séquences a et a*.
Il s'ensuit une possible perte d'efficacité du décodeur puisque celui-ci n'est pas informé de l'état qu'avait le codeur à l'instant marquant la fin du calcul
de b et le début du calcul de c.
Aucun des articles cités ne propose un choix effectif d'entrelaceur.
En vue de palier à ces inconvénients, dans un premier temps, les inventeurs ont mis au point une solution garantissant le retour à zéro non seulement de la séquence de contrôle provenant du premier codeur mais aussi de celle issue du deuxième codeur. Cette solution doit répondre à la condition suivante et est exposée dans les paragraphes qui suivent: Un turbocodeur de rendement de 1/3 peut être considéré comme une paire de codeurs systématiques convolutifs (voir figure 1) avec des polynômes diviseurs tels que le premier codeur produise une séquence de contrôle à partir de la séquence de symboles à coder u et que le second codeur produise une séquence de contrôle à partir d'une séquence entrelacée u* obtenue par entrelacement de la séquence u. Dans ce contexte, le retour simultané à zéro des deux codeurs est un problème classique. Une manière de
le résoudre a été trouvée par les inventeurs et elle est résumée cidessous.
Soit g(x) le polynôme diviseur d'un turbocodeur. Soit m le degré du polynôme g(x) et NO le plus petit entier tel que g(x) soit un diviseur du
polynôme xNo + 1. Ce nombre NO sera appelé "période" de g(x).
Soit aussi n un multiple de NO: n = M.NO.
Une séquence de symboles, u, possède alors une représentation polynomiale, u(x), de degré n-m-1, avec des coefficients binaires, et ce polynôme u(x) est préencodé en: a(x) = u(x) + -i=n-m à n-1 aixj o les m symboles binaires ai sont choisis de telle manière que a(x)
soit un multiple de g(x).
De manière générale, les inventeurs ont découvert que les entrelaceurs garantissant le retour à zéro, non seulement de la séquence de contrôle provenant du premier codeur mais aussi de celle issue du deuxième codeur, devaient répondre à la condition suivante: chaque séquence "permutées", ai*, (i=1,..., K; j=1,..., Ml), est obtenue par une permutation de la séquence ai correspondante, ladite permutation étant, dans une représentation o les données binaires de chaque séquence ai sont écrites, ligne par ligne, dans un tableau à NO colonnes et M lignes, NO étant le plus petit entier tel que chaque polynôme diviseur gi(x) divise XN +I, la résultante d'un nombre quelconque de permutations dites élémentaires qui, chacune: - soit a la propriété de transformer le code cyclique de longueur NO et de polynôme générateur gi(x) en un code cyclique équivalent de polynôme générateur gij(x) pouvant être égal à g1(x), et agit par permutation sur les NO colonnes du tableau représentant ai, - soit est une permutation quelconque des symboles d'une colonne
dudit tableau.
Cette méthode s'applique à des blocs d'une longueur donnée permettant à chacun des codeurs élémentaires d'être remis à zéro de manière adéquate. Cependant, la séquence d'entrée doit avoir une certaine longueur dépendant uniquement du ou des polynômes diviseurs utilisés. Celle-ci doit être
multiple d'un nombre NO.
Lorsque la séquence de symboles à coder ne correspond pas à ce nombre (c'est à dire lorsque la séquence de symboles à coder, à laquelle on a ajouté des symboles dits de "padding" qui garantissent la divisibilité de la représentation polynomiale de la séquence résultante, par un polynôme prédéterminé, possède une longueur qui n'est pas un multiple de NO), l'enseignement initial des inventeurs n'est pas directement exploitable. Il en est
de même lorsque la longueur des séquences varie d'une séquence à l'autre.
En outre, les conditions de la transmission, le rendement souhaité, le type de données, le type de canal de transmission, le rapport signal/bruit du canal ne sont pas prises en compte, dans le premier temps de l'invention faite par les inventeurs, ce premier temps ne faisant pas partie de l'état de la technique antérieure à la présente invention, mais, bien au contraire, en
fournissant des caractéristiques essentielles.
De plus, dans un turbocodeur, le dimensionnement de la mémoire ne peut pas être adapté facilement à des modes de transmission prenant en
compte différentes longueurs de blocs.
Si l'on considère les entrelaceurs pseudo-aléatoires de l'état de l'art, il est nécessaire de mémoriser tous les entrelaceurs susceptibles d'être utilisés
et la taille mémoire requise peut être importante.
La présente invention vise à obtenir une famille d'entrelaceurs qui offrent de bonnes performances, une faible complexité et une grande flexibilité
pour des tailles variées pouvant aller de 320 à 8192 bits.
Pour cela, il est notamment important d'avoir la propriété de conservation de la divisibilité par le polynôme générateur de rétroaction utilisés dans les codeurs constituant du turbocodeur, ou propriété de retour à zero
intrinsèque des codeurs constitutifs du turbocodeur.
Cette propriété permet d'obtenir les meilleures performances dans le
cas des petites tailles d'entrelaceurs.
La présente invention vise à remédier aux inconvénients de la technique antérieure, en fournissant un dispositif et un procédé d'entrelacement de données binaires qui définissent une famille d'entrelaceurs ayant différentes tailles, et tels que chacun des entrelaceurs de cette famille ait des
performances optimales.
A cette fin, I'invention propose un procédé d'entrelacement de symboles binaires représentatifs d'une grandeur physique, utilisé dans un système de codage avec au moins deux codeurs convolutifs récursifs comportant respectivement un polynôme diviseur ayant une même période donnée ou dans le système de décodage correspondant, caractérisé en ce qu'il comporte des opérations de: - écriture des symboles binaires dans un tableau ayant un premier nombre de colonnes égal à la période des codeurs et un second nombre de lignes, - premières permutations des symboles sur chacune des colonnes, et - seconde permutation des colonnes entre elles, ladite seconde
permutation conservant la propriété de retour à zéro des codeurs.
On obtient ainsi de bonnes performances et une grande flexibilité.
Selon des caractéristiques préférée et alternatives: - les premières permutations sont déduites les unes des autres, en passant d'une colonne à la suivante, par décalage modulo le second nombre, - les premières permutations sont déduites les unes des autres en passant d'une colonne à la suivante par un décalage qui est sensiblement le même pour toutes les colonnes, - les premières permutations sont déduites les unes des autres en passant d'une colonne à la suivante par un décalage qui est le même pour toutes les colonnes, lorsque le second nombre est multiple du premier nombre,
- les premières permutations sont identiques les unes aux autres.
Ces caractéristiques sont simples à mettre en oeuvre, tout en offrant
de bonnes performances.
Selon d'autres caractéristique préférées et alternatives - les premières permutations sont de type algébrique, à au moins une dimension, - les premières permutations sont obtenues par extraction effectuée sur un entrelaceur de plus grande taille, qui est par exemple une puissance de deux.
- les premières permutations sont pseudo-aléatoires.
Ces caractéristiques sont simples à mettre en oeuvre, tout en offrant
de bonnes performances.
Selon d'autres caractéristique préférées et alternatives: - la seconde permutation est circulaire, - les colonnes étant numérotées en nombres binaires croissants, la
seconde permutation est circulaire sur les bits des numéros de colonnes.
Ces caractéristiques sont simples à mettre en oeuvre, tout en offrant
de bonnes performances.
L'invention vise aussi - un dispositif de traitement de signaux représentatifs de parole, qui comporte un dispositif tel que succinctement exposé ci-dessus, - un dispositif de transmission de données comportant un émetteur adapté à mettre en oeuvre un protocole de transmission par paquets, qui comporte un dispositif tel que succinctement exposé ci-dessus, - un dispositif de transmission de données comportant un émetteur adapté à mettre en oeuvre le protocole de transmission par paquets ATM (mode de transfert asynchrone, "Asynchronous Transfer Mode"), qui comporte un dispositif tel que succinctement exposé ci-dessus, - un dispositif de transmission de données comportant un émetteur adapté a mettre en oeuvre le protocole de transmission par paquets, sur un réseau de type ETHERNET (marque déposée), - une station de réseau, qui comporte un dispositif tel que succinctement exposé ci-dessus, - un dispositif de transmission de données comportant un émetteur émettant sur un canal non filaire, qui comporte un dispositif tel que succinctement exposé cidessus, et - un dispositif de traitement de séquences de signaux représentatifs d'au plus mille données binaires, qui comporte un dispositif tel que
succinctement exposé ci-dessus.
Ces dispositifs de codage et de décodage, ces procédés de codage et de décodage et ces dispositif de traitement de signaux, de transmission de données, de traitement de séquence et ce réseau présentant les mêmes caractéristiques particulières et les mêmes avantages que le procédé de codage tel que succinctement exposé ci-dessus, ces caractéristiques
particulières et ces avantages ne sont pas rappelés ici.
Un moyen de stockage d'information, éventuellement partiellement ou totalement amovible, lisible par un ordinateur ou un microprocesseur, conserve des instructions d'un programme informatique qui permet la mise en
oeuvre du procédé de l'invention tel que succinctement exposé ci-dessus.
D'autres avantages, buts et caractéristiques de la présente invention
ressortiront de la description qui va suivre, faite en regard des dessins annexés,
dans lesquels: - la figure 1 représente, sous forme de schéma bloc, un dispositif de turbocodage conforme à l'art antérieur, - la figure 2 représente, sous forme de schéma bloc fonctionnel, un dispositif de turbocodage et un dispositif de turbodécodage d'un premier mode de réalisation de la présente invention, dans lequel, des paramètres de turbocodage et de turbodécodage sont fonctions d'un nombre de symboles à transmettre, - la figure 3 représente, sous forme de schéma bloc, un dispositif de turbodécodage conforme au premier mode de réalisation de la présente invention, - la figure 4 représente des formats de séquences et de trame mis en oeuvre dans le premier mode de réalisation de la présente invention, - les figures 5 à 8 représentent des registres de mémoires d'un dispositif de turbocodage et d'un dispositif de turbodécodage, dans le premier mode de réalisation de la présente invention, - la figure 9 représente, schématiquement, les composants d'un dispositif de codage adapté à mettre en oeuvre le premier mode de réalisation de la présente invention, - la figure 10 représente, schématiquement, les composants d'un dispositif de décodage adapté à mettre en oeuvre le premier mode de réalisation de la présente invention, - la figure 11 représente un organigramme de fonctionnement du dispositif de codage illustré en figure 9, - la figure 12 représente un organigramme de fonctionnement du dispositif de décodage illustré en figure 10, - la figure 13 représente un entrelaceur de type algébrique à étage multiple selon un mode de réalisation de l'invention, - la figure 14 représente un mode de réalisation de permutation algébrique à une dimension, - la figure 15 représente un autre mode de réalisation de permutation algébrique à une dimension la figure 16 représente un mode de réalisation de permutation algébrique à deux dimensions, - la figure 17 représente un algorithme d'extraction d'un entrelaceur
à partir d'un entrelaceur de plus grande taille.
On observe, en figure 1, qu'un dispositif de turbocodage parallèle, conforme à l'état de la technique antérieur à la présente invention comporte essentiellement: - une entrée de symboles à coder 101, o une source, non représentée, fournit une séquence de symboles binaires à transmettre, ou " à coder ", a, - un premier codeur 102, qui fournit, à partir de la séquence a, deux séquences vi et yv2 de symboles représentatives de la séquence a, - un entrelaceur 103, qui fournit, à partir de la séquence a, une séquence entrelacée a* dont les symboles sont les symboles de la séquence a, mais dans un ordre différent, et - un deuxième codeur 104, qui fournit, à partir de la séquence
entrelacée a*, une troisième séquence, y3, représentative de la séquence a.
Les trois séquences v>, yv2 et v3 sont transmises pour être, ensuite, décodées.
Dans la suite de la description, on s'intéresse aux entrelaceurs
simples à générer qui, 1/ à partir de séquences aj possédant: - une représentation polynomiale aj(x) multiple d'un polynôme gi(x), et - un nombre de données binaires égal au produit du nombre entier M par l'entier NO, plus petit entier tel que le polynôme xN0+I soit divisible par chaque polynôme diviseur g1(x); 2/ produisent des séquences dites " permutées ", aj*, (i=1,...,K; j=1,...,M1), chaque séquence aij* - étant obtenue par une permutation de la séquence ai correspondante, ladite permutation étant, dans une représentation o les données binaires de chaque séquence ai sont écrites, ligne par ligne, dans un tableau à NO colonnes et M lignes, la résultante d'un nombre quelconque de permutations dites élémentaires qui, chacune: - soit a la propriété de transformer le code cyclique de longueur NO et de polynôme générateur gi(x) en un code cyclique équivalent de polynôme générateur gu(x) pouvant être égal à g1(x), et agit par permutation sur les NO colonnes du tableau représentant ai, - soit est une permutation quelconque des symboles d'une colonne dudit tableau; et possédant, en conséquence, une représentation polynomiale ai*(x) qui est égale à un produit polynomial cj(x)gij(x), - au moins une séquence permutée a#* étant différente de la séquence ai correspondante, 3/ pour que des codeurs élémentaires produisent des séquences redondantes dont la représentation polynomiale est égale à - fy,(x) ce(x), pour j=1,.
,M1, chaque polynôme fj(x) étant un polynôme de degré au plus égal au.. DTD: degré du polynôme gij(x) de mêmes indices i etj.
De même, on a limité la description qui va suivre, au cas o une
seule séquence est codée, bien que la présente invention s'applique aussi bien aux cas o plusieurs séquences de symboles sont conjointement et
simultanément codées.
On a limité la présente description aux turbocodes parallèles, mais
elle s'applique avec des adaptations à la portée de l'homme du métier, aux turbocodes séries et aux turbocodes hybrides (comportant une partie de
turbocodage série et une partie de turbocodage parallèle).
Le premier codeur, 101, utilisé ici est un codeur systématique, c'est-
à-dire que la séquence v, est identique à la séquence a.
Enfin, on a un polynôme g(x) de "période NO" et de degré m utilisé
comme polynôme diviseur dans les deux codeurs élémentaires 102 et 104.
En figure 2, on observe que, pour la mise en oeuvre de la présente invention, une source de symboles 201 fournit une séquence de symboles binaires u à un dispositif de transmission TD. Une telle "source d'information" produit des séquences de symboles à coder, n' représentant la longueur d'une séquence de symboles à coder considérée. Cette séquence est analysée par un analyseur de longueur 202, qui détermine le nombre n' de symboles binaires constituant la séquence u et détermine tous les paramètres de fonctionnement du turbocodeur: - un nombre K, supérieur ouégal à 1, de séquences ui (i=1,..., K) de symboles binaires, à coder, - un entier Ml, égal ou supérieur à 1, - un polynôme diviseur gi(x), - un entier M, - un entrelaceur, - un polynôme multiplicateur fj(x), et
- une longueur de séquence, n.
En ce qui concerne la détermination du nombre n, connaissant le degré mrn-1 du polynôme g(x), ce nombre n répond aux conditions d'être: supérieur ou égal à (n'+m), et - multiple de NO, le plus petit entier tel que xNo +l soit divisible par g(x).
Préférentiellement, n est le plus petit nombre vérifiant ces conditions.
L'opération de sélection des paramètres de l'entrelaceur est expliquée par un exemple: si, comme on le suppose dans le mode de réalisation décrit et représenté, on a un entrelaceur de type algébrique, n étant déterminé, il suffit de sélectionner les valeurs des paramètres définissant cet entrelaceur. Pour cela, on aura, au préalable, construit une table donnant, pour chaque valeur de n possible, les meilleures valeurs de ces paramètres qui auront au préalable été définis par le concepteur du système au moyen de simulations ou de calculs de spectre de distance du code. On n'a alors qu'à lire dans cette table, placée en mémoire non volatile, les valeurs de ces paramètres. Selon une variante non représentée, au cours de l'opération 202, ce n'est pas la longueur n' de la séquence u à coder qui sert d'unique critère de choix des paramètres de transmission, mais un ou plusieurs critères, pris parmi les suivants: - la longueur de la séquence u de symboles ui à coder, - un canal de transmission de la séquence codée, - le rapport signal/bruit du canal de transmission de la séquence codée, - le type de données représenté par les symboles à coder, (données audio, données vidéo, données de fichiers informatiques,...) - une qualité de service garantie pour la transmission des symboles à coder, et - un rendement de codage, sont utilisés pour optimiser un compromis entre facilité de codage et/ou de décodage, rapidité de décodage, bande passante, en terme de nombre de symboles ou de trames correctement transmis par seconde, délai de
transmission de chaque symbole, en fonction des critères de choix considérés.
Pour la mise en oeuvre de cette variante, les critères utilisés au codage devront être utilisés au décodage. A cet effet, soit, par construction, ces critères sont figés, aussi bien dans le dispositif de codage que dans le dispositif de décodage, soit, leur valeur peut être directement déterminée au décodage par analyse de la trame radio (voir opération 209, ci-dessous), soit la transmission d'une information adéquate informe le dispositif de réception de certains critères utilisés. Par exemple, I'en-tête de la trame radio peut contenir
cette information.
L'entrelaceur étant construit pour avoir une complexité limitée, on peut définir cet entrelaceur par un calcul effectué par un circuit de manière simple: on n'a pas besoin de mémoriser la table d'entrelacement correspondant à chaque longueur possible (voir figures 5 à 8). L'entrelaceur étant défini, le turbocodeur effectue l'opération de codage de manière classique: - une opération de "padding", 203, est une opération qui consiste à ajouter m bits de telle sorte que le polynôme associé à la séquence produite, a, soit divisible par le polynôme g(x); - une opération de "stuffing", 204, est une opération qui ajoute s bits nuls à la séquence issue de l'opération de padding, de telle sorte que la
séquence produite, a', ait la longueur n; s est donc donné par l'équation s = (n -
n'-m); et - une opération de turbocodage, 205, de type connu et déterminée par le polynôme diviseur et les polynômes multiplicateurs, des premier et deuxième codeurs, d'une part, et par l'entrelaceur 103, d'autre part (dans le mode de réalisation illustré aux figures, les polynômes multiplicateurs sont égaux). A la suite du turbocodage, une opération de retrait 206 est effectuée, au cours de laquelle: on retire les s bits nuls ajoutés au cours de l'opération de stuffing 204, dans la séquence vi, qui, on le rappelle, est identique à la séquence a' puisque le premier codeur, 101, est systématique; la séquence résultant de I'opération de retrait étant appelée v' et possédant la longueur n-s; les s bits de parité correspondants, dans la séquence yv2, aux bits nuls ajoutés, dans la séquence vy, au cours de l'opération de stuffing 204, sont retirés de la séquence v2 pour produire une séquence appelée v'2 qui possède
ainsi la longueur n-s.
Ensuite, est effectuée une opération de modulation 207, de type connue, sur un canal de transmission 208, avec encapsulation de la séquence dans une trame radio, modulation et émission de cette trame sur un canal de transmission. Dans le dispositif de réception RD, est effectuée une opération de démodulation 209, de signaux reçus sur le canal 208, au cours de laquelle, le démodulateur utilise la structure et/ou les informations propres à la trame radio pour déterminer la longueur totale de la séquence encapsulée selon des méthodes bien connues de l'homme du métier des protocoles radio. La longueur de cette séquence étant égale à (3n-2s), et s étant compris préférentiellement entre 0 et (2N0-1) inclus, 3n est le plus petit entier supérieur ou égal à (3n-2s) multiple de 3NO. Ce nombre peut être facilement déterminé et on en déduit facilement n et s. Au cours de l'opération 209, le dispositif de réception démodule le signal reçu, extrait la séquence encapsulée de la trame radio, analyse la longueur n de cette séquence et en déduit le nombre de bits de bourrage et les
paramètres du turbodécodeur. Dans la suite de la description, on note, dans le
dispositif de réception et de décodage de la même manière chaque séquence
estimée et la séquence dont elle est l'estimation.
Selon une variante non représentée, au cours de l'opération 209, le dispositif de décodage recupère, par exemple dans l'en-tête de la trame radio, une information représentative d'au moins une partie des critères utilisés par le
dispositif de codage.
Dans le dispositif de réception, un moyen effectuant l'opération de " stuffing " 210 rétablit les s bits de stuffing dans la séquence v', estimée, et les s bits de parité correspondants dans la séquence v'2, le nombre s étant fonction de la longueur n de séquence déterminée au cours de l'opération 209. Le décodage se faisant à partir d'entrées douces (technique connue de l'homme du métier sus le nom de " soft input ") liées à la fiabilité de chaque symbole reçu. Les bits de stuffing et les bits de parité correspondants sont affectés d'une valeur de fiabilité la plus élevée possible correspondant à un bit dur (connu de
l'homme du métier sous le nom de "hard bit") nul.
Au cours d'une opération de décodage 215, un entrelaceur et son entrelaceur inverse (appelé " désentrelaceur ") sont construits en fonction de la
longueur de la séquence de manière similaire à ce qui est fait dans le codeur.
On peut noter que, comme l'entrelaceur est de faible complexité, I'entrelaceur
inverse l'est également.
On peut aussi générer un entrelaceur inverse à partir de l'entrelaceur, en échangeant les rôles du rang de la valeur entrelacée et du
rang de la valeur à entrelacer.
Le turbo-décodeur 211 décode la trame avec I'entrelaceur et le désentrelaceur (voir figure 3). Les s bits de stuffing et m bits de padding sont alors retirés (respectivement au cours d'opération de retrait de bits de stuffing 212 et de retrait de bits de padding 213) et la séquence est alors transmise au destinataire des données 214. En figure 3, on observe qu'un dispositif de décodage est essentiellement constitué de: - trois entrées 301, 302 et 303 de séquences v,, v2 et v3, - un premier décodeur 304 correspondant au codeur 102 (figure 1) et recevant les séquences vu et yv2 ainsi qu'une séquence d'information extrinsèque w4 exposée plus loin, fournit une séquence d'estimation a posteriori - un entrelaceur 305, identique à l'entrelaceur 103 utilisé dans le codeur, qui reçoit la séquence w1 et l'entrelace en _w2, - un deuxième décodeur 306, correspondant au codeur 104 et recevant les séquences w2 et v3, et fournit d'une part une séquence d'estimation a posteriori w3 et, d'autre part, une séquence estimée a', et - un désentrelaceur 307, inverse de l'entrelaceur 305, recevant la
séquence wy3 et fournissant la séquence w4.
On ne prend en compte la séquence estimée a' qu'à la suite d'un
nombre d'itérations prédéterminé (voir l'article "Near Shannon limit error-
correcting coding and decoding: turbocodes" cité supra).
Conformément à la présente invention, les décodeurs 304 et 306 sont initialisés en prenant en compte le fait que les codeurs 102 et 104
possèdent, chacun, un état initial et un état final nul.
En figure 4, on observe successivement, sur des lignes ordonnées de haut en bas, - la séquence u de symboles à coder, de longueur n', - la séquence a constituée de la séquence u et de bits dits "de padding" qui garantissent la divisibilité de la représentation polynomiale de la séquence a par le polynôme diviseur g(x), - la séquence a', identique à la séquence v,, constituée de la séquence a et de bits dits "de stuffing" qui donnent à la séquence a' une longueur multiple de NO, - les séquences v,, yv2 et y3, dont les deux dernières résultent du codage de la première, les séquences v'>, v"2 et y3, (y', étant identique à la séquence a), et la trame radio qui contient, comme charge utile, les séquences v'",
v'2 et y3.
En figure 5, on observe qu'une première manière de mettre en oeuvre l'invention consiste, dans un dispositif de codage et d'émission, à mettre en mémoire non volatile les positions o se trouve les symboles résultant de la permutation pour chaque position dans la séquence permutée, pour chaque
valeur de n possible.
De même, en figure 6, on observe que, une première manière de mettre en oeuvre d'invention consiste, dans un dispositif de réception et de décodage, à mettre en mémoire non volatile les positions o se trouve les symboles résultant de la permutation pour chaque position dans la séquence permutée, pour chaque valeur de n possible et à mettre en mémoire non volatile les positions o se trouve les symboles résultant de la permutation inverse pour chaque position dans la séquence, pour chaque valeur de n possible. Dans les figures 5 et 6, le seul paramètre décrivant l'entrelaceur
courant et mémorisé en mémoire volatile est la taille de l'entrelaceur.
Cependant, dans un mode de réalisation préférentiel de la présente invention, illustré en figures 7 et 8, il suffit de mettre en mémoire non volatile: - une table E des valeurs de paramètres de chaque entrelaceur, pour chaque valeur de n possible, dans le dispositif de codage et d'émission, et - une table E des valeurs de paramètres de chaque entrelaceur et éventuellement des valeurs de paramètres de chaque entrelaceur inverse, pour
chaque valeur de n possible, dans le dispositif de réception et de décodage.
En outre, il convient de mettre en mémoire volatile: - une table E(n) des valeurs de paramètres de l'entrelaceur, pour la valeur de n considérée, dans le dispositif de codage et d'émission, et - une table E(n) des valeurs de paramètres de l'entrelaceur et éventuellement des valeurs de paramètres de l'entrelaceur inverse, pour la valeur de n considérée, dans le dispositif de réception et de décodage. La figure 9 illustre schématiquement la constitution d'une station de
réseau ou station de codage informatique, sous forme de schéma synoptique.
Cette station comporte un clavier 911, un écran 909, une source d'informations externe 910, un émetteur hertzien 906, conjointement reliés à un port
d'entrée/sortie 903 d'une carte de traitement 901.
La carte de traitement 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 non volatile 905; et
- le port d'entrée/sortie 903.
Chacun des éléments illustrés en figure 9 est bien connu de l'homme du métier des micro-ordinateurs et des systèmes de transmission et, plus généralement, des systèmes de traitement de l'information. Ces éléments communs ne sont donc pas décrits ici. On observe, cependant, que: - la source d'informations 910 est, par exemple, un périphérique d'interface, un capteur, un démodulateur, une mémoire externe ou un autre système de traitement d'information (non représenté), et est préférentiellement adaptée à fournir des séquences de signaux représentatifs de parole, de messages de service ou de données multimédia, sous forme de séquences de données binaires, - 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.
On observe, en outre, que le mot "registre" utilisé dans la description
désigne, dans chacune des mémoires 904 et 905, aussi bien une zone mémoire de faible capacité (quelques données binaires) qu'une zone mémoire
de grande capacité (permettant de stocker un programme entier).
La mémoire vive 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. La mémoire vive 904 comporte notamment les registres illustrés en figure 7: - un registre "n" dans lequel est conservée la valeur calculée de n, en fonction de la longueur de la séquence de données à coder, - un registre "E(n)" dans lequel est conservée la table des valeurs des paramètres de l'entrelaceur, en fonction de la valeur de n calculée, en mettant en oeuvre la mémoire non volatile 905, - un registre "entrelaceu'r" dans lequel est conservé le tableau définissant l'entrelaceur, en fonction de la valeur de n, - des registres "u", "a" et "a", dans lesquels sont respectivement conservées la séquence de données à coder, u, et les séquences résultant de l'opération de padding, a, puis de l'opération de stuffing, a', - des registres "v,, " v'", " yv 2 ", " V'2 " et " v3" dans lesquels sont respectivement conservées les séquences a', a, et les séquences résultant du turbocodage, - un registre "NO" conservant la valeur de NO, - un registre "AM"', conservant la valeur de M, et - un registre "trame_radio" dans lequel est conservée l'intégralité de
la trame radio à émettre (voir figure 4).
La mémoire non volatile 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 "program", - la séquence g, dans un registre "g", - la séquence h, dans un registre "h", - la table E des valeurs de paramètres d'entrelaceurs, pour chaque
valeur de n possible.
L'unité centrale de traitement 900 est adaptée à mettre en oeuvre
l'organigramme décrit en figure 11.
La figure 10 illustre schématiquement la constitution d'une station de réseau ou station de décodage informatique, sous forme de schéma synoptique. Cette station comporte un clavier 1011, un écran 1009, un destinataire d'informations externe 1010, un récepteur hertzien 1006, conjointement reliés à un port d'entrée/sortie 1003 d'une carte de traitement
1001.
La carte de traitement 1001 comporte, reliés entre eux par un bus d'adresses et de données 1002: - une unité centrale de traitement 1000; une mémoire vive RAM 1004; - une mémoire non volatile 1005; et
- le port d'entrée/sortie 1003.
Chacun des éléments illustrés en figure 10 est bien connu de l'homme du métier des micro-ordinateurs et des systèmes de transmission et, plus généralement, des systèmes de traitement de l'information. Ces éléments communs ne sont donc pas décrits ici. On observe, cependant, que: - le destinataire d'informations 1010 est, par exemple, un périphérique d'interface, un afficheur, un modulateur, une mémoire externe ou un autre système de traitement d'information (non représenté), et est préférentiellement adaptée à recevoir des séquences de signaux représentatifs de parole, de messages de service ou de données multimédia, sous forme de séquences de données binaires, - le récepteur hertzien 1006 est adapté à mettre en oeuvre un protocole de transmission par paquets sur un canal non filaire, et à transmettre
ces paquets sur un tel canal.
On observe, en outre, que le mot "registre" utilisé dans la description
désigne, dans chacune des mémoires 1004 et 1005, aussi bien une zone mémoire de faible capacité (quelques données binaires) qu'une zone mémoire
de grande capacité (permettant de stocker un programme entier).
La mémoire vive 1004 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 1004 comporte notamment les registres illustrés en figure 8: - un registre "n" dans lequel est conservée la valeur calculée de n, en fonction de la longueur des séquences de données coder, - un registre "E(n)" dans lequel est conservée la table des valeurs des paramètres de chaque entrelaceur, et éventuellement de chaque entrelaceur inverse, en fonction de la valeur de n, en mettant en oeuvre la mémoire non volatile 1005, - un registre "entrelaceur" dans lequel est conservé le tableau définissant l'entrelaceur et l'entrelaceur inverse, en fonction de la valeur de E(n), - des registres "v', ", " v2,, et " y3,", dans lesquels sont respectivement conservées les séquences reçues, - des registres "wl", "w2", "w3" et "w4"', dans lesquels sont respectivement conservées les séquences intermédiaires (voir figure 3) de décodage, - un registre "a", dans lequel est conservée la séquence décodée, - un registre "i', dans lequel est conservée la valeur d'une variable intermédiaire de traitement i, - un registre "NO" conservant la valeur de NO, - un registre "M", conservant la valeur de M, et - un registre "trame_radio" dans lequel est conservée l'intégralité de
la trame radio reçue (voir figure 4).
La mémoire non volatile 1005 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 1000, dans un registre "program", - la séquence g, dans un registre "g", - la séquence h, dans un registre "h", - la table E des valeurs de paramètres d'entrelaceurs et éventuellement d'entrelaceurs inverses, pour chaque valeur de n possible, et L'unité centrale de traitement 1000 est adaptée à mettre en oeuvre
l'organigramme décrit en figure 12.
En figure 11, on observe que, à la suite d'une opération d'initialisation 1101 de type connu de l'homme du métier des systèmes comportant une unité centrale, au cours d'une opération 1102, I'unité centrale 900 attend qu'une séquence de symboles à coder lui soit transmise par la source d'information 910. On observe ici que la fin de cette séquence est marquée, soit par un délai assez long avant qu'un autre symbole ne soit transmis, soit par des informations possédant des valeurs particulières qui
signifient que la séquence est achevée.
Ensuite, au cours d'une opération 1103, I'unité centrale 900 détermine le nombre n' de symboles de la séquence qui sont à transmettre, en extrayant les symboles qui ne sont pas destinés à être transmis, selon des
procédures connues.
Puis, au cours d'une opération 1104, l'unité centrale effectue une opération de padding au cours de laquelle, à la fin de la séquence de symboles à transmettre, un nombre de symboles binaires égal au degré du polynôme diviseur g(x), est ajouté afin que la représentation polynomiale de cette
sequence soit divisible par le polynôme g(x).
Puis, parallèlement: - une opération de stuffing 1105 est effectuée, au cours de laquelle des symboles binaires de valeur nulle sont ajoutés à la fin de la séquence résultant de l'opération de padding, afin que le nombre n de symboles binaires de la séquence finale soit un multiple du nombre NO, qui est, on le rappelle, la plus petite valeur telle que le polynôme xN +1 soit divisible par le polynôme g(x); - une opération de génération d'entrelaceur 1106 est effectuée conformément à l'une des procédures illustrées en figures 13 ou, préférentiellement, 14, en prenant en compte la table E(n) extraite de la table E
qui est associée, en mémoire non volatile 905, à la valeur de la longueur n.
Ensuite, la séquence résultant de l'opération de stuffing 1105 est turbocodée au cours d'une opération de turbocodage 1107 mettant en oeuvre l'entrelaceur généré au cours de l'opération 1106, le polynôme diviseur g(x) et
le polynôme multiplicateur h(x).
Puis, au cours d'une opération de retrait de bits de stuffing 1108: - les bits de stuffing sont retirés à la fin de la séquence v, et - les bits de parité correspondant à ces bits de stuffing sont retirés à la fin de la séquence yv2,
pour former, respectivement, les séquences v', et v'2.
Enfin, au cours d'une opération 1109, les séquences v'i, V'2 et v3 sont insérées dans des trames radio, elles modulent des signaux
électromagnétiques et sont transmises sur un canal radio.
L'opération 1102 est ensuite réitérée.
En figure 12, on observe que, à la suite d'une opération d'initialisation 1201 de type connu de l'homme du métier des systèmes comportant une unité centrale, au cours d'une opération 1202, I'unité centrale 1000 attend qu'une trame radio lui soit transmise par le dispositif de codage et d'émission. On observe ici que la fin de cette trame radio est marquée, par des
informations possédant des valeurs particulières.
Ensuite, au cours d'une opération 1203, I'unité centrale 1000 détermine le nombre 3n-2s de symboles de la trame radio qui sont à décoder, en extrayant les symboles qui ne sont pas destinés à être décodés, selon des
procédures connues.
Au cours de la même opération 1203, I'unité centrale 1000 détermine la valeur de n et celle de s en considérant que n est un multiple de 7 et que s <
14.
Puis, en parallèle: - au cours d'une opération 1204, l'unité centrale 1000 effectue une opération de "stuffing" sur les deux premières séquences à décoder, en leur ajoutant des bits de stuffing et les bits de parité correspondants affectés d'une valeur de fiabilité la plus élevée possible correspondant à un bit dur nul de telle manière que la longueur de la séquence résultante soit égale à n, et - au cours d'une opération 1205, I'unité centrale 1000 effectue la génération de l'entrelaceur et de l'entrelaceur inverse, en prenant en compte la table E(n) extraite de la table E, qui est associée à la valeur de n, en mémoire
non volatile 1005.
Ensuite, au cours d'une opération 1206, les trois séquences provenant, pour les deux premières de l'opération de stuffing 1204 et, pour la dernière de l'opération 1203, sont décodées en mettant en oeuvre les entrelaceurs générés au cours de l'opération 1205, le polynôme diviseur g(x) et le polynôme multiplicateur h(x). Cette opération fournit une estimation de la
séquence a'.
Puis, au cours d'une opération 1207, les symboles ajoutés au cours de l'opération de stuffing 1204 et ceux provenant d'une opération de padding effectuée au codage (voir opération 1104), et qui sont, pour ces derniers, en nombre égal au degré du polynôme diviseur g(x), sont retirés de la séquence a' pour former la séquence transmise u. Enfin, la séquence transmise u est remise
à la destination d'information 1210 et l'opération 1202 est réitérée.
La figure 13 représente un entrelaceur selon la présente invention qui conserve la propriété de la divisibilité par le ou les polynômes de rétroaction
des codeurs constitutifs, tout en restant simple à générer.
* On suppose que la période du ou des polynômes de rétroaction utilisés est égale à NO. On note qu'avec un polynôme générateur g(x) = 1 + x +
x3, NO vaut 7.
Au cours d'une première étape, on écrit les données ligne par ligne
dans un tableau à NO colonnes et M lignes.
Au cours d'une deuxième étape, après avoir défini NO permutations primaires de taille M, qui correspondent respectivement aux colonnes du tableau, on permute les données à l'intérieur de chaque colonne selon la
permutation primaire qui lui correspond.
Au cours d'une troisième étape, on permute les colonnes entres elles selon une permutation de colonne qui conserve la divisibilité par le polynôme de rétroaction. On rappelle que cela revient à la propriété de transformer le code cyclique de longueur NO et de polynôme générateur de rétroaction g(x) en un code cyclique équivalent de polynôme générateur g(x) et qu'il agit par
permutation sur les NO colonnes du tableau.
Les permutations primaires de taille M peuvent être sélectionnées de différentes manières. Néanmoins pour limiter la complexité de génération de tels entrelaceurs, on pourra limiter le nombre de paramètres nécessaires pour
leur définition.
Un premier mode de réalisation consiste à définir la première de ces permutations et à effectuer une permutation circulaire sur les suivantes de manière itérative: on obtient la ème permutation par permutation circulaire d'une certaine valeur, Si. de la (i-1)eme permutation. Ainsi, les paramètres nécessaires pour définir ces permutations primaires sont d'une part les paramètres nécessaires à la définition de la première permutation primaire et les (N0-1)
valeurs Si.
Dans ce premier mode de réalisation, la première permutation primaire pourra être de l'un des types suivants - permutation pseudo-aléatoire (ce type de permutation permet en général une optimisation des performances mais requiert d'être stockée complètement en mémoire vive), - permutation algébrique à une ou plusieurs dimensions (qui sera décrite plus loin), permutation obtenue par extraction à partir d'une permutation de plus grande taille (qui sera décrite plus loin), - permutation obtenue par extraction à partir d'une permutation de plus grande taille de type algébrique, - permutation de taille égale à une puissance de 2 consistant à effectuer une opération simple sur les bits constituant la notation binaire des rangs des éléments de l'entrelaceur. Cette opération simple pourra par exemple être du type inversion de bits ou permutation circulaire sur ces bits. Cette permutation peut être combinée avec chacune des permutations
précédemment mentionnée.
Dans ce premier mode de réalisation, le choix des valeurs Si est préférentiellement équilibré, c'est à dire qu'elles sont proches les unes des autres et telles que leur somme modulo M est proche de (M-NO) sans que les valeurs de Si soient elles mêmes proches de zéro. Par exemple, avec NO=7 et
si M=47, on pourra choisir S1=7, S2=7, S3=7, S4=7, S5=7, S6=6.
Si, en outre, M est un multiple de NO, toutes les valeurs de Si sont préférentiellement égales, sans que celles-ci soient proches de zéro. Par
exemple, avec N0=7 et si M=49, on pourra choisir Si=21.
Un deuxième mode de réalisation consiste à définir les NO permutations primaires indépendamment les unes des autres. Pour garder globalement une faible complexité, chacune de ces permutations devra elle-
même être de faible complexité, ce qui exclut ici les permutations pseudo aléatoires. Dans ce deuxième mode de réalisation, chaque permutation primaire pourra être de l'un des types suivants: - permutation algébrique à une ou plusieurs dimensions (qui sera décrite plus loin), - permutation obtenue par extraction à partir d'une permutation de plus grande taille (qui sera décrite plus loin), - permutation obtenue par extraction à partir d'une permutation de plus grande taille de type algébrique, permutation de taille égale à une puissance de 2 consistant à effectuer une opération simple sur les bits constituant la notation binaire des rangs des éléments de l'entrelaceur. Cette opération simple pourra par exemple être du type inversion de bits ou permutation circulaire sur ces bits. Cette permutation peut être combinée avec chacune des permutations
précédemment mentionnée.
En ce qui concerne la permutation agissant sur les colonnes, elle peut être circulaire sur les colonnes, ou en variante, les colonnes étant numérotées en nombre binaires croissant, elle peut être circulaire sur les bits des numéros de colonnes. On note (pl p2 p3) (ql q2) la permutation qui transforme pl en p2, p2 en p3, p3 en pl, ql en q2, q2 en ql et qui laisse invariant les autres éléments. Avec cette notation, les permutations ayant la propriété de transformer le code cyclique de longueur NO et de polynôme générateur g(x) en un code cyclique équivalent de polynôme générateur g(x), sont les 168 permutations du groupe de permutations généré par: (0 1 2 3 4 5 6) (permutation circulaire)
(1 2 4) (3 6 5)...
(24)(56)
(2 5) (4 6)
(2 6) (4 5)
On remarque que la permutation (1 2 4)(3 6 5) peut facilement être réalisée par un circuit logique électronique puisqu'il s'agit simplement de faire une permutation circulaire sur les bits de la notation binaire des éléments à permuter. On observe, en figure 14, que, pour générer un entrelaceur ou permutation de type algébrique à une dimension, I'unité centrale 900, respectivement 901, pour le codage, respectivement le décodage, effectue tout d'abord une opération d'initialisation 1401, au cours de laquelle elle met à zéro toutes les valeurs du registre "entrelaceur" ainsi qu'une variable intermédiaire i, et prend en compte la valeur de M, taille de l'entrelaceur à générer et la valeur d'un paramètre e, premier avec M. Ensuite, au cours d'une opération 1402, la valeur de la i-ième donné conservée dans l'entrelaceur est calculée comme étant égale à la valeur de i multiplié par e, modulo M. Ensuite, au cours d'une opération 1403, I'unité centrale 900 incrémente de 1 la valeur de la variable i. Puis, au cours d'un test 1404, l'unité centrale 900 détermine si la valeur de la variable i est égale à M-1,
ou non.
Lorsque le résultat du test 1404 est négatif, I'opération 1402 est réitérée. Lorsque le résultat du test 1404 est positif, l'opération de génération
d'entrelaceur 1406 est achevée.
En figure 15, on observe un mode préféré de réalisation mis en oeuvre par l'unité centrale 900, respectivement 901, pour le codage, respectivement le décodage, pour générer l'entrelaceur algébrique à une dimension, en réduisant la complexité des calculs effectués et donc la
puissance de calcul nécessaire pour mettre en oeuvre la présente invention.
Les opérations illustrées en figure 15 sont identiques à celles qui sont illustrées en figure 14, à l'exception de l'opération 1402 qui est remplacée par une opération 1502 au cours de laquelle le contenu de la (i+1)-ième position de l'entrelaceur est calculée comme étant égale au contenu de la i-ième position à laquelle est ajouté e, l'opération étant effectuée modulo M. On comprend qu'une simple addition remplace ici une multiplication, ce qui simplifie cette opération 1502 et peut réduire considérablement sa durée,
par rapport à l'opération 1402.
On observe, en figure 16, que, pour générer un entrelaceur ou permutation de type algébrique à deux dimensions de taille M, l'unité centrale 900, respectivement 901, pour le codage, respectivement le décodage, effectue tout d'abord une opération d'initialisation, au cours de laquelle elle met à zéro toutes les valeurs du registre "entrelaceur" et prend en compte la valeur de M, taille de l'entrelaceur à générer et la valeur des paramètres N1 et N2 tels que le produit de N1 par N2 soit égal à M, et des paramètres aE1, premier avec Nl, 1,,
a2, premier avec N2, et,P2.
Lors d'une opération 1601, les données à permuter sont écrites ligne
par ligne dans un tableau à N. lignes et N2 colonnes.
Lors d'une opération suivante 1602, les lignes sont permutées algébriquement, à savoir pour chaque ligne ayant un rang ligne#i compris entre 0 et N1-1, cette ligne est déplacée au rang Perm(ligne#i) égal à (ligne#i*'l+pl)
modulo Ni.
Ensuite, lors d'une opération 1603, les colonnes sont permutées algébriquement, à savoir pour chaque ligne ayant un rang colonne#i compris entre 0 et N2-1, cette ligne est déplacée au rang Perm(colonne#i) égal à
(colonne#i*ro2+P2) modulo N2.
On observe, en figure 17, que, pour générer un entrelaceur de taille M par extraction à partir d'un entrelaceur parent de plus grande taille, on supprime de ce dernier les valeurs d'entrelacement supérieures ou égales à M. Par exemple, si M vaut 5 et si l'entrelaceur de grande taille est défini par la permutation (4, 5, 0, 3, 2, 6, 7, 1), l'entrelaceur extrait sera défini par la
permutation (4,0,3,2,1).
On pourra considérer préférentiellement que les entrelaceurs parents
auront une taille qui est une puissance de 2.
On remarque que suivant les applications auxquelles on s'intéresse, on aura à définir un plus ou moins grand nombre de tailles d'entrelaceurs, on voudra une qualité de service s'exprimant en taux d'erreur bit ou trame plus ou moins sévère et on voudra une réalisation plus ou moins économique en circuit électronique pouvant notamment être sous forme cablée, d'ASIC ou de processeur de traitement de signal. Un avantage important des entrelaceurs exposés ci-dessus est leur grande flexibilité. Ainsi, on pourra dans tous les cas trouver le meilleur compromis performances/complexité parfois en mixant les
avantages de plusieurs types de permutations primaires.
Ainsi, par exemple, si on définit de manière algébrique à deux dimensions, un entrelaceur primaire de taille 64, et si on opte pour la première manière de faire exposée plus haut, le nombre de paramètres à stocker est très faible: On pourra avoir par exemple, E(329) = { S1=7, S2=7, S3=7, S4=7, S5=7, S6=6, N1= 8, N2 =8, o1, Pi, a2, N2,,81 E(343) = { Si=7, S2=7, S3=7, S4=7, S5=7, S6=7, N1= 8, N2 =8, a1, Pd,
a2, N2, 52.
Soit en mémoire morte de manière compacte: E={ N1= 8, N2 =8, al,,Pl, a2, 2} (pour l'entrelaceur parent de taille 64 permettant de générer les premières permutations primaires de taille 47 et 49) u{ Si =7, S2=7, S3=7, S4=7, S5=7, S6=6}M=47 u{ Si =7, S2=7, S3=7, S4=7, S5=7, S6=7}M=49
Les valeurs de al, Pi, a22 P2 pourront être optimisées par simulations.
Le grand nombre de valeurs possible facilite cette optimisation.
Bien entendu, la présente invention, n'est nullement limitée aux modes de réalisations décrits et représentés, mais englobe au contraire toute
variante à la portée de l'homme du métier.

Claims (29)

REVENDICATIONS
1. Procédé d'entrelacement de symboles binaires représentatifs d'une grandeur physique, utilisé dans un système de codage avec au moins deux codeurs convolutifs récursifs comportant respectivement un polynôme diviseur ayant une même période donnée ou dans le système de décodage correspondant, caractérisé en ce qu'il comporte des opérations de: écriture des symboles binaires dans un tableau ayant un premier nombre de colonnes égal à la période des codeurs et un second nombre de lignes, premières permutations des symboles sur chacune des colonnes, et - seconde permutation des colonnes entre elles, ladite seconde
permutation conservant la propriété de retour à zéro des codeurs.
2. Procédé d'entrelacement selon la revendication 1, caractérisé en ce que les premières permutations sont déduites les unes des autres, en passant d'une colonne à la suivante, par décalage modulo le second nombre (M). 3. Procédé d'entrelacement selon la revendication 1, caractérisé en ce que les premières permutations sont déduites les unes des autres en passant d'une colonne à la suivante par un décalage qui est sensiblement le
même pour toutes les colonnes.
4. Procédé d'entrelacement selon la revendication 1, caractérisé en ce que les premières permutations sont déduites les unes des autres en passant d'une colonne à la suivante par un décalage qui est le même pour
toutes les colonnes, lorsque le second nombre est multiple du premier nombre.
5. Procédé d'entrelacement selon la revendication 1, caractérisé en
ce que les premières permutations sont identiques les unes aux autres.
6. Procédé d'entrelacement selon l'une quelconque des
revendications 1 à 5, caractérisé en ce que les premières permutations sont de
type algébrique, à au moins une dimension.
7. Procédé d'entrelacement selon l'une quelconque des
revendications 1 à 5, caractérisé en ce que les premières permutations sont
obtenues par extraction effectuée sur un entrelaceur de plus grande taille.
8. Procédé d'entrelacement selon la revendication 7, caractérisé en
ce que la plus grande taille est une puissance de deux.
9. Procédé d'entrelacement selon l'une quelconque des
revendications 1 à 5, caractérisé en ce que les premières permutations sont
pseudo-aléatoires.
10. Procédé d'entrelacement selon l'une quelconque des
revendications 1 à 9, caractérisé en ce que la seconde permutation est
circulaire. 11il. Procédé d'entrelacement selon l'une quelconque des
revendications 1 à 9, caractérisé en ce que, les colonnes étant numérotées en
nombres binaires croissants, la seconde permutation est circulaire sur les bits
des numéros de colonnes.
12. Dispositif d'entrelacement de symboles binaires représentatifs d'une grandeur physique, utilisé dans un système de codage avec au moins deux codeurs convolutifs récursifs comportant respectivement un polynôme diviseur ayant une même période donnée ou dans le système de décodage correspondant, caractérisé en ce qu'il comporte: - des moyens d'écriture des symboles binaires dans un tableau ayant un premier nombre de colonnes égal à la période des codeurs et un second nombre de lignes, - des premiers moyens de permutations des symboles sur chacune des colonnes, et - des seconds moyens de permutation des colonnes entre elles, ladite seconde permutation conservant la propriété de retour à zéro des codeurs. 13. Dispositif d'entrelacement selon la revendication 12, caractérisé en ce qu'il est adapté à mettre en oeuvre des premières permutations qui sont déduites les unes des autres, en passant d'une colonne à la suivante, par
décalage modulo le second nombre (M).
14. Dispositif d'entrelacement selon la revendication 12, caractérisé en ce qu'il est adapté à mettre en oeuvre des premières permutations qui sont déduites les unes des autres en passant d'une colonne à la suivante par un
décalage qui est sensiblement le même pour toutes les colonnes.
15. Dispositif d'entrelacement selon la revendication 12, caractérisé en ce qu'il est adapté à mettre en oeuvre des premières permutations sont déduites les unes des autres en passant d'une colonne à la suivante par un décalage qui est le même pour toutes les colonnes, lorsque le second nombre
est multiple du premier nombre.
16. Dispositif d'entrelacement selon la revendication 12, caractérisé en ce qu'il est adapté à mettre en oeuvre des premières permutations qui sont
identiques les unes aux autres.
17. Dispositif d'entrelacement selon l'une quelconque des
revendications 12 à 16, caractérisé en ce qu'il est adapté à mettre en oeuvre
des premières permutations qui sont de type algébrique, à au moins une dimension. 18. Dispositif d'entrelacement selon l'une quelconque des
revendications 12 à 16, caractérisé en ce qu'il est adapté à mettre en oeuvre
des premières permutations qui sont obtenues par extraction effectuée sur un
entrelaceur de plus grande taille.
19. Dispositif d'entrelacement selon la revendication 18, caractérisé en ce qu'il est adapté à effectuer une extraction sur un entrelaceur dont la taille
est une puissance de deux.
20. Dispositif d'entrelacement selon l'une quelconque des
revendications 12 à 16, caractérisé en ce qu'il est adapté à mettre en oeuvre
des premières permutations qui sont pseudo-aléatoires.
21. Dispositif d'entrelacement selon l'une quelconque des
revendications 12 à 20, caractérisé en ce qu'il est adapté à mettre en oeuvre
une seconde permutation qui est circulaire.
22. Dispositif d'entrelacement selon l'une quelconque des
revendications 12 à 20, caractérisé en ce qu'il est adapté à numéroter les
colonnes par nombres binaires croissants, et à mettre en oeuvre la seconde
permutation est circulaire sur les bits des numéros de colonnes.
23. Procédé de turbocodage de symboles binaires représentatifs d'une grandeur physique caractérisé en ce qu'il comporte le procédé
d'entrelacement selon l'une quelconque des revendications 1 à 11.
24. Procédé de turbodécodage de symboles binaires représentatifs d'une grandeur physique caractérisé en ce qu'il comporte le procédé
d'entrelacement selon l'une quelconque des revendications 1 à 11.
25. Dispositif de turbocodage de symboles binaires représentatifs d'une grandeur physique caractérisé en ce qu'il comporte le dispositif
d'entrelacement selon l'une quelconque des revendications 12 à 22.
26. Dispositif de turbodécodage de symboles binaires représentatifs d'une grandeur physique caractérisé en ce qu'il comporte le dispositif
d'entrelacement selon l'une quelconque des revendications 12 à 22.
27. Dispositif de traitement de signaux représentatifs de parole, caractérisé en ce qu'il comporte un dispositif de codage selon la revendication
ou un dispositif de décodage selon la revendication 26.
28. Dispositif de transmission de données comportant un émetteur adapté à mettre en oeuvre un protocole de transmission par paquets, caractérisé en ce qu'il comporte un dispositif de codage selon la revendication ou un dispositif de décodage selon la revendication 26 ou un dispositif de
traitement de signaux représentatifs de parole selon la revendication 27.
29. Dispositif de transmission de données selon la revendication 28, caractérisé en ce que ledit protocole est le protocole ATM (acronyme des mots
anglais "Asynchronous Transfert Mode") mode de transfert asynchrone.
30. Dispositif de transmission de données selon la revendication 28,
caractérisé en ce que ledit protocole est le protocole de type ETHERNET.
31. Dispositif de transmission de données comportant un émetteur émettant sur un canal non filaire, caractérisé en ce qu'il comporte un dispositif de codage selon la revendication 25 ou un dispositif de décodage selon la
revendication 26.
32. Dispositif de traitement de séquences de signaux représentatifs d'au plus mille données binaires, caractérisé en ce qu'il comporte un dispositif de codage selon la revendication 25 ou un dispositif de décodage selon la
revendication 26.
33. Station de réseau, caractérisé en ce qu'il comporte un dispositif de codage selon la revendication 25 ou un dispositif de décodage selon la
revendication 26.
FR9902789A 1999-03-05 1999-03-05 Dispositif et procede d'entrelacement pour turbocodage et turbodecodage Expired - Fee Related FR2790621B1 (fr)

Priority Applications (2)

Application Number Priority Date Filing Date Title
FR9902789A FR2790621B1 (fr) 1999-03-05 1999-03-05 Dispositif et procede d'entrelacement pour turbocodage et turbodecodage
US09/513,468 US6625762B1 (en) 1999-03-05 2000-02-25 Interleaving device and method for turbocoding and turbodecoding

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
FR9902789A FR2790621B1 (fr) 1999-03-05 1999-03-05 Dispositif et procede d'entrelacement pour turbocodage et turbodecodage

Publications (2)

Publication Number Publication Date
FR2790621A1 true FR2790621A1 (fr) 2000-09-08
FR2790621B1 FR2790621B1 (fr) 2001-12-21

Family

ID=9542894

Family Applications (1)

Application Number Title Priority Date Filing Date
FR9902789A Expired - Fee Related FR2790621B1 (fr) 1999-03-05 1999-03-05 Dispositif et procede d'entrelacement pour turbocodage et turbodecodage

Country Status (2)

Country Link
US (1) US6625762B1 (fr)
FR (1) FR2790621B1 (fr)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2829329A1 (fr) * 2001-09-05 2003-03-07 Canon Kk Procedes de turbocodage a entrelaceurs verrous, et systemes pour leur mise en oeuvre
CN1333531C (zh) * 2001-02-23 2007-08-22 皇家菲利浦电子有限公司 包含并联解码器的特播解码器系统

Families Citing this family (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3399904B2 (ja) * 2000-03-17 2003-04-28 松下電器産業株式会社 インタリーブアドレス生成装置
FR2807237A1 (fr) * 2000-04-04 2001-10-05 Canon Kk Procede et dispositif d'evaluation du bruit associe aux turbocodes, et systemes les mettant en oeuvre
FR2815199B1 (fr) * 2000-10-10 2003-01-17 Canon Kk Procedes de turbocodage circulaire de grande distance minimale, et systemes pour leur mise en oeuvre
JP3920558B2 (ja) * 2000-11-08 2007-05-30 株式会社東芝 データ処理方法及び装置及び記録媒体及び再生方法及び装置
US20020124224A1 (en) * 2000-12-29 2002-09-05 Blankenship Thomas Keith Method and system for matching information rates in turbo coded channels
KR100532325B1 (ko) * 2002-11-23 2005-11-29 삼성전자주식회사 터보 복호기의 입력 제어 방법 및 장치
KR100591973B1 (ko) * 2002-11-29 2006-06-22 후지쯔 가부시끼가이샤 데이터 기록 재생 장치 및 데이터 기록 재생 방법
US20060218459A1 (en) * 2004-08-13 2006-09-28 David Hedberg Coding systems and methods
US7698623B2 (en) * 2004-08-13 2010-04-13 David Hedberg Systems and methods for decreasing latency in a digital transmission system
US7792205B2 (en) * 2004-10-12 2010-09-07 Zte (Usa) Inc. Encoding and decoding of frame control header in downlink subframes in wireless communication systems
US7543197B2 (en) * 2004-12-22 2009-06-02 Qualcomm Incorporated Pruned bit-reversal interleaver
CN100438345C (zh) * 2005-03-30 2008-11-26 华为技术有限公司 一种交织装置
US7590920B2 (en) * 2005-08-05 2009-09-15 Hitachi Global Storage Technologies Netherlands, B.V. Reduced complexity error correction encoding techniques
US7925956B2 (en) * 2006-10-03 2011-04-12 Motorola Mobility, Inc. Method and apparatus for encoding and decoding data
US8356232B2 (en) * 2006-10-06 2013-01-15 Motorola Mobility Llc Method and apparatus for encoding and decoding data
US7949926B2 (en) * 2006-11-30 2011-05-24 Motorola Mobility, Inc. Method and apparatus for encoding and decoding data
EP2429084B1 (fr) 2010-09-13 2013-12-25 Hughes Network Systems, LLC Procédé et appareil pour procédé de design d'entrelaceur paramétré

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4547887A (en) * 1983-11-30 1985-10-15 The United States Of America As Represented By The Secretary Of The Army Pseudo-random convolutional interleaving
EP0235477A1 (fr) * 1985-12-23 1987-09-09 Thomson-Csf Procédé et dispositif de transmission radioélectrique d'informations codées, résistant au brouillage
US5483541A (en) * 1993-09-13 1996-01-09 Trw Inc. Permuted interleaver
WO1997040582A1 (fr) * 1996-04-19 1997-10-30 General Electric Company Code de convolution parallele concatene en boucle et decodeur afferent
WO1999007076A2 (fr) * 1997-07-30 1999-02-11 Samsung Electronics Co., Ltd. Procede et dispositif de codage adaptatif de voies
EP0928071A1 (fr) * 1997-12-30 1999-07-07 Canon Kabushiki Kaisha Entrelaceur pour turbo-codeur

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2675971B1 (fr) * 1991-04-23 1993-08-06 France Telecom Procede de codage correcteur d'erreurs a au moins deux codages convolutifs systematiques en parallele, procede de decodage iteratif, module de decodage et decodeur correspondants.
US6023783A (en) * 1996-05-15 2000-02-08 California Institute Of Technology Hybrid concatenated codes and iterative decoding
KR19990012821A (ko) * 1997-07-31 1999-02-25 홍성용 전자기파 흡수체 조성물과 이의 제조 방법, 전자기파 흡수용도료 조성물과 이의 제조 방법 및 이의 도포 방법
JP3453122B2 (ja) * 1998-08-17 2003-10-06 ヒューズ・エレクトロニクス・コーポレーション 最適性能に近いターボコードインターリーバ

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4547887A (en) * 1983-11-30 1985-10-15 The United States Of America As Represented By The Secretary Of The Army Pseudo-random convolutional interleaving
EP0235477A1 (fr) * 1985-12-23 1987-09-09 Thomson-Csf Procédé et dispositif de transmission radioélectrique d'informations codées, résistant au brouillage
US5483541A (en) * 1993-09-13 1996-01-09 Trw Inc. Permuted interleaver
WO1997040582A1 (fr) * 1996-04-19 1997-10-30 General Electric Company Code de convolution parallele concatene en boucle et decodeur afferent
WO1999007076A2 (fr) * 1997-07-30 1999-02-11 Samsung Electronics Co., Ltd. Procede et dispositif de codage adaptatif de voies
EP0928071A1 (fr) * 1997-12-30 1999-07-07 Canon Kabushiki Kaisha Entrelaceur pour turbo-codeur

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1333531C (zh) * 2001-02-23 2007-08-22 皇家菲利浦电子有限公司 包含并联解码器的特播解码器系统
FR2829329A1 (fr) * 2001-09-05 2003-03-07 Canon Kk Procedes de turbocodage a entrelaceurs verrous, et systemes pour leur mise en oeuvre

Also Published As

Publication number Publication date
US6625762B1 (en) 2003-09-23
FR2790621B1 (fr) 2001-12-21

Similar Documents

Publication Publication Date Title
FR2785743A1 (fr) Dispositif et procede d&#39;adaptation des turbocodeurs et des decodeurs associes a des sequences de longueur variable
FR2815199A1 (fr) Procedes de turbocodage circulaire de grande distance minimale, et systemes pour leur mise en oeuvre
FR2790621A1 (fr) Dispositif et procede d&#39;entrelacement pour turbocodage et turbodecodage
EP0996232B1 (fr) Procédé et dispositif d&#39;entrelacement d&#39;une séquence d&#39;éléments de données
EP0891656B1 (fr) Procede et dispositif de codage convolutif de blocs de donnees, et procede et dispositif de decodage correspondants
EP0995272B1 (fr) Decodage iteratif de codes produits
EP0848501B1 (fr) Système et procédé de transmission numérique comportant un code produit combiné à une modulation multidimensionnelle
EP0108655A1 (fr) Système de détection et de correction d&#39;erreurs de transmission d&#39;un message binaire utilisant un code cyclique détecteur et correcteur d&#39;erreurs de type Reed-Solomon entrelacé
EP0848524A1 (fr) MAQ à codage perforé en trellis, avec décodage itératif
FR2785741A1 (fr) Dispositif et procede de codage et d&#39;entrelacement pour des turbocodes series ou hybrides
FR2849514A1 (fr) Code de geometrie algebrique adapte aux erreurs en rafale
EP1974472B1 (fr) Procedes d&#39;encodage et de decodage rapides et dispositifs associes
FR2785744A1 (fr) Procede et dispositif de codage de sequences de donnees, procede et dispositif de decodage associes
EP1098445A1 (fr) Méthode d&#39;entrelacement pour le turbocodage de données
FR2789824A1 (fr) Procede de correction d&#39;erreurs residuelles a la sortie d&#39;un turbo-decodeur
FR2540690A1 (fr) Verificateur de codeur
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
EP1527521B1 (fr) Dispositif et procede de decodage robuste de codes arithmetiques
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
FR2787263A1 (fr) Procede de transmission avec codage de canal a entrelacement efficace et modulaire pour turbo codes
FR2792476A1 (fr) Procede de type arq pour procede de transmission utilisant des turbo-codes, et dispositif associe
FR2972878A1 (fr) Procede d&#39;encodage correcteur d&#39;erreur, procede de decodage et dispositifs associes.
FR3037746A1 (fr) Procede de construction d&#39;un entrelaceur pour turbo-encodeur
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: 20141128