European GNU Radio Days 2021

Magazine
Marque
GNU/Linux Magazine
Numéro
252
Mois de parution
octobre 2021
Spécialité(s)


Résumé

Dans une époque lointaine et révolue de conférences en présentiel, nous avions proposé d’organiser une rencontre européenne des utilisateurs et développeurs de l’environnement libre de traitement numérique de signaux radiofréquences GNU Radio. Persévérants que nous sommes, après l’obligation d’annulation en dernière minute l’année dernière dans l’incertitude des déplacements et des rencontres, nous avons retenté cette année d’organiser une conférence, qui s’est rapidement avérée devoir se tenir en virtuel. En voici les leçons tirées, complétées de quelques divagations techniques sur le concours proposé et les tutoriels.


Body

GNU Radio est une bibliothèque de traitement numérique de signaux radiofréquences permettant d’implémenter les préceptes de la radio logicielle (Software Defined Radio – SDR) visant à éliminer au plus tôt le matériel au profit du logiciel, amenant de ce fait stabilité, flexibilité et reconfigurabilité aux applications. Alors que le cœur des développements se déroule aux États-Unis d’Amérique, notamment avec la société Ettus Research ou l’embauche de Tom Rondeau par la DARPA, l’Europe possède quelques membres actifs, en particulier avec Marcus Müller au KIT en Allemagne. Notre objectif avec la création de cette conférence était de proposer un forum d’échange entre utilisateurs et développeurs européens, en complément de la session radio logicielle (Free Software Radio devroom) du FOSDEM visant toutes les infrastructures logicielles, et le Software Defined Radio Academy des radioamateurs allemands à l’occasion de la foire annuelle de Friedrichshafen, berceau des dirigeables Zeppelin.

L’édition 2021 décrite sur https://gnuradio-eu-21.sciencesconf.org/ devait se tenir à Poitiers sous la direction d’Hervé Boeglen et du laboratoire XLIM, avant de devenir virtuelle compte tenu des incertitudes de regrouper les participants en présentiel. Alors que les inscriptions se sont maintenues à un peu moins de 90 intéressés, force est de constater que le modèle virtuel de la conférence que nous a imposé l’incertitude des libertés de mouvement en mars n’est pas approprié pour des jours de conférence en semaine. En effet, alors qu’un ordre de mission justifie pleinement la participation à une conférence en semaine pour les professionnels que sont les chercheurs, enseignants-chercheurs ou industriels, comment justifier de passer sa journée à visionner des vidéos sur YouTube ? Ainsi, seuls 35 à 40 participants ont été dénombrés au cours de la journée de diffusion des présentations orales (jeudi) avec séance de questions-réponses en direct entre orateurs et modérateurs (figure 1).

v-fig1 8

Fig. 1 : Décompte final avant le début de la conférence : tous les organisateurs sont prêts. L’appel aux services d’un professionnel pour la diffusion de la conférence sur YouTube fut sûrement la meilleure décision que nous ayons prise pour une organisation sans accrocs du flux vidéo. Le maître de cérémonie, Hervé Boeglen en haut au milieu, se prépare pour sa présentation d’introduction.

Le contenu mis à disposition du public a été visionné bien plus de fois que le nombre d’inscrits, et nous pourrons considérer l’investissement comme rentable pour l’avenir, avec une capacité de transfert de connaissances douteuse, puisqu’un cours d’environ 1 h 15 est visionné pendant une durée moyenne de tout au plus 10 minutes d’après les statistiques de YouTube, sans compter l’incapacité de diffuser la bonne parole vers les pays refusant l’influence de Google (p. ex. la Chine). Le constat est le même sur les présentations orales courtes dont les 20 minutes sont vues au maximum en 4 minutes en moyenne, d’après les statistiques de YouTube. La richesse de la diffusion par visioconférence, sans avoir à subir de longs déplacements, semble donc compensée par la multitude d’informations qui nous noie continuellement, en cohérence avec le peu de contributions que nous avons reçues par un auditoire sûrement saturé de sollicitations de toutes parts.

