Pendant près d’un siècle, construire une radio signifiait assembler des composants.
Il fallait des : bobines, condensateurs, lampes, transistors, mélangeurs, filtres et quantité d’autres circuits.
Puis une idée étrange commença à s’imposer : et si une partie de notre radio devenait simplement… un programme ?
Le filtre pourrait être un logiciel.
Le démodulateur aussi.
Le traitement du signal également.
Et si nous voulions modifier notre récepteur, peut-être ne faudrait-il plus sortir le fer à souder.
Il suffirait parfois de : modifier quelques lignes de code.
Puis, mieux encore… de déplacer quelques blocs avec une souris.
Cette histoire est celle de GNU Radio.
Avant GNU Radio : la radio devient logicielle
L’idée de réaliser certaines fonctions radio par traitement numérique est évidemment plus ancienne que GNU Radio.
À mesure que les convertisseurs analogique-numérique et les processeurs deviennent plus performants, les ingénieurs déplacent progressivement certaines fonctions autrefois réalisées par des circuits analogiques vers : le numérique.
Dans les années 1990, l’expression Software Defined Radio — SDR se répand notamment avec les travaux de Joseph Mitola III.
Le principe est séduisant.
Une radio traditionnelle possède une architecture largement déterminée par son matériel.
Une radio logicielle cherche au contraire à réaliser le maximum de fonctions par : logiciel.
Changer de modulation peut alors revenir à changer de programme.
Changer de filtre ?
Même chose.
Ajouter un décodeur ?
Encore du logiciel.
Une radio pourrait donc devenir : reconfigurable.
Mais pour expérimenter librement avec cette idée, il manque encore un outil accessible et ouvert.
2001 : un dîner qui va changer beaucoup de choses
Au début de l’année 2001, une conversation a lieu autour d’un dîner à San Francisco.
Parmi les participants se trouvent notamment : John Gilmore et : Eric Blossom.
Ils constatent que les industriels exploitent déjà largement le traitement numérique du signal pour améliorer leurs équipements.
Mais dans le monde du : logiciel libre, il n’existe pas encore vraiment d’environnement comparable permettant d’expérimenter librement avec la radio logicielle.
L’idée prend forme : créer une radio définie par logiciel libre.
John Gilmore soutient financièrement le projet à ses débuts.
Eric Blossom se lance dans son développement.
GNU Radio vient de naître.
Mars 2001 : GNU Radio rejoint GNU
Le 30 mars 2001, le projet est soumis sur Savannah, la plateforme de développement du projet GNU.
Sa description tient presque en une phrase : créer une Software Defined Radio libre.
GNU Radio devient officiellement un paquet GNU.
Le choix du logiciel libre est fondamental.
Le code peut être : consulté, modifié, amélioré et : partagé.
Des radioamateurs, étudiants, chercheurs et ingénieurs peuvent désormais contribuer au même outil.
La radio logicielle possède son laboratoire ouvert.
Mais qu’est-ce que GNU Radio ?
Le nom peut être trompeur.
GNU Radio n’est pas : un récepteur SDR.
Ce n’est pas non plus une radio que l’on branche directement sur une antenne.
GNU Radio est avant tout : une boîte à outils de traitement du signal.
Elle contient de nombreuses fonctions élémentaires que nous pouvons assembler.
Par exemple : une source de signal → un filtre → un démodulateur FM → un réglage de volume → une sortie audio.
Voilà déjà les grandes lignes d’un récepteur FM.
Pour recevoir de l’AM ?
Nous changeons le démodulateur.
Pour analyser le spectre ?
Nous dirigeons le signal vers un affichage adapté.
Pour décoder des données ?
Nous ajoutons les traitements nécessaires.
Le poste radio commence à ressembler à : un jeu de construction.

