Login| Sign Up| Help| Contact|

Patent Searching and Data


Title:
CONSTRUCTION OF TURBOCODES WITH COMPATIBLE RATES
Document Type and Number:
WIPO Patent Application WO/2018/172694
Kind Code:
A1
Abstract:
The invention relates to a method for coding a digital input message, carryingK information symbols, implementing a turbo-coder forming a turbocode and delivering the information symbols and redundancy symbols, a puncturing of the symbols delivered by the turbo-coder being performed according to at least one puncturing pattern (M_P) of length N, L = K/N defining the number of puncturing periods. The turbocode allows the coding of the message with a variable rate that can vary between a first rateR 1 termed the lowest and a second rateR z , termed the highest. According to the invention, the method (1) comprises: a joint optimization (2) of the interleaving and of the puncturing for the highest rateR z and thereafter - an addition (3) of an unpunctured position to at least one puncturing pattern for at least one period of the at least one pattern for a variation of the rate.

Inventors:
ABDEL NOUR CHARBEL (FR)
GARZON BOHORQUEZ RONALD (FR)
DOUILLARD CATHERINE (FR)
Application Number:
PCT/FR2018/050677
Publication Date:
September 27, 2018
Filing Date:
March 20, 2018
Export Citation:
Click for automatic bibliography generation   Help
Assignee:
ORANGE (FR)
International Classes:
H03M13/03; H03M13/27; H03M13/29
Domestic Patent References:
WO2016203039A12016-12-22
WO2000035103A12000-06-15
WO2000010257A12000-02-24
WO2006069392A12006-06-29
WO2007047472A12007-04-26
WO2008057041A22008-05-15
WO2010148763A12010-12-29
WO2016203039A12016-12-22
Foreign References:
US20070288834A12007-12-13
US20080256424A12008-10-16
Other References:
ORANGE AND INSTITUT MINES-TELECOM: "Enhanced Turbo Codes for NR: Implementation Details", vol. RAN WG1, no. Gothenburg, Sweden; 20160822 - 20160826, 12 August 2016 (2016-08-12), XP051142038, Retrieved from the Internet [retrieved on 20160812]
CROZIER S ET AL: "Rate-Compatible Turbo Codes Designed with Puncture-Constrained DRP Interleavers", PROC. GLOBAL TELECOMMUNICATIONS CONFERENCE (GLOBECOM 2011), IEEE, 5 December 2011 (2011-12-05), pages 1 - 5, XP032119041, ISBN: 978-1-4244-9266-4, DOI: 10.1109/GLOCOM.2011.6133842
JIAXIANG LI ET AL: "The optimal puncturing pattern design for rate-compatible punctured Turbo codes", PROC. 2009 INTERNATIONAL CONFERENCE ON WIRELESS COMMUNICATIONS & SIGNAL PROCESSING (WCSP 2009), 1 January 2009 (2009-01-01), Piscataway, NJ, USA, pages 1 - 5, XP055258973, ISBN: 978-1-4244-4856-2, DOI: 10.1109/WCSP.2009.5371462
"Turbocodes convolutifs", 2007, COLLECTION IRIS, SPRINGER, article "Codes et turbocodes"
O. ACIKEL; W. RYAN: "Punctured turbo-codes for BPSKlQPSK channels", IEEE TRANS. COMMUN., vol. 47, no. 9, September 1999 (1999-09-01), pages 1315 - 1323
F. MO ET AL.: "Analysis of puncturing pattern for high rate turbo codes", PROC. IEEE CONFÉRENCE ON MILITARY COMMUNICATIONS (MIL-COM 1999, vol. 1, September 1999 (1999-09-01), pages 547 - 550, XP010369678, DOI: doi:10.1109/MILCOM.1999.822742
M. CEDERVALL; R. JOHANNESSON: "A fast algorithm for omputing distance spectrum of convolutional codes", IEEE TRANS. INF. THEORY, vol. 35, no. 6, November 1989 (1989-11-01), pages 1146 - 1159, XP000100859, DOI: doi:10.1109/18.45271
S. BENEDETTO; G. MONTORSI: "Unveiling turbo codes: some results on parallel concatenated coding schemes", IEEE TRANS. INF. THEORY, vol. 42, no. 2, 1996, pages 409 - 428, XP011026486
F. BABICH; G. MONTORSI; F. VATTA: "On Rate-Compatible Punctured Turbo Codes Design", EURASIP JOURNAL ON APPLIED SIGNAL PROCESSING, vol. 6, 2005, pages 784 - 794, XP055423537
C. BERROU; Y. SAOUTER; C. DOUILLARD; S. KEROUEDAN; M. JEZEQUEL: "Designing good permutations for turbo codes: towards a single model", PROC. 2004 IEEE INT. CONF. COMMUN., pages 341 - 345
S. CROZIER; P. GUINAND: "Distance upper bounds and true minimum distance results for turbo-codes designed with DRP interleavers", PROC. 3RD INT. SYMP. TURBO CODES, 2003, pages 169 - 172
J. SUN; O. TAKESHITA: "Interleavers for turbo codes using permutation polynomials over integer rings", IEEE TRANS. INF. THEORY, vol. 51, no. 1, January 2005 (2005-01-01), pages 101 - 119, XP011124733, DOI: doi:10.1109/TIT.2004.839478
Attorney, Agent or Firm:
JEUNE, Pascale (FR)
Download PDF:
Claims:
Revendications

1. Procédé (1) de codage d'un message numérique d'entrée, portant K symboles d'information, mettant en œuvre un turbo-codeur formant un turbocode, le turbo-codeur comportant un entrelaceur (ENT) et des premier et deuxième encodeurs (Cl , C2) à encodage selon au moins un code élémentaire, et délivrant les symboles d'information dits systématiques et des symboles de redondance, un poinçonnage des symboles délivrés par le turbo-codeur étant effectué suivant au moins un motif (M_S, M_P) de poinçonnage de longueur N, L = K/N définissant le nombre de périodes de poinçonnage,

caractérisé en ce que, le turbocode permettant le codage du message avec un rendement variable pouvant varier entre un premier rendement dit le plus faible et un second rendement Rz, dit le plus élevé, le procédé est tel qu'il comprend :

une optimisation conjointe (2) de l'entrelacement et du poinçonnage pour le rendement le plus élevé Rz et ensuite

un ajout (3) d'une position non poinçonnée dans au moins un motif de poinçonnage pour p périodes parmi les L périodes, 1 < p < L du au moins un motif pour une variation du rendement.

2. Procédé (1) de codage selon la revendication 1 selon lequel le poinçonnage est effectué selon n motifs de poinçonnage (M_S, M_P) de longueur N, n≥ 2.

3. Procédé (1) de codage selon la revendication 2 selon lequel l' ajout intervient pour p périodes parmi toutes les périodes de plusieurs des n motifs, 1 < p < n X L.

4. Procédé (1) de codage selon la revendication 1 selon lequel le poinçonnage comprend un poinçonnage des symboles de redondance effectué selon m motifs (M_P) de longueur N et selon lequel le moins un motif est un des m motifs de poinçonnage des symboles de redondance, m≥ 2.

5. Procédé (1) de codage selon la revendication 1 selon lequel le poinçonnage comprend un poinçonnage des symboles systématiques effectué selon un motif (M_S) de longueur N et selon lequel le au moins un motif est le motif de poinçonnage des symboles systématiques et selon lequel l'ajout est d'une seule position non poinçonnée dans ce motif de poinçonnage des symboles systématiques.

6. Procédé (1) de codage selon l'une des revendications 1 à 5 selon lequel l'ajout d'une position dans au moins le motif est effectuée à une position déterminée parmi différentes positions possibles dans ce motif, cette position étant déterminée comme étant celle qui conduit à la distance minimale de Hamming la plus grande pour le rendement obtenu à l'issu de la variation de rendement.

7. Procédé (1) de codage selon l'une des revendications 1 à 6 selon lequel l'entrelaceur répartit les symboles d'information du message d'entrée dans Q couches du message d'entrée entrelacé en respectant une fonction d'entrelacement définie à partir du au moins un motif de poinçonnage, selon la relation :

ΤΓ( = (pi + S(i mod Ç)) mod K = {Pi + (Tt + At Q)) mod K avec :

ί = 0, ... , K— 1 la position d'un symbole d'information dans le message d'entrée entrelacé, dans l'ordre entrelacé, et π(ί) la position du symbole d'information dans le message d'entrée, dans l'ordre naturel ;

P une valeur entière première avec la longueur K du message d'entrée, dite période de entrelaceur ;

5(i mod Q) = S(l) = Τχ + AX Q les paramètres d'ajustement de la fonction d'entrelacement, avec l = 0, ... , Q— 1 le numéro de la couche ;

Q degré de désordre inséré dans entrelaceur, correspondant au nombre de couches, tel que Q = qN, avec q≥ 1 un entier, et Q un diviseur de k ;

Τχ une valeur d'ajustement inter-couches définie à partir du au moins un motif de poinçonnage ; et

Αχ une valeur d'ajustement intra-couche.

8. Procédé (1) de codage selon la revendication précédente selon lequel la valeur d' ajustement inter-couches Γ; fait correspondre les positions des symboles d'information non poinçonnés les plus fragiles aux positions des symboles d'information non poinçonnés les moins fragiles, le degré de fragilité des positions étant déterminé en comparant les spectres des distances des codes élémentaires obtenus en poinçonnant un par un chacun des symboles d'information non poinçonnés, la position la moins fragile correspondant au spectre ayant la distance minimale de Hamming la plus grande et la multiplicité la plus faible, et la position la plus fragile correspondant au spectre ayant la distance minimale de Hamming la plus faible et la multiplicité la plus grande,

la multiplicité correspondant au nombre de mots d'un code élémentaire à une distance d.

9. Procédé de codage selon la revendication précédente ou la revendication 7 selon lequel le procédé choisit l'entrelacement qui favorise le plus le rendement mère en termes de spectre de distances si deux ou plusieurs combinaisons d'entrelacement et poinçonnage conduisent à des spectres très proches pour le rendement le plus élevé.

10. Codeur (TC) de rendement compatible permettant le codage d'un message numérique d'entrée, portant K symboles d'information, mettant en œuvre un turbo-codeur formant un turbocode, le turbo-codeur comportant un entrelaceur (ENT) et des premier et deuxième encodeurs (Cl , C2) à encodage selon au moins un code élémentaire, et délivrant les symboles d'information dits systématiques et des symboles de redondance, un poinçonnage des symboles délivrés par le turbo-codeur étant effectué suivant au moins un motif (M_S, M_P) de poinçonnage de longueur N, L = K/N définissant le nombre de périodes de poinçonnage, caractérisé en ce que, le codeur permettant le codage du message avec un rendement variable pouvant varier entre un premier rendement Rt, dit le plus faible et un second rendement Rp, dit le plus élevé, le codeur est tel qu'il comprend :

un processeur pour mettre en œuvre une optimisation conjointe (2) de l'entrelacement et du poinçonnage pour le rendement le plus élevé Rz et

- un processeur pour ensuite ajouter (3) une position non poinçonnée dans au moins un motif de poinçonnage pour p périodes parmi les L périodes, 1 < p < L du au moins un motif pour une variation du rendement.

Description:
Procédés et dispositifs de codage à rendement compatible

Domaine de l'invention

Le domaine de l'invention est celui du codage et du décodage d'un message numérique d'entrée mettant en œuvre un code correcteur d'erreurs à rendement compatible.

L'invention se rapporte plus particulièrement aux techniques de codage d'un message numérique source délivrant des mots codés comprenant les symboles d'information et des symboles de redondance, destiné(s) à être transmis sur un canal de transmission (par exemple aérien ou filaire de type hertzien, optique ou électrique), ou stocké(s) dans un support matériel. L'invention se rapporte également aux techniques de décodage correspondantes, permettant notamment de corriger les erreurs de transmission inhérentes au canal de transmission.

L'invention trouve notamment des applications dans les domaines suivants :

la transmission d'information par télécommunications filaires électriques, comme dans les normes ADSL, ou optiques, sur fibres optiques ou en espace libre ;

la transmission d'information dans les communications radios spatiales et terrestres sans fil (« wireless » en anglais), comme dans les systèmes de télévision numérique TNT, de radio numérique DAB, de téléphonie GSM ou UMTS, de réseau radio WiFi, et aussi dans les futurs systèmes de télécommunications, comme les futures normes pour des applications de télévision, de diffusion radio, de voix, de vidéo et de données (DVB, LTE, 4G, 5G, etc), ou entre véhicules, l'Internet des objets ou machines communicants « IOT : Internet Of Things », ... ;

la compression et la décompression de source d'informations par exemple de type vidéo ; la génération et la détection de séquences dites d'embrouillage (« scrambling » en anglais) dans les systèmes CDMA ;

le stockage d'informations dans des mémoires de masse magnétiques, optiques, mécaniques ou électriques pour constituer des disques durs, ou des mémoires vives d'ordinateurs, ou des clés mémoire à interface de type USB... ;

la correction d'informations lors des calculs dans un circuit intégré d'un microprocesseur ou dans un ordinateur ;

la reconnaissance de formes : images, sons, etc ;

- la robotique commandée par une intelligence artificielle à base de réseaux de neurones.

Un code correcteur d'erreurs est classiquement défini par :

une longueur n, correspondant à la séquence en sortie du codeur (ou mot de code de longueur n formé de K symboles d'information et de (n— K) symboles de redondance), un nombre K de bits ou de données d'information utiles, correspondant aux données en entrée du codeur, encore appelées symboles d'information, et

une distance minimale d min . Le rendement est alors défini par R = K /n.

Art antérieur Les turbocodes sont des codes correcteurs d'erreurs dont les performances approchent la limite de Shannon, comme décrit dans le livre de C. Berrou (éd.), Codes et turbocodes, "Chapitre 7 : Turbocodes convolutifs", Collection IRIS, Springer, 2007. La structure conventionnelle d'un turbo-encodeur D, représentée à la figure 1 , comprend la concaténation parallèle de deux codes convolutifs systématiques récursifs Cl et C2 (CSR) séparés par un entrelaceur INT. Le message numérique d'entrée de longueur K est encodé dans son ordre d'arrivée, dit ordre naturel, par l'encodeur Cl , et dans l'ordre entrelacé, ou permuté, par l'encodeur C2. Les symboles transmis comprennent les symboles d'information X dits systématiques et les symboles de redondance Yl , Y2.

Des méthodes d'entrelacement de turbocodes sont connues des demandes WO

2000/035103, WO 2000/010257, WO 2006/069392, US 2007/0288834, WO 2007/047472, WO 2008/057041 , et WO 2010/148763.

En réception, comme représenté à la figure 2, le décodage de ce code fait appel à deux décodeurs à entrées et sorties pondérées ou SISO (« Soft-In Soft-Out » en anglais). A partir des informations relatives aux symboles d'information L c y s , et aux symboles de redondance L c y rl et L c y r2 , disponibles en sortie du canal, chaque décodeur calcule une information dite extrinsèque L el et L e2 sur les symboles d'information décodés, qu'il échange avec l'autre décodeur suivant un processus itératif. Les décodeurs convergent ainsi vers une décision commune L .

Le rendement de codage global R du turbocode de la figure 1 est égal à 1/3 (avant poinçonnage). Pour augmenter le rendement de codage d'un turbocode, la technique la plus utilisée consiste à poinçonner les symboles transmis suivant un motif périodique. Avec cette technique, le même codeur et le même décodeur peuvent être utilisés pour tous les rendements de codage. D'autre part, il est admis qu'il est préférable de poinçonner les symboles de redondance Yl et Y2 plutôt que les symboles d'information, comme expliqué dans les articles de O. Acikel et W. Ryan, "Punctured turbo-codes for BPSK/QPSK channels" IEEE Trans. Commun., vol. 47, no. 9, pp. 1315-1323, Sept. 1999, et de F. Mo et al., "Analysis of puncturing pattern for high rate turbo codes", Proc. IEEE Conférence on Military Communications (MIL-COM 1999), vol. 1 , Sep. 1999, pp. 547-550. En effet, en réception, les symboles d'information sont utilisés pour le décodage des deux codes élémentaires Cl et C2, tandis que chaque redondance n'est utilisée que pour le décodage d'un seul des codes. L'absence d'un symbole d'information est par conséquent a priori plus pénalisant que l'absence d'un symbole de redondance.

Un poinçonnage des symboles d'information est décrit dans la demande US 2008/0256424. Un code correcteur d'erreurs à rendement compatible (« rate-compatible code » selon la terminologie anglo-saxonne) est un code qui garantit que les symboles codés transmis pour un rendement de codage R-^ sont également transmis pour tout rendement de codage R 2 tel que R 2 ≤ R i - On parle encore de rendements incrémentaux ou de codage à redondance incrémentale.

L'utilisation d'un code correcteur d'erreurs à rendement compatible se déroule selon le principe suivant :

- une première transmission avec le rendement de codage le plus élevé (i?i). Si ce rendement est proche de 1 , peu de redondances sont transmises et la transmission est très efficace en termes d'efficacité spectrale. Toutefois, il est nécessaire que le canal de transmission ne soit pas trop perturbé (par exemple, le rapport signal/bruit doit être élevé dans le cas d'un canal à bruit additif gaussien) pour pouvoir décoder l'information avec succès en réception.

- une deuxième transmission où seuls les bits supplémentaires pour atteindre un rendement inférieur (R 2 ) sont transmis s'il reste des erreurs résiduelles après décodage.

L'ensemble des bits transmis lors des deux transmissions est alors utilisé pour décoder le code au rendement inférieur (R 2 ).

Ce processus peut être réitéré en diminuant progressivement le rendement jusqu' à ce que les données soient correctement décodées ou que le rendement le plus bas du code soit atteint. Au fur et à mesure que des bits codés additionnels sont transmis et que le rendement de codage diminue, le code devient plus puissant et la probabilité de corriger les erreurs augmente.

Une transmission des données codées selon le principe précédent est avantageuse par rapport à des transmissions indépendantes à rendements incrémentaux. En effet, la deuxième étape de transmission et les suivantes ne requièrent que la transmission des bits additionnels pour passer d'un rendement à celui juste inférieur, le décodeur bénéficiant à chaque étape de décodage de tous les bits transmis depuis la première étape.

Ce principe a été étendu aux turbocodes pour des entrelacements structurés. Un entrelaceur structuré, par opposition à un entrelaceur tiré de manière aléatoire, présente une certaine régularité dans sa structure ; il peut être décrit sous la forme d'une expression analytique. Parmi les familles d'entrelaceurs structurés connues de la littérature, on peut citer les trois familles suivantes. L' entrelaceur QPP (Quadratic Polynomial Permutation) [ST05] standardisé dans le standard LTE, entrelaceur ARP (Almost Regular Permutation) [BSD04] standardisé dans le standard WiMAX et entrelaceur DRP (Dithered Relative Prime) [CG03]. Les auteurs de [BMV05] étendent le principe d'utilisation d'un code correcteur d'erreurs à rendement compatible à un turbocode à entrelacement structuré. Les auteurs commencent par construire l'entrelacement (optimisé) pour le rendement mère (rendement le plus faible c'est-à-dire sans poinçonnage). Cet entrelacement est ensuite conservé pour tous les autres rendements (supérieurs au rendement mère). Pour passer d'un rendement R-^ au rendement R 2 juste supérieur, les auteurs choisissent de poinçonner le bit codé qui pénalise le moins la distance minimale du code de rendement R 2 résultant (c'est-à-dire que le code résultant doit avoir la distance minimale la plus grande possible). Les auteurs de [BMV05] préconisent ainsi d'optimiser l'entrelacement pour le rendement mère (c'est-à-dire pour le rendement le plus faible) sans poinçonnage puis de choisir, de manière incrémentale et au fur et à mesure que le rendement de codage augmente, le poinçonnage qui réduit le moins la distance minimale du code. Exposé de l'invention

L'invention propose un procédé de codage de type turbocode à rendements compatibles pour le codage de messages de taille K, c'est-à-dire permettant la transmission des bits codés de manière incrémentale pour un rendement pouvant varier entre deux extrêmes, un rendement ¾ le plus faible et un rendement R z le plus élevé.

Selon le procédé proposé, l'entrelacement et le poinçonnage du turbocode sont d'abord optimisés pour le rendement R z le plus élevé. C'est-à-dire que la combinaison entrelacement/poinçonnage choisie est celle qui confère au turbocode de rendement R z le spectre de distance le plus favorable. Ensuite, la diminution incrémentale du rendement est obtenue en enlevant une par une les positions poinçonnées ou de manière équivalente en ajoutant une par une des positions non poinçonnées dans le motif de poinçonnage. L'ajout de positions non poinçonnées est donc effectué de manière incrémentale. Le poinçonnage selon l'invention est conditionné par la loi de connexion déterminée pour le rendement le plus élevé et cette loi est conservée pour toute variation du rendement jusqu'au rendement mère (sans poinçonnage).

La position non poinçonnée, systématique ou parité (redondance), ajoutée pour chaque variation du rendement est choisie pour conférer au turbocode résultant le meilleur spectre de distance (c'est-à-dire la distance minimale de Hamming la plus grande) pour le rendement recherché. Si deux ou plusieurs positions donnent des distances minimales de Hamming égales, le procédé choisit celle qui présente la multiplicité (nombre de mots de codes à la distance minimale de Hamming) minimale. En cas d'égalité, le procédé considère la distance suivante dans le spectre, et ainsi de suite.

Ce procédé permet ainsi d'obtenir des turbocodes extrêmement flexibles puisque le rendement peut varier entre R z et R avec une granularité fine du rendement.

Le procédé proposé va à l'encontre des préconisations dans le domaine en ce qu'il considère le rendement du plus élevé au plus faible et non pas du plus faible au plus élevé comme préconisé.

En effet, l'état de l'art préconise d'optimiser l'entrelacement du turbo-codeur au rendement le plus faible (en général sans poinçonnage) puis de poinçonner de manière incrémentale pour augmenter le rendement de façon à obtenir des codes dont la distance minimale soit la plus grande possible pour chaque rendement. Alors que l'invention impose d'optimiser conjointement l'entrelacement et le poinçonnage du turbo-codeur pour le rendement R z le plus élevé et, seulement ensuite d'ajuster de manière incrémentale le rendement. L'entrelaceur ainsi obtenu n'a aucune raison d'être identique à l'entrelaceur qui résulterait d'une optimisation du spectre des distances du code de rendement le plus faible.

Cette différence a un effet surprenant puisque le résultat obtenu n'est pas équivalent à celui obtenu avec l'état de l'art ; les performances sont nettement supérieures avec un procédé de codage selon l'invention. Plus particulièrement, l'invention a pour objet un procédé de codage d'un message numérique d'entrée, portant K symboles d'information, mettant en œuvre un turbo-codeur formant un turbocode, le turbo-codeur comportant un entrelaceur et des premier et deuxième encodeurs à encodage selon au moins un code élémentaire, et délivrant les symboles d'information dits systématiques et des symboles de redondance, un poinçonnage des symboles délivrés par le turbo- codeur étant effectué suivant au moins un motif de poinçonnage de longueur N, L = K/N définissant le nombre de périodes de poinçonnage. Le turbocode permet le codage du message avec un rendement variable pouvant varier entre un premier rendement dit le plus faible et un second rendement R z , dit le plus élevé. Le procédé est tel qu'il comprend :

- une optimisation conjointe de l'entrelacement et du poinçonnage pour le rendement le plus élevé R z et ensuite

- un ajout d'une position non poinçonnée dans au moins un motif de poinçonnage pour au moins une période du au moins un motif pour une variation du rendement.

Le poinçonnage des symboles délivrés intervient sur les symboles systématiques et/ou sur les symboles de redondance. Lorsque les symboles systématiques sont poinçonnés alors le poinçonnage intervient selon un motif M_S. Lorsque les symboles de redondance sont poinçonnés alors le poinçonnage intervient selon au moins un motif M_P. Dans le cas où le turbo-codeur fournit plusieurs sorties systématiques et/ou de redondance, il peut y avoir un motif pour les symboles systématiques et il peut y avoir autant de motifs que de sorties pour les symboles de redondance. Le masque de poinçonnage (constitué du ou des motifs s'il y en a plusieurs) du rendement recherché est obtenu après répétition autant que nécessaire de l'étape d'ajout d'une position non poinçonnée à partir du rendement le plus élevé. Selon certains modes, les motifs se répètent à l'identique tous les K/N périodes, les motifs sont alors totalement périodiques. Selon d'autres modes, l'ajout d'une position non poinçonnée n'intervient pas pour toutes les périodes d'un ou plusieurs motifs mais pour certaines d'entre elles i.e pour p périodes prises parmi toutes les périodes.

Selon un mode de réalisation particulier, le poinçonnage est effectué selon n motifs de poinçonnage de longueur N, n≥ 2.

Selon un mode de réalisation particulier, l'ajout intervient pour p périodes parmi les L périodes d'au moins le motif, 1 < p < L.

Selon un mode de réalisation particulier, l'ajout intervient pour p périodes parmi toutes les périodes de plusieurs des n motifs, 1 < p < n X L.

Selon un mode de réalisation particulier, le poinçonnage comprend un poinçonnage des symboles de redondance effectué selon m motifs de longueur N et selon lequel l'ajout est d'une seule position non poinçonnée dans au moins un des m motifs de poinçonnage des symboles de redondance, m≥ 2. L'ajout d'une position dans au moins un des deux motifs intervient pour chacune des p périodes considérées avec 1 < p < L et L le nombre de périodes d'un motif. Ce mode permet donc d'obtenir des granularités comprises entre p/K et mp/K soit entre 1/N et m/N lorsque p=L.

Dans le cas où l'ajout intervient dans un seul des motifs, à chaque période, si une position est ajoutée alors elle n'est ajoutée que dans un seul des m motifs de poinçonnage des symboles de redondance. Ce mode permet d'obtenir une granularité du rendement de 1/N quand l'ajout intervient à chaque période, p = L, avec la particularité que pour des périodes différentes l'ajout peut éventuellement intervenir pour des motifs différents. Une granularité différente est obtenue quand l'ajout n'intervient pas pour chacune des L périodes, p < L. En particulier, lorsque p = 1 ce mode permet d'atteindre une granularité du rendement de 1/K. Dans le cas où l'ajout intervient dans au moins deux motifs alors la granularité Gr du rendement est 2p/K≤ Gr < mp/K. Ce mode permet ainsi d'obtenir une granularité du rendement de Gr = m/N quand l'ajout intervient à chaque période de chacun des m motifs, p = L . Une granularité différente est obtenue quand l'ajout n'intervient pas pour chaque période, p < L. En particulier, ce mode permet d'obtenir une granularité du rendement Gr = 2/K lorsque p = 1 i.e. pour chacun des deux parmi les m motifs de poinçonnage des symboles de redondance une seule position non poinçonnée est ajoutée pour une seule période parmi toutes les périodes du motif.

Selon un mode de réalisation particulier, le poinçonnage comprend un poinçonnage des symboles systématiques effectué selon un motif de longueur N et selon lequel l'ajout est d'une seule position non poinçonnée dans ce motif de poinçonnage des symboles systématiques.

L'ajout d'une position dans le motif intervient pour les p périodes considérées avec 1 < p < L et L le nombre de périodes du motif de poinçonnage des symboles systématiques. La granularité Gr du rendement est alors— = Gr. Ce mode permet d'obtenir une granularité du rendement Gr = 1/N quand l'ajout intervient à chaque période du motif, p = L. Une granularité différente est obtenue quand l'ajout n'intervient pas pour toutes les périodes, p < L. En particulier, ce mode permet d'obtenir une granularité du rendement Gr = 1/K lorsque p = 1 i.e. une seule position non poinçonnée est ajoutée pour une seule période parmi toutes les périodes du motif de poinçonnage des symboles systématiques.

Selon un mode de réalisation particulier, l'ajout d'une position dans au moins le motif est effectuée à une position déterminée parmi différentes positions possibles dans ce motif, cette position étant déterminée comme étant celle qui conduit à la distance minimale de Hamming la plus grande pour le rendement obtenu à l'issu de la variation de rendement.

Selon un mode de réalisation, l'entrelacement et le poinçonnage sont optimisés conjointement selon un procédé décrit dans la demande WO WO2016203039. La demande WO2016203039 décrit une manière de choisir le motif de poinçonnage, en particulier le nombre et les positions des symboles d'information poinçonnés. Selon ce mode, l'entrelacement mis en œuvre par le turbo-codeur tient compte du ou des motifs de poinçonnage utilisés pour entrelacer de façon astucieuse les symboles d'information du message d'entrée. Si plusieurs combinaisons d'entrelacement et de poinçonnage conduisent à des spectres de distance très proches (i.e. les premiers termes de distances sont identiques pour ces combinaisons (typiquement, les distances minimales de Hamming sont égales)) pour le rendement le plus élevé alors le choix porte sur l'entrelacement qui favorise le plus le rendement mère (c'est-à-dire sans poinçonnage) en termes de spectre de distances.

Selon un mode de réalisation particulier, l'entrelaceur répartit les symboles d'information du message d'entrée dans Q couches du message d'entrée entrelacé en respectant une fonction d'entrelacement définie à partir du au moins un motif de poinçonnage, selon la relation :

ΤΓ( = (pi + S(i mod Ç)) mod K = {Pi + (T t + A t Q)) mod K avec :

ί = 0, ... , K— 1 la position d'un symbole d'information dans le message d'entrée entrelacé, dans l'ordre entrelacé, et π(ί) la position du symbole d'information dans le message d'entrée, dans l'ordre naturel ;

- P une valeur entière première avec la longueur K du message d'entrée, dite période de l'entrelaceur ;

5(i mod Q) = 5(0 = Τχ + Ai Q les paramètres d'ajustement de la fonction d'entrelacement, avec l = 0, ... , Q— 1 le numéro de la couche ;

Q degré de désordre inséré dans l'entrelaceur, correspondant au nombre de couches, tel que Q = qN, avec q≥ 1 un entier, et Q un diviseur de k ;

Τχ une valeur d'ajustement inter-couches définie à partir du au moins un motif de poinçonnage ; et

Αχ une valeur d'ajustement intra-couche.

Selon un mode de réalisation particulier, la valeur d'ajustement inter-couches Γ ; fait correspondre les positions des symboles d'information non poinçonnés les plus fragiles aux positions des symboles d'information non poinçonnés les moins fragiles, le degré de fragilité des positions étant déterminé en comparant les spectres des distances des codes élémentaires obtenus en poinçonnant un par un chacun des symboles d'information non poinçonnés, la position la moins fragile correspondant au spectre ayant la distance minimale de Hamming la plus grande et la multiplicité la plus faible, et la position la plus fragile correspondant au spectre ayant la distance minimale de Hamming la plus faible et la multiplicité la plus grande, la multiplicité correspondant au nombre de mots d'un code élémentaire à une distance d.

Selon un mode de réalisation particulier, le procédé choisit l'entrelacement qui favorise le plus le rendement mère en termes de spectre de distances si deux ou plusieurs combinaisons d'entrelacement et poinçonnage conduisent à des spectres très proches pour le rendement le plus élevé.

L'invention a en outre pour objet un codeur de rendement compatible permettant le codage d'un message numérique d'entrée, portant K symboles d'information, mettant en œuvre un turbo- codeur formant un turbocode, le turbo-codeur comportant un entrelaceur et des premier et deuxième encodeurs à encodage selon au moins un code élémentaire, et délivrant les symboles d'information dits systématiques et des symboles de redondance, un poinçonnage des symboles délivrés par le turbo-codeur étant effectué suivant au moins un motif de poinçonnage de longueur N, L = K/N définissant le nombre de périodes de poinçonnage. Le codeur permet le codage du message avec un rendement variable pouvant varier entre un premier rendement dit le plus faible et un second rendement R p , dit le plus élevé. Le codeur est tel qu'il comprend :

un processeur pour mettre en œuvre une optimisation conjointe de l'entrelacement et du poinçonnage pour le rendement le plus élevé R z et

un processeur pour ensuite ajouter une position non poinçonnée dans au moins un motif de poinçonnage pour au moins une période du au moins un motif pour une variation du rendement.

Un tel codeur peut bien sûr comporter les différentes caractéristiques relatives au procédé de codage selon l'invention, qui peuvent être combinées ou prises isolément. Ainsi, les caractéristiques et avantages de ce codeur sont les mêmes que ceux du procédé de codage et ne sont donc pas détaillés plus amplement.

Un codeur selon l'invention peut être implémenté sous la forme d'un circuit intégré numérique ou analogique, ou dans un composant électronique de type microprocesseur. Ainsi, l'algorithme de codage selon l'invention peut être mis en œuvre de diverses manières, notamment sous forme câblée ou sous forme logicielle.

L'invention propose ainsi une nouvelle technique de codage de symboles source pour obtenir simplement des codes avec une variation très fine du rendement.

L'invention concerne encore un dispositif comprenant un codeur et un décodeur de symboles précédemment décrits.

Un tel dispositif, encore appelé codée pour codeur/décodeur, peut être implémenté sous la forme d'un circuit intégré numérique ou analogique, ou dans un composant électronique de type microprocesseur. En particulier, l'utilisation d'un codée permet de mutualiser les ressources matérielles utilisées au codage et au décodage. Par exemple, un tel codée peut recevoir en entrée des symboles source, et délivrer en sortie des symboles codés, ou recevoir en entrée des symboles codés, et délivrer en sortie une estimation des symboles source.

Dans encore un autre mode de réalisation, l'invention concerne un ou plusieurs programmes d'ordinateur comportant des instructions pour la mise en œuvre d'un procédé de codage tels que décrits précédemment, lorsque le ou les programmes sont exécutés par un processeur d'un codeur. De tels programmes peuvent être stockés sur un support d'information. Liste des figures

D' autres caractéristiques et avantages de l'invention apparaîtront plus clairement à la lecture de la description suivante de modes de réalisation particuliers, donnés à titre de simples exemples illustratifs et non limitatifs, et des dessins annexés, parmi lesquels :

la figure 1 , précédemment décrite, représente la structure d'un turbo-codeur selon l' art antérieur,

la figure 2, précédemment décrite, illustre le décodage itératif d'un turbocode selon l' art antérieur,

les figures 3A, 3B et 3C représentent la structure d'un turbo-codeur selon différents modes de réalisation de l'invention,

la figure 4 est un organigramme des principales étapes d'un procédé de codage selon un mode de réalisation de l'invention,

la figure 5 est un schéma d'un masque (motif) de poinçonnage M périodique composé d'un motif M_S périodique pour les symboles d'information, et de deux motifs M_P identiques périodiques pour les symboles de redondance,

la figure 6 est un schéma des deux motifs M_S et M_P pour différents rendements intermédiaires entre R = 8/9 et le rendement mère R = 1/3 avec ajout d'une position non poinçonnée à chaque variation incrémentale du rendement,

la figure 7 donne des courbes du taux d'erreur trame FER en fonction du rapport signal à bruit Eb/NO pour la transmission de trames de 4000 bits d'information sur un canal à bruit blanc gaussien pour différents rendements et deux méthodes de codage, une méthode selon le standard LTE et l'autre méthode selon l'invention.

Description de modes de réalisation de l'invention

Les figures 3A, 3B et 3C illustrent la structure d'un turbo-codeur TC selon des modes de réalisation de l'invention, délivrant des symboles d'information (entrelacés ou non) dits systématiques et des symboles de redondance, et un poinçonnage des symboles d'information et/ou des symboles de redondance, respectivement pour un rendement de codage R≥ 1/3, R≥ 1/3 et R≥ 1/5. Un turbo-codeur selon l'invention est tel que l'entrelacement interne du turbocode est identique pour tous les rendements admissibles pour que la propriété de compatibilité de rendement soit respectée. S'il n'était pas identique, les bits de redondance (parités) générés ne seraient pas les mêmes d'un rendement à l' autre et la compatibilité de rendement ne pourrait pas être assurée.

Le turbo-codeur illustré en figure 3A comprend un entrelaceur ENT et deux encodeurs, par exemple de type convolutifs systématiques récursifs (Cl , C2). Seul l'encodeur Cl produit une sortie systématique, symboles d'information X dans l'ordre naturel. Chaque encodeur produit une sortie de redondance (symboles de redondance Yl pour le premier encodeur Cl et symboles de redondance Y2 pour le deuxième encodeur C2). Le message numérique d'entrée, comprenant K symboles d'information, est encodé dans son ordre d'arrivée, dit ordre naturel, par l'encodeur Cl, et dans l'ordre entrelacé, ou permuté, par l'encodeur C2.

Le message numérique de sortie, comprenant la sortie systématique (symboles d'information X) et la sortie de redondance (symboles de redondance Yl et Y2), peut être poinçonné par un dispositif de poinçonnage suivant au moins un motif périodique de poinçonnage de longueur N. Par exemple, pour chaque rendement de codage supérieur à 1/3, trois motifs de poinçonnage périodiques de longueur N sont utilisés, exprimés par exemple chacun sous la forme d'un vecteur binaire : un premier motif de poinçonnage utilisé pour le poinçonnage des symboles d'information X, un deuxième motif de poinçonnage utilisé pour le poinçonnage des symboles de redondance Yl, et un troisième motif de poinçonnage utilisé pour le poinçonnage des symboles de redondance Y2. Si les codes élémentaires des premier et deuxième encodeurs (Cl, C2) du turbo- codeur sont identiques, le même motif de poinçonnage peut être appliqué aux symboles de redondance Yl et aux symboles de redondance Y2.

Le turbo-codeur illustré en figure 3B comprend un entrelaceur ENT et deux encodeurs, par exemple de type convolutifs systématiques récursifs (Cl, C2), produisant chacun une sortie systématique (symboles d'information X dans l'ordre naturel pour le premier encodeur Cl, ou symboles d'information X' dans l'ordre entrelacé pour le deuxième encodeur C2) et une sortie de redondance (symboles de redondance Yl pour le premier encodeur Cl et symboles de redondance Y2 pour le deuxième encodeur C2). Le message numérique d'entrée, comprenant K symboles d'information, est encodé dans son ordre d'arrivée, dit ordre naturel, par l'encodeur Cl et dans l'ordre entrelacé, ou permuté, par l'encodeur C2.

Le message numérique de sortie, comprenant la sortie systématique (symboles d'information X ou bien symboles d'information X') et la sortie de redondance (symboles de redondance Yl et Y2), peut être poinçonné par un dispositif de poinçonnage suivant au moins un motif périodique de poinçonnage de longueur N. Par exemple, pour chaque rendement de codage supérieur à 1/3, trois motifs de poinçonnage périodiques de longueur N sont utilisés, exprimés par exemple chacun sous la forme d'un vecteur binaire : un premier motif de poinçonnage utilisé pour le poinçonnage des symboles d'information X ou X', un deuxième motif de poinçonnage utilisé pour le poinçonnage des symboles de redondance Yl , et un troisième motif de poinçonnage utilisé pour le poinçonnage des symboles de redondance Y2. Si les codes élémentaires des premier et deuxième encodeurs (Cl, C2) du turbo-codeur sont identiques, le même motif de poinçonnage peut être appliqué aux symboles de redondance Yl et aux symboles de redondance Y2.

Le turbo-codeur illustré en figure 3C comprend un entrelaceur ENT et deux encodeurs, par exemple de type convolutifs systématiques récursifs (Cl, C2), produisant chacun une sortie systématique (symboles d'information X dans l'ordre naturel pour le premier encodeur Cl ou symboles d'information X' dans l'ordre entrelacé pour le deuxième encodeur C2) et deux sorties de redondance (symboles de redondance Yl et Wl pour le premier encodeur Cl et symboles de redondance Y2 et W2 pour le deuxième encodeur C2). Le message numérique d'entrée, comprenant k symboles d'information, est encodé dans son ordre d'arrivée, dit ordre naturel, par l'encodeur Cl et dans l'ordre entrelacé, ou permuté, par l'encodeur C2.

Le message numérique de sortie comprenant la sortie systématique (symboles d'information X ou bien symboles d'information X') et les deux sorties de redondance (symboles de redondance Yl et Wl obtenus à partir du premier encodeur et symboles de redondance Y2 et W2 obtenus à partir du deuxième encodeur) peut être poinçonné par un dispositif de poinçonnage suivant au moins un motif périodique de poinçonnage de longueur N. Par exemple, pour chaque rendement de codage supérieur ou égal à 1/5, cinq motifs de poinçonnage périodiques de longueur N sont utilisés, exprimés par exemple chacun sous la forme d'un vecteur binaire : un premier motif de poinçonnage utilisé pour le poinçonnage des symboles d'information X ou X', un deuxième motif de poinçonnage utilisé pour le poinçonnage des symboles de redondance Yl, un troisième motif de poinçonnage utilisé pour le poinçonnage des symboles de redondance Y2, un quatrième motif de poinçonnage utilisé pour le poinçonnage des symboles de redondance Wl et un cinquième motif de poinçonnage utilisé pour le poinçonnage des symboles de redondance W2. Si les codes élémentaires des premier et deuxième encodeurs (Cl, C2) du turbo-codeur sont identiques, le même motif de poinçonnage peut être appliqué aux symboles de redondance Yl et aux symboles de redondance Y2. De la même façon, le même motif de poinçonnage peut être appliqué aux symboles de redondance Wl et aux symboles de redondance W2.

Chacun des turbo-codeurs TC des figures 3A, 3B et 3C comprend un processeur μΡ pour mettre en œuvre une optimisation conjointe de l'entrelacement et du poinçonnage pour le rendement le plus élevé R z et pour ensuite ajouter au moins une position non poinçonnée dans au moins un motif de poinçonnage pour au moins une période du au moins un motif pour une variation du rendement. Le processeur pilote l'entrelaceur et le dispositif de poinçonnage. Les turbo-codeurs TC peuvent comprendre le dispositif de poinçonnage.

L'organigramme de la figure 4 représente les principales étapes mises en œuvre par un codeur selon l'invention. Un procédé 1 de codage de type turbocode à rendements compatibles selon l'invention permet de coder un message de taille K avec un rendement pouvant varier entre deux rendements extrêmes considérés, le rendement le plus faible ¾ et le rendement le plus élevé R z .

Prenons pour exemple un turbo-codeur illustré par la figure 3 A de rendement mère 1/3, une taille de message K = 4000 bits, une longueur N = 16 du motif M_S de poinçonnage des symboles systématiques et du motif M_P des symboles de redondances issus d'un code élémentaire, un rendement le plus élevé R z = 8/9.

Dans une première étape 2, le procédé effectue une optimisation Optim. conjointe de l'entrelacement et du poinçonnage pour le rendement le plus élevé R z . Cette optimisation 2 conjointe du poinçonnage et de l'entrelacement est réalisée selon un mode de réalisation en mettant en œuvre le procédé décrit dans la demande de brevet WO WO2016203039. Selon cette réalisation, et pour l'exemple illustré, le motif M de poinçonnage optimisé est illustré à la figure 5. Ce motif périodique comprend le motif M_S et deux motifs M_P identiques. M_S représente le motif de poinçonnage pour les symboles d'information X, M_P représente le motif de poinçonnage pour chacun des symboles de redondance Yl et Y2. Un 0 représente un bit poinçonné, un 1 représente un bit transmis. Ainsi, il y a deux symboles d'information poinçonnés et 2 X 14 symboles de redondance poinçonnés par période N = 16 soit au total (28 + 2) X 4 °°°^ 3 = 30 X 250 =7500 symboles poinçonnés. On retrouve bien le rendement :

4000 4000 = 40

2 (4000X3 -7500) 4500 45 1

Si deux ou plusieurs combinaisons d'entrelacement et poinçonnage conduisent à des spectres de distance très proches, typiquement les distances minimales de Hamming sont égales pour ces combinaisons, pour le rendement le plus élevé, le procédé choisit l'entrelacement qui favorise le plus le rendement mère (sans poinçonnage) en termes de spectre de distances. Pour comparer deux ou plusieurs spectres de distances, le procédé compare tout d' abord le terme de distance le plus faible de chacun des spectres (distance minimale de Hamming) et choisit le spectre qui a la distance minimale de Hamming la plus élevée. En cas d'égalité des distances minimales, le procédé choisit le spectre avec la multiplicité (nombre de mots de codes à la distance minimale de Hamming) la plus faible. En cas d'égalité de ces deux grandeurs pour deux ou plusieurs combinaisons, le procédé considère la distance suivante dans le spectre et choisit la combinaison correspondant à la plus grande valeur de la distance et, en cas d'égalité, à la plus petite multiplicité.

Dans une deuxième étape 3, impérativement postérieure à la première étape, le procédé ajoute une position non poinçonnée dans le motif de poinçonnage M_P selon l'illustration, pour obtenir une diminution incrémentale du rendement. Les positions non poinçonnées ajoutées à chaque itération de l'étape 3 sont celles qui confèrent au turbocode te résultant le meilleur spectre de distance, c'est-à-dire la distance minimale de Hamming la plus grande pour le rendement recherché R. La position ajoutée à chaque étape 3 est ajoutée dans le motif M_S uniquement, dans un des motifs M_P uniquement ou dans plusieurs des motifs pris parmi le motif M_S et les motifs M_P. Les positions ajoutées concernent donc un ou plusieurs symboles d'information et/ou un ou plusieurs symboles de redondance.

Selon l'exemple illustré pour lequel le motif M de la figure 5 est optimisé pour un rendement R z = 8/9, l' ajout d'une seule position non poinçonnée dans chaque motif de parité M_P permet d'obtenir un rendement R z - = 4/5 comme illustré par la figure 6. En outre, compte tenu que le motif M de la figure 5 est optimisé lors de la première étape 2 alors la meilleure position Pos_4/5 à ajouter est la 12 ieme position dans chaque motif M_P de poinçonnage. En ajoutant une seule autre position non poinçonnée dans chaque motif de parité le rendement obtenu est R z - 2 = 8/11. La meilleure position Pos_8/l l est la H ieme position dans chaque motif M_P de poinçonnage. De nouveau, en ajoutant une seule autre position non poinçonnée dans chaque motif de parité le rendement obtenu est ff z _ 3 = 2/3. La meilleure position Pos_2/3 est la 6 ieme position dans chaque motif M_P de poinçonnage. Et ainsi de suite jusqu' au rendement mère R-^ = 1/ 3 obtenu en l'absence de poinçonnage ; aucune position n'est poinçonnée. Selon l'exemple illustré, l' ajout de positions non poinçonnées pour les symboles d'information intervient en dernier, après l' ajout de positions non poinçonnées pour les symboles de redondance.

On note N R . le nombre de bits à transmettre pour atteindre le rendement ffj. On définit la granularité comme étant le rapport entre le nombre x de bits supplémentaires à transmettre et la

(N R ._ -N R .) taille du message pour passer d'un rendement ff j au rendement juste inférieur R^ : -— l - — =

K

x/K, K étant la taille du message à l'entrée du turbo-codeur avant poinçonnage (rapport normalisé).

Selon l'exemple précédent, lorsque la période de poinçonnage est de N pour un turbo- codeur de rendement mère 1/3, la granularité est de 2/N pour l'obtention d'autres rendements. Dit autrement, la granularité de 2/N correspond à l' ajout d'un bit tous les N bits dans chacun des motifs M_P de poinçonnage des bits de parité.

Selon une autre réalisation, une variation plus fine du rendement est obtenue en ajoutant une seule position dans un seul des deux motifs de parité ou dans le motif des symboles d'information. Ceci permet d'obtenir un rendement R = 16/19 intermédiaire entre les rendements R z = 8/9 et R = 4/5, ainsi qu'un rendement R = 16/21 intermédiaire entre les rendements R = 4/5 et R = 8/11 et qu'un rendement R = 16/23 intermédiaire entre les rendements R = 8/11 et R = 2/3. Ainsi, lorsque la période de poinçonnage est de N pour un turbo-codeur de rendement mère 1/3, la granularité est de 1/N pour l'obtention d' autres rendements. Dit autrement, la granularité de 1/N correspond à l' ajout d'un bit tous les N bits soit dans le motif de poinçonnage des bits d'information (partie systématique) soit dans un des motifs de poinçonnage des bits de redondance (parité).

Le procédé décrit précédemment permet avantageusement d'identifier la position à ajouter dans le masque de poinçonnage pour passer de manière incrémentale avec une granularité de 1/N, d'un rendement ff j au rendement juste inférieur i? Î _ 1 . Ainsi, si la trame d'information à transmettre contient L périodes de longueur N (L = [K/N\), le procédé ajoute L bits sur la longueur de la trame pour passer du rendement ffj au rendement Comme vu précédemment pour l'exemple de motif de la figure 5 qui correspond à R z = 8/9 pour N = 16, l'ajout d'une position non poinçonnée dans un des motifs M_P de poinçonnage des parités ou dans le motif M_S de poinçonnage des systématiques pour toutes les périodes du motif M permet d'obtenir un rendement fl z _i = 16/19. Il s'avère que l'organisme de normalisation 3GPP au sein duquel interviennent les travaux pour les futures générations de téléphonie mobile (LTE adv, 5G, etc.) requiert des granularités du rendement plus fines que 1/N. Or, il n'y a pas de méthode connue qui adresse ce problème de construction de codes à rendements compatibles avec une granularité quelconque. Le mécanisme de rate matching du standard LTE (3GPP) apporte une solution à ce problème mais il est déconnecté de la construction de l'entrelacement et entraîne de mauvaises performances pour certains rendements. Il est ainsi possible de trouver des cas où les courbes de taux d'erreurs pour un rendement R 2 sont moins bonnes que celles avec un rendement R^ ^ alors que R 2 < R^.

De manière très avantageuse par rapport à l'état de l'art, l'invention permet d'obtenir une granularité qui peut être plus fine que 1/N en considérant pour l'ajout d'une position non poinçonnée non pas l'ensemble des périodes mais seulement plusieurs (p) périodes du motif de poinçonnage (p < L) ou de plusieurs (m) motifs de poinçonnage (p < m X L). Dans ces cas tous les motifs ne se répètent pas de manière parfaitement périodique sur l'ensemble des périodes ; certaines périodes parmi l'ensemble des L périodes d'un motif peuvent être différentes des autres périodes de l'ensemble. Il est ainsi facile de construire toute une gamme de rendements entre ff j et Ri-i, Ri-i≤ Ri, en ajoutant seulement p bits (1 < p < L) parmi les p périodes considérées d'un motif ou de plusieurs motifs. Compte tenu que la construction d'un rendement intermédiaire entre ff j et Ri-^ comprend l'optimisation conjointe de l'entrelacement et du poinçonnage pour le rendement le plus élevé R z et que les rendements ff j et sont construits tels que chaque position ajoutée est celle qui confère au turbocode résultant le meilleur spectre de distance alors, même en l'absence d'une optimisation additionnelle de l'ajout des p bits, les performances obtenues pour le rendement intermédiaire sont intermédiaires entre les performances aux rendements ffj et

Par exemple, si K = 4000, L = 250, le procédé permet de construire facilement toute une gamme de rendements entre R z = 8/9 et ff z _i = 4/5 en ajoutant seulement p bits de parités parmi les positions possibles sachant que R z = 8/9 est obtenu en transmettant 250 X 14 symboles d'information et 250 x 2 x 2 symboles de redondance et que R z - \ = 4/5 est obtenu en transmettant 250 X 14 symboles d'information et 250 X 2 X 3 symboles de redondance.

Selon un mode, si le procédé ajoute x bits de parités à chacun des deux codes élémentaires parmi les L = 250 positions possibles pour former un turbocode symétrique alors il permet ainsi

4000

d'obtenir tous les rendements de la forme R = , avec 1 < x < 250 en transmettant

4500 +2X

250 X 14 symboles d'information et 250 X 2 X 2 + 2x symboles de redondance.

Selon un autre mode, ces mêmes rendements de la forme R = 40 °° , avec 1 < x <

4500+2X

250 peuvent être obtenus en ajoutant 2x bits d'information parmi les L = 250 positions possibles et en transmettant donc 250 X 14 + 2x symboles d'information et 250 X 2 X 2 symboles de redondance. Dans les deux modes précédents la granularité de rendement est égale à 2x/K (< 2/N) car le procédé transmet 2x bits additionnels.

Selon un mode, si le procédé considère différemment entre eux les motifs de parité et ajoute x bits de parités indifféremment entre les deux motifs de poinçonnage des bits de parité donc parmi 2 x 1 = 500 positions possibles alors il permet ainsi d'obtenir tous les rendements de la

4000

forme R = . avec 1 < x < 500 en transmettant donc 250 X 14 symboles d'information et

4500+x J

250 x 2 x 2 + x symboles de redondance. Dans ce cas la granularité de rendement est égale à x/K (et x/K < 1/N uniquement si x < 250) car le procédé transmet x bits additionnels.

4000

Selon un autre mode, tous les rendements de la forme R = . avec 1 < x < 250

4500+x

peuvent être obtenus en ajoutant x bits d'information parmi les L = 250 positions possibles et en transmettant donc 250 X 14 + x symboles d'information et 250 X 2 X 2 symboles de redondance. Dans ce cas la granularité de rendement est égale à x/K (< 1/N) car le procédé transmet x bits additionnels.

4000

Selon un autre mode, tous les rendements de la forme R = . avec 1 < x < 750

4500+x

peuvent être obtenus en ajoutant x bits parmi les L = 750 positions possibles en considérant indifféremment le motif de poinçonnage des bits d'information et les deux motifs de poinçonnage des bits de parité. Le procédé transmet donc 250 X 14 + x 1 symboles d'information et 250 X 2 X 2 + x 2 symboles de redondance avec x = x 1 + x 2 ■ Dans ce cas la granularité de rendement est égale à x/K (et x/K < 1/N uniquement si x < 250) car le procédé transmet x bits additionnels.

Ces modes de réalisation sont particulièrement intéressants car ils permettent de répondre aux exigences du 3GPP visant à l'obtention d'une granularité du rendement plus fine que 1/N. L'ajout d'une position non poinçonnée dans le motif M pour une parmi l'ensemble des périodes du motif permet d'obtenir une granularité minimale de 1/K à laquelle correspond une variation minimale du rendement.

Une construction du codage selon l'invention garantit que, même sans optimisation additionnelle, les performances obtenues pour les rendements intermédiaires entre deux rendements, par exemple entre R z - \ = 4/5 et R z = 8/9, sont intermédiaires entre les performances obtenues à ces deux rendements ce qui n'est pas le cas avec le mécanisme de rate matching selon le standard LTE.

Bien entendu, selon l'invention le choix des x positions peut être déterminé pour maximiser les distances des codes de rendements intermédiaires.

Une réalisation de l'optimisation 2 conjointe du poinçonnage et de l'entrelacement en mettant en œuvre l'enseignement de la demande de brevet WO WO2016203039 est décrite ci-après de manière plus détaillée.

Le rendement de codage R d'un turbocode peut s'exprimer comme : avec R pd le ratio de symboles d'information poinçonnés durant la période N définie par la longueur du motif de poinçonnage et N np le nombre de symboles de redondance non poinçonnés par code élémentaire dans la période N.

Les valeurs du rendement R et de la période N du motif étant fixées, le ratio R pd peut prendre N+l valeurs possibles :

Rpd = ~ avec n = 0, ... , N.

Toutefois, seules les valeurs conduisant à des rendements R c des codes élémentaires inférieurs à 1 sont admissibles. Dans le cas contraire, les décodeurs élémentaires correspondants ne sont pas capables de reconstruire le message transmis à partir des symboles reçus. En d'autres termes, la limite admissible correspond au cas où le nombre total de symboles d'information et de redondance délivrés par les codes élémentaires devient inférieur à la taille K du message d'entrée.

Pour chaque encodeur du turbo-codeur TC, un motif de poinçonnage de longueur N est sélectionné parmi une pluralité de motifs de poinçonnage correspondant à différentes valeurs admissibles du ratio R pd sur la base au moins d'une comparaison entre les spectres des distances des codes élémentaires poinçonnés correspondants et de mesures d'information mutuelle échangée entre les informations extrinsèques entrante et sortante du décodeur correspondant à l'encodeur dans le cas où ces motifs de poinçonnage sont utilisés avec un entrelaceur uniforme.

La construction de entrelaceur comporte les étapes consistant à :

a) établir une fonction d'entrelacement de l'entrelaceur en fonction du motif de poinçonnage, en déterminant les degrés de fragilité des différentes positions au sein du motif et en connectant les positions selon au moins une règle de connexion de ladite fonction d'entrelacement, dépendante du degré de fragilité des positions,

b) déterminer un ensemble restreint de candidats pour les paramètres d'ajustement de la fonction d'entrelacement déterminée en a) en fonction de valeurs prédéfinies de la distance cumulée spatiale minimale S min et de la longueur du cycle minimal de corrélation G min de l'entrelaceur, pour au moins une période d' entrelaceur, et

c) sélectionner au moins un entrelaceur parmi l'ensemble restreint de candidats de l'étape b), sur la base au moins des spectres des distances des turbocodes obtenus en utilisant les entrelaceurs correspondants.

Dans le cas où chaque code élémentaire produit une seule sortie de redondance, le motif de poinçonnage est constitué de trois vecteurs de longueur N chacun, l'un pour le poinçonnage des symboles d'information et les deux autres pour le poinçonnage des symboles de redondance. Les motifs de poinçonnage sont de préférence identiques pour les deux codes élémentaires formant le turbocode notamment dans le cas où les codes élémentaires sont identiques. Selon un mode de réalisation, pour chaque valeur de période de poinçonnage N et du ratio R pd , une valeur représentative d'une distance du spectre des distances du code élémentaire poinçonné, correspondant notamment à la distance minimale de Hamming, est utilisée pour la comparaison entre les spectres des distances du code élémentaire poinçonné, le motif de poinçonnage conduisant à la plus grande valeur de distance étant sélectionné.

Pour ce faire, pour chaque valeur de période N sélectionnée et pour chaque valeur du ratio R pd , le procédé considère tous les motifs de poinçonnage possibles et détermine pour chacun d'eux le début du spectre des distances du code élémentaire poinçonné, c'est-à-dire la distance minimale de Hamming du code et les distances immédiatement supérieures, ainsi que leur multiplicité. Le procédé peut utiliser l'algorithme FAST décrit dans l'article de M. Cedervall et R. Johannesson, "A fast algorithm for Computing distance spectrum of convolutional codes" IEEE Trans. Inf. Theory, vol. 35, no. 6, pp. 1146-1159, Nov. 1989, et adapté aux codes poinçonnés.

Plusieurs motifs de poinçonnage conduisant à la même plus grande valeur de distance pour une même valeur de période de poinçonnage N et une même valeur du ratio R pd , le procédé sélectionne le motif dont la multiplicité est minimale.

Plusieurs motifs de poinçonnage conduisant à la même valeur de multiplicité minimale correspondant à une même plus grande valeur de distance, pour une même valeur de période N et une même valeur du ratio R pd , le processus de sélection du motif est réitéré pour la distance suivante, c'est-à-dire immédiatement supérieure, dans le spectre des distances du code élémentaire poinçonné.

Cette première partie de la sélection du motif de poinçonnage permet d'éliminer les motifs dits catastrophiques.

Pour chaque valeur de période N et du ratio R pd , le procédé sélectionne parmi les motifs précédemment sélectionnés, le motif de poinçonnage conduisant à une valeur de l'information mutuelle échangée supérieure ou égale à celle obtenue lorsque le ratio R pd de symboles d'information poinçonnés est nul.

L'entrelaceur uniforme utilisé pour calculer les valeurs de l'information mutuelle échangée est un entrelaceur probabiliste qui produit tous les entrelacements possibles pour une taille K de séquence d'information de manière équiprobable, par exemple généré par un tirage aléatoire pour chaque séquence transmise, et comme décrit dans l'article de S. Benedetto et G. Montorsi, "Unveiling turbo codes: some results on parallel concatenated coding schemes" IEEE Trans. Inf. Theory, vol. 42, no. 2, pp. 409-428, 1996. L'entrelaceur uniforme permet d'évaluer les performances moyennes du turbocode, indépendamment du choix de l'entrelaceur.

Le décodeur correspondant à un entrelaceur uniforme du turbocode peut être simulé pour les motifs de poinçonnage sélectionnés à l'étape précédente, afin de comparer les courbes de taux d'erreurs obtenues. Le motif de poinçonnage sélectionné est celui offrant le meilleur compromis entre les performances à fort et moyen taux d'erreurs dans la région d'à-pic et les performances à faibles taux d'erreurs dans la région d'évasement, en fonction notamment de l'application visée.

La période N de poinçonnage est un diviseur de la longueur K du message numérique d'entrée. Afin de limiter l'espace de recherche des entrelaceurs, seuls les plus petits diviseurs de la taille K du message numérique d'entrée sont considérés pour la période N. Par exemple dans le cas où K est divisible par 256, seules des périodes de poinçonnage égales à 8 ou 16 peuvent être considérées.

Selon un mode de réalisation, l'entrelaceur répartit les symboles d'information du message d'entrée dans Q couches du message d'entrée entrelacé en respectant une fonction d'entrelacement définie à partir d'au moins un motif de poinçonnage M_S, M_P, selon la relation :

7r(i) = (Pi + S(i mod Q)) mod K = (Pi + 5(0) mod K = (Pi + (Γ ; + Αβ)) mod K avec :

ί = 0, ... , K— 1 la position d'un symbole d'information dans le message d'entrée entrelacé, dans l'ordre entrelacé, et π(ί) la position du symbole d'information dans le message d'entrée, dans l'ordre naturel ;

P est une valeur entière première avec la longueur K du message d'entrée, dite période de l'entrelaceur ;

5(i mod Q) = 5(Z) = Τχ + A X Q les paramètres d'ajustement de la fonction d'entrelacement, avec l = 0, ... , Q— 1 le numéro de la couche ;

Q un degré de désordre inséré dans l'entrelaceur, correspondant au nombre de couches, tel que

Q = qN, avec q≥ 1 un entier, et Q un diviseur de K (P et K étant premiers entre eux et K étant un multiple de Q alors P et Q sont premiers entre eux) ;

Τχ une valeur d' ajustement inter-couches, définie à partir d'au moins le motif de poinçonnage ; et

- Ai une valeur d'ajustement intra-couche.

Les symboles d'information du message d'entrée peuvent être considérés comme répartis, avant entrelacement, dans Q couches (ou sous-ensembles) de K/Q symboles d'information. L'entrelacement permet notamment de transformer une couche de symboles d'information du message d'entrée en une autre couche de symboles d'information du message d'entrée entrelacé. En d' autres termes, l'entrelaceur définit Q couches (ou sous-ensembles) de symboles d'information qui sont associées à Q valeurs différentes du paramètre d'ajustement 5(Z).

Plus précisément, l'expression de l'entrelaceur selon le modèle mathématique π(ί) = (Pi + ( i + J4J Ç)) mod K montre la mise en œuvre d'un entrelacement à deux niveaux : chaque couche du message d'entrée non entrelacé est transformée par entrelacement en une autre couche du message d'entrée entrelacé (couche identique ou différente) et une position d'un symbole dans une couche du message d'entrée non entrelacé est transformée par entrelacement en une autre position dans une couche du message d'entrée entrelacé (position identique ou différente).

La valeur d'ajustement inter-couches Τχ permet de fixer la correspondance entre les numéros de couches entre le message d'entrée non entrelacé et le message d'entrée entrelacé, Ti £ (0, ... , Q — 1), en respectant des règles de connexion définies à partir du ou des motifs de poinçonnage. La valeur d' ajustement inter-couches Τχ peut ainsi être construite de façon déterministe.

Le degré de fragilité d'une position dépend de la distance minimale de Hamming du spectre des distances des codes élémentaires, et/ou du nombre de symboles de redondance poinçonnés dans le cas d'une position pour laquelle le symbole d'information est poinçonné.

Si un poinçonnage des symboles d'information est effectué suivant un motif de poinçonnage de longueur N, alors la valeur d' ajustement inter-couches Τχ fait correspondre les symboles d'information poinçonnés entre leur position dans l'ordre naturel et leur position dans l'ordre entrelacé.

La valeur d'ajustement inter-couches Τχ fait correspondre les positions des symboles d'information non poinçonnés les plus fragiles aux positions des symboles d'information non poinçonnés les moins fragiles, le degré de fragilité des positions étant déterminé en comparant les spectres des distances des codes élémentaires obtenus en poinçonnant un par un chacun des symboles d'information non poinçonnés, la position la moins fragile correspondant au spectre ayant la distance minimale de Hamming la plus grande et la multiplicité la plus faible, et la position la plus fragile correspondant au spectre ayant la distance minimale de Hamming la plus faible et la multiplicité la plus grande, la multiplicité correspondant au nombre de mots d'un code élémentaire à une distance d.

La valeur de l'ajustement inter-couches Τχ fait correspondre les positions des symboles d'information poinçonnés les plus fragiles aux positions des symboles d'information poinçonnés les moins fragiles, le degré de fragilité des positions étant déterminé en fonction du nombre de symboles de redondance poinçonnés, les positions les moins fragiles étant celles pour lesquelles aucun symbole de redondance n'est poinçonné et les plus fragiles celles pour lesquelles tous les symboles de redondance sont poinçonnés.

Les degrés de fragilité des positions ayant le même nombre de symboles de redondance poinçonnés sont déterminés sur la base au moins d'une comparaison des spectres des distances des codes élémentaires obtenus en poinçonnant un par un chacun des symboles de redondance non poinçonnés, la position la moins fragile correspondant au spectre ayant la distance minimale de Hamming la plus grande et la multiplicité la plus faible, et la position la plus fragile correspondant au spectre ayant la distance minimale de Hamming la plus faible et la multiplicité la plus grande.

La figure 7 illustre les performances d'un procédé selon l'invention. Les courbes donnent le taux d'erreur trame (FER) en fonction du rapport signal à bruit (Eb/NO) pour la transmission de trames de K = 4000 bits d'information sur un canal à bruit blanc gaussien. Les courbes PB R = x/y représentent les performances obtenues par le turbocodeur de la figure 3 A mettant un œuvre un procédé de codage selon l'invention avec optimisation conjointe du poinçonnage et de l'entrelacement au rendement le plus élevé R z = 8/9 réalisé selon la demande de brevet WO WO2016203039. Un ensemble de courbes LTE représentent les performances obtenues par le turbocodeur du standard LTE avec l'utilisation de l'adaptation de rendement selon le traitement dit rate matching pour obtenir les mêmes rendements que ceux obtenus avec un procédé de codage selon l'invention.

La comparaison des taux d'erreur entre les deux procédés pour un même rendement de codage permet de constater que les performances sont très proches en dessous d'un seuil du rapport signal à bruit. Mais au-delà de ce seuil qui dépend du rendement, il faut augmenter le rapport signal à bruit pour le procédé de codage mis en œuvre par le turbocodeur du LTE pour maintenir un même taux d'erreur trame entre les deux procédés. En outre, plus le rendement augmente plus l'augmentation du rapport signal à bruit doit être importante pour maintenir un même taux d'erreur trame entre les deux procédés. Un procédé de codage selon l'invention possède un pouvoir de correction supérieur à celui du turbocodeur du LTE lorsque le niveau de bruit est faible. Par exemple, on observe un rapport supérieur à 100 entre les taux d'erreurs pour un rapport signal à bruit Eb/NO de 4,5dB dans le cas d'un rendement R=8/9. Cette différence permet notamment de réduire de manière significative le nombre de retransmissions dans des conditions de transmission relativement bonnes. Ceci procure ainsi un gain en débit et en latence.

Il a par ailleurs été observé des gains à fort niveau de bruit lors de la transmission de blocs courts (environ 100 bits). Un procédé selon l'invention est donc plus robuste vis-à-vis d'une augmentation du bruit dû au canal de transmission et évite ainsi une forte augmentation du taux d'erreurs trame contrairement au turbocodeur du LTE.

Références :

[BMV05] F. Babich, G. Montorsi, F. Vatta, "On Rate-Compatible Punctured Turbo Codes Design", EURASIP Journal on Applied Signal Processing 2005:6, 784-794.

[BSD04] C. Berrou, Y. Saouter, C. Douillard, S. Kerouedan, and M. Jezequel, "Designing good permutations for turbo codes: towards a single model," in Proc. 2004 IEEE Int. Conf. Commun., pp. 341-345.

[CG03] S. Crozier, P. Guinand, "Distance upper bounds and true minimum distance results for turbo-codes designed with DRP interleavers", Proc. 3rd Int. Symp. Turbo Codes 2003, pp. 169- 172.

[ST05] J. Sun and O. Takeshita, "Interleavers for turbo codes using permutation polynomials over integer rings," IEEE Trans. Inf. Theory, vol. 51, no. 1, pp. 101-119, Jan. 2005.