Cette édition de la conférence a été jumelée, pour les deux jours de présentations orales du week-end, avec la Software Defined Radio Academy (SDRA) [1] organisée par les radioamateurs allemands du DARC et en particulier Marcus Heller DL8RDS, qui eurent eux aussi bien du mal à attirer les contributions et ont dû diverger de leur ligne éditoriale, en attirant une majorité de contributions académiques. Les orateurs ont été encouragés à fournir un texte résumant leur contribution, dont les actes sont regroupés sur https://pubs.gnuradio.org/index.php/grcon, la majorité des contributeurs s’étant contentée de fournir la vidéo de la présentation orale sans rédiger de document associé.

1. Tutoriels

Un axe prioritaire de la conférence est la formation continue par des tutoriels abordant divers points spécifiques que nous nous efforçons de mettre en pratique après une introduction théorique des concepts de base : les vidéos ont été mises à disposition des participants environ 1 mois avant la date de la conférence afin de permettre un visionnage préalable et une préparation, étant bien conscients que 90 minutes sont largement insuffisantes pour atteindre tous les objectifs proposés dans chaque séance de travaux pratiques.

v-fig2 8

Fig. 2 : Diffusion du tutoriel sur l’exécution de GNU Radio sur système embarqué, ici émulé par QEMU, avec un encouragement à mettre en pratique pendant la pause.

Afin de tenter de maintenir un peu de cohérence dans la séquence des présentations, deux séquences parallèles de 4 cours intitulés introductifs et avancés ont été proposées. Les sujets abordés allaient d’une introduction aux concepts de base du traitement du signal échantillonné en temps discret, égayé de mises en pratique sur des signaux synthétiques sous GNU Radio, au décodage de signaux analogiques et numériques inconnus, le déploiement de GNU Radio sur cibles embarquées (p. ex. Raspberry Pi) et son exécution dans QEMU (figure 2), pour finalement aborder des sujets plus pointus, tels que la cohabitation de GNU Radio avec des outils externes ou le marquage de paquets (tags) pour permettre un traitement asynchrone du flux de données continu fourni par GNU Radio. Ici encore, très peu d’interaction avec l’auditoire qui s’est contenté de visionner les vidéos proposées, sans profiter de la préparation pour venir interagir avec les orateurs lors des sessions de disponibilité pour compléter ou corriger certains points. Nos remerciements à Alban Meffre F4GSW pour sa participation active, qui nous a poussés à approfondir certains points que nous avions tenté de cacher pour pallier notre ignorance.

2. Concours

NI, anciennement National Instruments et acquéreur de Ettus Research, a supporté la conférence en offrant deux B205mini. Nous nous sommes par conséquent proposé d’offrir ces prix aux vainqueurs d’un concours, qu’il a fallu concocter selon les contraintes de ne pas être trop facile pour ne pas avoir à sélectionner arbitrairement deux parmi une multitude de solutions, tout en étant accessible, et idéalement pédagogique, pour permettre à l’auditoire d’apprendre de nouveaux concepts.

Étant intéressés de longue date par le GPS et la modulation BPSK émise par une multitude d’émetteurs sur la même fréquence porteuse, mais différenciés par les codes orthogonaux supportant la communication numérique, nous nous sommes appuyés sur cette approche pour concevoir le concours, dont l’énoncé est le suivant :

Seven European citizens have been discussing in an HF amateur band: a (512 MB) recording of their exchange is stored at XXX, sampled at 10 MS/s after offseting the input signal by a mixer with a 25 MHz local oscillator. Six of these seven speakers enjoy receiving and decoding GPS signals, although Gold codes are too complex and simpler coding schemes are best suited for their exchanges at 1.2281 Mb/s. Can you identify what messages have been exchanged and from which countries the messages were transmitted ?

Au-delà de l’aspect ludique du sujet, les applications pratiques sont évidentes à la lecture de la littérature [2].

