Prise en main de la carte USRP N210 avec GNU Radio¶
Nous supposons à présent que le pilote UHD ainsi que l'environnement GNU Radio sont installés. Par ailleurs, une carte USRP N210 + WBX est correctement configurée et étalonnée. Parmi les exemples proposés certains mettent en œuvre des liaisons point-à-point et nécessite ainsi deux station identiquement configurées.
Génération de signaux et analyse de spectre¶
Nous pouvons dans un premier temps mettre en œuvre un analyseur de spectre réalisant une transformée de Fourier rapide par blocs. L'exemple suivant permet d'analyser une bande de 5 MHz autour de 950 MHz en supposant qu'une antenne adaptée à cette bande soit installée sur le port RX2.
uhd_fft -A RX2 -f 950e6 -s 5e6
Il est également possible de visualiser le signal reçu dans un environnement waterfall.
uhd_fft -W -A RX2 -f 950e6 -s 5e6
La carte USRP peut être utilisée comme un générateur de signaux élémentaires. L'exemple suivant permet la création d'une sinusoide autour de 950 MHz.
uhd_siggen -A TX/RX -f 950e6 -s 1e6
Réception de radiodiffusion en modulation de fréquence large bande¶
Nous souhaitons réceptionner un signal de communication analogique audio modulé en fréquence. Nous nous intéressons à la bande FM définie entre 88 MHz et 108 MHz. Les canaux fréquentiels sont espacés de 100 kHz et la modulation de fréquence est dite à large bande dans la mesure où la dévation de 75 kHz est supérieure à la bande du signal modulant de 20 kHz (nous nous intéressons ici au signal mono).
Afin de recevoir un tel signal, nous définissons une chaîne de traitement à l'aide de GNU Radio Companion (GRC). Il s'agit d'un outils graphique permettant la génération de chaines de traitement GNU Radio. Le fichier rx_fm.grc définit la chaîne de traitement ci-dessous.
La source USRP est réglée par défaut sur la fréquence porteuse 102.8 MHz et échantillonne le signal à la fréquence 5 MHz. Une fréquence d'échantillonnage aussi élevée permet d'observer environ 1/4 de la bande FM à l'aide d'un analyseur FFT Sink. La source USRP est suivie d'un filtre passe-bas permettant de sélectionner un canal fréquentiel de 100 kHz et de décimer le signal par un facteur 10. Nous utilisons ensuite un démodulateur FM à large bande. Afin de faire le lien entre la sortie du démodulateur FM et la sortie de la carte son, nous effectuons un ré-échantillonnage avec de s'adapters à une fréquence de travail de la carte son. Remarquons enfin que nous pouvons visualiser le signal démodulé dans un FFT Sink (la création de deux onglets pour les FFT Sinks est réalisée à l'aide du bloc Notebook).
Réception de signaux ADS-B et visualisation sur google-earth¶
L'ADS-B (Automatic dependent surveillance-broadcast) est un standard de communication dédié à la surveillance coopérative et au contrôle du trafic aérien mondial. Un avion transmet donc régulièrement sa position, obtenue par l'intermédiaire d'un système de positionnement par satellite (GNSS).
En utilisant des outils déjà créés par la communauté Gnuradio, on est capable avec les USRP de recevoir ces signaux, puis de les décoder pour en déduire le positionnement des avions dans un environnement proche. Dans un second temps on peut afficher en temps réel la position de ces avions sur google-earth, émulant ce que peut être un radar de positionnement.
Installation de gr-air-modes¶
Il faut dans un premier temps installer le module sous gnuradio permet le décodage des trames ADS-B, nommé gr-air-modes.
Le code source étant sur un dépôt GIT, le plus simple est directement de cloner ce dernier avant la compilation.
git clone https://github.com/bistromath/gr-air-modes.git cd gr-air-modes cd build cmake ../ make sudo make install sudo ldconfig
Installation de Google-earth¶
Pour visualiser les trames décodées et en particulier la position en temps réel des avions voisins, il est nécéssaire d'installer un atlas mondial, tel que google-earth. Des solutions alernatives à google-earth peuvent être choisies, telle que Marble même si l'installation de ce dernier est lourde dans un environnement gnome.
Pour installer google-earth il suffit d'aller sur le site associé en prenant le dernier paquet 64 bits stable.
L'installation se fait alors de manière tout à fait classique :
cd Downloads/ sudo dpkg -i google-earth-stable_current_amd64
Lancement du script de décodage et visualisation¶
Pour lancer le décodage des trames en temps réel, il faut placer une antenne 900MHz sur un USRP et lancer la commande suivante :
modes_rx -g 60 -A TX/RX -K planes.kml
Des messages associés au décodage des données apparaissent alors dans la console
(-63 3.92050375) Type 4 (short surveillance altitude reply) from 85e323 at 69100ft (AIRBORNE ALERT) (-64 4.30157850) Type 4 (short surveillance altitude reply) from c2f28c at 124500ft (SPI) (-63 4.92450325) Type 5 (short surveillance ident reply) from 689042 with ident 7634 (SPI) (-63 5.30652800) No handler for message type 24 from c4a9d2 (-65 6.22557325) Type 5 (short surveillance ident reply) from f8068a with ident 202 (SPI ALERT) (-64 7.62526400) No handler for message type 24 from 56cdfe (-65 7.69495500) Type 5 (short surveillance ident reply) from 5c4d6f with ident 7214 (SPI ALERT) (-62 8.20580500) No handler for message type 24 from 820adc (-62 8.68486325) Type 5 (short surveillance ident reply) from 63f6f9 with ident 224 (aircraft is on the ground) (-64 8.98844225) Type 5 (short surveillance ident reply) from 29ca4c with ident 2574 (SPI ALERT) (-64 9.75643550) No handler for message type 24 from b9f344 (-63 10.38734725) Type 4 (short surveillance altitude reply) from d134f9 at 30600ft (AIRBORNE ALERT) (-65 10.44437550) No handler for message type 24 from af4b42
Enfin, il faut ouvrir google-earth et associé un chemin réseau
Clic droit sur lieux temporaire -> Ajouter -> lien Réseau Lien : fichier planes.kml Actualisation : périodique -> 5 secondes
Modulation numérique DPSK entre deux cartes USRP¶
Prochainement...
Diffusion vidéo entre deux cartes USRP¶
Prochainement...
Échanges bidirectionnels IP entre deux cartes USRP¶
Prochainement...
Mis à jour par Robin Gerzaguet il y a plus de 9 ans · 3 révisions