# La radio logicielle : un sujet d'enseignement et un moyen d'enseigner les communications sans fil à l'université

C. Moy

Univ Rennes, CNRS, IETR - UMR 6164, F-35000, Rennes, France

Contact email : christophe.moy@univ-rennes1.fr

La radio logicielle est aujourd'hui un domaine d'embauche et une technologie qui pénètre de plus en plus l'industrie, au-delà des seules entreprises de conception et développement d'appareils radio. Plusieurs propositions de stage de fin d'étude d'ingénieurs ou de Master 2 sont directement centrées sur la radio logicielle chaque année. L'industrie, comme l'enseignement, utilise de plus en plus en effet des technologies de radio logicielle pour réaliser rapidement des preuves-de-concept et des démonstrateurs. Cet article vise à montrer comment on peut enseigner la radio logicielle.

## I. La radio logicielle

La radio logicielle a été un sujet qui a impliqué une communauté importante de chercheurs à la fin des années 1990 et au début des années 2000, et qui continue à concerner de nombreuses études. Même si l'intitulé radio logicielle en tant que tel est maintenant moins à la mode au niveau de la recherche, tous les thèmes qu'il intégrait restent des sujets d'investigations encore très actifs, et cela encore pour des années (architectures RF et composants de la tête analogique d'entrée, convertisseurs analogiques-numériques, architectures numériques de traitement efficaces en calcul et en énergie, logiciels embarqués de bas niveaux, méthodologies de co-conception logicielle matérielle, algorithmes de traitement du signal numérique de la tête numérique d'entrée et en bande de base, etc.). De même de nombreuses thématiques qui sont apparues ensuite ne sont qu'une traduction à différentes échelles, et sous différents noms, des thématiques de la radio logicielle. Donnons par exemple les SDN (Software Defined Networks), la virtualisation, le C-RAN (cloud RAN<fnref n="1" />), RAN-edge, etc. La recherche est une machine très efficace à recycler, en changeant les noms sans révolutionner forcément les thématiques. Et d'ailleurs la radio logicielle a elle-même opéré ainsi car ce qui a été fait sous la terminologie radio logicielle, l'aurait été probablement sans qu'elle soit formulée par Joe Mitola en 1992 (1). Seulement, cela a servi de catalyseur et accéléré les travaux d'une communauté qui a mis en commun ses efforts sous cette bannière (2).

Désormais la radio logicielle entre dans les entreprises qui commencent à recruter de plus en plus d'ingénieurs avec une fiche de poste requérant des connaissances ou une expérience en radio logicielle. Depuis 3 ou 4 ans, les offres de stages de fin d'études de Master et d'ingénieur ayant pour objet la radio logicielle, ou l'utilisant comme moyen de prototypage rapide, se multiplient chaque année, d'où l'importance de l'enseigner.

<footnote n="1">¹ RAN : Radio Access Network – réseau d'accès radio</footnote>
## Radio logicielle : principes, Software radio, SDR

La radio logicielle a tellement de répercussions sur les systèmes de transmission radio qu'il est difficile de les résumer à une seule ou deux d'entre elles, et chacun, selon son point de vue, verra la radio logicielle sous un angle différent (2). Si on part du terme « radio logicielle », le principe est que le maximum des traitements de la chaîne de modulation-démodulation soient exécutés par un programme sur un processeur d'ordinateur (GPP<fnref n="2" />).

Cependant, la puissance de calcul que cela peut nécessiter est telle que bien souvent, un processeur d'ordinateur ne suffit pas (ou consomme trop d'énergie) et il faut utiliser à sa place ou en complément, un ou plusieurs accélérateurs, qui peuvent être des FPGA<fnref n="3" />, des ASIC<fnref n="4" /> et/ou d'autres processeurs plus spécialisés (DSP<fnref n="5" />) (3).

Et même au-delà, suivant le contexte et les contraintes de l'équipement considéré, des approches totalement différentes peuvent être appliquées depuis :

- la radio logicielle la plus poussée possible : la partie analogique d'un émetteur-récepteur est réduite à une antenne, un duplexeur, un filtre analogique et un amplificateur en RF, puis le signal est directement numérisé à la fréquence porteuse en réception, ou généré de manière numérique à l'émission, par programmation ;

- jusqu'à une radio logicielle très restreinte : un seul canal radio est traité en numérique (et pas forcément par un processeur) sur deux voies I et Q en bande de base et tout le reste de la chaîne de transmission reste en analogique.