v-fig3 6

Fig. 3 : De haut en bas : l’amplitude du signal montre clairement une modulation OOK, avec la seule difficulté dans la décimation sans laquelle les millions de points ne pourront être tracés, même avec un outil aussi efficace que Gnuplot ; en focalisant sur un bit à 1 de la modulation OOK, nous trouverons les 6 messages superposés et modulés en BPSK ; la transposition de fréquence de 3,85 MHz amène le signal de droite (bleu) en bande de base (rouge centré sur 0 Hz), mais amène le signal de fréquence négative de -3,85 MHz à -7,7 MHz replié spectralement vers +2,3 MHz (rouge, droite), qu’il faut éliminer par filtre passe-bas.

Ainsi, six codes orthogonaux, donc d’intercorrélation nulle, sont sélectionnés pour porter une information encodée selon la séquence classique d’une liaison RS232 asynchrone, avec un bit de début, 8 bits de données et un bit de fin. L’encodage RS232 est identifiable en observant l’amplitude du signal transmis, puisque le 7e interlocuteur communique en OOK (On-Off Keying, comme le morse) donc la forme est triviale à identifier, avec la seule subtilité que l’énorme fichier doit être brutalement décimé pour en afficher l’amplitude. La modulation en phase est un peu plus complexe à appréhender, mais s’appuyer sur GPS doit faire deviner que la modulation est BPSK, ce qui permet de mettre en œuvre toutes les techniques d’analyse de cette modulation, et notamment son annulation par la mise au carré du signal ou la boucle de Costas fournie par GNU Radio. Avant de chercher la variation fine de fréquence, il fallait ramener le signal radiofréquence en bande de base (figure 3), et l’information que « la transposition de 25 MHz amène proche d’une bande radioamateur large » doit faire rapidement trouver la transposition grossière, la seule bande amateur haute fréquence large étant la bande des 10 mètres entre 28,0 et 29,7 MHz, donc centrée sur 3.85 MHz au-dessus de 25 MHz.

Une fois le signal ramené en bande de base, sans connaître le code, il est toujours possible de détecter la présence du message tel que nous l’expliciterons ci-après, mais le décodage du message peut devenir ardu, et nous avons tenté de faciliter la tâche des candidats en explicitant la simplicité avec laquelle les codes orthogonaux sont générés par « simpler coding schemes are best suited for their exchanges at 1.2281 Mb/s ». D’une part, un code plus simple que les codes de Gold doivent naturellement amener aux codes à registre à décalage à rétroaction linéaire (LFSR), l’algorithme numérique le plus simple pour générer une séquence sans répétition de longueur 2N−1 lors de l’utilisation d’un registre à décalage de longueur N. Nous avions voulu aider les candidats avec un registre de longueur modeste, notamment N=7 qui propose d’après https://users.ece.cmu.edu/~koopman/lfsr/ 18 cas possibles. Nos tests ont démontré que le rapport signal à bruit étant insuffisant – nous verrons qu’il s’agit d’une erreur de notre part, qu’a identifié le second vainqueur et qu’a expliqué le premier – il fallait augmenter la durée de la séquence et donc sa capacité à rejeter le bruit par une intégration plus longue. Ce faisant, le Pulse Compression Ratio, qui donne le bénéfice en rapport signal à bruit comme le produit de la largeur spectrale occupée par le signal multiplié par la durée du signal s’élève en allongeant le code à bande passante constante donnée par la fréquence d’échantillonnage. Il existe cependant 60 codes de longueur maximale de 10 bits de long et le travail de recherche est un peu plus ardu. En fournissant le débit de données, une autocorrélation du signal au sein de chaque bit à 1 dans la transmission OOK doit permettre d’observer un pic tous les 1023 échantillons, et donc de deviner N=10 (figure 4).

v-fig4 8

Fig. 4 : Autocorrélation du signal, avec un pic tous les 1023 échantillons, en prenant soin d’avoir au préalable retiré la valeur moyenne des coefficients IQ.

