Tutoriels

Nous avons préparé les tutoriels sous forme d'enregistrements qui seront diffusés par YouTube que nous encourageons l'auditoire à visionner avant la conférence. Ainsi, la séance interactive au cours de la conférence pendant laquelle les tutoriels seront diffusés sur la canal YouTube de European GNU Radio Days pourra être bénéfique en interagissant avec les auteurs au travers d'un canal de visio-conférence pour répondre aux questions et clarifier certains points de chaque vidéo.

Sujets introductifs

1. Bases du traitement du signal échantilloné en temps discret: prototypage avec GNU Radio

JM Friedt

In this tutorial, we will introduce some of the most relevant topics related to discrete time signal processing, but most significantly use GNU Radio generating synthetic signals to introduce topics such as datarate consistency throughout the flowgraph, aliasing in the context of decimation and the need for low-pass filtering, why analytic (complex) are naturally procuced by the radiofrequency frontend and how to generate the complex component when using real-valued acquisitions. This introductory tutorial will also provide the attendees the opportunity to become familiar with the graphical user interface provided with the GNU Radio library, GNU Radio companion, the data types, commenting graphs and finding appropriate processing blocks. A preliminary video of possible content is available as the second half of http://jmfriedt.free.fr/TI2020_1.mp4

The video of this first tutorial is available on Youtube (tutorial 1) so the audience can become familiar with the topics addressed and discuss during the conference issues that might arise when running the experiments.

2. Reception d'une transmission réele avec GNU Radio de A à (presque) Z

Leonardo S. Cardoso

Dans ce tutoriel nous allons explorer un système de communication dès le debut, partant de son ustilisation spectrale, modulation, systeme de codage, jusqu'à retrouver la structure de sa trame et decoder le contenu. Au travers ce tutoriel nous allons apprendre quelques bases de GNU Radio que nous permettront de faire tout cela, ainsi que quelques outils de traitement de signaux simple pour reussir le decodage d'un flux radio. Ce tutoriel n'a pas pour but d'enseigner le traitement de signal, et nous allons avancer dans un point de vue très debutant. Je conseille de faire le tuto Bases du traitement du signal échantilloné en temps discret: prototypage avec GNU Radio pour apprendre les bases de traitement de signaux.

Ce tutoriel est disponible en YouTube

Le lien vers les enregistrements radio: https://leosam.net:5001/sharing/0x02terFf

3. GNU Radio avec FIT/CorteXlab en mode Docker

Leonardo S. Cardoso

FIT/Cortexlab une plateforme experimentale, hébergé à Lyon. Elle a été crée pour l'enseignement en recherche autour de la radio logicielle et GNU Radio. FIT/CorteXlab est accessible au travers l'internet, disponible au monde entier gratuitement. Ce tutoriel a pour but de montrer comment utiliser FIT/CorteXlab dans l'enseignement ou l'apprentisage de GNU Radio avec docker. Nous allons explorer des tutoriels disponibles dans le wiki de CorteXlab ainsi que comment utiliser Bokeh GUI pour controller notre session GNU Radio deportée.

Inria_0224_29.jpg

4. Tips and tricks on "efficiently" using SDR and GNU Radio

JM Friedt

After the basic introductions to the various processing methods involving both synthetic and real signals, we endeavour towards more advanced processing techniques. Software Defined Radio provides utmost flexibility and most if not all signals available withing the sampling bandwidth of the analog to digital converter can be processed simultaneously, assuming sufficient computational processing power is available. Each signal must be brought to baseband, a task taken care of by the Xlating FIR Filter as demonstrated with the demodulation of multiple FM broadcast stations. However, GNU Radio might not always be the most convenient processing framework, either because discontinuous datasets are to be processed (e.g. RADAR) or because more advanced processing are best prototyped with interpreted languages (e..g. Python or GNU/Octave) before porting the algorithm to C++ and then to the GNU Radio framework. Communication between GNU Radio and external tools can be achieved with named pipes, sockets or 0-MQ connected or datagram communication links. A preliminary video of the some of the content that might be shown in this tutorial is addressed at http://jmfriedt.free.fr/TI2020_3.mp4