Du fer à souder à la souris : avec GNU Radio, filtres et démodulateurs deviennent des blocs logiciels.
Une radio en Lego
C’est probablement la meilleure façon de vulgariser GNU Radio.
Imaginez une immense boîte de briques.
Une brique sait : filtrer.
Une autre : multiplier.
Une autre : changer la fréquence.
Une autre : démoduler.
Une autre : afficher un spectre.
Une autre encore sait communiquer avec : un SDR.
Nous assemblons ces briques.
Le signal circule de l’une à l’autre.
Dans GNU Radio, cet assemblage porte le nom de : flowgraph.
Autrement dit : un graphe de traitement du signal.
Au début, il faut encore programmer
Cette puissance possède cependant un prix.
GNU Radio est destiné à des utilisateurs ayant un minimum de connaissances en programmation et en traitement du signal.
Le cœur du système s’appuie notamment sur du code performant, tandis que Python joue progressivement un rôle important pour construire et piloter les applications.
Pour l’expérimentateur qui souhaite simplement essayer : un filtre, une démodulation ou : un récepteur FM, la marche peut sembler assez haute.
Il faudrait pouvoir dessiner la radio.
Et c’est précisément ce qui va arriver.
GNU Radio Companion : dessinons notre récepteur
Apparaît progressivement : GNU Radio Companion — GRC.
Cette interface graphique change radicalement l’approche.
Au lieu d’écrire entièrement notre programme, nous pouvons sélectionner des blocs dans une bibliothèque et les déposer : sur une feuille de travail.
Puis nous les relions.
Par exemple : SDR Source → Low Pass Filter → FM Demodulator → Audio Sink.
À l’écran, cela ressemble presque à : un schéma électronique.
Mais les composants sont maintenant des fonctions logicielles.
Nous pouvons cliquer sur un bloc et modifier : sa fréquence, sa largeur de bande, son gain, son taux d’échantillonnage ou différents paramètres.
Puis nous appuyons sur : ▶
Et notre montage fonctionne.
Sans fer à souder.

