L’ENTRELACEUR DIAGONAL de IZ8BLY
Nino Porcino IZ8BLY - 07 juillet 2000
Traduction française de Pascal BIMAS F1ULT
INTRODUCTION
Voici une brève description de l’Entrelaceur/Désentrelaceur des bits de données utilisé dans le mode MFSK-2000 (programme STREAM de IZ8BLY). Cette description est nécessaire parce que l’entrelaceur n’est pas conventionnel, quelque chose que j’ai appelé "diagonal interleaver".
La fonction d’un entrelaceur de données est de de répartir dans le temps les bits pendant la transmission, de sorte que burst errors (généralement du QRM) ne causent pas l'endommagement de bits consécutifs qui entrent dans le décodeur FEC. En fait un décodeur Viterbi (celui utilisé dans le programme) fonctionne très mal lorsqu’il y a plus d’erreurs consécutives que la longueur de constraint (K), ce qui est le cas lorsque le registre de décalage devient rempli de bits erronés. Cela se produit généralement quand the low-level modulation scheme code plus qu’un bit par signal, par exemple notre mode MFSK16 puisque lorsqu‘une tonalité est reçu de manière erronée, quatre bits consécutifs sont endommagés. Quand deux tonalités sont mal reçues huit bits consécutifs sont endommagés, excédant la capacité de la longueur constaint (qui est de 8 bits pour K=7).
La raison de l’utilisation de ce "Diagonal Interleaver" est qu’il ne nécessite aucune synchronisation. C’est un aspect très important parce que notre mode (MFSK-2000) doit fonctionner dans des conditions très médiocres, où la synchronisation pourrait être critique. (En d’autres mots, nous voulons que l’ordinateur prenne aussi peu de décisions que possible -- une sorte de règle "Fuzzy").
Référons-nous à ce que nous avons appelé "MODE A" - une transmission MFSK 16 tonalités 15,625 baud, où chaque tonalité encode quatre bits de donnée. Dans ce mode, le FEC est R=1/2, K=7 (standard NASA). Désignons chaque bit à encoder "ABCDEF...." de façon que nous puissions instantanément comprendre la position originale des bits. Ainsi les tonalités de notre transmission 16-MFSK sont :
tonalité 1 = ABCD
tonalité 2 = CDEF
et etc...
Dans un entrelaceur ordinaire, un tableau de symboles est utilisé - les caractères à encoder sont placés dans des colonnes et les cractères encodés sont pris par rang chaque n-pas.
Exemple d’un entrelaceur ordinaire :
AEIMQUY
BFJNRVZ
CGKOSW0
DHLPTX1
Flux envoyé dans l'entrelaceur : ABCD EFGH IJKL MNOP ....
Flux revenant de l'entrelaceur : DHLP CGKO BFJN AEIM ....
Remarquez comment le flux retourné est mauvais si le répecteur n'est pas syncronisé proprement, i.e. "HLPT" au lieu de "DHLP"... etc.
Dans l’entrelaceur diagonal, les caractères encodés sont pris non par rangée mais par la diagonale principale du tableau (les bits en décodage sont lus par la diagonale opposée ). Cela résoud le problème de la nécesité de se synchroniser. Dans notre exemple, le texte retourné serait :
AEIMQUY
BFJNRVZ
CGKOSW0
DHLPTX1
Retourné : AFKP EJOT INSX MRW1 ....
Une autre différence par rapport aux entrelaceurs les plus communs est que le tableau doit être carré (n x n, où n est le nombre de bits of the low-level modulation scheme). Cela signifie que seuls de petits tableaux sont possibles. Dans notre mode MFSK "A" seule une table 4x4 est possible, ce qui donne un enrelacement très médiocre. Une bonne idée de Murray ZL1BPU fut d'enchaîner séquentiellement plus d'un entrelaceur pour obtenir différents niveaux d'entrelacement. Le programme utilise efectivement 10 Entrelaceurs Diagonals comme c'est ilustré dans l'exemple (4 lettres = 4 bits = 1 tonalité = 1/15,625 secondes)
A encoder : ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnopqrstuvwxyz-----------------------------------------------------------------------------------------
Encodé : A E I M Q U Y 2 6 a eB iF mJ qN uR yV -Z -3 -7 -b -fC -jG -nK -rO -vS -zW --0 --4 --8 --c --gD--kH--oL--sP--wT---X---1
Décodé : ABCDEFGHIJKLMNOPQRSTUVWXYZ01
12345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890
0 1 2 3 4 5 6 7 8 9 10
Performance de l'entrelaceur diagonal :
Répartition d'un symbole = 94
bits = 23,5 tonalités = 1,504 secondes
Délai introduit = 71 bits = 17,75 tonalités = 1,136 secondes
Bien sûr, on peut facilement amélioré ces performances en enchaînant facilement plus d'entrelaceurs, toujours sans faire appel à aucune syncro!
Toutes questions / commentaires / idées / suggestions sont appréciées. Veuillez les poster sur le réflecteur MFSK
- Nino
IZ8BLY