Première édition des French GNU Radio Days

GNU/Linux Magazine n° 218 | septembre 2018 | Jean-Michel Friedt
Creative Commons
  • Actuellement 0 sur 5 étoiles
0
Merci d'avoir participé !
Vous avez déjà noté cette page, vous ne pouvez la noter qu'une fois !
Votre note a été changée, merci de votre participation !
Retour sur la première édition d’une réunion de travail (workshop) dédiée à GNU Radio qui a été organisée les 2 et 3 juillet 2018 à l’INSA de Lyon : French GNU Radio Days.

À vocation de regrouper les chercheurs, universitaires, amateurs, hackers et autres développeurs de dispositifs radiofréquences contrôlés par logiciel, la conférence a attiré une trentaine de participants, principalement des deux organismes organisateurs que sont l’INSA de Lyon et l’institut FEMTO-ST de Besançon. Malgré la vocation européenne de l’évènement, une communication un peu tardive n’a permis de n’attirer qu’un orateur étranger, Paul Boven venu spécialement de Hollande pour nous présenter ses activités sur le radiotélescope de Dwingeloo (voir figure 1, à gauche), exploitant pleinement la puissance du traitement numérique des signaux échantillonnés pour cartographier la distribution de matière détectée par le rayonnement de la raie à 21 cm de l’hydrogène (1,42 GHz) [1] : le décalage Doppler de cette émission informe de la vitesse de la source émettrice, et permet en particulier de cartographier les bras de la galaxie (noter le projet open source radiotélescopeopensourceradiotelescopes.org/ – qui vise le même résultat avec du matériel accessible à l’amateur éclairé). Plusieurs participants grenoblois se sont joints à l’évènement, avec en particulier une présentation du GIPSA/CEA LETI sur la caractérisation de canal radiofréquence par GNU Radio. Le laboratoire XLim de Limoges/Poitiers a été représenté avec une démonstration de communication par émission infrarouge depuis une plateforme Ettus Research USRP modifiée pour moduler le signal optique à quelques MHz. Finalement, une liaison radiofréquence avec un projectile, et en particulier synthèse de faisceau radiofréquence pour diriger la liaison vers la source, a été présentée par l’ISL de Saint Louis. Cette journée de présentation était coupée par diverses démonstrations, en particulier sur l’exécution de GNU Radio sur plateformes embarquées de type Armadeus Systems ou Redpitaya, illustrant l’intégration de GNU Radio et des interfaces graphiques associées dans buildroot (voir figure 1, à droite).

Fig. 1 : Gauche : Paul Boven présente ses activités sur le transfert de temps entre radiotélescopes et l’optimisation de l’utilisation des échantillons lors des calculs de transformée de Fourier en radioastronomie. Droite : Gwenhaël Goavec-Merou présente à Tanguy Risset, co-organisateur de la conférence – l’utilisation de GNU Radio sur plateformes ARM suite à son intégration dans Buildroot.

La seconde journée, dédiée aux travaux pratiques, a vu les participants appréhender divers concepts introduits lors des présentations orales. En parallèle à une introduction au traitement de signaux échantillonnés périodiquement en temps discret - qui fera l'objet prochainement d'une présentation détaillée dans ces pages - les hôtes de la conférence ont présenté la plateforme CorteXlab [2]. Cet ensemble d’émetteurs et récepteurs radiofréquences installé en environnement contrôlé – chambre anéchoïque localisée dans une cage de Faraday – accessible à distance à toute personne enregistrée auprès des coordinateurs du projet, permet de prototyper la robustesse de divers modes de communication ou modulation, et de caractériser le canal de propagation. Afin d’illustrer la portée de cette approche, une délégation colombienne a présenté son utilisation de cette plateforme de développement.

A suivi une présentation de Thomas Lavarenne [3] (voir figure 2) sur l’utilisation des tags pour identifier le début de messages, mis en œuvre sur ADS-B (voir figure 3), ACARS et RDS. Cette approche optimise l’utilisation de GNU Radio et simplifie le post-traitement en permettant par exemple de créer un fichier par trame reçue : dans la démonstration de Thomas, ces fichiers sont ensuite analysés par un script Python qui découpe les bits en mots et restitue la phrase contenant l’identifiant et la position d’un avion émettant ADS-B (1090 MHz). Les participants à la séance de travaux pratiques ont expérimenté avec le récepteur de télévision numérique terrestre (DVB-T) qui leur avait été offert à l’arrivée à la conférence. Finalement, l’écriture d’un bloc de traitement dédié et son intégration dans GNU Radio-Companion a conclu la journée de travaux pratiques.

Fig. 2 : Thomas Lavarenne présente les tags et leur utilisation pour identifier le début des trames par corrélation avec l’entête connu de chaque paquet.

Fig. 3 : Exemple de trame acquise pendant la séance de travaux pratiques sur l’utilisation des tags dans le contexte d’ADS-B : le site flightradar24.com confirme l’identité de l’aéronef ayant émis le signal traité.

En parallèle de ces sessions, un challenge était organisé pour pousser les participants à analyser divers signaux radiofréquences émis dans l’amphithéâtre des présentations orales. Le challenge a été résolu au cours de la première journée par au moins deux participants.
Malgré une audience quelque peu réduite compte tenu de la communication tardive autour de l’évènement, ces deux journées ont été fructueuses par les échanges entre participants qui ne se connaissaient pas en arrivant.

Note

Alors que wiki.gnuradio.org/index.php/OutOfTreeModules décrit la rédaction d’un bloc dédié en C++ ou en Python, il se garde d’exploiter une des sources des performances de GNU Radio : la bibliothèque VOLK telle que décrite dans le dernier tutoriel. Il s’avère qu’implémenter la mise au carré du signal d’entrée sous VOLK se réduit à l’unique ligne volk_32f_x2_multiply_32f(out,in,in,noutput_items); dans la méthode general_work du bloc de traitement, défini dans le fichier d’entête volk/volk.h. Est-ce que l’utilisation d’une telle bibliothèque est vraiment utile ? À titre d’exemple, remplacer la corrélation res=0;for (k=0;k<length;k++) res+=data[k]*cacode[k]; par volk_32f_x2_dot_prod_32f(&res,data,cacode,length); permet de gagner un facteur 3 sur le temps d’exécution pour length=219 éléments (processeur Intel i5-3320M) (codes de G. Goavec-Merou).

Un axe fort des démonstrations, rarement disponible dans les conférences plus formelles, était l’illustration de circuits fonctionnels et reproductibles : il s’agissait d’un critère de sélection des présentations. Nous comptons renouveler l’évènement l’année prochaine à Besançon. Tous les résumés, transparents et vidéos des présentations sont accessibles dans la section du programme de http://gnuradio-fr-18.sciencesconf.org/.

Références

[1] SAJE T. et VIDMAR M., « A Compact Radio Telescope for the 21 cm Neutral-Hydrogen Line », J. of Microelectronics, Electronic Components and Materials, 47 (2), p. 113 à 128, 2017.

[2] MASSOURI A., CARDOSO L., GUILLON B., HUTU F., VILLEMAUD G., RISSET T., et GORCE J.M, « CorteXlab: An open FPGA-based facility for testing SDR & cognitive radio networks in a reproducible environment », IEEE Computer Communications Workshops, p. 103 et 104, 2014 et www.cortexlab.fr.

[3] LAVARENNE T., « Une clé TNT pour l’étude expérimentale de signaux radiofréquences mettant en jeu différentes modulations numériques », Bull. Union des Physiciens, 995, juin 2017, disponible sur http://bupdoc.udppc.asso.fr/.