Comment WSJT-X arrive-t-il à décoder 30 stations FT8 presque simultanément ?

Banniere décodage FT4 - FT8

Sur une bande FT8 très fréquentée, le waterfall de WSJT-X peut être couvert de dizaines de traces. Pourtant, quelques instants plus tard, le logiciel affiche parfois 20, 30 messages ou davantage.

Comment un ordinateur peut-il séparer autant de stations qui émettent pratiquement au même moment, avec des signaux parfois extrêmement faibles et quelquefois superposés ?

On pourrait imaginer que WSJT-X utilise des dizaines de petits récepteurs numériques indépendants. La réalité est différente et beaucoup plus intéressante : le programme analyse toute la bande audio, recherche les signaux susceptibles d’être du FT8, tente de les décoder et peut même soustraire certains signaux déjà identifiés avant de recommencer son analyse.

Une seule bande audio pour des dizaines de stations

Lorsque le transceiver est réglé sur une fréquence FT8, il reçoit en réalité une bande de quelques kilohertz.

Un signal FT8 n’occupe qu’environ 50 Hz. De nombreuses stations peuvent donc se trouver simultanément dans la bande passante du récepteur.

Schema 1 FT8

Le logiciel ne reçoit donc pas 30 flux différents : toutes les stations sont présentes dans la même forme d’onde numérisée.

On peut comparer cela à une photographie : l’appareil enregistre toute la scène en une seule fois, puis le logiciel recherche les différents objets présents dans l’image.

Que reçoit réellement WSJT-X : de l’audio ou de l’I/Q ?

C’est un point qui prête souvent à confusion depuis la généralisation des SDR.

Dans une installation classique, WSJT-X ne reçoit pas directement un flux I/Q.

Le transceiver est généralement utilisé en USB. C’est lui qui effectue la conversion du signal RF vers une bande audio ou baseband. Cette bande est ensuite transmise à l’ordinateur par une interface audio, aujourd’hui très souvent intégrée au transceiver et reliée en USB.

Schema 2

Le programme travaille donc normalement sur une forme d’onde audio réelle échantillonnée numériquement.

C’est d’ailleurs pour cette raison que WSJT-X peut sauvegarder les périodes reçues sous forme de fichiers WAV et les redécoder ultérieurement.

Avec un SDR, on rencontre souvent une architecture différente :

Schema3 FT8

Les composantes I et Q conservent une représentation complexe du signal autour d’une fréquence centrale. Mais WSJT-X n’a pas besoin de recevoir directement ces données I/Q pour décoder simultanément de nombreuses stations FT8.

Première étape : trouver où sont les stations

WSJT-X ne commence pas par rechercher des indicatifs.

Il cherche d’abord les endroits de la bande audio où se trouve probablement un signal FT8.

Pour cela, le protocole possède une sorte de signature connue du logiciel : les séquences de synchronisation Costas.

Une transmission FT8 comprend 79 symboles :

Schema 4 FT8

La modulation FT8 utilise 8 tonalités espacées de 6,25 Hz, donnant au signal une largeur d’environ 50 Hz.

WSJT-X recherche ces motifs de synchronisation à de nombreuses fréquences et avec différents petits décalages temporels.

Il peut alors dresser une liste de candidats FT8.

Schema 5 FT8

À ce stade, le programme ne sait pas nécessairement ce que disent ces stations. Il sait essentiellement :

« À cette fréquence audio et avec ce décalage temporel, il existe probablement un signal FT8. »

30 stations ne signifient pas 30 récepteurs

C’est l’une des clés du système.

Une fois les candidats détectés, WSJT-X tente de décoder chacun d’eux.

30 stations dans une seule bande audio

Une bande audio FT8 très encombrée. WSJT-X reçoit simultanément toute la bande audio, ici de 0 à 3000 Hz, dans laquelle peuvent cohabiter plusieurs dizaines de signaux FT8 d’environ 50 Hz de largeur. Le logiciel repère ensuite les différents candidats selon leur fréquence et leur synchronisation temporelle avant de tenter leur décodage.

Pour chaque symbole, le programme analyse les huit tonalités possibles.

Mais il ne se contente pas d’une décision brutale du type :

« La tonalité n° 5 est la plus forte, donc c’est forcément elle. »

Le décodeur travaille avec des informations de vraisemblance. Une tonalité peut être très probable, une autre moins probable, etc.

Ces informations alimentent ensuite le puissant système de correction d’erreurs LDPC, pour Low-Density Parity-Check.

Le message FT8 comporte 77 bits d’information. Après ajout du CRC et du codage correcteur, le mot codé comporte 174 bits.

Cette importante redondance permet de reconstruire un message même lorsque certains symboles ont été fortement dégradés par le bruit ou les interférences.

Ainsi, avec 30 stations suffisamment séparées, le problème revient essentiellement à effectuer de nombreuses tentatives de décodage sur les candidats détectés dans la même bande audio.

Comment WSJT-x trouve et décode le FT8

Les principales étapes du décodage FT8 par WSJT-X. À partir de l’ensemble de la bande audio reçue, le logiciel recherche les séquences de synchronisation Costas, identifie les candidats, analyse leurs huit tonalités, puis utilise le décodage LDPC et le contrôle CRC pour valider les messages. Les signaux correctement décodés peuvent ensuite être reconstruits et soustraits de l’audio afin de permettre une nouvelle passe et de faire apparaître des stations jusque-là masquées.

Faut-il attendre 15 secondes avant de commencer le décodage ?

Non, et c’est un détail particulièrement intéressant.

On pourrait imaginer le fonctionnement suivant :

Schema 6 FT8

Ce serait cependant une perte de temps.

WSJT-X peut engager certains traitements avant même la fin complète de la période FT8.

