Radio logicielle (SDR)
Pour démarrer dans le domaine
(c) Pascal Chour
V1.0 - 08/2015

Introduction

Je ne sais pas si vous connaissez ce sketch des inconnus. Lors d’un spectacle, le micro sans fil tombe en panne et l’acteur est obligé de chercher un commerce où il pourra acheter des piles. Un de ces commerces est celui « d'Antoine Bompuis, ouvert jour et nuit ». S’ensuit le « dialogue » suivant :

Si vous êtes arrivé sur ce site qui parle de TSF et de tubes à vide, c’est que vous êtes peut-être légèrement décalé par rapport à l’époque actuelle ou que vous avez laissé passer quelques trains. Rassurez vous, vous n’êtes pas le seul.

Si votre TSF ne vous restitue plus que des crachotements, c’est normal. On n’émet plus beaucoup en modulation d'amplitude (AM) sur les bandes de fréquences que reçoivent ces vénérables antiquités (en 2015, Radio France a annoncé l’arrêt de ses transmissions en grandes ondes). Et que sa petite sœur, la modulation de fréquence (FM), ne rigole pas bêtement là bas, au fond. Son tour ne devrait plus tarder non plus. Je parle de modulations qui transmettent de l’information sous forme analogique, évidemment. Car pour ce qui est de transmettre des informations numériques, l’AM et la FM sont toujours bien là, ainsi que quelques autres.

Depuis les tubes, il y a eu les transistors qui ont finis par se retrouver comme des sardines dans une boîte à l’intérieur de circuits intégrés. Ceux-ci ont amené dans leurs bagages la révolution informatique. Et c’est ainsi qu’est née la radio logicielle.

Je vais donc vous dire deux mots de cette technologie (à une autre époque, on aurait dit « technique » mais le sens de l’enflure touche aussi le vocabulaire).

Poste de radio analogique

Dans un poste de radio tel que vous le connaissez, on trouve en général :

Le schéma ci-dessous résume la situation pour un récepteur superhétérodyne.


source : Wikipedia

Si vous voulez recevoir la FM, il vous faudra faire quelques modifications matérielles adaptées à cette modulation. Et de même pour toutes les autres et elles se sont multipliées, sans compter les éventuels filtres, changements de fréquences supplémentaires, etc. qui devront être mis en place pour les récepteurs les plus performants.

Enfin, ces communications transportant de plus en plus un signal codé, il vous faudra introduire quelque part un décodeur permettant de récupérer un train de bits.

Principes de la radio logicielle

La radio logicielle a changé tout cela. L’idée est de réaliser tous les traitements décrits précédemment par un programme informatique, et ceci, le plus tôt possible afin que la partie analogique soit réduite à son strict minimum.

Idéalement, la partie analogique pourrait être réduite à l’antenne, le signal reçu étant ensuite directement numérisé et traité (accord, changement de fréquence, filtrages…). Dans la terminologie de la Wireless Innovation Forum, on l’appelle d’ailleurs « Radio logicielle idéale ».

Mais en pratique, en 2015, on ne dispose pas de moyens simples et peux coûteux pour réaliser cette radio idéale. Numériser un signal à 10Ghz implique à minima un échantillonnage à 20Ghz, et en pratique, beaucoup plus.

C’est pourquoi on utilise un étage RF (Radio-Fréquence) analogique chargé de faire une première amplification puis un premier changement de fréquence pour permettre à la partie numérique (conversion analogique-numérique) de travailler à une fréquence plus raisonnable. Ce premier changement de fréquence doit être tel que l’on puisse disposer d’une largeur de bande suffisante (bandwith) pour pouvoir traiter complètement le signal utile (parfois, plusieurs dizaine de MHz).