Une fois ces hypothèses acquises, il ne reste plus qu’à effectuer une analyse en force brute en testant la corrélation des signaux observés avec toutes les séquences possibles de codes pseudoaléatoires, ré-échantillonnés selon le débit fourni dans l’énoncé du concours. En pratique, nous avons fait exprès de transmettre le signal radiofréquence par une source physique (Ettus Research B210) et d’échantillonner par un récepteur physique (oscilloscope radiofréquence) afin d’induire un décalage entre les oscillateurs locaux qui impose une recherche fine, par exemple par boucle de Costas (figure 5).

v-fig5 11

Fig. 5 : Enregistrement du fichier de données en émettant le signal en bande de base par une plateforme de radio logicielle B210, transposé par l’oscillateur local autour de 28,85 MHz et ramené autour de 3,85 MHz par mélange avec une porteuse à 25 MHz et filtrage passe-bas avant acquisition par un oscilloscope radiofréquence échantillonnant à 10 Méchantillons/seconde. La propriété de cet oscilloscope LeCroy LabMaster 10-36Zi est de fournir une profondeur mémoire de 128 Mpoints, suffisante pour enregistrer plus de 12 secondes de signal radiofréquence dans nos conditions d’utilisation.

Nous aurions pu rendre le problème plus complexe en émettant les six messages par six sources différentes incohérentes qui auraient induit des décalages différents entre oscillateurs locaux et une condition de phase initiale différente, mais le problème semblait déjà suffisamment complexe ainsi (figure 6).

v-fig6a

Fig. 6 : Recherche exhaustive des solutions en balayant tous les polynômes générateurs par rétroaction linéaire sur registre à décalage de longueur 10 bits. Seule la présence de pics de corrélation permet de s’assurer de la présence d’un signal pertinent, ici échantillonné au rythme indiqué par l’énoncé pour retrouver les messages superposés selon un encodage 8N1 compatible RS232.

Nous avons reçu trois analyses du problème après 34 téléchargements des 488 MB du fichier de données, avec Alban Meffre qui identifie la modulation en BPSK ainsi que les polynômes générateurs, mais échoue au dernier moment à décoder les messages ; Christoph Mayer (orateur aux European GNU Radio Days 2019 et développeur de l’algorithme de mesure de temps de vol sur KiwiSDR) fournit les bonnes solutions aux messages encodés en modulation de phase, mais oublie le septième message encodé en OOK : et finalement Daniel Estevez (figure 7) qui fournit en moins d’une journée de travail la solution complète avec un classeur Jupyter didactique [3] qui permet de suivre en détail la solution proposée et surtout les voies sans issue, tout aussi importantes que la bonne solution, en tenant compte de l’aspect psychologique de la rédaction d’un sujet de concours. Bien entendu, l’activité de Daniel au quotidien de développer des récepteurs GPS et son développement du fameux module gr-satellite utilisé pour écouter les sondes spatiales, y compris interplanétaires [4], et autres satellites l’a mis dans des conditions favorables pour trouver le résultat. Nous ne pouvons qu’apprécier comment un travail constant au quotidien et de l’entraînement permettent de se préparer à trouver rapidement une solution à un problème ardu, contrairement aux bêtises des films grand public et des politiciens qui pourraient laisser croire au génie de l’improvisation et à la capacité à atteindre un résultat complexe, sans un long apprentissage préalable. Le résultat du concours et la description de sa solution par Daniel furent suivis par 38 participants, malgré l’horaire tardif de cette diffusion.

v-fig7 10

Fig. 7 : D. Estevez, vainqueur, présente sa solution au concours.