Dans le cas où l'on fait des entorses aux concepts de radio logicielle (software radio), en utilisant autre chose qu'un GPP ou en ne numérisant pas toute la chaîne jusqu'en RF, on parle de SDR (Software Defined Radio) que l'on a traduit par Radio Logicielle Restreinte dans le seul ouvrage en français publié sur le sujet (4).

## Preuve de concept et prototypage rapide

Mais au-delà d'être un sujet de recherche et d'amélioration permanente, la radio logicielle est surtout devenue un outil qui trouve désormais son utilité pour les entreprises et la filière universitaire. En effet, la radio logicielle offre des facilités rapides et pédagogiques de mise en œuvre de liens radio, qui en font un excellent outil pour prototyper et pour l'enseignement. Nous nous concentrons dans la suite de cet article sur l'utilisation de la radio logicielle à des fins pédagogiques

A l'aide de techniques de radio logicielle, on peut réaliser en quelques minutes des récepteurs simples (pour recevoir les ondes de radiodiffusion FM et AM, les communications des avions avec les tours de contrôle, etc.). On peut explorer également en un TP des aspects complexes à illustrer autrement (effets temporels et fréquentiels du filtrage de Nyquist, la désynchronisation porteuse et son effet sur une constellation QPSK, etc.) et des schémas de modulation plus complexes (OFDM, étalement de spectre, etc.).

La flexibilité dans les paramètres est quasi-totale, dans la limite des capacités du matériel utilisé, c'est-à-dire soit celles de la plate-forme radio logicielle utilisée (bande passante, gamme de fréquence porteuse utilisable, etc.), soit la puissance de calcul de l'ordinateur, pour assurer les traitements de la chaîne d'émission-réception en temps réel.

<footnote n="2">² GPP : General Purpose Processor – processeur général tels que l'on en trouve dans les ordinateurs et les serveurs</footnote>

<footnote n="3">³ FPGA : Field Programmable Gate Array – mer de portes logiques reconfigurable grâce aux langages VHDL ou Verilog</footnote>

<footnote n="4">⁴ ASIC : Application Specific Integrated Circuit – circuit intégré spécifique à une fonction donnée</footnote>

<footnote n="5">⁵ DSP : Digital Signal Processor – processeur de calcul plus optimisé en consommation énergétique qu'un GPP pour effectuer du traitement du signal</footnote>
## II. Les plates-formes de radio logicielle pour l'enseignement

Cet article propose un survol de quelques-unes des principales approches (plates-formes matérielles et logicielles) adaptées aux besoins (et au budget) de l'enseignement.

### Les plates-formes matérielles

Le principe de la radio logicielle repose donc sur une plate-forme matérielle capable d'échantillonner les signaux, et d'effectuer les traitements radio que l'on programme. Dans le cas de plates-formes de radio logicielle de prototypage (à bas coût), les taches sont séparées en deux :

- un « périphérique radio » : une carte SDR émetteur-récepteur qui possède un port d'entrée/sortie des échantillons en bande de base (USB, ethernet, etc.), qui permet de se connecter à

- un ordinateur où est lancé l'environnement de développement logiciel (prochaine section) où seront conçus les (applications) chaînes radio désirées, et qui lancera leur exécution pour traiter les échantillons en temps réel (aussi bien en émission qu'en réception).

C'est donc l'ensemble formé d'un ordinateur et d'un périphérique radio qui forme une plate-forme radio logicielle ou SDR, mais on a souvent tendance à le réduire au périphérique radio, comme dans la suite de cet article. Il est à noter que l'ordinateur peut aussi bien avoir un système d'exploitation Linux que Windows. Mais surtout la plate-forme SDR elle-même est formée de matériel et de logiciel support de bas niveau, qui dans certains contextes (au-delà de la perspective décrite ici) peut être un objet de formation.

Il y a maintenant une multitude de plates-formes SDR d'émission-réception, de plus en plus petites et de plus en plus abordables financièrement, pour les chercheurs et finalement pour l'enseignement. Pour faire un rapide point de la situation actuelle, citons un exemple à chaque échelle de prix dans le TABLEAU I.

<table><caption>TABLEAU I. Caractéristiques de quelques plates-formes de radio logicielle adaptée à l'enseignement.</caption><thead><tr><td>Plate-forme</td><td>Prix</td><td>Tx/Rx</td><td>Gamme de fréquence porteuse</td><td>Bande passante maximale</td><td>Connectique</td></tr></thead><tbody><tr><td>Clef TNT RTL-SDR</td><td>20 €</td><td>Rx</td><td>24 MHz à 1,7 GHz</td><td>3,2 MHz</td><td>USB</td></tr><tr><td>HackRF</td><td>280 €</td><td>Tx ou Rx (TDD)</td><td>1 MHz à 6 GHz</td><td>10 MHz</td><td>USB</td></tr><tr><td>BladeRF</td><td>480 €</td><td>2 x Tx / 2 x Rx</td><td>47 MHz à 6 GHz</td><td>60 MHz</td><td>USB</td></tr><tr><td>USRP N210+UBX</td><td>1500 €</td><td>Tx et Rx (FDD)</td><td>10 MHz à 6 GHz</td><td>40 MHz</td><td>RJ45</td></tr></tbody></table>

