Transmettre en MFSK est très simple. Les données
(disons provenant du clavier) sont stockées dans une zone tampon (appelé aussi
"buffer" en anglais) et, une fois que la transmission est démarrée,
elles sont envoyées via une série de codeurs au modulateur de transmission,
puis à la carte son pour la conversion audio.
Etudiez la partie supérieure du diagramme
après ce paragraphe.
Insertion d’Attente/Remplissage
Quand
la zone tampon de transmission du clavier est vide, des caractères d’attente ne
s’affichant pas sont incorporés dans l'émetteur via le codeur, étant donné
qu'il est important que la transmission continue de fonctionner sans
interruption afin que le synchronisme soit maintenu à la réception.
Varicodeur
Les
données du clavier et les caractères d’attente sont envoyés par l’intermédiaire
de l’émetteur à un débit constant allant en premier au Varicodeur. Ce
dernier utilise un tableau de conversion pour traduire le texte ASCII à la
longueur fixée en un texte Varicode où la longueur du caractère dépends de sa
fréquence d’utilisation. C’est tout comme le code Morse et il a trois avantages
:
·
C’est
plus efficace (moins de bits de données par mot dans du texte ordinaire).
·
Il
transforme un texte orienté byte en un flux binaire facilement transmis quelque
soit le nombre de bits par symbole impliqués.
·
Il
permet que les données soient traitées par un codeur convolutionnel séquentiel
et qu'un décodeur soit utilisé pour la correction des erreurs.
·
Il
fournit un jeu de caractères virtuellement illimité - ASCII étendu avec
caractères accentués, plus codes de contrôle non-affichés .
Le Varicodeur
employé pour le MFSK 2000 est très similaire mais ce n’est pas le même que
celui qui utilisé pour le PSK31. En particulier, le besoin de signaux
"00" continus afin d’identifier le signe d’attente/remplissage n’est
pas nécessaire et ainsi un code plus efficace utilisant des combinaisons avec
des zéros répétés est possible. D’autres codes externes au jeu ASCII de 256
caractères sont employés pour des contrôles.
Codeur FEC Convolutionnel
Si
la Correction d'Erreur par Avance (Forward Error Correction ou FEC)
est sélectionnée, le prochain étage est un Codeur Convolutionnel qui
génère des bits de données supplémentaire de telle manière que les données
originales peuvent être reconstruites dans la plupart des cas, même avec des
erreurs en réception. Deux algorithmes définissent la valeur des deux bits de
données en sortie pour chaque bit de données en entrée. Un coder R=1/2
K=7 standard NASA est employé. La sortie correspond à un flux binaire deux fois
plus rapide que le débit des données en entrée.
Entrelaceur
Le
codeur convolutionnel est suivi par un Entrelaceur qui mélange
simplement l’ordre des données. Il en résulte que, lorsque les données sont
reçues et "démêlées", les erreurs causées par le bruit sont étalées
et ont un effet moins sérieux sur le décodeur FEC. Bien sûr les données doivent
être mélangées d’une manière standardisée. L’entrelaceur du MFSK 2000 est
inhabituel - plusieurs petits entrelaceurs en diagonal sont utilisés. Chaque
entrelaceur utilise un tableau de bits de même taille que le nombre de bits par
symbole. Cela permet au désentrelaceur en réception d'être complètement
autosynchronisable, ce qui est important lorsque la réception peut être très
médiocre et que la synchronisation peut alors être perdu. Des détails sont
donnés plus loin dans la page.
Données non Codées
Le MFSK est très robuste et dans beaucoup de cas il n’est pas nécessaire d’employer le FEC. Cela améliore le débit du texte. Dans ce cas la sortie du flux binaire se fait directement à partir du Varicodeur.
Le Modulateur
Le
générateur de tonalité est relativement direct mais difficile à décrire en
termes simples. Dans le diagramme, il est illustré comme étant un seul bloque. Le
signal MFSK est une suite de segments de tonalité d'onde sinusoïdale avec une
phase synchrone, tous de longueurs identiques. Les tonalités démarrent et
s'arrêtent toujours avec la même phase et ont, en conséquence, un nombre entier
de cycles chacune. Puisque aucune interruption n'est permise entre les
tonalités, la façon la plus simple de les générer est d'employer une Table
de Conversion d'onde sinusoïdale (un tableau étendu définissant beaucoup
de points sur une période sinusoïdale), and simply
sample the table over and over at a constant rate, but skipping a fixed number
of table entries between samples. Avec un PC rapide, les échantillons
peuvent être en réalité générés en résolvant l'équation sin(x) au fur et à
mesure!
L’exemple suivant
a été généré en utilisant un tableau et skipping algorithme exactly as described, mais en utilisantt un tableur.
L'onde sinusoïde apparente représente quatre symboles de poids 010, 100, 000,
010 qui sont en réalité quatre fréquences - quatre symboles séquentiels -
qui pourrait représenter des tonalités à 1 008, 1 012, 1 000 et 1 008 Hz. Chaque
symbole comporte approximativement 10 cycles mais, en raison de la
transition douce de l'une à l'autre, vous ne pouvez pas réellement le dire. En
utilisant une règle, vous pourriez voir la différence de fréquence mais il est
évident que la phase reste continue.
Quatre Tonalités CPFSK
Quand le nombre
d'échantillons skipped est fixed, une fréquence constante est générée. Toutefois
lorsque le nombre d'échantillons skipped
change, une fréquence différente est générée, et la fréquence de l'onde
sinusoïdale générée varie légèrement d'une fréquence à la suivante sans
changement de phase. Cette technique est appelée Continuous Phase Frequency
Shift Keying, ou CPFSK, et elle génère le signal FSK le plus propre
possible.
La technique
d'échantillonnage par pas dans un tableau est appelée DDS pour Direct
Digital Synthesizer. Beaucoup de transceivers HF modernes utilisent cette
technique pour le "VFO". Dans le modulateur CPFSK, le nombre d'entées
skipped est contrôlé par trois, quatre ou
cinq bits de données from des codeurs,
suivant le nombre de tonalités sélectionnées. La vitesse à laquelle les
tonalités sont commutées dépend de la rapidité de modulation sélectionnée.
Regardez la
partie inférieure du diagramme block
ci-dessus. Toute cette fonctionnalité se trouve dans un unique bloque intitulé
"CPFSK Modulator". Because the
transmitter signal est généré "on
frequency" to avoid mixing, le NCO de l'émetteur utilisé par le
récepteur ne peut être directement (puis qu'il fonctionne à environ 1/4 the transmit frequency). Cependant, le logiciel
connaît le rapport de division du récepteur et l'offset du NCO, so adds ces facteurs into the transmitter table skipping algorithm.
Ainsi l’Emission
et la Réception se font comme pour un "Transceiver", sur la même fréquence.
Finalement, le flux de valeurs est envoyé à la carte son PC pour conversion en
tonalités audio qui sont envoyées à l'émetteur. Il n’y a pas de variation en
amplitude dans les signaux MFSK – uniquement des changements de fréquence. Les
signaux consistent seulement en des ondes sinusoïdales et ils ne nécessitent
pas de filtrage supplémentaire.
Correspondance entre les
Tonalités et les Bits de Données
Les
bits de données à transmettre n'ont pas de relations particulières avec les
caractères étant transmis, par conséquent il n'est pas important de savoir
combien de bits sont transmis à un moment tant qu'ils sont transmis dans
l'ordre où ils arrivent. Un des avantages du MFSK est que chaque tonalité ou
chaque symbole peut représenter plusieurs bits de données, par exemple, s’il y
a 8 tonalités, trois bits, s’il y a 16 tonalités quatre bits et s’il y a 32
tonalités 5 bits.
Chacune des
tonalités dans un mode particulier est assignée à une valeur binaire, par
exemple pour 8 tonalités, les valeurs sont :
8 Tonalités : 16 Tonalités :
Tonalité Poids Tonalité Poids Tonalité Poids
0 (la plus basse) 000 0 (la plus basse) 0000 8 1100
1 001 1 0001 9 1101
2 011 2 0011 10 1111
3 010 3 0010 11 1110
4 110 4 0110 12 1010
5 111 5 0111 13 1011
6 101 6 0101 14 1001
7 (la plus haute) 100 7 0100 15 (la plus haute) 1000
Ainsi l'émetteur a un petit tableau qui définit pour
chaque groupe de trois, quatre ou cinq bits à transmettre quelle tonalité il
faut utiliser. Remarquez que le "poids" de chaque tonalité n'augmente
pas en ordre binaire. Ceci est fait pour s'assurer que s'il a une erreur de
mauvais accord, l'erreur maximum soit d'un seul bit. Si l'ordre était binaire,
par exemple, la transition de "011" à "100", qui implique
le changement des trois bits, pourrait causer de graves erreurs. C’est ce qu’on
appelle un code "Gray".
L’Entrelaceur à Diagonale
L’Entrelaceur employé durant le traitement FEC a
juste été décrit brièvement ci-dessus. Voici comment il fonctionne. Imaginez
que les données à transmettre (0 ou 1) peuvent être représentées par
"ABCDEFGHIJKLMOPQRSTUVWXYZ0123456789....."
et ainsi de suite. Alors le flux binaire sur le point d'être envoyé est disposé
par l'Entrelaceur à l'intérieur d'un tableau aussi profond que le nombre de
bits par symbole, comme cela :
8 Tonalités : 16 Tonalités : 32 Tonalités :
ADGJMPSVY2... AEIMQUY... AFKPUZ...
BEHKNQTWZ3... BFJNRVZ... BGLQV1...
CFILORUX14... CGKOSW0... CHMRW2...
DHLPTX1... DINSX3...
EJOTY4...
Les bits sont traités comme ils arrivent mais ils
sont envoyés en diagonale. Le premier groupe de bits transmis a
été surligné pour chacun des cas dans le tableau au-dessus. Les bits envoyés
sont :
8 Tonalités : AEI DHL GKO JNR MQU PTX SW1 UZ4 ...
16 Tonalités : AFKP EJOT INSX MRW1 ...
32 Tonalités : AGMSY FLRX4 KQW39 ...
Une fois encore le premier groupe de bits envoyées
sur l'air dans chaque cas est surligné. L'étalement des bits est plutôt modeste
puisque le tableau n'est pas très profond, mais puisque l'ordre des bits est
toujours connu par le récepteur (à partir de l'ordre des bits dans le symbole
reçu), la synchronisation de l’Entrelaceur est automatique.
Remarquez que les bits "B" et "C"
semble ne jamais être envoyés. En pratique, les tous premier bits de données de
l'utilisateur ne sont pas perdus puisque la transmission débute toujours avec
quelques caractères d’attente ou synchro (qui ne s’affichent pas). La chose la
plus importante est que la transmission ne peut pas être complète jusqu'à ce
que l'Entrelaceur has been flushed pour
s'assurer que les bits de données dans le tableau ont tous été envoyés. Une
fois encore, ceci est obtenu en envoyant des caractères de remplissage à
travers l'Entrelaceur, ce qui implique un délai supplémentaire inévitable puisque l'Entrelaceur is flushed.
Le rôle d’un Entrelaceur est de répartir les erreurs
causées par un parasite, les erreurs ont donc besoin d'être spread further than the constraint length du
codeur FEC (8 bits pour K=7), and also spread
au-delà de la length of a typical noise burst.
Une à deux secondes sont considérées comme a
reasonable spreading figure.
Afin d'accroître la répartition pour répondre à ces exigences, l'Entrelaceur du MFSK est composé
de 10 entrelaceurs séquentiels à diagonal , l'un après l'autre,
exactement comme 'est décrit ci-dessus. La technique n'est pas très ingénieuse,
par contre elle est très simple à exécuter, avec une très petite charge pour le
processeur de l'ordinateur. La sortie semble être aléatoire mais elle est de
fait mécanique et par conséquent complètement et automatiquement
"désemmêlée" par le désentrelaceur qui inverse simplement le
processus décrit. Avec 16 tonalités à 16 baud (le mode par défaut) la
répartition se monte à 94 bits (1,5 secondes), et l’Entrelaceur ajoute un délai
de 1,2 secondes.
Rapidités
de modulation
Le MFSK est connu pour ses rapidités de modulation
très basses, même si la vitesse du texte est plus élevée. Des rapidités de
modulation basses permettent l'emploi de bandes passantes étroites, ce qui
améliore la robustesse du récepteur et aide également à faire échec à l'un des
plus sérieux problèmes de distorsion en HF, les erreurs temporelles de réception à multiples trajectoires.
Les rapidités de modulation pour le MFSK sont en
général comprise dans la gamme 10 à 20 bauds. En MFSK 2000, les rapidités de
modulation semblent avoir nombres très irréguliers - 15,625, 7,8125, etc. La
raison pour les quelles ces étranges valeurs ont été choisies est que ce sont
toutes des divisions binaire de 8 000 Hz, le taux d'échantillonnage d'une carte
son PC. La rapidité de modulation n'est pas importante, tant que tout le monde
emploie la même!
Dans l'Emetteur MFSK, l'Horloge des Symboles
fonctionne à la même rapidité de modulation de l'émetteur et il envoie
différents symboles (tonalités) à partir de la carte son à ce débit. Dans le
récepteur, l'Horloge des Symboles est récupérée à partir des données et elle
est employé pour synchroniser les bloques de données envoyés au filtre et au
démodulateur de réception.