Avec GNU Radio Companion, quelques blocs suffisent pour transformer une clé SDR en véritable récepteur logiciel.
Mais il manque encore quelque chose…
GNU Radio sait maintenant effectuer une quantité impressionnante de traitements.
Mais nous rencontrons un problème assez amusant.
Notre ordinateur possède : un processeur, de la mémoire, des ports USB et beaucoup de puissance de calcul.
Mais si nous branchons une antenne directement sur le PC… il ne se passe pas grand-chose !
Entre les ondes présentes dans l’air et notre logiciel, il manque : une interface radio.
Il faut un appareil capable de recevoir le signal RF, de le convertir et de fournir au PC des données qu’il pourra traiter.
C’est ici qu’entre en scène un autre personnage important de notre histoire.
Matt Ettus : construisons l’interface qui manque
Matt Ettus s’intéresse depuis longtemps aux communications radio et au traitement numérique.
Il rejoint très tôt la communauté GNU Radio, dès 2001.
Mais il constate le même problème : GNU Radio dispose du logiciel, mais pas encore d’un matériel radio abordable et suffisamment flexible pour l’accompagner.
Il imagine alors une plateforme matérielle spécialement conçue pour la radio logicielle : USRP pour : Universal Software Radio Peripheral.
L’idée est simple dans son principe.
L’USRP s’occupe d’une partie du travail entre : l’antenne et : l’ordinateur.
Le PC peut alors effectuer une grande partie des traitements avec GNU Radio.
2004 : l’USRP prend forme
En 2004, Matt Ettus commence à travailler à plein temps sur son projet, avec notamment un financement obtenu par l’intermédiaire de l’Université de l’Utah et de la National Science Foundation.
Le premier USRP1 apparaît dans cette période et la plateforme atteindra ses dix ans en 2015.
Le mariage devient particulièrement intéressant : GNU Radio + USRP.
D’un côté : le logiciel.
De l’autre : le matériel radio.
Entre les deux circule : le signal numérisé.
L’expérimentateur dispose maintenant d’un véritable laboratoire SDR.
L’ordinateur devient une partie de la radio
Avec cette architecture, la séparation traditionnelle entre : poste radio et : ordinateur commence à disparaître.
Prenons un exemple.
Nous voulons recevoir une station FM.
L’antenne capte le signal.
L’USRP le transforme en données exploitables.
GNU Radio effectue : la sélection du canal, le filtrage, la démodulation puis : l’envoi vers la carte audio.
Pour changer la largeur du filtre, inutile de remplacer un composant.
Nous changeons : une valeur.
Pour essayer une autre démodulation, inutile de construire une nouvelle platine.
Nous changeons : un bloc.
Voilà toute la philosophie du SDR.
Et derrière tout cela se cachent I et Q
Dans notre précédent voyage historique, nous avons rencontré : I et Q.
Les deux composantes en quadrature permettent de conserver les informations nécessaires pour représenter efficacement un signal autour d’une fréquence centrale.
GNU Radio est justement particulièrement à l’aise avec ces flux : I/Q.
Le SDR transmet au logiciel une succession d’échantillons.
GNU Radio les fait passer à travers différents blocs.
Le résultat peut devenir : du son, une image, des données, un spectre ou : autre chose que nous aurons inventé.
La détection I/Q nous avait appris comment la radio pouvait « voir » le signal.
GNU Radio va maintenant lui apprendre : quoi en faire.
GNU Radio sort des laboratoires
L’association GNU Radio/USRP attire rapidement : universités, chercheurs, ingénieurs, radioamateurs et expérimentateurs.
Le même environnement peut servir à étudier : une modulation, un protocole numérique, un système de communication, un radar expérimental, un satellite ou simplement : la bonne vieille FM.
C’est l’un des aspects fascinants de GNU Radio.
Le logiciel n’impose pratiquement pas : ce que doit être votre radio.
C’est vous qui le décidez.
2012 : une clé de télévision bouleverse le SDR
Mais le matériel SDR reste encore relativement coûteux pour l’expérimentateur occasionnel.
Puis survient une histoire que personne n’avait vraiment prévue.
Des passionnés découvrent que certaines clés USB destinées à recevoir la : télévision numérique DVB-T et utilisant le circuit Realtek RTL2832U peuvent fournir au PC les échantillons bruts reçus par leur convertisseur.
Autrement dit, une clé TV à quelques dizaines d’euros peut être détournée pour devenir : un récepteur SDR.
Au début de 2012, le projet rtl-sdr se développe dans l’écosystème Osmocom.
Dès mars 2012, des blocs permettant d’utiliser directement ces récepteurs comme source dans GNU Radio apparaissent.
Le paysage change complètement.
RTL-SDR : le laboratoire devient abordable
Il n’est désormais plus indispensable d’acheter une plateforme de laboratoire coûteuse pour commencer.
Il suffit souvent de : une clé RTL-SDR, une antenne, un ordinateur et : GNU Radio.
Le débutant peut recevoir la FM.
Puis observer des signaux VHF et UHF.
Puis expérimenter avec : ADS-B, AIS, satellites, télémétrie, APRS, modes numériques et beaucoup d’autres applications.
La radio logicielle quitte progressivement les laboratoires spécialisés.
Elle arrive sur l’établi du radioamateur.
Construire un récepteur sans souder
Imaginons maintenant que nous voulions réaliser un petit récepteur FM avec GNU Radio Companion.
Nous déposons un bloc : RTL-SDR Source.
Il représente notre clé.
Nous ajoutons : un filtre.
Puis : un démodulateur FM.
Puis : une sortie audio.
Nous relions les blocs : Antenne → RTL-SDR → filtre → démodulation FM → haut-parleur.
Nous lançons le flowgraph.
Nous venons de construire : un récepteur.
Mais cette fois, notre établi est : l’écran de l’ordinateur.
Et si nous changions d’avis ?
Voilà maintenant la véritable magie.
Nous ne voulons plus écouter la FM.
Nous voulons observer un satellite.
Nous modifions le flowgraph.
Nous voulons afficher un waterfall.
Nous ajoutons un bloc.
Nous voulons enregistrer les données I/Q pour les analyser demain.
Nous ajoutons une sortie vers un fichier.
Nous voulons expérimenter avec un nouveau démodulateur.
Nous remplaçons quelques blocs.
Le matériel n’a parfois absolument pas changé.
La radio, elle, vient de changer.
C’est exactement ce que signifie : Software Defined Radio.
GNU Radio et les radioamateurs
Pour un radioamateur, GNU Radio constitue un formidable terrain d’expérimentation.
On peut notamment l’utiliser pour travailler autour de : AM et FM, SSB, CW, Packet Radio, APRS, télémétrie, satellites, balises, radioastronomie, analyse de spectre et : modes numériques.
Mais son intérêt va beaucoup plus loin que la simple réception.
GNU Radio peut également participer à : l’émission, à condition évidemment d’utiliser un SDR capable d’émettre et de respecter la réglementation applicable.
Le flowgraph peut alors fabriquer le signal qui sera transmis.
Notre radio logicielle fonctionne : dans les deux sens.