The video of this last tutorial is available on Youtube (last tutorial) so the audience can become familiar with the topics addressed and discuss during the conference issues that might arise when running the experiments, and the slides at http://jmfriedt.free.fr/gnuradiodays2021_2jmfriedt.pdf.

dual_fm

 

Sujets avancés

1. Analyse de signaux RF de l'Internet des Objets avec GNU Radio

Hervé Boeglen

Dans ce tutoriel, en partant d'un module "out of tree" (OOT) existant que nous allons modifier et améliorer pour répondre à nos besoins, nous allons mettre en évidence les étapes nécessaires pour analyser et décoder des signaux RF provenant de chips radios du commerce et conçus pour des applications de l'Internet des Objets dans les bandes ISM (par exemple nrf52832, s2-lp, si446x). A la fin du tutoriel, le participant repartira avec une boîte à outils logicielle lui permettant d'analyser des communications radio bas débit dans les bandes ISM.

2. Taking the best of both worlds: GNU Radio and Python

JM Friedt

GNU Radio is a set of libraries split as processing blocks connected with each other, as the output of the GNU Radio Companion graphical user interface for example, by a Python script. While each processing block is optimized for efficiency and speed, some tasks might not require such optimization, such as running a TCP server to fetch commands from client for asynchronously tuning flowchart parameters from clients. While these functions will not have access to the {I,Q} stream transfered between processing blocks, the behaviour of the flowchart can be adapted as it is running by calling callback functions. Introducing Python functions in the script generated from GNU Radio Companion prevents from returning to the graphical user interface after the modifications: the Python Module provides the means to include custom functions controlling the flograph, while the Python Snippet allows for launching such functions at startup.

The video of this tutorial is available at https://www.youtube.com/watch?v=M8dqgqO4TuI and the slides at http://jmfriedt.free.fr/gnuradiodays2021_3jmfriedt.pdf

3. Running GNU Radio on embedded hardware

G. Goavec-Merou

While Software Defined Radio (SDR) provides the means to process radiofrequency datastreams using minimal hardware and shifting all the processing load to software, the simultanous increase of computational power of embedded boards leads to a natural convergence of both worlds. Nevertheless, SDR remains a demanding application and all the computational resources of the embedded board are best used to maximize processing bandwidth. In this tutorial, we explain how GNU Radio has been included in the Buildroot embedded framework processing toolchain, the benefit of using a tailored framework over general purpose operating systems (e..g Raspbian). The proposed framework is applicable to a much broader audience than the Raspberry Pi users -- a platform hardly compatible with the premises of embedded development considering its user interfaces -- with an emphasis on boards with low power requirements, unable to run a compiler on-board as should never be done in the context of embedded systems development. Some of the slides introducing the topic are available at http://jmfriedt.free.fr/projetM1_2020_1.pdf and http://jmfriedt.free.fr/projetM1_2020_2.pdf

RPi4

 This system was used when demonstrating embedded FM radio encoding and decoding processing on Raspberry Pi 4.

4. Les tags dans GNU Radio, de la bibliothèque standard aux blocs utilisateurs.

Thomas Lavarenne, Cyrille Morin

Les tags sont une fonctionnalité de GNU Radio qui permettent de faire passer des métadonnées sur des échantillons choisis d'un flux. A quoi servent-ils, comment en créer soi-même? Ce tutorial présente un exemple d'utilisation à la détection de l'arrivée d'un paquet de données, de leur génération avec des blocs natifs à leur visualisation, suivi d'un exemple d'implémentation avec un bloc python embarqué.

Teaser video at YouTube teaser video.

Personnes connectées : 1