Des étapes de décodage sont ainsi lancées vers la fin du créneau, une première pouvant commencer aux environs de 11,8 secondes, puis d’autres vers 13,5 et 14,7 secondes, selon le fonctionnement et la version du décodeur.

Le calcul informatique ne commence donc pas brutalement à la quinzième seconde : une partie du travail a déjà été engagée.

Schema 7 FT8

Combien de temps faut-il pour décoder 30 stations ?

Il n’existe pas de durée universelle du genre :

30 stations × 20 ms = 600 ms.

Le temps de calcul dépend de nombreux paramètres :

  • la puissance du processeur ;
  • le nombre de candidats détectés ;
  • la profondeur de décodage choisie ;
  • la qualité des signaux ;
  • le nombre de candidats difficiles ;
  • la quantité d’interférences ;
  • le nombre de passes nécessaires ;
  • les possibilités de parallélisation du processeur.

Surtout, les 30 candidats ne doivent pas obligatoirement être traités comme 30 gros calculs entièrement successifs.

Sur les versions modernes et avec un processeur multicœur, une partie du travail peut être parallélisée.

Voilà pourquoi, dans la pratique, plusieurs dizaines de messages semblent apparaître presque simultanément dans la fenêtre Band Activity.

Et si deux stations se chevauchent ?

C’est ici que le décodage devient particulièrement ingénieux.

Imaginons deux stations extrêmement proches :

Schema 8 FT8

La forme d’onde audio contient alors approximativement :

x(t) = A(t) + B(t) + bruit

La station B peut être partiellement masquée par A.

Mais imaginons que WSJT-X réussisse malgré tout à décoder A.

Il connaît maintenant le message exact envoyé par cette station.

Et c’est là que les choses deviennent particulièrement intéressantes.

Le logiciel peut reconstruire le signal qu’il vient de décoder

Puisque WSJT-X connaît désormais le message A, il connaît également la succession des symboles et tonalités FT8 que cette station a nécessairement émise.

Il peut donc reconstruire mathématiquement son signal.

Il ne suffit cependant pas de fabriquer un FT8 théorique et de le soustraire brutalement : le signal reçu a subi le canal radio et possède une certaine amplitude et une certaine phase.

Le logiciel estime donc ces caractéristiques afin de produire une représentation aussi proche que possible du signal A effectivement reçu.

Schema 9 FT8

Et voilà que B peut devenir décodable alors qu’elle ne l’était pas auparavant.

C’est le principe de la soustraction des signaux décodés, apparenté aux techniques de suppression successive d’interférences.

Et WSJT-X peut recommencer

C’est probablement le mécanisme le plus spectaculaire lorsque la bande FT8 est encombrée.

Imaginons plusieurs stations partiellement superposées :

Schema 10 FT8

Après une première passe, WSJT-X peut donc réexaminer une forme d’onde dont certains signaux correctement décodés ont été retirés.

Une station faible auparavant masquée peut alors devenir un candidat exploitable.

C’est pourquoi le nombre de messages affichés après une période FT8 ne correspond pas simplement au résultat d’une seule analyse spectrale.

Décoder - Soustraire - Recommecer

Décoder, soustraire, recommencer : comment une station faible peut émerger. Après avoir décodé une station FT8, WSJT-X peut reconstruire son signal en estimant notamment son amplitude et sa phase, puis le soustraire de l’audio reçu ; une nouvelle analyse peut alors révéler une station plus faible jusque-là masquée, et le processus peut être répété.

Le logiciel possède encore un autre avantage : le contexte

WSJT-X peut également utiliser ce que l’on appelle le décodage AP, pour a priori.

Pendant un QSO, certaines informations sont déjà connues.

Si vous êtes F4AAA et que vous échangez avec F1BBB, le logiciel connaît déjà ces deux indicatifs. Il sait également que les messages d’un QSO FT8 suivent des structures très précises.

Il ne cherche donc pas toujours n’importe quelle succession de 77 bits parmi toutes les possibilités imaginables.

Une comparaison très simplifiée permet de comprendre le principe.

Si un texte dégradé donne :

BONJ___

il est beaucoup plus facile de retrouver BONJOUR lorsque l’on connaît la langue et le contexte.

Le décodage AP applique une idée comparable, mais évidemment avec des méthodes mathématiques adaptées au protocole FT8.

Du signal reçu aux 30 indicatifs

Nous pouvons maintenant réunir toutes les opérations.

Schema 11 FT8

Le petit miracle qui se produit toutes les 15 secondes

Lorsque 30 lignes apparaissent presque simultanément dans Band Activity, l’ordinateur n’a donc pas simplement écouté 30 fréquences avec 30 récepteurs virtuels.

Il a reçu une seule forme d’onde audio contenant toutes les stations.

Dans cette forme d’onde, il a recherché les signatures caractéristiques du FT8, déterminé leurs positions en fréquence et dans le temps, évalué les huit tonalités de chaque symbole et soumis les informations obtenues au puissant décodeur LDPC.

Une partie de ces opérations peut déjà commencer avant la fin de la période de réception.

Pour les situations difficiles, le logiciel peut aller encore plus loin : reconstruire certains signaux correctement décodés, les soustraire de la forme d’onde reçue puis recommencer l’analyse sur ce qui reste.

Le tout doit être réalisé extrêmement rapidement, car le FT8 impose son rythme : 15 secondes plus tard, le créneau suivant est déjà là.

La véritable prouesse du FT8 n’est donc pas seulement de permettre de décoder des signaux que l’oreille humaine ne distingue pratiquement plus dans le bruit.

C’est aussi de parvenir à retrouver des dizaines de conversations différentes dans quelques kilohertz de spectre, pratiquement au même instant.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

*

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur la façon dont les données de vos commentaires sont traitées.