Satellites, APRS, ADS-B, radioastronomie ou modes numériques : GNU Radio transforme le PC en véritable laboratoire radio.
Un formidable outil pour apprendre
GNU Radio possède une autre qualité essentielle.
Il permet de : voir ce que l’on apprend.
Dans un cours traditionnel, on explique qu’un filtre modifie un signal.
Avec GNU Radio, nous pouvons placer : un affichage avant le filtre et : un autre après.
Nous changeons sa largeur.
Et nous regardons immédiatement : ce qui se passe.
Nous pouvons ajouter du bruit.
Changer la fréquence.
Modifier le gain.
Remplacer le type de modulation.
Observer le spectre.
Écouter le résultat.
L’expérimentation devient interactive.
Pour le radioamateur curieux, c’est probablement l’une des plus belles façons d’apprendre.
Et si le bloc dont nous avons besoin n’existe pas ?
Nous le créons.
Voilà une autre idée essentielle du projet.
GNU Radio est : extensible.
Les utilisateurs peuvent développer leurs propres blocs et les partager avec la communauté.
Des projets extérieurs viennent ainsi compléter l’environnement de base.
Un protocole particulier ?
Un satellite ?
Une nouvelle modulation ?
Un équipement SDR ?
Quelqu’un peut écrire le bloc nécessaire.
Puis le publier.
Et d’autres utilisateurs peuvent à leur tour : l’améliorer.
Nous retrouvons ici l’esprit du logiciel libre qui accompagnait GNU Radio dès 2001.
Du récepteur FM aux télécommunications modernes
Avec le temps, GNU Radio dépasse largement le petit monde des expérimentateurs SDR.
Il est utilisé pour : l’enseignement, la recherche, le prototypage, les communications sans fil, les satellites, les systèmes numériques et de nombreuses expérimentations scientifiques et industrielles.
Le principe reste pourtant remarquablement proche de celui des débuts : prendre des blocs de traitement et les relier pour construire le système dont nous avons besoin.
La radio n’est plus figée.
Elle devient : une architecture que l’on peut réinventer.
Quelques dates à retenir
Années 1990 — Le concept de Software Defined Radio se développe et l’expression SDR se diffuse notamment avec les travaux de Joseph Mitola.
Début 2001 — Une discussion à San Francisco entre John Gilmore, Eric Blossom et d’autres participants contribue à faire naître le projet qui deviendra GNU Radio.
Mars 2001 — GNU Radio devient officiellement un projet GNU.
2001 — Matt Ettus rejoint très tôt la communauté GNU Radio.
Années 2000 — GNU Radio s’enrichit et GNU Radio Companion rend la construction des flowgraphs beaucoup plus visuelle.
2004 — Matt Ettus commence à travailler à plein temps sur l’USRP, interface matérielle conçue pour la radio logicielle.
2005 — Le premier USRP entre dans sa première année de diffusion et devient rapidement un compagnon naturel de GNU Radio.
Années 2000-2010 — GNU Radio s’impose progressivement dans l’enseignement, la recherche et l’expérimentation SDR.
2012 — Les récepteurs basés sur RTL2832U sont détournés de leur usage DVB-T ; RTL-SDR rend la réception SDR extrêmement accessible.
Aujourd’hui — GNU Radio fonctionne avec de nombreuses plateformes SDR et reste un outil majeur pour apprendre, expérimenter et développer des systèmes radio logiciels.
Quand la radio devint un programme !
Revenons maintenant dans le shack d’autrefois.
Pour construire un récepteur, nous prenions : un schéma.
Nous installions : des résistances, des condensateurs, des selfs, des transistors.
Nous soudions.
Nous mesurions.
Nous corrigions.
Et cette manière de construire reste évidemment passionnante.
Mais GNU Radio nous a offert : un deuxième établi.
Sur celui-ci, les composants portent des noms comme : Source, Filter, Demodulator, FFT, Audio Sink.
Les fils sont devenus : des traits tracés à l’écran.
L’oscilloscope est devenu une fenêtre.
Le filtre est devenu un algorithme.
Le démodulateur est devenu un bloc.
Et notre fer à souder… est parfois devenu une souris.
En 2001, Eric Blossom et les pionniers de GNU Radio ne construisaient donc pas simplement un nouveau logiciel.
Ils participaient à un changement beaucoup plus profond : la radio n’était plus seulement définie par les composants que nous avions soudés.
Elle pouvait désormais être définie par : ce que nous avions programmé.
Et ce jour-là… la radio devint un programme !