Christoph Mayer nous fait part de son incompréhension sur la nature du diagramme de constellation qui aurait dû le mettre sur la piste, mais ne correspondait pas à ses attentes : la somme de six signaux codés en BPSK devrait être une constellation comprise entre -6 et 6, alors que nous n’observons dans les signaux que nous avons diffusés qu’une constellation entre -1 et 1. Daniel Estevez identifie le problème lors de l’émission du signal par la B210 : en effet, GNU Radio ne travaille qu’avec des échantillons compris entre -1 et 1 et a tronqué toute valeur supérieure à cet intervalle. Pourtant, la robustesse de la communication CDMA (Code Division Multiple Access) sur modulation BPSK permet de résister à cet effet de clipping et de permettre le décodage malgré cette erreur de notre part, qui justifie néanmoins par la dégradation du rapport signal à bruit le passage de 7 à 10 bits pour permettre le décodage des messages.

Conclusion

Cette édition de la conférence European GNU Radio Days, https://gnuradio-eu-21.sciencesconf.org/, fut un nouveau défi à relever avec une présentation exclusivement virtuelle et une collaboration étroite avec le Software Defined Radio Academy (SDRA). Les vidéos de la conférence et des tutoriels sont disponibles sur https://www.youtube.com/channel/UCFzddPoztcHLuwFWRPJTNrQ et les actes de la conférence sur https://pubs.gnuradio.org/index.php/grcon.

Remerciements

L’organisation de la conférence European GNU Radio Days a été coordonnée par Hervé Boeglen (XLIM, Poitiers) avec l’assistance de Leonardo Cardoso (INSA Lyon), Jean-Michel Friedt (FEMTO-ST, Besançon), Gwenhael Goavec-Merou (FEMTO-ST, Besançon), Thomas Lavarenne (Lycée Jean-Rostand, Villepinte) et Cyrille Morin (INSA Lyon). L’infrastructure logicielle pour les tutoriels a été fournie par Émile Carry, président de l’association Sequanux pour la promotion du logiciel libre en Franche-Comté.

Références

[1] Programme sur https://2021.sdra.io/pages/programme.html qui fournit aussi le lien vers leur canal de diffusion YouTube.

[2] Z. JIANG & al.« Use of software-defined radio receivers in two-way satellite time and frequency transfers for UTC computation », Metrologia, 55, p. 685–698, 2018.

[3] D. ETEVEZ, « EU GNU Radio Days 2021 challenge solution » sur https://github.com/daniestevez/eugr-challenge-2021 que nous avons complété des fichiers binaires du concours sur https://github.com/jmfriedt/eugr-challenge-2021 qui pourraient par ailleurs être générés par le script GNU/Octave dans setup/.

[4] D. ESTEVEZ, « GRCon20 workshop: Decoding interplanetary spacecraft » sur https://github.com/daniestevez/grcon2020-workshop



Article rédigé par

Par le(s) même(s) auteur(s)

RADAR passif bistatique au moyen d’une Raspberry Pi 4, d’une radio logicielle et du satellite Sentinel-1

Magazine
Marque
Hackable
Numéro
41
Mois de parution
mars 2022
Spécialité(s)
Résumé

Nous exploitons les signaux émis à intervalles connus et documentés sur le site Copernicus de l’ESA par les satellites Sentinel-1 pour une mesure au sol de RADAR passif bistatique. Deux antennes au sol, une antenne de référence qui observe le signal direct émis par le satellite, et une seconde antenne de surveillance qui observe les réflexions par les cibles illuminées par le satellite sont connectées à un récepteur de radio logicielle pour collecter à 5405 MHz les signaux de Sentinel-1. La détection de cibles à plusieurs kilomètres du récepteur est démontrée avec un système simple composé d’une radio logicielle Ettus Research B210 et d’une Raspberry Pi 4 programmée efficacement. La diversité spatiale introduite par le mouvement du satellite le long de son orbite permet de cartographier les cibles en distance et en azimut.

Analyse des données brutes des RADAR spatioportés Sentinel-1 : traitement des signaux radiofréquences

Magazine
Marque
Hackable
Numéro
39
Mois de parution
octobre 2021
Spécialité(s)
Résumé

