Brevet FR2710217A1 — publié le 19950324

Procédé de transmission à répétition automatique de blocs de données utilisant des codes poinçonnés compatibles en débit La présente invention concerne un procédé de transmission à répé- tition automatique de blocs de données utilisant des codes poinçonnés compatibles en débit. Elle s'applique aux systèmes de transmission de don- nées par voie radio, notamment aux systèmes dans lesquels la contrainte est un taux d'erreurs final très bas, cette contrainte justifiant une procédure de type ARQ de l'abréviation anglo-saxonne "Automatic Repeat reQuest", dans laquelle les blocs de données qui n'ont pas été transmis correctement sont répétés. Les procédures ARQ ont subi une évolution considérable pour s'adapter à des canaux de transmission dont les caractéristiques sont chan- geantes ou mal connues au départ. Dans une procédure ARQ, les données à transmettre sont regrou- pées en blocs, chaque bloc étant codé par un code détecteur d'erreurs. Le bloc est transmis, et le destinataire tente le décodage. En cas de détection d'erreurs, il demande une retransmission; dans le cas contraire, il indique à l'émetteur que le décodage a été correct. Dans la procédure la plus simple ("STOP AND WAIT" en anglais), la transmission s'effectue bloc par bloc, et l'émetteur attend pour transmettre le bloc suivant un accusé positif sur le bloc en cours. Dans une procédure plus évoluée ("GO BACK N" en anglais), l'émetteur continue à émettre des nouveaux blocs tant qu'il n'a pas reçu d'accusé positif ou négatif. Lorsqu'il a reçu un accusé négatif sur un bloc particulier, il remonte jusqu'à ce bloc et reprend la transmission à ce niveau, retransmettant le bloc erroné et tous les suivants. Dans un dernier type de procédure ("SELECTIVE REPEAT"), on ne répète que les blocs déclarés faux. Cette procédure suppose une mémoire importante à la réception et à l'émission pour conserver les blocs de don- nées correctement décodés pendant le temps nécessaire à la transmission correcte d'un bloc de données antérieur. Ces procédures ont également évoluées dans une autre direction, qui est d'utiliser en plus du code détecteur d'erreurs, un code correcteur. La raison essentielle est que la procédure classique donne rapi- dement de très mauvais résultats à partir d'un certain seuil de rapports signal à bruit ou de taux d'erreurs. Le code correcteur d'erreurs permet de repousser plus loin ce seuil; en contrepartie le débit maximal que l'on peut passer dans de bonnes conditions de canal est diminué par la redondance du code correcteur. Ce type de procédure est appelé procédure ARQ hy- bride. Pour corriger cet inconvénient, une autre évolution est apparue, pour donner des procédures ARQ dites hybrides de type 11, les premières devenant hybrides de type I. Le principe de ces procédures de type Il est de ne transmettre les symboles de redondance du code correcteur qu'en cas de besoin, c'est-à- dire si le bloc utile n'a pas été décodé correctement. Dans ce cas on ne retransmet pas le bloc de données d'origine, mais tout ou une partie des symboles de redondance. Le récepteur peut alors tenter le décodage du code correcteur avec les symboles utiles transmis la première fois, et qu'il a gardé en mémoire, et ses symboles de redondance. Si le décodage échoue encore une fois, on peut retransmettre selon les stratégies d'autres symbo- les de redondance, ou encore le bloc d'origine. Une procédure ARQ hybride de type Il classique utilise un code convolutionnel de redondance 2. Cette procédure est décrite dans l'article de MM. Shulin, Daniel J. Costello, M. J. Miller ayant pour titre "Automatic repeat request error control shemes" IEEE magazin Dec. 84 vol. 22 N 12 p. 5. Chacun des polynômes de ce code est inversible, c'est-à-dire qu'en l'absence d'erreurs de transmissions, on peut retrouver le message utile. La procédure consiste à répéter alternativement chacun des deux polynômes jusqu'à décodage correct. L'efficacité en termes de débit utile des différentes procédures pré- cédemment évoquées en fonction du taux d'erreurs est variable. Les procédures classiques (non hybrides), présentent un débit maximal intéressant, mais une chute spectaculaire à partir d'un certain seuil de taux d'erreurs. Les procédures hybrides de type I résistent mieux lorsque le taux d'erreurs augmente mais ont en contrepartie un débit maximal plus faible. Les procédures hybrides de type 11, telles que celle précédemment évoquée, ont un débit maximal important et une bonne résistance aux forts taux d'erreurs mais ont cependant un effet de seuil à la moitié du débit maximal, qui correspond à la retransmission du deuxième polynôme. L'idéal serait en fait d'atteindre la limite théorique représentée par l'enveloppe de toutes ces courbes. L'utilisation des codes poinçonnés com- patibles en débit est une tentative pour atteindre cette enveloppe. L'idée d'utiliser des codes convolutionnels poinçonnés est assez ancienne en transmission. Elle consiste à partir d'un code de redondance entière assez élevée, à éliminer au moment de la transmission un certain nombre de bits codés selon un motif connu à l'avance. Le résultat est un code de redondance inférieure au premier, éventuellement fractionnaire (2/3, 4/5,...). Le décodeur remplace simplement les bits non transmis par des 0. L'intérêt de cette technique est de pouvoir atteindre une grande dy- namique de redondances possibles avec le même code, et donc avec le même décodeur, les opérations de poinçonnage et de dépoinçonnage étant très simples à réaliser. La compatibilité en débit des codes convolutionnels poinçonnés est une propriété supplémentaire qui permet des applications plus nombreuses. Il s'agit de faire en sorte que les tables de poinçonnage soient incluses les unes dans les autres, c'est-à-dire que les bits transmis pour une simple redondance donnée le soient également pour la redondance supérieure; il leur est simplement adjoint des bits supplémentaires. Cette propriété a été développée essentiellement par M. J. Hagenauer dans un article ayant pour titre "hybrid ARQ protocols on Fading Channels Using rate compatible picturated convolutional codes" IEEE - ICC 1987 - 21-4-1. Pour des applications diverses, telle que le codage correcteur d'erreurs appliqué à la phonie vocodée, et les transmissions de données par procédure ARQ, M. Hagenauer montre qu'il est possible de trouver des codes convolutionnels et des tables de poinçonnage vérifiant la propriété de compatibilité en débit, en gardant des performances proches des meilleurs codes pour chaque redondance. L'utilisation des codes poinçonnés compatibles en débit dans une procédure ARQ hybride de type Il consiste à réaliser le codage d'un bloc de données par un code externe détecteur d'erreurs, le résultat étant codé par un code convolutionnel poinçonne. A la première transmission, le bloc de données est transmis avec le poinçonnage maximal (redondance minimale). En cas de non décodage, la deuxième transmission pour ce bloc concerne le complément de redondance nécessaire pour atteindre le poinçonnage suivant dans la table de poinçon- nage. Le décodage s'effectue alors conjointement avec les échantillons déjà transmis gardés en mémoire et les nouveaux échantillons; en tentant de décoder un code de redondance légèrement supérieure. Le processus se poursuit ainsi jusqu'à obtention du décodage correct, ou atteinte de la redondance maximale (la redondance du code non poinçonné). Dans ce dernier cas, une procédure particulière est à prévoir pour retransmettre le bloc. Ainsi dans le cas général, si la redondance maximale n'est pas dépassée, la redondance atteinte pour chaque bloc est exactement celle qui est nécessaire à son décodage correct.L'adaptativité en débit est alors au- tomatique, bloc par bloc et il est possible de montrer que si les pas d'incré- mentation de la redondance sont suffisamment fins, le débit utile obtenu doit suivre la courbe enveloppe des techniques précédentes. Cependant la mise en oeuvre pratique d'une telle procédure dans le cadre d'une transmission HF, avec un canal de retour qui peut être extrê- mement bruité, présente une première difficulté qui provient du fait qu'au fur et à mesure de l'évolution des tables de poinçonnage pour les différents blocs, la quantité d'informations à transmettre pour un bloc donné peut varier considérablement en cas de mauvaise réception d'un accusé de réception et il y a un risque de désynchroniser complètement les deux parti- cipants à la liaison. Une deuxième difficulté est liée à l'utilisation de l'entre- lacement sur la voie aller. En effet, les codes convolutionnels n'obtiennent leurs meilleures performances que sur un canal sans mémoire. Pour obtenir un canal sans mémoire à partir d'un canal physique qui, lui, présente de la mémoire, on utilise l'entrelacement des symboles codés. Cet entrelacement implique un retard au décodage, avant la transmission de l'accusé sur le bloc de données considéré. Pour éviter de gaspiller la durée considérée, les trames suivantes sont transmises avant que l'accusé ne soit transmis. L'accusé est donc transmis au milieu d'une trame de données. Pour que ce soit possible sans perte d'information, les deux intervenants doivent être entièrement synchrones. Le but de l'invention est de pallier les inconvénients précités. A cet effet, l'invention a pour objet un procédé de transmission à répétition automatique de blocs de données utilisant des codes poinçonnés compatibles en débit, à l'alternat entre un appeléet un appelant dans lequel les blocs de données sont organisés en trame de longueur variable et entrelacée caractérisé en ce qu'il consiste à faire émettre un accusé de réception par l'appelé dès qu'il a reçu de l'appelant un nombre déterminé de blocs formant une super trame et à faire interrompre la transmission de l'émetteur appelant aux instants d'émission de l'accusé de réception. D'autres caractéristiques et avantages de l'invention apparaîtront dans la description qui suit faite en regard des dessins annexés qui repré- sentent: - La figure 1 une chaîne de transmission pour la mise en oeuvre du procédé selon l'invention; - La figure 2 une décomposition d'un bloc de données par poinçon- nage; - La figure 3 un schéma d'entrelacement de trames ARQ avec accusé de réception. Le procédé de transmission selon l'invention est décrit ci-après à titre non limitatif, dans le cadre de transmissions radioélectriques HF entre modems série utilisant une forme d'onde normalisée suivant la norme STANAG 4285. Pour cette forme d'onde, I'unité temporelle de base est celle de la trame modem, dont la durée qui est d'environ 106 ms permet de véhi- culer 128 symboles utiles de modulation. La modulation utilisée est une mo- dulation QPSK à 4 états de phases, ce qui conduit à 256 bits utiles transmis. La chaîne de transmission utilisée est celle représentée à la figure 1. Elle comporte un générateur aléatoire de fichier binaire 1 couplé à un modula- teur 2 QPSK par l'intermédiaire d'un codeur interne convolutif 3, d'un dis- positif poinçonneur 4 et d'un entrelaceur convolutif 5. Le canal de transmis- sion figuré en 6 est supposé être un canal de Rayleigh bruité. Côté récep- tion la chaîne comprend un démodulateur QPSK, couplé à un décodeur intra convolutif par l'intermédiaire d'un désentrelaceur convolutif 9 et d'un dépoin- çonneur 10. Un calcul de statistique d'erreur est effectué par un dispositif de calcul statistique 11 placé en sortie du décodeur 8 et piloté par le générateur aléatoire 1. Un dispositif de calcul 12 détermine la probabilité de décodage de chaque bloc reçu. Pour simplifier la gestion du temps nécessaire et assurer la syn- chronisation de la partie émission et la partie réception, I'unité de temps minimale est définie sur un nombre de trames modem. Les données à transmettre sont découpées en blocs et sont codées de la manière représentée à la figure 2 par un code détecteur correcteur d'erreurs type Reed-Solomon (RS) étendu sur des symboles de 8 bits. Ainsi dans l'exemple de la figure 2 le bloc de données brutes à transmettre D1 comporte 239 symboles de 8 bits et le bloc RS correspondant est un bloc RS(239, 255) comportant 255 symboles de 8 bits. Chaque bloc de données ainsi codé est ensuite protégé en interne par le codeur interne 3 par un code convolutionnel de longueur de contrainte k = 5 et de redondance 3 du type Hagenauer. Pour tenir compte du retard au décodage nécessaire pour obtenir les meilleurs performances possibles des codes convolutionnels, il est ajouté dans le message à coder un certain nombre de bits ne portant pas d'information utile. Typiquement, un retard au décodage de 40 bits utiles convient pour un code convolutionnel de ce type et ses versions poinçon- nées. Compte tenu de la redondance il est ajouté au message utile 120 bits. Le bloc résultat est figuré en D2 sur la figure 2. Des tables de poinçonnage sont associées à ce code par le dispo- sitif poinçonneur 4. Ces tables, telles qu'elles sont représentées en T1, T2, T3, T4 et T5 sur la figure 2 ont une période de répétition de 8 bits utiles et définissent les bits codés à transmettre parmi 24 (en raison de la redon- dance 3). Les paquets de bits en cours de transmission sont dans les tables représentés par des cases noires, ceux effectivement transmis sont dans des cases hachurées. Les redondances disponibles vont dans le rapport 8/N o N varie de 9 à 24. La plus petite quantité d'information à transmettre correspond à un incrément de redondance pour passer par exemple de la redondance 8/9 à la redondance 8/10 conduisant ainsi à transmettre qu'un bit supplémentaire pour 8 bits utiles. Ainsi si le code RS a une longueur de N1 symboles, la quantité d'information minimale est définie sur N1+5 bits en tenant compte de 40 bits utiles ajoutés pour compenser le retard du codeur convolutionnel 3. A titre d'exemple, N1 = 251 permet de faire correspondre la quantité d'in- formation minimale à une trame modem. Pour éviter de changer trop souvent le sens de la liaison, I'accusé de réception des blocs "ACCUSE #" a lieu de la manière représentée à la figure 3, c'est-à-dire n'est transmis qu'après réception d'un nombre déter- miné de ceux-ci, 64, par exemple, pour former une super trame. Dans ce cas, les 64 premiers blocs formant une super trame sont transmis une pre- mière fois avec le code interne de redondance minimale 8/9 vers l'entrela- ceur 5. L'entrelaceur 5 est de type convolutionnel. Les bits entrelacés sont ensuite regroupés sous forme de symboles QPSK pour être émis par le mo- dulateur 2. Du fait que le processus d'entrelacement et de désentrelacement introduit un retard qui peut atteindre quelques dizaines de secondes sur le canal HF, I'accusé de réception "ACCUSE #" est transmis comme le montre la figure 3 qu'après ce retard. De la sorte, I'appelant, pour ne pas perdre tout ce temps, commence toujours à émettre les 64 blocs suivants immédiate- ment après les 64 premiers. Lorsque l'appelé a terminé le décodage des 64 premiers blocs, il transmet un accusé de réception, qui n'est pas entrelacé. Cet accusé indi- que pour chacun des 64 blocs si l'appelé a réussi le décodage. Le moment o cette transmission doit avoir lieu est bien sûr connu de l'appelant, qui interrompt sa transmission à ce moment. Avant de reprendre sa transmission de la super trame en cours, l'appelant émet un compte-rendu de l'accusé, qui indique si l'appelant a réussi le décodage de l'accusé. Ce compte-rendu est constitué d'un bit, qui est protégé avec une forte redondance, par une répétition de 256 fois pour permettre au compte-rendu d'occuper une trame modem. Comme le compte- rendu codé est entrelacé avec les informations utiles sur la voie aller, il bénéficie de ce fait d'une protection extrêmement élevée, qui assure la sécurité ultime de l'ensemble de la procédure. Ce compte-rendu permet à l'appelé de suivre en permanence le déroulement de la procédure du côté de l'appelant. Par exemple, si l'appe- lant n'a pas décodé l'accusé, il est possible de convenir à l'avance qu'il considérera tous les blocs concernés par l'accusé comme étant non déco- dés par l'appelé. Dans la super trame suivante, il émettra alors les complé- ments de redondance correspondant à ces différents blocs, qui ne sont pas forcément tous au même niveau de retransmission. L'appelé pourra de ce fait connaître le traitement à effectuer sur ces différents blocs, et il connaîtra la longueur de cette super trame. Ce procédé permet d'éviter la transmission d'un grand nombre d'in- formations de service sur la voie aller, telles que les numéros de blocs, leur niveau de retransmission etc..., l'appelant et l'appelé déroulant par définition la même procédure, quelle que soit sa complexité. Lorsque l'appelé n'a pas réussi à décoder un bloc, il garde en mémoire les symboles déjà reçus avec leur note de qualité; pour les utiliser à la tentative de décodage suivante lorsqu'il aura reçu un complément de redondance. Compte-tenu de la nature variable des informations à transmettre sur les différents blocs, les super trames peuvent avoir des durées très variables. La durée minimale est obtenue lorsque les 64 blocs nécessitent un incrément de redondance d'une unité. Ceci donne alors une durée de 64 trames modem (environ 7 s). La durée maximale est obtenue lorsque les 64 blocs en sont à la première transmission comme il existe 9 trames modem par bloc, la durée de la super trame est d'environ 1 mn. Ces durées s'enten- dent avant entrelacement ou après désentrelacement. Il est possible de trouver une situation dans lesquelles deux super trames sont émises entre deux accusés de réception. Cette situation, qui peut sembler complexe, ne pose pas de pro- blème particulier dans la mesure o l'appelant et l'appelé suivent exacte- ment la même procédure unité de temps par unité de temps, d'o l'impor- tance du compte-rendu de l'accusé comme cela peut être vu à la figure 3. La procédure se déroule de cette manière jusqu'à la fin du fichier à transmettre. Il faut placer ici dans l'hypothèse o l'appelant connaît la taille du fichier au début de la transmission; et peut de ce fait communiquer cette taille à l'appelé dès le début de la transmission. Le premier bloc de données peut être considérer alors comme particulier et comporter un champ réservé à la transmission du nombre de blocs total. A la fin de la transmission, comme l'appelant peut se trouver dans la situation o il ne lui reste qu'un faible nombre de blocs à transmettre, et doit en principe attendre l'accusé de réception concernant ces blocs pour trans- mettre les redondances incrémentales, il faut convenir dans ce cas qu'il a à transmettre par défaut les redondances incrémentales des blocs non encore décodés avant de recevoir l'accusé, dès qu'il n'a plus de nouveaux blocs à transmettre. L'invention n'est naturellement pas limitée à l'exemple décrit précé- demment et d'autres modes de réalisation sont également possibles. Notamment les paramètres précédemment décrits peuvent être adaptés à d'autres types de modem et le principe connu de la redondance incrémentale peut être également utilisé avec des codes en bloc, par exemple des codes de Reed-Solomon. Il suffit de coder les blocs de données par un code de Reed-Solo- mon de forte redondance (N,K) et de ne transmettre que N1 symboles, N1 ont été effacés (ce qui est l'équivalent du poinçonnage pour les codes con- volutionnels). En supposant que le code de Reed-Solomon permet lui-même de détecter les erreurs, le recours à un code externe pour cette fonction n'est plus nécessaire. En cas d'échec du décodage, il suffit de transmettre quelques sym- boles de redondance supplémentaires, en tentant un nouveau décodage et en utilisant les symboles déjà reçus et les nouveaux symboles de redon- dance. Le fonctionnement général est identique à celui décrit pour les codes convolutionnels. Le principe du compte-rendu d'accusé peut également être utilisé dans les procédures ARQ n'utilisant pas la redondance incrémentale. C'est le cas par exemple pour la transmission des données à des débits supé- rieurs à 2 bits/Hz/s, en utilisant des modulations codées. Les modulations codées ne possèdent pas encore une propriété équivalente à la compatibi- lité en débit. Le compte-rendu d'accusé permet dans ce cas d'éviter la transmis- sion d'informations de service à chaque bloc de données et permet de sécu- riser la liaison, en permettant à l'appelé de connaître le déroulement de la procédure du côté de l'appelant. Naturellement la procédure ARQ qui a été décrite pour les trans- missions sur canal HF s'applique également aux transmissions dans d'autres gammes de fréquence, comme la VHF ou l'UHF. Elle peut s'appli- quer à des transmission en évasion de fréquence, par exemple avec les codes de Reed-Solomon décrits plus haut, avec un entrelacement inter- paliers. REVENDICATIONS 1. Procédé de transmission à répétition automatique de blocs de données utilisant des codes poinçonnés (4) compatibles en débit, à l'alternat entre un appelé (7) et un appelant (2) dans lequel les blocs de données sont organisés en trame de longueur variable et entrelacée caractérisé en ce qu'il consiste à faire émettre un accusé de réception (ACCUSE #) par l'appelé dès qu'il a reçu de l'appelant un nombre déterminé de blocs formant une super trame et à faire interrompre la transmission de l'émetteur appelant aux instants d'émission de l'accusé de réception. 2. Procédé selon la revendication 1 caractérisé en ce qu'il consiste à émettre un compte-rendu d'accusé de réception entrelacé avec les données utiles sur la liaison aller. 3. Procédé selon la revendication 1 caractérisé en ce que les blocs de données sont codés par un code détecteur correcteur d'erreurs type ReedSolomon et protégé par un code convolutionnel (3) de type Hagenauer. 4. Procédé selon la revendication 2 caractérisé en ce qu'il consiste à augmenter la redondance des blocs de données transmis par l'appelant, par un complément de redondance déterminé par des tables de poinçonnage (T1... T5), dans la super trame qui suit l'instant o doit apparaître un accuse de réception lorsque l'appelant n'a pas reçu l'accusé de réception.