La Fig.1 montre une vue des cartes TNT RTL-SDR, HackRF One et USRP N210. On peut bien sûr trouver des plates-formes plus chères, ayant des caractéristiques plus élargies, comme des antennes 4x4 (4 antennes d'émission et 4 antennes de réception) pour faire du MIMO, accompagnées de FPGA pour fournir la puissance de calcul adéquat comme pour l'USRP N310 qui vaut alors 10 k€. Ensuite, on trouve des plates-formes à plusieurs dizaines voire centaines de k€, mais on sort du cadre de l'enseignement.
<figure><img src="image_1.png" /><figcaption>Fig.1. Quelques exemples de cartes SDR à bas coût, de gauche à droite : Clef TNT RTL-SDR, HackRF, plate-forme USRP N210 (Ettus Research par NI)</figcaption></figure>

## Les environnements de développement logiciel

Par conséquent si les contraintes liées à notre application le permettent, en termes de fréquence porteuse, de bande passante, de rapport signal à bruit, de coût, de consommation... on peut programmer la chaîne de modulation/démodulation radio avec une interface logicielle, le plus souvent graphique. Il faut alors distinguer deux catégories d'environnements logiciels :

1. ceux que l'on installe sur un ordinateur pour exécuter des fonctions applicatives toutes faites (un analyseur de spectre, un démodulateur FM ou AM, etc.) pour lesquels on peut avoir une action sur quelques paramètres (fréquence porteuse, bande passante, etc.),

2. ceux qui permettent de concevoir sa propre application, par exemple une chaîne de modulation ou de démodulation suivant un schéma de modulation radio précis.

Pour la première catégorie, des exemples sont SDR# (5) de la Fig.2, CubicSDR (6). Pour la seconde, citons, GNU Radio Companion (7), LabView, Matlab/Simulink, etc. GNU Radio peut s'utiliser sous Linux ou sous Windows, et il est possible de développer et ajouter ses propres blocs de traitement sous Linux.

<figure><img src="image_2.png" /><figcaption>Fig.2. Exemple de l'environnement de manipulation SDR# qui offre une vue du spectre instantané en haut (ici pour des signaux LoRa), une vue en 3D (waterfall) en bas, et à gauche, le choix parmi 8 démodulateurs.</figcaption></figure>
### III. Cours et TP de radio logicielle

#### Cours de radio logicielle

La radio logicielle peut elle-même faire l'objet d'un cours. On peut s'appuyer pour cela sur l'ouvrage en français (4) ou sur de nombreux ouvrages en anglais. Dans mes cours, j'essaie surtout de faire prendre conscience de l'évolution que la conception des systèmes de transmission sans fil a connu tant au niveau des marchés (naissance et explosion de la téléphonie mobile, connexion sans fil des ordinateurs, multiplication des communications sans fil dans la vie courante avec les box, les passerelles WiFi, les périphériques bluetooth, etc.), que des technologies associées (transition d'une conception « centenaire » à base de circuits analogiques soudés entre eux pour une seule application, à une approche de plus en plus numérique, donc de plus en plus « radio logicielle », pour des équipements radio multi-X : multi-standards, multi-modes, multi-applications).

C'est aussi l'occasion de faire comprendre aux jeunes diplômés que l'on est passé d'un contexte (de Guerre Froide) où les innovations étaient d'origine militaire (tous les systèmes précédents celui de la téléphonie mobile ont d'abord été d'origine militaire, depuis la lampe TM du Général Férié, aux radars de la deuxième Guerre Mondiale et à l'étalement de spectre) à celui où l'industrie civile a concentré une telle débauche d'argent et d'ingénierie à la fin des années 1990, qu'elle a réussi pour la première fois à dépasser les prouesses technologiques militaires dans le domaine des communications. Attention à ne pas comparer pour autant un smartphone et une radio tactique militaire qui n'ont pas les mêmes objectifs (sécurité, fiabilité, résistance aux chocs, etc.) et donc contraintes.

Ainsi, on comprend les origines militaires de la radio logicielle (car les concepts remontent aux années 70) et sa capacité (et ses limites) à répondre aux besoins en termes d'inter-opérabilité auxquels doivent faire face les forces armées américaines mais aussi de l'OTAN. On peut ainsi évoquer les radios logicielles militaires, autour des solutions américaines (SCA<fnref n="6" />), européennes (ESSOR<fnref n="7" />) et des radios Contact de l'armée française, dont la technologie radio logicielle doit se généraliser bientôt à tous les systèmes de communications militaires dans les prochaines décennies (et sera pourvoyeur d'emplois aussi pour nos étudiants).

