FR2785743A1 - Dispositif et procede d'adaptation des turbocodeurs et des decodeurs associes a des sequences de longueur variable - Google Patents

Dispositif et procede d'adaptation des turbocodeurs et des decodeurs associes a des sequences de longueur variable Download PDF

Info

Publication number
FR2785743A1
FR2785743A1 FR9814085A FR9814085A FR2785743A1 FR 2785743 A1 FR2785743 A1 FR 2785743A1 FR 9814085 A FR9814085 A FR 9814085A FR 9814085 A FR9814085 A FR 9814085A FR 2785743 A1 FR2785743 A1 FR 2785743A1
Authority
FR
France
Prior art keywords
sequence
polynomial
symbols
equal
transmission
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.)
Pending
Application number
FR9814085A
Other languages
English (en)
Inventor
Philippe Piret
Claude Le Dantec
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 FR9814085A priority Critical patent/FR2785743A1/fr
Priority to DE69943157T priority patent/DE69943157D1/de
Priority to EP99402760A priority patent/EP1001544B1/fr
Priority to US09/435,351 priority patent/US6766489B1/en
Priority to JP31882799A priority patent/JP4553330B2/ja
Publication of FR2785743A1 publication Critical patent/FR2785743A1/fr
Pending 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/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
    • H03M13/2993Implementing the return to a predetermined state, i.e. trellis termination

Landscapes

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

Abstract

Le procédé de codage visé par la présente invention prend en compte au moins un critère de choix lié à une transmission de symboles binaires représentatifs d'une grandeur physique, pour sélectionner au moins un paramètre de transmission. Chaque dit paramètre de transmission sélectionné est dans l'ensemble de paramètres comportant :- un nombre K, supérieur ou égal à 1, de séquences as (i=1,..., K) de symboles binaires, à coder,- un entier M1, égal ou supérieur à 2,- un polynôme diviseur gi (x),- un entier M,- un entrelaceur, et- un polynôme multiplicateur fij (x). Il met en oeuvre un entrelaceur qui maintient la divisibilité par un polynôme gi (x).

Description