L’agence spatiale européenne (ESA) diffuse librement les données acquises par les RADAR spatioportés Sentinel-1. Au-delà de la mesure de distance à une cible, l’exploitation de ces données permet d’extraire bien des informations sur les conditions de propagation et de réflexion des ondes électromagnétiques émises autour de 5,405 GHz. L’analyse des données brutes permet d’atteindre un tel objectif, de l’utilisation des phases d’écoute du satellite comme radiomètre à la détection des émetteurs au sol autour de sa bande de fréquence de fonctionnement C civile ou G militaire. L’ESA ne supporte pas officiellement le décodage des données brutes... qu’à cela ne tienne, nous allons pallier cette déficience en analysant le format des données et en fournissant la solution au décodage des informations brutes disponibles sur le site Copernicus, validée par la compression en azimut et en distance des impulsions... et bien plus !

« Je veux ma maquette de satellite » : analyse du format G3DB d’objets 3D en vue de leur impression

Magazine
Marque
GNU/Linux Magazine
Numéro
250
Mois de parution
juillet 2021
Spécialité(s)
Résumé

Nous explorons le format G3DB exploité dans nombre de jeux programmés en Java sous Android s’appuyant sur la bibliothèque LibGDX. Cette étude sera l’occasion de découvrir le format universel binaire JSON, conçu pour sa compacité tout en conservant une facilité d’analyse bien connue de ce format de données. Nous aboutirons ainsi à un modèle 3D exploitable dans tout logiciel de conception assistée par ordinateur et conclurons par l’impression des divers éléments de la maquette et son assemblage.

Les derniers articles Premiums

Les derniers articles Premium

Stubby : protection de votre vie privée via le chiffrement des requêtes DNS

Magazine
Marque
Contenu Premium
Spécialité(s)
Résumé

Depuis les révélations d’Edward Snowden sur l’espionnage de masse des communications sur Internet par la NSA, un effort massif a été fait pour protéger la vie en ligne des internautes. Cet effort s’est principalement concentré sur les outils de communication avec la généralisation de l’usage du chiffrement sur le web (désormais, plus de 90 % des échanges se font en HTTPS) et l’adoption en masse des messageries utilisant des protocoles de chiffrement de bout en bout. Cependant, toutes ces communications, bien que chiffrées, utilisent un protocole qui, lui, n’est pas chiffré par défaut, loin de là : le DNS. Voyons ensemble quels sont les risques que cela induit pour les internautes et comment nous pouvons améliorer la situation.

Surveillez la consommation énergétique de votre code

Magazine
Marque
Contenu Premium
Spécialité(s)
Résumé

Être en mesure de surveiller la consommation énergétique de nos applications est une idée attrayante, qui n'est que trop souvent mise à la marge aujourd'hui. C'est d'ailleurs paradoxal, quand on pense que de plus en plus de voitures permettent de connaître la consommation instantanée et la consommation moyenne du véhicule, mais que nos chers ordinateurs, fleurons de la technologie, ne le permettent pas pour nos applications... Mais c'est aussi une tendance qui s'affirme petit à petit et à laquelle à terme, il devrait être difficile d'échapper. Car même si ce n'est qu'un effet de bord, elle nous amène à créer des programmes plus efficaces, qui sont également moins chers à exécuter.

Donnez une autre dimension à vos logs avec Vector

Magazine
Marque
Contenu Premium
Spécialité(s)
Résumé

Avoir des informations précises et détaillées sur ce qu’il se passe dans une infrastructure, et sur les applications qu'elle héberge est un enjeu critique pour votre business. Cependant, ça demande du temps, temps qu'on préfère parfois se réserver pour d'autres tâches jugées plus prioritaires. Mais qu'un système plante, qu'une application perde les pédales ou qu'une faille de sécurité soit découverte et c'est la panique à bord ! Alors je vous le demande, qui voudrait rester aveugle quand l'observabilité a tout à vous offrir ?

Abonnez-vous maintenant

et profitez de tous les contenus en illimité

Je découvre les offres

Déjà abonné ? Connectez-vous