A l'opposé, une analyse de quelques composants (SoC RF et SoC modem) présents dans un smart phone permet de découvrir les prouesses technologiques présentes dans un téléphone portable, notamment en raison de la concentration en un unique appareil de plus de 10 systèmes de communications différents, ainsi que les degrés d'intégration relatifs entre eux allant du SoC<fnref n="8" /> modem (une puce unique pour les générations de téléphonie mobile : 2G/3G/4G/5G...) à une approche dite « velcro » consistant à juxtaposer d'autres puces, chacune dédiée au fonctionnement d'un émetteur-récepteur spécifique (pour le WiFi, le GPS, la radio FM, le bluetooth, le paiement sans contact, etc.).

Cela n'épargne pas en outre une petite réflexion philosophique sur le prix « modique » d'une telle prouesse technologie et que ce n'est pas en faisant de la philanthropie que les vendeurs de tels appareils arrivent à faire de tels bénéfices. En résumé, cela peut permettre de prendre conscience que changer de téléphone tous les 6 mois est peut-être insupportable en termes d'exploitation des ressources naturelles, mais aussi des ressources humaines de la planète.

<footnote n="6">⁶ SCA : Software Communication Architecture (https://www.jtnc.mil/)</footnote>

<footnote n="7">⁷ ESSOR : European Secure Software defined Radio (http://www.occar.int/programmes/essor)</footnote>

<footnote n="8">⁸ SoC : System on Chip ou système sur puce – concentration dans une même puce de plusieurs fonctions auparavant séparées sur plusieurs circuits intégrés, tels que des processeurs, des mémoires, des accélérateurs matériels, des media de communication pour les relier entre eux et avec l'extérieur, etc.</footnote>
## Expérimentations radio logicielle par des TP

Cependant, il n'est pas forcément nécessaire de faire un cours de radio logicielle pour l'utiliser. De même, on peut utiliser la radio logicielle comme moyen de mise en œuvre rapide des systèmes d'émission-réception, sans insister sur cette technologie, pour des cours de communications analogiques ou numériques, de propagation, etc. On peut aussi expliquer par la pratique ce qu'est la radio logicielle et c'est ce qui est illustré ici. Dans ce cas, un objectif important du TP est à la fois de faire manipuler plusieurs environnements logiciels sur une même plate-forme et d'utiliser plusieurs plates-formes avec un même environnement logiciel.

Ainsi nous utilisons un exemple de chacune des deux catégories d'environnements logiciels évoqués précédemment, à savoir SDR# (qui repose sur une interface déjà faite) et GNU Radio Companion (qui permet la conception de la chaîne de traitements radio que l'on souhaite sous forme de schéma bloc) qui ont l'avantage d'être tous les deux gratuits et que les étudiants peuvent installer sur leur propre ordinateur (Linux ou Windows). Nous utilisons ces deux environnements logiciels sur 3 plates-formes, en allant par ordre de performance :

- la plus simple : clef TNT RTL-SDR qui ne fait que réception,

- HackRF qui peut émettre ou recevoir (en half duplex)

- USRP N210 qui peut émettre ou recevoir en FDD (full duplex)

## Les applications radio développées en TP

Pour concevoir des systèmes d'émission-réception, on utilise l'environnement GNU Radio Companion (GRC) sous Windows qui a l'avantage d'être installé très rapidement. Il suffit de quelques minutes pour réaliser un analyseur de spectre et une heure pour un récepteur FM comme celui de la Fig.3, que l'on peut réaliser avec les 3 plates-formes. On peut aussi concevoir un émetteur FM, comme sur la Fig.4, qu'une portée de quelques dizaines de centimètres limite dans sa capacité à enfreindre la loi, mais c'est aussi un excellent moyen d'aborder le sujet de la règlementation du spectre. Seules les plates-formes HackRF et USRP sont utilisables dans cas, la clef RTL-SDR ne faisant qu'émetteur.

<figure><img src="image_3.png" /><figcaption>Fig.3. Récepteur FM réalisé sur l'outil de conception radio logicielle GNU Radio Companion (gratuit) sous Windows, avec une clef TNT RTL-SDR (entrée sur un module osmocom sous GRC).</figcaption></figure>
<figure><img src="image_4.png" /><figcaption>Fig.4. Emetteur FM réalisé sur l'outil de conception radio logicielle GNU Radio Companion (gratuit) sous Windows, avec une HackRF (sortie vers un module osmocom sous GRC).</figcaption></figure>

La Fig.5 présente un émetteur-récepteur QPSK dans lequel on peut voir comment il est
possible, en quelques clics, d'inhiber des modules (ceux qui sont grisés), afin de passer :

- d'un mode simulation où l'émetteur et le récepteur sont directement reliés (on s'affranchit des contraintes liées à la synchronisation porteuse et au bruit),

- à un mode exécution ou l'émetteur et le récepteur sont instanciés sur une même plate-forme USRP (limitant ainsi la désynchronisation à une rotation de la constellation),

- à un mode exécution ou l'émetteur et le récepteur sont placés sur deux plates-formes différentes nécessitant la mise en œuvre des processus de synchronisation de la porteuse.
Il est à noter que lorsque l'émetteur et le récepteur sont sur la même plate-forme, cela n'est possible qu'avec une carte USRP car c'est la seule, parmi les trois plates-formes présentées ici, capable de faire du full duplex.

<figure><img src="image_5.png" /><figcaption>Fig.5. Emetteur-récepteur QPSK réalisé sur l'outil de conception radio logicielle GNU Radio Companion (gratuit) sous Windows, avec une carte USRP N210 (entrée et sortie sur un module USRP sous GRC).</figcaption></figure>
## IV. Conclusion

L'enseignement de la radio logicielle, en plus de permettre de confronter facilement et rapidement les étudiants à des signaux radio réels, permet d'aborder de nombreux aspects de la conception radio, tant au niveau de l'ingénierie de conception, de l'historique des communications sans fil, de la régulation du spectre, etc. Une extension naturelle de la radio logicielle est la radio intelligente qui va peu à peu intégrer tous les systèmes de communications sans fil. Ajouter un ou deux cours sur ce sujet permet notamment de sensibiliser les futurs ingénieurs à un problème auquel ils seront confrontés de plus en plus dans les décennies à venir : l'engorgement du spectre (8). Ce sujet fait écho d'ailleurs aux considérations sociétales en termes de sobriété numérique notamment, chères aux étudiants. L'étude des systèmes de communications sans fil à faible empreinte tels que l'IoT (Internet of Things – Internet des Objets) est d'ailleurs un autre domaine d'enseignement incontournable au niveau Master, auquel peuvent être associées des approches de radio intelligente, à base d'algorithmes d'IA (Intelligence Artificielle) efficaces et performants, embarquables sur des objets IoT ultra-contraints, grâce à leur empreinte mémoire et leur coût en calcul modiques (9).

## Remerciements

Nous remercions le GIP CNFM pour son support financier dans l'achat de plates-formes SDR utilisées en TP d'électronique à l'ISTIC et à l'ESIR, à l'Université de Rennes 1.

## Références

1. J. Mitola, *The Software Radio*, IEEE National Telesystems Conference, 1992 – DOI: 10.1109/NTC.1992.267870

2. C Moy, J Palicot, *Software radio: a catalyst for wireless innovation*, IEEE Communications Magazine 53 (9), 24-30 (2015).

3. A Kountouris, C Moy, L Rambaud, *Reconfigurability: a key property in software radio systems*, 1st Karlsruhe Workshop on Software Radios, 2000.

4. J Palicot, C Moy, M Debbah, et al., *De la radio logicielle à la radio intelligente*, Lavoisier, Hermès (2010).

5. SDR#, https://airspy.com/downloads/SDRSharp_The_Guide_v3.3_ENG.pdf

6. CubicSDR, https://cubicsdr.com/

7. GNU Radio project, https://www.gnuradio.org/

8. W Jouini, C Moy, J Palicot, *Decision making for cognitive radio equipment: analysis of the first 10 years of exploration*, Eurasip journal on wireless communications and networking 2012 (1), 1-16

9. C Moy, L. Besson, G. Delbarre, L. Toutain, *Decentralized Spectrum Learning for Radio Collision Mitigation in Ultra-Dense IoT Networks: LoRaWAN Case Study and Experiments*, Ann. Telecommun. (2020), Machine Learning for Intelligent Wireless Communications and Networking of Annals of Telecommunications, Springer