La présente invention concerne un procédé et un dispositif d'adaptation
des turbocodeurs et des décodeurs associés à des séquences 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. L'invention trouve une application dans le domaine des codes convolutifs. Lorsqu'on utilise ces derniers pour mettre en oeuvre un décodage itératif, ces codes sont fortement améliorés lorsque leurs codeurs contiennent un dispositif de permutation. Dans ce cas, ils sont habituellement appelés
"turbocodes" et le décodeur itératif correspondant est appelé "turbodécodeur".
Sur ces sujets, des documents qui servent de référence sont, d'une part, l'article de MM. C. BERROU, A. GLAVIEUX et P. THITIMAJSHIMA intitulé "Near Shannon limit error-correcting coding and decoding: turbocodes" publiés avec les compte-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.
Cependant, 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 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 placées en une position i jusqu'à une position e i + f, pour des valeurs
"bien choisies" de e et de f.
Dans ce document, ils ne donnent qu'un exemple o k est une puissance de 2. De plus, ils 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 du turbocode correspondant consiste à simuler son utilisation 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.
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 = (uo, ul,..., Uk1), appelées "séquences d'information", que l'on va coder en un triplet de séquences binaires, v = (a, b, J, 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,..., uk_,), et la forme polynomiale associée: U(X) = Uo X0 + UlX1 + + Uk-1 k 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, J: - 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) = 1 + x + x3, correspondant, selon la représentation en séquence, à la séquence (1, 1, 0, 1); et h1(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), hi(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 le mettre en oeuvre, plusieurs questions se posent: I/ Comment choisir les polynômes g(x), hî(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, I'entrelaceur transforme la séquence a = (ao, ai, a2, a3, a4, a5) en la séquence a* = (ao, a3, ai,
a4, a2, a5).
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, avec j = 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 = 5 et t = 3, l'entrelaceur transforme la séquence a = (ao, ai, a2, a3, a4, as) en la
séquence a* = (a3, a2, ai, ao, a5, a4).
C) dans le troisième exemple, la permutation choisie est aléatoire.
III/ 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 derniè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 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 Z'=o à m x. Dans un article intitulé "Turbo-block-codes" et publié avec les comptes-rendus 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 g.
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_, _*), 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 proposent 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 à coder mais aussi de chacune des séquences redondantes aussi appelées "de contrôle". Cette solution 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 xN + 1. Ce nombre NO sera appelé " période " de g(x). Pour des raisons décrites ci-dessous, g(x) est considéré comme un polynôme sans carré
et ceci entraîne que NO soit un nombre impair.
Soit aussi n un multiple impair 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 aix' o les m symboles binaires ai sont choisis de telle manière que a(x) soit un multiple de g(x). En conséquence de ce précodage, et des valeurs choisies des paramètres, si a(x) est un multiple de g(x), alors a*(x) = a(xe) modulo xn+1 est aussi un multiple de g(x) pour toute valeur de e qui est une
puissance de 2.
Dans la suite de la description, on appelle " type x vers xB " ce
type de permutation et d'entrelaceur.
Ici, il est nécessaire de considérer que g(x) n'a pas de facteur multiple parce que, en général, a*(x) possède la garantie d'être divisible
seulement par les facteurs irréductibles de g(x).
La version codée de u est alors donnée par v = [a, ah1/g, a*hz/g] o tous les composants sont des polynômes, et o, en particulier, a*h2/g est aussi un polynôme, grâce à la définition de a* et du choix de e comme
puissance de 2.
Plus généralement, 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 ", as*, (i=1,...,K; j=1,...,.M1), 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 g1(x) divise :NO+1, 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 g(,{x) pouvant être égal à gi(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.
On observe ici que dans ce mode particulier de mise en oeuvre de l'enseignement mentionné ci-dessus avec un entrelaceur est de type " x vers Xe ", la longueur des séquences à coder doit être impaire alors que, dans le cas
général, elle peut être paire.
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 et, dans le mode préférentiel, un multiple impair de NO), I'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 I'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 entend remédier à ces inconvénients.
A cet effet, la présente invention vise, selon un premier aspect, un procédé de codage caractérisé en ce que: 1/ il prend en compteau moins un critère de choix lié à une transmission de symboles binaires représentatifs d'une grandeur physique, 2/ il comporte une opération de sélection de paramètres de transmission, en fonction d'au moins un critère de choix, chaque dit paramètre de transmission sélectionné étant dans l'ensemble de paramètres comportant: - un nombre K, supérieur ou égal à 1, de séquences ai (i=1,..., K) de symboles binaires, à coder, - un entier Ml, égal ou supérieur à 2, - un polynôme diviseur g1(x), - un entier M, un entrelaceur, et - un polynôme multiplicateur fij(x), 3/il comporte une opération d'entrée du nombre K de séquences ai (i=1,...,K) de données binaires, chaque séquence ai possédant: une représentation polynomiale ai(x) multiple d'un polynôme g1(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 XNO+l soit divisible par chaque polynôme diviseur gi(x); 4/il comporte une première opération de production d'un nombre K*M1 de séquences dites " permutées ", ai,*, (i=1,...,.K; jI1,...,M1), chaque séquence a.* - é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 g1(x) en un code cyclique équivalent de polynôme générateur gq{x) pouvant être égal à gi(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 aij*(x) qui est égale à un produit polynomial ci(x)g1j(x), au moins une séquence permutée aj* étant différente de la séquence ai correspondante, 5/ il comporte une deuxième opération de production de Ml séquences redondantes dont la représentation polynomiale est égale à E fj(x) cij(x), pour j=1,...,M1, chaque polynôme f1j(x) étant un polynôme de degré au
plus égal au degré du polynôme gj(x) de mêmes indices i etj.
Grâce à ces dispositions, les paramètres de mise en oeuvre du turbocodeur peuvent être adaptés à la transmission de symboles, à leur nombre ou aux conditions de transmission. Ainsi, 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, peut être optimisé en fonction des critères de
choix considérés.
Pour mieux comprendre l'invention, un exemple très particulier de mise en oeuvre est donné ci-dessous: dans un exemple o le critère de choix est la longueur de la séquence de symboles à coder, pour des polynômes de codage donnés, dont notamment un polynôme g(x) de "période NO" et sans racines multiples est utilisé dans les deux codeurs élémentaires (on suppose pour simplifier l'explication que le même polynôme de rétroaction g(x), connu de l'homme du métier sous le nom de "feedback polynomial" ou encore de polynôme " diviseur ", est utilisé dans les codeurs élémentaires avant et après entrelacement), la mise en oeuvre du procédé de l'invention comporte les étapes suivantes: 1/ La longueur de la séquence est d'abord analysée et une valeur
n, multiple de NO et supérieure à cette longueur, est déterminée.
2/ Dans le dispositif d'émission, des bits complémentaires dits de "padding" sont ajoutés à la séquence d'entrée pour que la représentation polynomiale de la séquence résultante soit divisible par le polynôme de
rétroaction ou " diviseur "> g(x).
3/ Des bits complémentaires dits de "stuffing" ou de "bourrage" nuls sont alors ajoutés en fin de cette séquence de telle sorte que la séquence
résultante ait une longueur, n.
4/ Un entrelaceur est généré avec des paramètres choisis en
fonction de n.
5/ La séquence est " turbo-codée " 6/ Les bits de bourrage sont enlevés de la séquence identique à la
séquence à coder.
7/ La séquence est encapsulée dans une trame radio qui est, elle-
même, modulée puis transmise sur le canal de transmission qui relie le
dispositif d'émission au dispositif de réception.
8/ 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. 9/ Un entrelaceur et un désentrelaceur sont générés avec des
paramètres choisis en fonction de n.
10/ La séquence reçue à laquelle les bits de bourrage auront été
rajoutés est décodée.
11/ Les bits de bourrage et de padding sont enlevés et une
estimation de la séquence d'entrée est remise à son destinataire.
Le lecteur qui souhaitera mieux connaître la méthode de bourrage pourra se référer à l'article suivant: "A new scheme to terminate ail trellis of turbo decoder for variable block length", dont les auteurs sont Koora et Finger (Dresden Univ. Germany),
International symposium on turbo codes, Brest, France, 1997.
La présente invention permet donc une adaptation dynamique du turbocodeur et du décodeur à chaque critère de sélection, comme la longueur
de la séquence d'entrée.
Selon des caractéristiques particulières, au cours d'une opération d'ajout, on ajoute, à la séquence a résultant de l'opération d'ajout de bits de padding, des données complémentaires dites " de padding " dont le nombre est égal au degré du polynôme diviseur g(x) et qui garantissent la divisibilité de la représentation polynomiale de la séquence résultant de l'opération d'ajout
par le polynôme diviseur g(x).
Ainsi, I'opération de padding garantit le retour à zéro de chacun
des codeurs. Il s'ensuit une optimisation des performances du turbocodeur.
Selon des caractéristiques particulières, une opération d'ajout comporte une opération de bourrage au cours de laquelle on ajoute, à la séquence a résultant de l'opération d'ajout de bits de padding, des données complémentaires dites " de stuffing ", de valeur prédéterminée, qui garantissent que le nombre n de symboles de la séquence binaire résultant de I'opération de bourrage réponde aux conditions d'être: - supérieur ou égal à (n'+m), - multiple de NO, le plus petit entier tel que xN +l soit divisible par g(x), et
- impair.
Grâce à ces dispositions, le procédé visé par la présente invention fournit une adaptation à toutes les valeurs de longueur de séquence de symboles car le nombre d'éléments de l'entrelaceur doit être ici un multiple impair de NO alors que la longueur de la séquence de symboles à coder peut
ne pas être un multiple de NO, ni un nombre impair.
Selon des caractéristiques particulières, au moins une des séquences résultant de l'opération de codage n'a fait l'objet d'aucun entrelacement et en ce qu'il comporte une opération de retrait de données sur au moins une séquence résultant de l'opération de codage n'ayant fait l'objet
d'aucun entrelacement.
Ainsi, on diminue le nombre de symboles à transmettre sur le
canal de transmission.
Selon des caractéristiques particulières, au cours de la première opération de production d'un nombre K*M1 de séquences dites " permutées ", au*, (i=1,...,K; j=1,...,M1), chaque séquence ad* possède une représentation polynomiale égale à aij*(x)=a*(xe), modulo (x%+1), o - n est le produit du nombre M par l'entier NO, - e11 est un nombre relativement premier avec n, - le polynôme g;j(x) est le polynôme générateur du plus petit code cyclique de longueur NO contenant le polynôme g1(xee) modulo (XN +l1) Les avantages de ces dispositions sont ceux des entrelaceurs dits "x vers xe " qui s'adaptent facilement à une génération " au fil de l'eau ", par la mise en oeuvre d'algorithmes simples. En outre, ces algorithmes pouvant être exécutés par des circuits logiques simples ou par un microprocesseur, la mise en oeuvre de la présente invention se combine avantageusement à ce
type de turbocodeur.
La présente invention permet, en outre, une économie de la quantité de mémoire utilisée car l'entrelaceur de type " x vers xe "est
entièrement défini, et simple à engendrer à partir des valeurs de e et de n.
Grâce à ces dispositions, la présente invention possède une mise en oeuvre simple et de très bonnes performances en termes de taux d'erreur bit
et trame en fonction du rapport signal/bruit.
Selon des caractéristiques particulières, au cours de l'opération de sélection de paramètres de transmission, on sélectionne une valeur de l'exposant e, en fonction d'au moins un critère de choixGrâce à ces dispositions, les paramètres propres des entrelaceurs de type " x vers xe " s'adaptent aux critères de choix mentionnés plus haut pour optimiser les
performances du turbocodeur.
Selon des caractéristiques particulières, le procédé de codage visé par la présente invention, tel qu'il est succinctement exposé ci-dessus, comporte une opération de génération d'entrelaceur, ledit entrelaceur définissant les permutations effectuées au cours de la première opération de production et en ce que, au cours de ladite opération de génération, I'entrelaceur est constitué par la mise en oeuvre itérative d'une opération
d'addition, modulo un nombre prédéterminé.
Ainsi, une simple addition, modulo n permet la génération de l'entrelaceur, ce qui simplifie cette génération et peut réduire considérablement
sa durée.
Selon des caractéristiques particulières, le procédé visé par l'invention, tel qu'il est succinctement exposé ci-dessus 1/prend en compte: - une valeur de K égale à 1, - un polynôme sans carré gi(x), - NO, le plus petit entier tel que g1(x) soit un diviseur du polynôme xNO + 1; - n, un multiple impair de NO; - une séquence u de n symboles ui à coder; et - e, une puissance de 2, pour laquelle le résidu de e modulo NO est égal à 1, 2/ comporte: - une opération de constitution d'une séquence dite"concaténée" uu* constituée successivement, d'une part, de la séquence de symboles u, comportant n symboles, et, d'autre part, d'une séquence de symboles u* définie par sa représentation polynomiale, u*(x) = u(xe) modulo x%,+1 - une opération de codage comportant au moins une division de la séquence concaténée uu* par le polynôme g1(x) pour former une séquence dite
" de contrôle ".
Grâce à ces dispositions, I'ajout de bits de padding est inutile. Le
rendement est donc meilleur et la mise en oeuvre de l'invention est simplifiée.
Selon un deuxième aspect, la présente invention vise un procédé de décodage caractérisé en ce que: 1/ il prend en compte au moins un critère de choix lié à une transmission de symboles binaires représentatifs d'une grandeur physique, 2/ il comporte une opération de sélection de paramètres de transmission, en fonction d'au moins un critère de choix, chaque dit paramètre de transmission sélectionné étant dans l'ensemble de paramètres comportant: - un entier MI, égal à 2, - un nombre K, supérieur ou égal à 1, de séquences vi (i=1,..., K+M1) de symboles à décoder, - un polynôme diviseur gi(x), - un entier M, - un couple entrelaceur-désentrelaceur, et - un polynôme multiplicateur fij(x), 3/ il comporte une opération d'entrée du nombre K+M1 de séquences v'i (i=1,...,K+M1) de symboles à décoder, 4/ il comporte une opération de décodage de K séquences de symboles mettant en oeuvre les polynômes diviseurs gj(x), ladite opération de
décodage fournissant K séquences dites " décodées ".
/ il comporte une opération de permutation, ladite permutation étant, dans une représentation o les données binaires de chaque séquence vi 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 gex) pouvant être égal à gi(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,
au moins une séquence permutée aj* étant différente de la
séquence ai correspondante.
L'invention vise aussi - un moyen de stockage d'information lisible par un ordinateur ou un microprocesseur conservant des instructions d'un programme informatique, caractérisé en ce qu'il permet la mise en oeuvre du procédé de l'invention tel que succinctement exposé ci-dessus, et - un moyen de stockage d'information amovible, partiellement ou totalement, lisible par un ordinateur ou un microprocesseur conservant des instructions d'un programme informatique, caractérisé en ce qu'il permet la mise en oeuvre du procédé de
I'invention tel que succinctement exposé ci-dessus.
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é à 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é ci-dessus, 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.
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 l'art antérieur et 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, et - les figures 13 et 14 représentent des organigrammes de génération d'entrelaceurs selon deux variantes susceptibles d'être mises en oeuvre au
cours du fonctionnement illustré en figures 11 et 12.
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 v, 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 vi, yv2 et y3 sont transmises pour être,
ensuite, décodées.
Dans la suite de la description, on ne s'intéresse qu'aux
entrelaceurs de type " x vers xe " bien que, on le rappelle la présente invention ne se limite pas à ce type d'entrelaceur mais concerne, plus généralement, tous les entrelaceurs qui, 1/ à partir de séquences ai possédant: une représentation polynomiale ai(x) multiple d'un polynôme g1(x), et 5. 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 XN +l soit divisible par chaque polynôme diviseur g1(x); 2/ produisent des séquences dites " permutées ", aw*, (i=1,...,K; j=1,...,M1), chaque séquence aó* é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: 15. soit a la propriété de transformer le code cyclique de longueur NO et de polynôme générateur g1(x) en un code cyclique équivalent de polynôme générateur g(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 aj*(x) qui est égale à un produit polynomial ci.(x)gij(x), - au moins une séquence permutée a1j* étant différente de la séquence ai correspondante, 3/ pour que des codeurs élémentaires produisent des séquences redondantes (aussi appelée "de contrôle") dont la représentation polynomiale est égale à E fj(x) cij(x), pour j=1,..., M1, chaque polynôme fj(x) étant un polynôme de degré au plus égal au degré du polynôme gu(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 vi 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.
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. 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 MI, égal ou supérieur à 1, - un polynôme diviseur gi(x), - un entier M, - un entrelaceur, - un polynôme multiplicateur fqj(x), et
- une longueur de séquence, n.
En ce qui concerne la détermination du nombre n, connaissant le degré m- 1 du polynôme g(x), ce nombre, n répond aux conditions d'être - supérieur ou égal à (n'+m), - multiple de NO, le plus petit entier tel que xN +1 soit divisible par g(x), et
- impair.
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 "x vers Xe", n étant
déterminé, il suffit de sélectionner la valeur de e.
Pour cela, on aura, au préalable, construit une table donnant, pour chaque valeur de n possible, la meilleure valeur de e. On n'a alors qu'à lire
dans cette table, placée en mémoire non volatile, la bonne valeur de e.
En variante, la même valeur de e, par exemple 32, est choisie
pour toutes les valeurs de n possibles.
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 de manière algébrique, 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 complémentaires 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 complémentaires 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 sont effectuées - une opération de retrait, 206 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 l'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 v2, aux bits nuls ajoutés, dans la séquence v,, au cours de l'opération de stuffing 204, sont retirés de la séquence yv2 pour produire une séquence appelée V'2 qui possède ainsi la longueur n-s; - 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; - 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 3N0 et impair. 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 récupè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'i 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, si un entrelaceur " x vers xe " est défini avec e=2'modulo n,
I'entrelaceur inverse est du même type, " x vers xe " avec e'=2-'i modulo n.
Dans la suite de la description, e-1 est cette valeur de e'.
Le turbo-décodeur 211 décode la trame avec l'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.
Nous allons maintenant donner un exemple numérique, dans lequel n' = 139, g(x) = 1 + x + x3. On en déduit alors m = 3, NO = 7, n =147 et s
= 5. Pour n = 147, la valeur de e est choisie comme égale à 25.
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 yv3, un premier décodeur 304 correspondant au codeur 102 (figure 1) et recevant les séquences vi et v2 ainsi qu'une séquence d'information extrinsèque w4 exposée plus loin, fournit une séquence d'estimation a posteriori w1, - un entrelaceur 305, identique à l'entrelaceur 103 utilisé dans le codeur, qui reçoit la séquence w, et l'entrelace en w2, - un deuxième décodeur 306, correspondant au codeur 104 et recevant les séquences w2 et y3, 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
w3 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 impaire de NO, - les séquences vy, yv2 et y3, dont les deux dernières résultent du codage de la première, - les séquences v'l, v'2 et y3, (y', étant identique à la séquence a), et - la trame radio qui contient, comme charge utile, les séquences
v'1, v'2etv3.
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. 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 valeur de e, pour chaque valeur de n possible, dans le dispositif de codage et d'émission, et - une valeur de e ainsi que la valeur associée e4' pour chaque
valeur de n possible, 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'entree/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" dans lequel est conservée la valeur calculée de e, en fonction de la valeur de n, en mettant en oeuvre la mémoire non volatile 905, - un registre "entrelaceur" dans lequel est conservé le tableau définissant l'entrelaceur, en fonction de la valeur de e, - des registres "u", "a" et "an', 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' ", " v 2,,, " v'2 " et " yv3" 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 "M", 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 _q, dans un registre "g", - la séquence h, dans un registre "h",
- la table des valeurs de e associées aux valeurs de n possibles.
On donne, ci-dessous, un exemple de la table des valeurs de e associées à quelques valeurs de n possibles: n e
49 11
147 25
637 246
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 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" dans lequel est conservée la valeur calculée de e, en fonction de la valeur de n, en mettant en oeuvre la mémoire non volatile 1005, - un registre "e-1" dans lequel est conservée la valeur calculée de e, en fonction de la valeur de n, enmettant en oeuvre la mémoire non volatile 1005, - un registre "entrelaceur" dans lequel est conservé le tableau définissant l'entrelaceur, en fonction de la valeur de e, - un registre "entrelaceur inverse" dans lequel est conservé le tableau définissant l'entrelaceur, en fonction de la valeur de e-1, - des registres "v'", " v'2",, et " v3,", dans lesquels sont respectivement conservées les séquences reçues, - des registres "w'" i2, "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 '?', 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 des valeurs de e associées aux valeurs de n possibles, et
- la table des valeurs de e'1 associées aux valeurs de n possibles.
On donne, ci-dessous, un exemple de la table des valeurs de e associées à quelques valeurs de n possibles n e
49 11
147 25
637 246
On donne, ci-dessous, un exemple de la table des valeurs de e-1 associées aux mêmes valeurs de n: n e-'
49 9
147 100
637 246
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, l'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, I'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
séquence 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 impair du nombre NO, qui est, on le rappelle, la plus petite valeur telle que le polynôme XNO+l 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 le nombre 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 I'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',, 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, l'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, l'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
impair 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, l'unité centrale 1000 effectue la génération de l'entrelaceur et de l'entrelaceur inverse, en prenant en compte la valeur de e et celle de e-1, qui sont associées à 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.
On observe, en figure 13, que, pour générer un entrelaceur, I'unité centrale 900 effectue tout d'abord une opération d'initialisation 1301, 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 n et la valeur de e qui lui correspond dans la table conservée en mémoire non volatile 905. Ensuite, au cours d'une opération 1302, la valeur de la -ième donné conservée dans l'entrelaceur est calculée comme étant égale à la valeur de i multiplié par e, modulo n. Ensuite, au cours d'une opération 1303, l'unité centrale 900 incrémente de 1 la valeur de la variable i. Puis, au cours d'un test 1304, l'unité centrale 900 détermine si la valeur de la variable i est égale à n-1,
ou non.
Lorsque le résultat du test 1304 est négatif, l'opération 1302 est réitérée. Lorsque le résultat du test 1304 est positif, l'opération de génération
d'entrelaceur 1106 est achevée.
En figure 14, on observe une procédure préférentielle, suivie par I'unité centrale 900 pour générer l'entrelaceur, 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 14 sont identiques à celles qui sont illustrées en figure 13, à l'exception de l'opération 1302 qui est remplacée par une opération 1402 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 n.
On comprend qu'une simple addition remplace ici une multiplication, ce qui simplifie cette opération 1402 et peut réduire
considérablement sa durée, par rapport à l'opération 1302.
Selon une variante non représentée, le critère choix qui est utilisé pour choisir l'entrelaceur qui garantit le retour à zéro et les polynômes générateurs, n'est plus la longueur de la séquence d'entrée, mais le type de canal de transmission utilisé entre le dispositif de codage et le dispositif de décodage, la qualité de ce canal, la qualité de transmission à garantir, le type de données (audio, vidéo, données,... ) qui est représenté par les symboles à
coder,...
A titre, d'exemple, si le canal est de mauvaise qualité (mauvais rapport signal/bruit), ou si la qualité garantie doit être élevée, le degré d'au moins l'un des polynômes générateurs (multiplicateur ou diviseur), sera choisi
plus élevé pour les des critères de choix de valeurs moyennes.
En variante, la même valeur de e, par exemple 32, est choisie
pour toutes les valeurs de n possibles.
Dans une variante non représentée, le codage est effectué par concaténation de la manière suivante: Soient: - g(x) le polynôme diviseur d'un turbocodeur,; - NO le plus petit entier tel que g(x) soit un diviseur du polynôme xN + 1; et
- n un multiple impair de NO: n = M NO.
g(x) étant un polynôme sans diviseur carré, NO est un nombre
impair.
Dans cette variante, les polynômes diviseur g(x) et multiplicateur h(x) agissent sur la séquence dite " concaténée " contenant successivement: une séquence u de n symboles binaires ui, puis - une séquence entrelacée u* produite selon la règle suivante: u*(x) = u(xe) modulo x'+1, pour toute valeur de e qui est une puissance de 2, pour laquelle le résidu de e modulo NO est égal à 1 et donc définie par sa représentation polynomiale,
uu*(x) = u(x) + x" u*(x).
On observe que le polynôme multiplicateur h(x) est, préférentiellement, de degré inférieur ou égal à celui de g(x) pour ce type de turbocodage. La mise en oeuvre de la présente invention permet alors de déterminer les paramètres de transmission suivants - le polynôme diviseur g(x), - le polynôme multiplicateur h(x), - la valeur de e,
- la longueur n de la séquence u.
en fonction des critères de choix exposés supra.

Claims (65)

REVENDICATIONS
1. Procédé de codage caractérisé en ce que: 1/ il prend en compte au moins un critère de choix lié à une transmission de symboles binaires représentatifs d'une grandeur physique, 2/ il comporte une opération de sélection de paramètres de transmission (202, 1103), en fonction d'au moins un critère de choix, chaque dit paramètre de transmission sélectionné étant dans l'ensemble de paramètres comportant: - un nombre K, supérieur ou égal à 1, de séquences ai (i=1..., K) de symboles binaires, à coder, - un entier Ml, égal ou supérieur à 2, - un polynôme diviseur gi(x), - un entier M, - un entrelaceur, et - un polynôme multiplicateur fij(x), 3/ il comporte une opération d'entrée (1102) du nombre K de séquences ai (i=1...,.K) de données binaires, chaque séquence ai possédant: une représentation polynomiale ai(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 xN +1 soit divisible par chaque polynôme diviseur gi(x); 4/il comporte une première opération de production d'un nombre K*M1 de séquences dites " permutées " (205, 1107), as,*, (i=1,....,K;j=1...,M1), chaque séquence aj* - é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 g,(x) en un code cyclique équivalent de polynôme générateur g"{x) pouvant être égal à gi(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;
- possédant, en conséquence, une représentation polynomiale aij*(x) qui est égale à un produit polynomial ci(x)gu(x), - au moins une séquence permutée aij* étant différente de la séquence ai correspondante, / il comporte une deuxième opération de production de Ml séquences redondantes (205, 1107) dont la représentation polynomiale est égale à E fij(x) cil(x), pour j=1,...,M1, chaque polynôme fij(x) étant un polynôme
de degré au plus égal au degré du polynôme gj(x) de mêmes indices i etj.
2. Procédé de codage selon la revendication 1, caractérisé en ce que l'opération d'entrée comporte une opération d'ajout, à chacune de K séquences u (i=1,..., K) de symboles binaires dits " complémentaires " pour
produire la séquence ai.
3. Procédé de codage selon la revendication 2, caractérisé en ce que, au cours de l'opération d'ajout, on ajoute, à chaque séquence _,, des données complémentaires dites " de padding " dont le nombre est égal au degré du polynôme diviseur g(x), et qui garantissent la divisibilité de la représentation polynomiale de la séquence résultant de l'opération d'ajout par
le polynôme diviseur g(x).
4. Procédé de codage selon l'une quelconque des revendications
2 ou 3, caractérisé en ce que l'opération d'ajout comporte une opération de bourrage au cours de laquelle on ajoute des données complémentaires dites " de stuffing ", de valeur prédéterminée, qui garantissent que le nombre n de symboles de la séquence binaire résultant de l'opération de bourrage réponde aux conditions d'être: - supérieur ou égal à (n'+m), multiple de NO, le plus petit entier tel que xNO+l soit divisible par g(x), et
- impair.
5. Procédé de codage selon la revendication 4, caractérisé en ce que au moins une des séquences résultant de l'opération de codage ne fait l'objet d'aucun entrelacement et en ce qu'il comporte une opération de retrait de données sur au moins une séquence résultant de l'opération de codage n'ayant
fait l'objet d'aucun entrelacement.
6. Procédé de codage selon la revendication 1, caractérisé en ce que l'opération d'entrée comporte une opération de lecture de chacune de K
séquences ui (i=1..., K) pour produire la séquence ai.
7. Procédé de codage selon l'une quelconque des revendications
2 à 6, caractérisé en ce que, au cours de l'opération de sélection de paramètres de transmission, on prend en compte la longueur de la séquence u de
symboles _. à coder.
8. Procédé de codage selon l'une quelconque des revendications
1 à 7, caractérisé en ce que, au cours de l'opération de sélection de paramètres de transmission, on prend en compte un canal de transmission de la séquence codée.
9. Procédé de codage selon la revendication 8, caractérisé en ce que, au cours de l'opération de sélection de paramètres de transmission, on prend en compte le rapport signal/bruit du canal de transmission de la
séquence codée.
10. Procédé de codage selon l'une quelconque des revendications
1 à 9, caractérisé en ce que, au cours de l'opération de sélection de paramètres de transmission, on prend en compte le type de données représenté par les
symboles à coder.
11. Procédé de codage selon l'une quelconque des revendications
1 à 10, caractérisé en ce que, au cours de l'opération de sélection de paramètres de transmission, on prend en compte une qualité de service garantie pour la transmission des symboles à coder.
12. Procédé de codage selon l'une quelconque des revendications
1 à 11, caractérisé en ce que, au cours de l'opération de sélection de
paramètres de transmission, on prend en compte un rendement de codage.
13. Procédé de codage selon l'une quelconque des revendications
1 à 12, caractérisé en ce que, au cours de la première opération de production d'un nombre K*M1 de séquences dites " permutées ", au*, (i=1,.
,K; j=1,...,M1), chaque séquence aj* possède une représentation polynomiale égale à aij*(x)=a?*(xe4), modulo (xn+1), o - n est le produit du nombre M par l'entier NO, - eij est un nombre relativement premier avec n, - le polynôme gy(x) est le polynôme générateur du plus petit code cyclique de longueur NO contenant le polynôme g1(xei) modula (xN0+1)
14. Procédé de codage selon la revendication 13, caractérisé en ce que, au cours de l'opération de sélection de paramètres de transmission, on sélectionne une valeur de l'exposant e, en fonction d'au moins un critère de..CLMF: choix.
15. Procédé de codage selon l'une quelconque des revendications
13 ou 14, caractérisé en ce qu'il comporte une opération de génération d'entrelaceur, ledit entrelaceur définissant les permutations effectuées au cours de la première opération de production et en ce que, au cours de ladite opération de génération, I'entrelaceur est constitué par la mise en oeuvre
itérative d'une opération d'addition, modulo un nombre prédéterminé.
16. Procédé de codage selon l'une quelconque des revendications
1 à 15, caractérisé en ce que: 1/il prend en compte: - une valeur de K égale à 1, - un polynôme sans carré gi(x), - NO, le plus petit entier tel que gi(x) soit un diviseur du polynôme
XNO + 1;
- n, un multiple impair de NO; - une séquence u de n symboles u,- à coder; et - e, une puissance de 2, pour laquelle le résidu de e modulo NO est égal à 1, 2/ il comporte: - une opération de constitution d'une séquence dite "concaténée" uu* constituée successivement, d'une part, de la séquence de symboles u, comportant n symboles, et, d'autre part, d'une séquence de symboles u* définie par sa représentation polynomiale, u*(x) = u(xe) modulo xn+1, - une opération de codage comportant au moins une division de la séquence concaténée uu* par le polynôme gî(x) pour former une séquence dite
" de contrôle ".
17. Procédé de décodage caractérisé en ce que: 1/ il prend en compte au moins un critère de choix lié à une transmission de symboles binaires représentatifs d'une grandeur physique, 2/ il comporte une opération de sélection de paramètres de transmission, en fonction d'au moins un critère de choix, chaque dit paramètre de transmission sélectionné étant dans l'ensemble de paramètres comportant: - un entier Ml, égal à 2, - un nombre K, supérieur ou égal à 1, de séquences v; (i=1,
., K+Ml) de symboles à décoder, - un polynôme diviseur g,(x), - un entier M, - un couple entrelaceur-désentrelaceur, et - un polynôme multiplicateur fj(x), 3/ il comporte une opération d'entrée du nombre K+ M1 de séquences v', (i=1,...,K+M1) de symboles à décoder, 4/ il comporte une opération de décodage de K séquences de symboles mettant en oeuvre les polynômes diviseurs g.j(x), ladite opération de.. CLMF: décodage fournissant K séquences dites " décodées ".
/ il comporte une opération de permutation, ladite permutation étant, dans une représentation o les données binaires de chaque séquence vi 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 à gi(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,
au moins une séquence permutée au* étant différente de la
séquence ai correspondante.
18. Procédé de décodage selon la revendication 17, caractérisé en ce qu'il comporte, à la suite de l'opération de décodage, une opération de retrait, de chaque séquence décodée a, (i=1..., K) de symboles binaires dits
" complémentaires ", pour produire une séquence d'information transmise us.
19. Procédé de décodage selon la revendication 18, caractérisé en ce que l'opération de retrait comporte une opération de retrait de données complémentaires dites " de stuffing ", de valeur prédéterminée, qui garantissent que le nombre n de symboles de la séquence binaire résultant de l'opération de bourrage réponde aux conditions d'être - supérieur ou égal à (n'+m), - multiple de NO, le plus petit entier tel que xN +1 soit divisible par g(x), et
- impair.
20. Procédé de décodage selon l'une quelconque des
revendications 17 à 19, caractérisé en ce que, au cours de l'opération de
sélection de paramètres de transmission, on prend en compte la longueur de la
séquence transmise.
21. Procédé de décodage selon l'une quelconque des
revendications 17 à 20, caractérisé en ce que, au cours de l'opération de
sélection de paramètres de transmission, on prend en compte un canal de
transmission de la séquence codée.
22. Procédé de décodage selon la revendication 21, caractérisé en ce que, au cours de l'opération de sélection de paramètres de transmission, on prend en compte le rapport signal/bruit du canal de transmission de la
séquence codée.
23. Procédé de décodage selon l'une quelconque des
revendications 17 à 22, caractérisé en ce que, au cours de l'opération de
sélection de paramètres de transmission, on prend en compte le type de
données représenté par les symboles à coder.
24. Procédé de décodage selon l'une quelconque des
revendications 17 à 23, caractérisé en ce que, au cours de l'opération de
sélection de paramètres de transmission, on prend en compte une qualité de
service garantie pour la transmission des symboles à coder.
25. Procédé de décodage selon l'une quelconque des
revendications 17 à 24, caractérisé en ce que, au cours de l'opération de
sélection de paramètres de transmission, on prend en compte un rendement de codage.
26. Procédé de décodage selon l'une quelconque des
revendications 17 à 25, caractérisé en ce que, au cours de l'opération de
permutation, on produit un nombre K*M1 de séquences dites " permutées ", aY-*, (i=1,...,K; j= 1,...,M1), chaque séquence aj* possédant une représentation polynomiale égale à aj*(x)=ai*(xe), modulo (x%+1), o - n est le produit du nombre M par l'entier NO, - ej est un nombre relativement premier avec n, - le polynôme g.(x) est le polynôme générateur du plus petit code cyclique de longueur NO contenant le polynôme g1(xeI) modulo
(XN0+1)
27. Procédé de décodage selon la revendication 26, caractérisé en ce que, au cours de l'opération de sélection de paramètres de transmission, on sélectionne une valeur de l'exposant e, en fonction d'au moins un critère de choix.
28. Procédé de décodage selon l'une quelconque des
revendications 26 ou 27, caractérisé en ce qu'il comporte une opération de
génération d'entrelaceur, ledit entrelaceur définissant les permutations effectuées au cours de la première opération de production et en ce que, au cours de ladite opération de génération, l'entrelaceur est constitué par la mise
en oeuvre itérative d'une opération d'addition, modulo un nombre prédéterminé.
29. Procédé de décodage selon l'une quelconque des
revendications 17 à 28, caractérisé en ce que:
1/il prend en compte: - une valeur de K égale à 1, - un polynôme sans carré g(x), - NO, le plus petit entier tel que g(x) soit un diviseur du polynôme XNO +1; - n, un multiple impair de NO; - une séquence u de n symboles u. à coder; et - e, une puissance de 2, pour laquelle le résidu de e modulo NO est égal à 1, 2/ ladite opération de permutation d'une séquence u en une séquence u* est définie par sa représentation polynomiale, u*(x) = u(xe) modulo xn+1.
30. Dispositif de codage caractérisé en ce qu'il comporte un moyen de traitement adapté à: 1/ prendre en compte au moins un critère de choix lié à une transmission de symboles binaires représentatifs d'une grandeur physique, 2/ à sélectionner au moins un paramètre de transmission, en fonction d'au moins un critère de choix, chaque dit paramètre de transmission sélectionné étant dans l'ensemble de paramètres comportant: - un nombre K, supérieur ou égal à 1, de séquences ai (i=1,..., K) de symboles binaires, à coder, un entier MI, égal ou supérieur à 2, - un polynôme diviseur gi(x), - un entier M, - un entrelaceur, et - un polynôme multiplicateur ftj(x), 3/ à recevoir un nombre K de séquences a, (i=1,...,K) de données binaires, chaque séquence a, possédant: a une représentation polynomiale a,(x) multiple d'un polynôme g,(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 xN +l soit divisible par chaque polynôme diviseur gi(x); 4/ à produire un nombre K*M1 de séquences dites " permutées ", ail*, (i=1,...,K;j=1,...,MI), chaque séquence aj* - é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 a, 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 gij(x) pouvant être égal à gi(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 c,1(x)gi.(x), - au moins une séquence permutée au* étant différente de la séquence ai correspondante, / à produire M1 séquences redondantes dont la représentation polynomiale est égale à Z fij(x) c1.(x), pour j=1,...,M1, chaque polynôme fe(x) étant un polynôme de degré au plus égal au degré du polynôme g,.(x) de
mêmes indices i et j.
31. Dispositif de codage selon la revendication 30, caractérisé en ce que le moyen de traitement est adapté ajouter, à chacune de K séquences ui (i=1,..., K) de symboles binaires dits " complémentaires " pour produire la
séquence a,.
32. Dispositif de codage selon la revendication 31, caractérisé en ce que le moyen de traitement est adapté à ajouter, à chaque séquence ui, des données complémentaires dites " de padding " dont le nombre est égal au degré du polynôme diviseur g(x), et qui garantissent la divisibilité de la représentation polynomiale de la séquence résultant de l'opération d'ajout par
le polynôme diviseur g(x).
33. Dispositif de codage selon l'une quelconque des
revendications 31 ou 32, caractérisé en ce que le moyen de traitement est
adapté à ajouter des données complémentaires dites " de stuffing ", de valeur prédéterminée, qui garantissent que le nombre n de symboles de la séquence binaire résultant de l'opération de bourrage réponde aux conditions d'être: - supérieur ou égal à (n'+m), - multiple de NO, le plus petit entier tel que xNo+l soit divisible par g(x), et - impair.
34. Dispositif de codage selon la revendication 33, caractérisé en ce que le moyen de traitement est adapté à ce que au moins une des séquences résultant de l'opération de codage ne fait l'objet d'aucun entrelacement à retirer des données sur au moins une séquence résultant de
l'opération de codage n'ayant fait l'objet d'aucun entrelacement.
35. Dispositif de codage selon la revendication 30, caractérisé en ce que le moyen de traitement est adapté à lire dans une source d'information
chacune de K séquences ui (i=1,..., K) pour produire la séquence ai.
36. Dispositif de codage selon l'une quelconque des
revendications 31 à 35, caractérisé en ce que le moyen de traitement est
adapté à prendre en compte la longueur de la séquence u de symboles _ à
coder pour sélectionner les paramètres de transmission.
37. Dispositif de codage selon l'une quelconque des
revendications 30 à 36, caractérisé en ce que le moyen de traitement est
adapté à prendre en compte un canal de transmission de la séquence codée
pour sélectionner les paramètres de transmission.
38. Dispositif de codage selon la revendication 37, caractérisé en ce que le moyen de traitement est adapté à prendre en compte le rapport signal/bruit du canal de transmission de la séquence codée pour sélectionner
les paramètres de transmission.
39. Dispositif de codage selon l'une quelconque des
revendications 30 à 38, caractérisé en ce que le moyen de traitement est
adapté à prendre en compte le type de données représenté par les symboles à
coder pour sélectionner les paramètres de transmission.
40. Dispositif de codage selon l'une quelconque des
revendications 30 à 39, caractérisé en ce que le moyen de traitement est
adapté à prendre en compte une qualité de service garantie pour la transmission des symboles à coder pour sélectionner les paramètres de
transmission.
41. Dispositif de codage selon l'une quelconque des
revendications 30 à 40, caractérisé en ce que le moyen de traitement est
adapté à prendre en compte un rendement de codage pour sélectionner les
paramètres de transmission.
42. Dispositif de codage selon l'une quelconque des
revendications 30 à 41, caractérisé en ce que le moyen de traitement est
adapté, pour produire le nombre K*M1 de séquences dites " permutées ", a:*, (i=1,...,.K; j=1,....M1), à ce que chaque séquence a,* possède une représentation polynomiale égale à au*(x)=a*(xe ), modulo (xn+l1), o - n est le produit du nombre M par l'entier NO, - eij est un nombre relativement premier avec n, - le polynôme gi.(x) est le polynôme générateur du plus petit code cyclique de longueur NO contenant le polynôme gi(xe;l) modulo
(XN + 1)
43. Dispositif de codage selon la revendication 42, caractérisé en ce que le moyen de traitement est adapté, pour sélectionner des paramètres de transmission, à sélectionner une valeur de l'exposant e, en fonction d'au moins
un critère de choix.
44. Dispositif de codage selon l'une quelconque des
revendications 42 ou 43, caractérisé en ce que le moyen de traitement est
adapté à générer un entrelaceur, ledit entrelaceur définissant les permutations effectuées pour produire les séquences permutées, I'entrelaceur généré étant constitué par la mise en ceuvre itérative d'une opération d'addition, modulo un
nombre prédéterminé.
45. Dispositif de codage selon l'une quelconque des
revendications 30 à 44, caractérisé en ce que le moyen de traitement est
adapté: 1/ à prendre en compte: - une valeur de K égale à 1, - un polynôme sans carré g1(x), - NO, le plus petit entier tel que gi(x) soit un diviseur du polynôme
XN"+ 1;
- n, un multiple impair de NO; - une séquence u de n symboles uj à coder; et - e, une puissance de 2, pour laquelle le résidu de e modulo NO est égal à 1, 2/ à constituer une séquence dite "concaténée" uu* constituée successivement, d'une part, de la séquence de symboles u, comportant n symboles, et, d'autre part, d'une séquence de symboles u* définie par sa représentation polynomiale, u*(x) = u(xe) modulo xn+l, 3/ à coder la séquence concaténée uu* en mettant au moins en oeuvre une division par le polynôme g1(x) pour former une séquence dite " de
contrôle ".
46. Dispositif de décodage caractérisé en ce qu'il comporte un moyen de traitement est adapté: 1/ à prendre en compte au moins un critère de choix lié à une transmission de symboles binaires représentatifs d'une grandeur physique, 2/ à sélectionner au moins un paramètres de transmission, en fonction d'au moins un critère de choix, chaque dit paramètre de transmission sélectionné étant dans l'ensemble de paramètres comportant: un entier MI, égal à 2, - un nombre K, supérieur ou égal à 1, de séquences vi (i=1,..., K+M1) de symboles à décoder, - un polynôme diviseur g1(x), un entier M, - un couple entrelaceur-désentrelaceur, et - un polynôme multiplicateur fj(x), 3/ à recevoir un nombre K+M1 de séquences v' (i=1...,.K+M1) de symboles à décoder, 4/ à décoder K séquences de symboles dites "décodées" en mettant en oeuvre les polynômes diviseurs gij(x), 5/ à effectuer une permutation, ladite permutation étant, dans une représentation o les données binaires de chaque séquence vy 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 gi(x) pouvant être égal à g,(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,
au moins une séquence permutée aj* étant différente de la
séquence ai correspondante.
47. Dispositif de décodage selon la revendication 46, caractérisé en ce que le moyen de traitement est adapté, à la suite du décodage, à retirer, de chaque séquence décodée ai (i=1,... K), au moins un symbole binaire dit
" complémentaire ", pour produire une séquence d'information transmise u, .
48. Dispositif de décodage selon la revendication 47, caractérisé en ce que le moyen de traitement est adapté à retirer au moins une donnée complémentaire dite " de stuffing ", de valeur prédéterminée, qui garantissent que le nombre n de symboles de la séquence binaire résultant de l'opération de bourrage réponde aux conditions d'être: - supérieur ou égal à (n'+m), - multiple de NO, le plus petit entier tel que xNO+l soit divisible par g(x), et
- impair.
49. Dispositif de décodage selon l'une quelconque des
revendications 46 à 48, caractérisé en ce que le moyen de traitement est
adapté à prendre en compte la longueur de la séquence transmise pour
sélectionner les paramètres de transmission.
50. Dispositif de décodage selon l'une quelconque des
revendications 46 à 49, caractérisé en ce que le moyen de traitement est
adapté à prendre en compte un canal de transmission de la séquence codée
pour sélectionner les paramètres de transmission.
51. Dispositif de décodage selon la revendication 50, caractérisé en ce que le moyen de traitement est adapté à prendre en compte le rapport signal/bruit du canal de transmission de la séquence codée pour sélectionner
les paramètres de transmission.
52. Dispositif de décodage selon l'une quelconque des
revendications 46 à 51, caractérisé en ce que le moyen de traitement est
adapté à prendre en compte le type de données représenté par les symboles à
coder pour sélectionner les paramètres de transmission.
53. Dispositif de décodage selon l'une quelconque des
revendications 46 à 52, caractérisé en ce que le moyen de traitement est
adapté à prendre en compte une qualité de service garantie pour la transmission des symboles à coder pour sélectionner les paramètres de transmission.
54. Dispositif de décodage selon l'une quelconque des
revendications 46 à 53, caractérisé en ce que le moyen de traitement est
adapté à prendre en compte un rendement de codage pour sélectionner les
paramètres de transmission.
55. Dispositif de décodage selon l'une quelconque des
revendications 46 à 54, caractérisé en ce que le moyen de traitement est
adapté, au cours de l'opération de permutation, on produit un nombre K*M1 de séquences dites " permutées ">, aj*, (i1,...,K;j=1,...,.M1), chaque séquence aij* possédant une représentation polynomiale égale à aj. *(x)=ai*(xel), modulo (xn+1), o - n est le produit du nombre M par l'entier NO, - eij est un nombre relativement premier avec n, - le polynôme gj(x) est le polynôme générateur du plus petit code cyclique de longueur NO contenant le polynôme gj(xe0) modulo (XN0+1j)
56. Dispositif de décodage selon la revendication 55, caractérisé en ce que le moyen de traitement est adapté à sélectionne une valeur de l'exposant e, comme paramètre de transmission, en fonction d'au moins un
critère de choix.
57. Dispositif de décodage selon l'une quelconque des
revendications 55 ou 56, caractérisé en ce que le moyen de traitement est
adapté à générer un entrelaceur définissant les permutations effectuées au cours de la première opération de production, ledit entrelaceur étant constitué par la mise en oeuvre itérative d'une opération d'addition, modulo un nombre prédéterminé.
58. Dispositif de décodage selon l'une quelconque des
revendications 46 à 57, caractérisé en ce que le moyen de traitement est
adapté: 1/ à prendre en compte: - une valeur de K égale à 1, - un polynôme sans carré g(x), - NO, le plus petit entier tel que g(x) soit un diviseur du polynôme xN +1; - n, un multiple impair de NO; - une séquence u de n symboles ui à coder; et - e, une puissance de 2, pour laquelle le résidu de e modulo NO est égal à 1, 2/ à effectuer ladite opération de permutation d'une séquence u en une séquence u* selon la relation de leur représentation polynomiale: u*(x) =
u(xe) modulo xn+1.
59. Dispositif de traitement de signaux représentatifs de parole, caractérisé en ce qu'il comporte un dispositif de codage selon l'une quelconque
des revendications 30 à 45 ou un dispositif de décodage selon l'une quelconques des revendications 46 à 58.
60. 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 l'une quelconque
des revendications 30 à 45 ou un dispositif de décodage selon l'une
quelconques des revendications 46 à 58 ou un dispositif de traitement de
signaux représentatifs de parole selon la revendication 59.
61. Dispositif de transmission de données selon la revendication 60, caractérisé en ce que ledit protocole est le protocole ATM (acronyme des
mots anglais "Asynchronous Transfert Mode") mode de transfert asynchrone.
62. Dispositif de transmission de données selon la revendication
, caractérisé en ce que ledit protocole est le protocole de type ETHERNET.
63. 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 l'une quelconque des revendications 30 à 45 ou un dispositif
de décodage selon l'une quelconques des revendications 46 à 58.
64. 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 l'une quelconque des revendications 30 à 45 ou
un dispositif de décodage selon l'une quelconques des revendications 46 à 58.
65. Station de réseau, caractérisé en ce qu'il comporte un
dispositif de codage selon l'une quelconque des revendications 30 à 45 ou un
dispositif de décodage selon l'une quelconques des revendications 46 à 58.
FR9814085A 1998-11-09 1998-11-09 Dispositif et procede d'adaptation des turbocodeurs et des decodeurs associes a des sequences de longueur variable Pending FR2785743A1 (fr)

Priority Applications (5)

Application Number Priority Date Filing Date Title
FR9814085A FR2785743A1 (fr) 1998-11-09 1998-11-09 Dispositif et procede d'adaptation des turbocodeurs et des decodeurs associes a des sequences de longueur variable
DE69943157T DE69943157D1 (de) 1998-11-09 1999-11-05 Vorrichtung und Verfahren zur Anpassung von Turbokodern und den verbundenen Dekodern an Sequenzen von veränderlicher Länge
EP99402760A EP1001544B1 (fr) 1998-11-09 1999-11-05 Dispositif et procédé d'adaptation des turbocodeurs et des décodeurs associés à des séquences de longueur variable
US09/435,351 US6766489B1 (en) 1998-11-09 1999-11-08 Device and method of adapting turbocoders and the associated decoders to sequences of variable length
JP31882799A JP4553330B2 (ja) 1998-11-09 1999-11-09 符号化装置及び方法、復号装置及び方法、情報処理装置及び方法、並びに記憶媒体

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
FR9814085A FR2785743A1 (fr) 1998-11-09 1998-11-09 Dispositif et procede d'adaptation des turbocodeurs et des decodeurs associes a des sequences de longueur variable

Publications (1)

Publication Number Publication Date
FR2785743A1 true FR2785743A1 (fr) 2000-05-12

Family

ID=9532541

Family Applications (1)

Application Number Title Priority Date Filing Date
FR9814085A Pending FR2785743A1 (fr) 1998-11-09 1998-11-09 Dispositif et procede d'adaptation des turbocodeurs et des decodeurs associes a des sequences de longueur variable

Country Status (5)

Country Link
US (1) US6766489B1 (fr)
EP (1) EP1001544B1 (fr)
JP (1) JP4553330B2 (fr)
DE (1) DE69943157D1 (fr)
FR (1) FR2785743A1 (fr)

Families Citing this family (31)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2802735B1 (fr) * 1999-12-20 2002-03-29 Canon Kk Procede et dispositif de codage, procede et dispositif de decodage, et systemes les mettant en oeuvre
FR2807895B1 (fr) * 2000-04-18 2002-06-07 Canon Kk Procedes et dispositifs de codage et de decodage 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
GB2384394A (en) * 2002-01-18 2003-07-23 Inmarsat Ltd Adapting transmission parameters to link conditions
US7376235B2 (en) * 2002-04-30 2008-05-20 Microsoft Corporation Methods and systems for frustrating statistical attacks by injecting pseudo data into a data system
KR20030085871A (ko) * 2002-05-02 2003-11-07 김환용 오류 정정 부호화 장치
FR2845220B1 (fr) * 2002-09-30 2004-12-17 Canon Kk Procedes et dispositifs pour le decodage des codes de geometrie algebrique a un point
FR2849514A1 (fr) * 2002-12-26 2004-07-02 Canon Kk Code de geometrie algebrique adapte aux erreurs en rafale
FR2853976B1 (fr) * 2003-04-16 2005-06-03 Canon Kk Codage d'informations par code de geometrie algebrique offrant deux options de decodage
US7227946B2 (en) * 2003-04-16 2007-06-05 Oregon Health & Science University Automated permutation method and apparatus
FR2858141A1 (fr) * 2003-07-21 2005-01-28 Canon Kk Codage d'informations par codes de reed-solomon raccourcis
JP4224370B2 (ja) * 2003-09-25 2009-02-12 パナソニック株式会社 入力制御装置及び入力制御方法
FR2860360B1 (fr) * 2003-09-29 2005-12-09 Canon Kk Dispositif de codage /decodage utilisant un codeur/decodeur de reed-solomon
FR2863794B1 (fr) * 2003-12-16 2006-03-03 Canon Kk Procedes et dispositifs de localisation d'erreurs pour les codes de geometrie algebrique
US7570695B2 (en) * 2003-12-18 2009-08-04 Intel Corporation Method and adaptive bit interleaver for wideband systems using adaptive bit loading
FR2865083B1 (fr) * 2004-01-13 2006-04-07 Canon Kk Decodage pour code de geometrie algebrique associe a un produit fibre.
FR2866998B1 (fr) * 2004-02-27 2006-05-19 Canon Kk Decodage et correction d'erreurs pour codes de geometrie algebrique
FR2867925B1 (fr) * 2004-03-22 2006-05-19 Canon Kk Codage de canal adapte aux erreurs rafale
FR2873518B1 (fr) * 2004-07-22 2008-12-19 Canon Kk Procede de codage et de decodage d'une sequence de mots, signal, codeur, decodeur, programmes d'ordinateur et moyens de stockage correspondants
WO2006020934A2 (fr) * 2004-08-13 2006-02-23 Conexant Systems, Inc. Systemes et procedes permettant de reduire le temps d'attente dans un systeme de transmission numerique
US20060218459A1 (en) * 2004-08-13 2006-09-28 David Hedberg Coding systems and methods
FR2880218B1 (fr) * 2004-12-23 2007-02-16 Canon Kk Procede de decodage pour codes de geometrie algebrique et dispositif associe
US7797615B2 (en) 2005-07-07 2010-09-14 Acer Incorporated Utilizing variable-length inputs in an inter-sequence permutation turbo code system
US7590920B2 (en) * 2005-08-05 2009-09-15 Hitachi Global Storage Technologies Netherlands, B.V. Reduced complexity error correction encoding techniques
US8074155B2 (en) * 2006-09-28 2011-12-06 Broadcom Corporation Tail-biting turbo coding to accommodate any information and/or interleaver block size
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
JP4282725B2 (ja) * 2007-02-28 2009-06-24 富士通株式会社 復号装置、及び復号方法
EP2219311B1 (fr) * 2007-12-07 2017-09-27 Fujitsu Limited Dispositif de relais
WO2024106297A1 (fr) * 2022-11-15 2024-05-23 承鎬 韓 Procédé de conception de turbo-code, dispositif de conception de turbo-code et support d'enregistrement stockant un programme de conception de turbo-code

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0555998A2 (fr) * 1992-02-14 1993-08-18 AT&T Corp. Cadrage de paquets
EP0566215A2 (fr) * 1986-09-30 1993-10-20 Canon Kabushiki Kaisha Appareil de correction d'erreurs
EP0928071A1 (fr) * 1997-12-30 1999-07-07 Canon Kabushiki Kaisha Entrelaceur pour turbo-codeur

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5103459B1 (en) * 1990-06-25 1999-07-06 Qualcomm Inc System and method for generating signal waveforms in a cdma cellular telephone system
EP0588307B1 (fr) * 1992-09-14 1999-12-08 Ntt Mobile Communications Network Inc. Système de transmission des séquences de bits d'information
DE69628083T2 (de) * 1995-03-31 2003-12-04 Canon K.K., Tokio/Tokyo Bildverarbeitungsgerät und Methode
US5745503A (en) * 1995-04-11 1998-04-28 Nokia Mobile Phones Ltd. Error correction decoder that operates in either ARDS system or a RBDS system
US5727062A (en) * 1995-07-06 1998-03-10 Ritter; Terry F. Variable size block ciphers
FR2747255B1 (fr) * 1996-04-03 1998-07-10 France Telecom Procede et dispositif de codage convolutif de blocs de donnees, et procede et dispositif de decodage correspondants
JP4033245B2 (ja) * 1997-09-02 2008-01-16 ソニー株式会社 ターボ符号化装置およびターボ符号化方法
FR2773287A1 (fr) * 1997-12-30 1999-07-02 Canon Kk Entrelaceur, dispositif de codage, procede de permutation, procede de codage, dispositif et procede de decodage et systemes les mettant en oeuvre
US5978365A (en) * 1998-07-07 1999-11-02 Orbital Sciences Corporation Communications system handoff operation combining turbo coding and soft handoff techniques

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0566215A2 (fr) * 1986-09-30 1993-10-20 Canon Kabushiki Kaisha Appareil de correction d'erreurs
EP0555998A2 (fr) * 1992-02-14 1993-08-18 AT&T Corp. Cadrage de paquets
EP0928071A1 (fr) * 1997-12-30 1999-07-07 Canon Kabushiki Kaisha Entrelaceur pour turbo-codeur

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
BARBULESCU A S ET AL: "INTERLEAVER DESIGN FOR TURBO CODES", ELECTRONICS LETTERS, vol. 30, no. 25, 8 December 1994 (1994-12-08), pages 2107/2108, XP000501850, ISSN: 0013-5194 *
BARBULESCU A S ET AL: "Terminating the trellis of turbo-codes in the same state", ELECTRONICS LETTERS, 5 JAN. 1995, UK, vol. 31, no. 1, pages 22 - 23, XP002114029, ISSN: 0013-5194 *

Also Published As

Publication number Publication date
JP2000156646A (ja) 2000-06-06
EP1001544B1 (fr) 2011-01-26
JP4553330B2 (ja) 2010-09-29
US6766489B1 (en) 2004-07-20
EP1001544A1 (fr) 2000-05-17
DE69943157D1 (de) 2011-03-10

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
EP0891656B1 (fr) Procede et dispositif de codage convolutif de blocs de donnees, et procede et dispositif de decodage correspondants
EP0108655B1 (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é
FR2790621A1 (fr) Dispositif et procede d&#39;entrelacement pour turbocodage et turbodecodage
EP0848524A1 (fr) MAQ à codage perforé en trellis, avec décodage itératif
EP1332557A2 (fr) Module, dispositif et procede de decodage a haut debit, d&#39;un code concatene
EP0995272A1 (fr) Decodage iteratif de codes produits
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
FR2789824A1 (fr) Procede de correction d&#39;erreurs residuelles a la sortie d&#39;un turbo-decodeur
FR2785744A1 (fr) Procede et dispositif de codage de sequences de donnees, procede et dispositif de decodage associes
EP1098445B1 (fr) Méthode d&#39;entrelacement pour le turbocodage de données
FR2900294A1 (fr) Chargement de la memoire d&#39;entree d&#39;un decodeur ldpc avec des donnees a decoder
FR2540690A1 (fr) Verificateur de codeur
WO2007083066A1 (fr) Procedes d&#39;encodage et de decodage rapides et dispositifs associes
FR2807895A1 (fr) Procedes et dispositifs de codage et de decodage et systemes les mettant en oeuvre
EP1527521B1 (fr) Dispositif et procede de decodage robuste de codes arithmetiques
FR2802735A1 (fr) Procede et dispositif de codage, procede et dispositif de decodage, et systemes les mettant en oeuvre
FR2834146A1 (fr) Turbo-decodeur compact a haute efficacite
FR2838581A1 (fr) Procede de codage et/ou de decodage de codes correcteurs d&#39;erreurs, dispositifs et signal correspondants
FR2792476A1 (fr) Procede de type arq pour procede de transmission utilisant des turbo-codes, et dispositif associe
FR2888062A1 (fr) Codeur et turbo decodeur de code produit
EP0982866A1 (fr) Procédé de codage convolutif et de transmission par paquets d&#39;un flux série de données numériques, procédé et dispositif de décodage correspondants
WO2018115648A1 (fr) Codage et de décodage de paquets de données dans un corps de galois