Ensuite, on réalise une conversion en numérique (8 bits, 16 bits, 24 bits, le nombre de bits ayant un impact direct sur le quotient signal sur bruit théorique (48db pour 8 bits, 96db pour 16 bits, 144db pour 24 bits) à l’aide d’un Convertisseur Analogique Numérique (CAN) qui à ce niveau, est aussi nommé « voltmètre numérique ». Ce type d’architecture est nommé « Radio définie par logiciel » ou SDR pour « Software Defined Radio » par la Wireless Innovation Forum. Depuis 2010, on en trouve à des prix très raisonnables.

Avant d’aller plus loin, on rendra hommage à Lucien Chrétien qui dans les années 1920, avait réalisé avec les moyens de l’époque un dispositif, le Strobodyne, permettant d’effectuer un échantillonnage du signal HF pour réaliser le changement de fréquence. On m’objectera sans doute que tout cela n’a rien à voir mais quand même !

Que fait-on de cette suite de bit ? Tous les traitements qui existaient dans un poste classique haut de gamme, qu’il s’agisse de filtrage, de traitement du bruit, de changement de fréquence, etc. pour arriver à la démodulation et au traitement applicatif.


Le schéma ci-dessus résume la situation pour un récepteur seul. Il faut être conscient que de nombreuses architectures sont possibles ce qui fait que beaucoup de diagrammes se contentent au final de 3 pavés, La partie analogique (comportant l'antenne et pouvant être réduite à cela dans les récepteurs à conversion directe), la partie numérique et la partie commande (interface).

Evidemment, si le traitement est destiné à recevoir un signal audio humainement compréhensible, on repassera par une conversion numérique analogique (CNA) qui permettra d’attaquer un amplificateur puis un haut parleur.

Cette présentation minimaliste n'est là que pour vous donner l'envie d'approfondir. Et voici donc pour ce faire une petite liste de documents en français qui devraient vous intéresser.

En guise d’introduction, je vous conseille l’excellente suite d’articles sur le blog F6KRK publiée initialement en 2006 par Robert Béranger (F5NB) dans la revue REF. Le premier est ici.

Beaucoup de présentations sont faites, sous l'angle de l'informaticien ou de l'électronicien analogique avec les défauts des tropismes de chacun. La présentation proposée par Christan Barthod (F8GHE) sur www.f6ikyradioamateur.pagesperso-orange.fr/pdf/sdrf8ghe.pdf [archive] n'a pas ces défauts, s'avère très équilibrée et ce qui ne gache rien, très didactique.

Une autre très bonne introduction se trouve dans le document « Radio logicielle : analyse d'architectures matérielles et outils informatiques ».

Vous pouvez aussi consulter ce documents, écrit par d’anciens collègues pour la conférence C&ESAR à Rennes en 2011. L'intérêt de cette publication est qu'elle est faite par des personnes qui connaissent très bien les communications hertzienne, la radio logicielle, mais aussi et surtout, la sécurité des systèmes d'information. La radio logicielle est donc vue à travers le prisme de sécuriticiens.

Ce ne sont là que quelques publications sur lesquelles je me suis arrêté. Il y en a beaucoup d’autres de qualité. Avec un peu de persévérance, les moteurs de recherche devraient vous permettre de les dénicher.

Les premiers pas

Si en 2015, vous souhaitez vous initier rapidement au sujet sans dépenser des fortunes, voici comment vous pouvez procéder. Il vous faudra :

  1. une plateforme matérielle sur laquelle vous exécutez la radio logicielle. Un PC sous Windows ou Linux par exemple.
  2. La partie matérielle de la radio logicielle (antenne, tuner et numérisation).
  3. Le logiciel qui fournit les fonctionnalités de la radio logicielle et qui s’exécute sur la plateforme matérielle mentionnée en 1).

Partie matérielle de la radio

Si une bande de fréquence de l’ordre de 100kHz à 1,7GHz vous convient (normalement, si votre dernière acquisition était un récepteur à tube, cela devrait vous faire rêver), il existe une solution peu coûteuse pour démarrer, grâce au travail de quelques hackers en 2010 qui se sont intéressés à des dongles bon marché utilisés pour la réception et la démodulation des émissions TV sur PC.

Ces dongles sont basés sur le composant RTL2832 qui réalise la conversion analogique numérique, la démodulation du signal DVB et la connexion en USB vers un ordinateur hôte. Ils sont également équipés d’un tuner large bande (E4000 au départ, R820T par la suite à la disparition d’Elonik qui produisait le E4000).


Moyennant un travail de rétroingénierie, ces dongles ont pu être transformés pour réaliser la partie matérielle de la radio logicielle et être interfacés avec des logiciels de SDR. En 2015, on trouvait ces matériels, fournis avec une petite antenne et un câble USB pour environ 40 à 50€. C’est donc ce que j’ai acheté à l’époque.

Ces matériels sont connus sous la dénomination « RTL.SDR » et disposent d’un site officiel : http://rtlsdr.org/

Il existe de nombreuses variantes. Vous pouvez consulter ce site (en anglais) www.rtl-sdr.com/buy-rtl-sdr-dvb-t-dongles/ ou www.rtl-sdr.com/roundup-software-defined-radios/ qui donnent des listes de dongles et de produits associés.

Le modèle que j’ai acheté (environ 45€ en 2015) indique pouvoir fonctionner dans les bandes 100kHz à 1,7GHz. Il dispose d’une prise d’antenne pour les VHF et UHF (notée UV) et une autre notée HF pour les bandes inférieures. Pour ma part, l’entrée HF n’a aucun effet. En pratique, on est limité aux bandes supérieures.


Il existe un autre modèle disposant d’un convertisseur permettant de faire un changement de fréquence pour les fréquences basses afin de les ramener sur une bande démarrant à 100Mhz. Je ne l’ai pas testé mais étant donné le prix (environ 70€), j’aurai tendance à vous inciter à prendre ce modèle plutôt que le précédent.


Sinon, vous pourrez toujours ajouter un tel convertisseur par la suite mais pour un coût légèrement supérieur.

J’ai fait une traduction libre de l’introduction qui présente ce qu’est une « RTL.SDR » et son histoire :

Plateforme matérielle pour exécuter la radio logicielle

Dans mon cas, j’ai utilise un PC de bureau ayant les caractéristiques suivantes :

Partie logicielle

Le site www.rtl-sdr.com/big-list-rtl-sdr-supported-software/ liste les logiciels supportant les dongles à base de RTL2832.

La big list est vraiment big et illustre bien le dynamisme de ce domaine. Il existe des programmes s'exécutant aussi bien sous Windows, que sous Linux ou Androïd.

Pour ma part, j’ai pris le premier de la liste sur les conseils d’un collègue, à savoir SDR# (prononcer SDR sharp). On le trouve sur le site http://airspy.com, le même où l'on peut également trouver le dongle Airspy (environ 180€).

SDRsharp

Installation et prise en main

Le site www.spiwit.net/2012/08/18/tuto-installation-du-rtl-sdr-sous-windows/ propose un tutoriel complet pour la prise en main de SDR#. Mais comme plusieurs sources peuvent aider, je vous livre le mien (08/2015), un peu moins détaillé sur certains points et plus détaillé sur d'autres. La version initialement installée chez moi est la V1.0.0.0.1361 (V1.0.0.0.541 sur spiwit dont le tutoriel date de 2012).

Allez sur le site http://airspy.com et cliquez sur download. Cela permet de télécharger un script zippé qui permettra de télécharger et d’installer le logiciel.

Pensez à désactiver le sandboxing proposées par certaines suites de sécurité (par exemple, Comodo) sinon, vous risquez de chercher longtemps les fichiers téléchargés et vous aurez une erreur lors de l'installation.

Placez le zip du script sur le répertoire d'installation et dézippez le.

Exécutez le fichier install.bat qui va créer un sous-répertoire sdrsharp dans lequel se trouvent l'exécutable sdrsharp.exe ainsi que zadig.exe pour l'installation du driver, adsbsharp.exe pour recevoir les messages ADS-B émis par les aéronefs, etc.

Connectez votre RTL-SDR à une prise USB de votre PC. Sous Windows, il vous sera proposé d'installer le matériel. Ignorez cette étape et exécutez zadig.exe pour l'installation du driver. Choisissez l'option « bulk-in, Interface (interface 0) » et appuyez sur « Install Driver ». Vous pouvez ensuite lancer sdrsharp.exe

Au premier lancement de SDR#, vous devez sélectionner la source (RTL-SDR).



Expansez Zoom FFT et sélectionnez Enable IF (activer IF) et Enable Audio (activer audio). Vous verrez apparaître deux fenêtres supplémentaires en bas de l’écran avec le spectre FI et le spectre audio.


Appuyez sur l’icône en forme de roue dentée pour ajuster le gain.


Sélectionnez la (dé)modulation à utiliser, dans le cas présent, WFM (pour Wide Frequency Modulation ou Modulation de Fréquence Large).


Réglez la largeur de bande (bandwith) aux alentour de 150kHz. Puis, appuyez sur start et choisissez une bande de fréquence sur laquelle vous devriez facilement trouver quelque chose à écouter sans avoir besoin d’une antenne haut de gamme. Typiquement, la bande de fréquence 87 à 108MHz. Ici, 101.200.000 (FIP du coté de Rennes).

Ajustez la largeur de bande si nécessaire. Cela peut se faire directement dans la fenêtre de l’analyseur de spectre.


Et voilà, vous avez fait vos premier pas dans la radio logicielle. Un monde nouveau s'ouvre à vous et vous allez pouvoir enfin dépasser les 162kHz de France Inter Grandes ondes en modulation d'amplitude qui de toute façon, ont ou vont disparaitre.

SDR# et les extensions

De nombreux ajouts ou extensions (plugins) ont été développés par différents auteurs qui les ont mis sur leurs sites (www.sdrsharpplugins.com (le site a disparu), http://www.rtl-sdr.com/sdrsharp-plugins/, www.rtl-sdr.ru/...).

Attention cependant. Les développements de SDR# n’étant pas synchronisés avec ceux des plugins, il peut arriver que certains plugins anciens ne fonctionnent plus ou plantent SDR#. J’ai eu comme ça quelques plantages (le logiciel se fige) avec le scanner.

La prise en compte d'une extension par SDR# est simple. Vous ouvrez le fichier plugins.xml, vous ajoutez la ligne <add key...> qui est en général fournie avec le plugin dans ce fichier. Vous le sauvez et vous relancez SDR#


ADS-B et ADSBsharp

Wikipedia nous précise que L'Automatic dependent surveillance-broadcast (ADS-B) est un système de surveillance coopératif pour le contrôle du trafic aérien et d'autres applications connexes. Un avion équipé de l'ADS-B détermine sa position par un système de positionnement par satellite (GNSS) et envoie périodiquement cette position et d'autres informations aux stations sol et aux autres appareils équipés de l'ADS-B évoluant dans la zone (fréquence, 1090MHz).

SDR# est livré avec le décodeur ADSB#. Il s'agit d'un programme autonome qui reçoit les communications ADS-B, les décode et les fournit sur un port (par défaut, 47806) que d'autres applications peuvent lire. Voici ce que donne ADSB# une fois lancé :


Une description d'ADSB# est proposée dans ce document malheureusement en anglais. j'en reprends les principaux points ci-dessous.

La fenêtre ADSB comporte trois sections :

Afin d’éviter tout problème, il est recommandé d’effectuer les réglages touchant au RTL-SDR en position « Stop » d’ADSB#. Dans le cas contraire, il y a un risque de figer l’application quelques secondes ou quelques minutes.

PORTE-ANTENNE

Après avoir fait l'acquisition d'un convertisseur de fréquences provenant de Nooelec (Up converter Ham it Up),
j'ai souhaité regrouper le tout (RTL-SDR plus convertisseur) dans un seul boitier avec plusieurs antennes : une antenne cadre "grandes-ondes" et "petites-ondes" avec un adaptateur-amplificateur dont le schéma vient d'ici, d'une antenne télescopique et d'une entrée d'antenne pour en brancher d'autres. Un commutateur permet de sélectionner l'antenne souhaitée.

Ce montage me fait penser à un "chalutier" de l'époque soviétique (seul les plus de ... ans peuvent comprendre).

J'ai aussi réalisé une antenne cadre sur une crois en bois sur laquelle j'ai bobiné un "certain nombre" de tour de fils. Les bonnes performances de cette antenne me donnent envie d'en construire une encore plus grande.

L'alimentation vient directement de l'USB. Elle est repiquée sur le RTL-SDR et alimente le convertisseur. Un élévateur de tension me permet d'obtenir le 9V pour l'alimentation de l'adaptateur-amplificateur.

Bon, j'imagine que le fouillis de câble fera frémir un radioamateur averti mais globalement, c'est plutôt efficace et pratique. Voici quelques vues de l'engin, pas tout à fait terminé car il manque la face avant. Le boitier qui blinde le convertisseur ne fait pas aussi chic que celui vendu par Nooelec mais il ne m'a couté que de l'huile de coude (alu de récupération).


La face avant.


La face arrière. On remarque le contacteur et le condensateur variable pour ajuster l'antenne cadre.


L'intérieur.

à suivre