Radio logicielle

10/2017 : j'ai joué avec la radio logicielle, ou plus communément appelé Software Defined Radio à l'aide d'une clé USB à base de chipset RTL2832.

Ce dongle, permettant initialement de recevoir la TV TNT, peut être réglé sur différentes fréquences radios afin d'analyser et d'écouter le signal reçu. C'est le frontend SDR le moins cher du marché : 15 € environ.

Le point clé est que ce chipset permet de transférer les données I/Q brutes vers l'hôte en 8 bit avec une fréquence d'échantillonage jusqu'à 3.5 MS/s. En pratique il vaut mieux rester autour de 2.8 MS/s afin de ne perdre aucun paquet. La plage de réception est comprise entre 25 MHz et 1,7 GHz.

Le dongle, de la famille rtl-sdr, est très populaire et plusieurs sites lui sont dédiés et notamment www.rtl-sdr.com où de nombreux projets sont décrits.

RTL2832

Le concept clé derrière la SDR est de numériser le plus tôt possible le signal issu de l'antenne. Dans un récepteur analogique, la démodulation de signal est effectuée afin de produire un signal audible sur un haut parleur. Avec un recepteur SDR, un ampli est positionné juste à la sortie de l'antenne puis le signal est numérisé. Charge au logiciel d'effectuer la démodulation du signal à l'aide de transformation de fourrier par exemple.

Récepteur analogique vs SDR

Cette technique est utilisée depuis de nombreuses années notamment pour la téléphonie mobile depuis la norme GPRS (2G); lors du passage à la norme EDGE (2.5G), une simple mise à jour logicielle permettait de bénéficier des améliorations du service. La TNT repose également sur un principe similaire où la dé/modulation du signal met en oeuvre des nombres complexes (rappel : $i^2= -1$).

Avec le logiciel libre Gnu Radio, il est possible de prototyper des récepteurs radio évolués en assemblant des briques logicielles déjà prêtes ou d'en créer des nouvelles. Exemples : récepteur DVB-T2, récepteur Galileo (GPS européen) ou simplement écouter les télécommandes de porte de garage =).

L'utilisation de ce type de clé USB pour faire de la SDR a été “découverte” par un développeur faisant du reverse engineering du driver Windows pour faire fonctionner le module de reception DVB-T sous linux. Il s'est rendu compte qu'il pouvait le configurer pour recevoir le signal brut numérisé, c'est à dire sans démodulation, pour l'exploiter de manière logicielle (histoire complète).

Mon objectif est d'apprendre les concepts autour de la SDR et de décoder différentes fréquences : radio FM, balise de positionnement des avions de ligne, images des satellites météo…

Prompt
Première étape : installer les drivers sur Raspberry Pi.

Description complète par ici ↬


Ensuite, l'un des premiers joujou avec lequel s'amuser est un analyseur de spectre : cet outil affiche la force et la composition d'un signal reçu sur une fréquence donnée.

Suite →
Analyseur de spectre


ADS-B
Cette clé USB permet recevoir aisément les avions de ligne dotés d'un émetteur ADS-B transmettant leurs position, vitesse et cap. Voyons ce que l'on peut faire :)

Projet complet ↬


Voici 2 manières d'étalonner un dongle RTL2832 afin d'améliorer la qualité de la réception.

Suite →
ADS-B

Bibliographie