Utiliser une clé RTLSDR avec GNU Radio

Cet article permet d »installer le nécessaire pour utiliser les clé rtlsdr avec GNU Radio Companion. Pour installer GNU Radio, voir cet article.


Pour utiliser une clé rtlsdr, la « librairie » nécessaire est la librairie gr-osmosdr. La procédure d »installation est également disponible ici.

git clone git://git.osmocom.org/gr-osmosdr

cd gr-osmosdr/

git checkout gr3.8

mkdir build

cd build/

cmake ../

make

sudo make install

sudo ldconfig

La commande « git checkout gr3.8 » permet de « charger » la version de gr-osmosdr pour GNU Radio 3.8. Si vous avez GNU Radio 3.9, pas besoin de l’exécuter. Si vous avez GNU Radio 3.7, remplacer gr3.8 par gr3.7.

Une fois l »installation terminée, en lançant GNU Radio vous devriez voir dans la liste des modules une rubrique OsmoSDR :


Il est maintenant temps de temps l »installation. Créez un programme simple de test comme celui ci-dessous :

Programme affichant le spectre de la clé SDR à 100 MHz

Si tout se passe bien, le spectre doit s »afficher :


Si GNURadio vous indique « No module named osmosdr », il y a 2 solutions :

Avant d »exécuter gnuradio-companion dans le terminal, tapez la commande suivante : export PYTHONPATH=$PYTHONPATH:/usr/local/lib/python3/dist-packages

Ou si vous ne voulez pas tapez cette commande à chaque fois, mettez la à la fin du fichier .profile en l »ouvrant avec nano :

sudo nano ~/.profile

Réception APRS avec GNURadio et le PlutoSDR

Avec GNURadio Companion il est possible de tout faire, à commencer par recevoir et décoder l »APRS. C »est assez simple à mettre en place vu qu »une librairie existe, il suffit juste de l »adapter au PlutoSDR.

Ces explications concernent Linux.

Installer gr-aprs

Pour installer la librairie gr-aprs, il suffit de suivre la procédure expliquée ici : https://github.com/handiko/gr-APRS. Il faut donc taper les commandes suivantes :

git clone https://github.com/handiko/gr-APRS.git

cd gr-APRS/HierBlock/

Une fois dans le dossier du clone GitHub, il faut lancer un 1er programme GNURadio :

gnuradio-companion AFSK_Demod.grc

Exécutez le programme ouvert, puis une fois l »exécution terminée fermez GNURadio.

Faites la même opération avec le 2nd programme :

gnuradio-companion APRS_Rx.grc

Après avoir relancé GNURadio une fois l »opération réalisée avec le 2nd programme, vous devriez trouver des blocks APRS dans la liste des modules disponibles :

Enfin, il faut copier les fichiers installés vers le répertoire python :

cd

sudo cp gr-APRS/Module/packet.py /usr/lib/python2.7/

Le module APRS est désormais installé.

Modifier le programme d »exemple de réception

Si vous regardez le contenu du dossiercloné depuis Git, vus trouverez un dossier Example. Ce dossier contient plusieurs exemples :

Nous allons nous intéresser à l »exemple de réception via une clé SDR. Ouvrez donc le fichier APRS_RX_RTL.grc dans GNURadio.

Le programme une fois ouvert

Nous avons 2 choses à modifier dans cet exemple pour que nous puissions recevoir l »aprs avec le PlutoSDR : la fréquence (en France elle est de 144.8MHz) et la source.

Pour la fréquence, il suffit de la remplacer dans la définition de la variable freq :

Définition de la variable freq

Pour remplacer la source par le PlutoSDR, il faut supprimer le bloc osmocom Source et mettre à sa place le bloc PlutoSDR Source.

Configuration du bloc PlutoSDR Source

Le programme ressemble désormais à ça :

Décodage

Maintenant il est temps de recevoir quelques trames. Pour cela, lancer le programme. La fenêtre suivante devrait s »ouvrir avec les différents spectres radio et audio :

Pour voir les trames décodées, il faut écouter le port 52001 depuis un terminal :

telnet localhost 52001

Les différentes trames reçues
Et voilà, vous pouvez maintenant décoder l"APRS avec GNURadio et le PlutoSDR.

Lier Gpredict et SDRSharp

Quand on cherche à recevoir les satellites défilants, il y a un facteur important à prendre compte : l »effet Doppler. Il s »agit d »un décalage en fréquence en fonction de la vitesse du satellite et de son approche ou éloignement.

Il y a plusieurs solutions pour compenser l »effet Doppler quand vous faites de la réception avec une clé SDR : vous pouvez décaler manuellement la fréquence de réception pour suivre le spectre du satellite, ou alors relier Gpredict et SDRSharp pour que Gpredict pilote lui même la fréquence de réception. C »est ce que nous allons faire dans cet article.

Le plugin pour SDRSharp

La première étape est d »installer sur SDRSharp un plugin qui lui permettra de communiquer avec Gpredict. Ce plugin s »appelle GpredictConnector et est disponible ici : https://github.com/alexwahl/SDRSharp.GpredictConnector

Pour l »installer, il suffit de télécharger le .zip disponible ici : https://github.com/alexwahl/SDRSharp.GpredictConnector/releases/tag/v0.3 et d »extraire le .dll dans le répertoire de SDRSharp.

Une fois cette manip effectuée, il faut ajouter la ligne suivante dans le fichier plugins.xml qui est contenu dans le répertoire SDRSharp :

<add key="GpredictConnector" value="SDRSharp.GpredictConnector.GpredictConnectorPlugin,SDRSharp.GpredictConnector" />

Maintenant si vous relancez SDRSharp, Gpredict devrait apparaitre.

La fenêtre de GpredictConnector une fois SDRSharp relancé.

Ce plugin va « écouter » un port pour recevoir des instructions de Gpredict. Pour activer cette écoute, il faut cocher la case « enable ». Le plugin affiche alors le port sur lequel il est à l »écoute. Notez le car il va nous permettre de configurer Gpredict.

Le plugin lancé. On voit qu »il est à l »écoute sur le port 4532

Ajouter la liaison dans Gpredict

Maintenant que SDRSharp est configuré, il faut ajouter la liaison dans Gpredict. Pour cela, rendez-vous dans Edit -> Preferences puis Interfaces. Vous devriez avoir la fenêtre suivante :

La fenêtre des interfaces radio de Gpredict

Pour ajouter une intreface, cliquez sur Add new. La fenêtre suivante s »ouvre :

La fenêtre d »ajout d »interface radio

Les champs se remplissent comme suit :

  • Name : nom de l »interface
  • Host : hôte qui héberge le logiciel de réception. Dans notre cas il est hébergé sur le même ordinateur que Gpredict, donc son adresse sera localhost
  • Port : port auxquel Gpredict doit se connecter sur l »hôte pour le pilotage. Le plugin sur SDRSharp indiquait 4532
  • Radio type : Permet d »activer ou non l »émission. Dans notre cas ce sera RX only
  • PTT status : pas besoin vu que nous n »utiliserons pas l »émission
  • VFO up/down : laisser en Not applicable

Une fois les champs remplis, il suffit de valider. L »interface apparait désormais dans la liste :

Validez pour quitter les préférences.

Utiliser la liaison

Maintenant que les 2 logiciels sont configurés, il ne reste plus qu »à vérifier le bon fonctionnement de liaison. Commencez par lancer SDRSharp, activer le plugin de communication et la réception radio.

Une fois SDRSharp fonctionnel, retournez sur Gpredict. Cliquez sur la flèche des options (flèche vers le bas) et rendez vous dans Radio control.

Accès à Radio control

La fenêtre suivante s »ouvre :

Dans cette fenêtre, dans l »encadré Target, sélectionnez le satellite voulu et la fréquence (par exemple ici c »est la fréquence APT de NOAA15 qui est selectionnée).

Dans l »onglet Settings, sélectionnez en 1er device l »interface radio créée.

Il ne vous reste plus qu »à cliquer sur Engage pour que SDRSharp soit piloté par Gpredict, et sur Track pour que Gpredict calcule le décalage lié à l »effet Doppler.

Le radio control en train de traquer la fréquence APT de NOAA15

Si vous allez sur SDRSharp, vous devriez voir la fréquence de réception se décaler comme la fréquence Radio de Gpredict.

Un récepteur de bande FM avec GNURadio

Cet article est réalisé en utilisant le PlutoSDR, mais en remplaçant le bloc source par le bloc adapté aux clés SDR « classiques » le programme fonctionnera avec les clés SDR comme les R820T.

Avant de suivre cet article, il est nécessaire d »avoir GNU radio installé sur son ordinateur (voir article dédié à l »installation sous Linux ici). Si vous souhaitez utiliser le PlutoSDR il faut également l »avoir configuré (voir ici).

Configurations générales

Lorsqu »un nouveau programme est créé sous GNU Radio, 2 blocs sont déjà présents : un bloc options et un bloc Variable.

GNU Radio lors de la création d »un nouveau programme.

Commençons par le bloc Options. C »est le bloc qui va définir plusieurs paramètres comme le nom de la fenêtre qui va s »ouvrir au lancement de l »application, son titre, son auteur, sa description, le type d »interface…

Vous pouvez la laisse telle quelle, de mon côté j »ai choisi de la personnaliser un peu :

Mon paramétrage du bloc Options

Le bloc variable est un bloc qui permet tout simplement de déclarer une variable. Dans le bloc présent à la création du programme il s »agit de la variable sample_rate. Elles est initialisée à 32k mais nous nous allons la passer à 2M (2 000 000 ou 2e6).

Fenêtre de configuration de la variable sample_rate

Le bloc Source

Maintenant que les 2 blocs présents par défaut sont configurés, on peut commencer à ajouter des blocs pour construire le récepteur. Le premier de ces blocs est le bloc de « source », en l »occurence ici le bloc PlutoSDR Source dans lequel nous allons paramétrer le PlutoSDR. Ce bloc se trouve en tapant « PlutoSDR Source » dans la zone de recherche de bloc.

Le bloc PlutoSDR Source ajouté au programme mais pas encore configuré.

Il n »y a pas grand chose à modifier dans le bloc : il faut juste lui indiquer l »emplacement du Pluto et utiliser une variable frequence comme fréquence d »écoute.

La configuration du bloc PlutoSDR Source

Après avoir saisi la variable frequence dans le champ LO Frequency, ce dernier devient rouge. C »est tout à fait normal que nous n »avons pas définit cette variable. Pour la définir, vous avez 2 options : soit vous utilisez un bloc Variable, soit vous utiliser le bloc QT GUI Range.

Dans le cas du bloc Variable, vous définirez la fréquence à la création du programme et vous ne pourrez pas la changer pendant son exécution, alors qu »avec le QT GUI Range la fenêtre d »exécution du programme affichera un curseur qui permettra de changer la valeur de la fréquence. C »est ce bloc que nous allons utiliser dans cet article.

Le bloc QT GUI Range inséré mais non configuré

Une fois le bloc inséré, nous pouvons l »utiliser pour définir la variable frequence. Cette variable sera comprise entre 88MHz et 108MHz (la bande FM), on se déplacera sur cette bande avec un pas de 100KHz et on utilisera 90.2MHz (France Bleu de mon département) comme fréquence écoutée au lancement, comme fréquence « par défaut ». Le champ Label permet également de donner un nom « d »affichage » à la variable, comme le contenu de ce champ ne sert uniquement qu »à l »affichage il est donc possible d »utiliser des accents et autres caractères spéciaux.

Le bloc QT GUI Range configuré pour la fréquence

IMPORTANT : il faut penser à changer le Type en int, car les fréquences doivent être des entiers et non des flottants.

Le filtre passe-bas

Maintenant que la source est correctement configurée, il faut définir la large de bande écoutée. Pour cela, nous utiliserons un filtre passe-bas ayant une fréquence de coupure de 100kHZ. Ce bloc se trouve en tapant « Low Pass Filter » dans la liste des blocs.

Le filtre passe bas configuré

Le champ Decimation vaut 4 pour passer d »un taux d »échantillonnage en entrée de 2e6 à un taux d »échantillonnage en sortie à 500k.

Un affichage du spectre de fréquences

Afin de voir la force du signal de la fréquence écoutée, nous allons mettre sur la fenêtre du programme un affichage du spectre de fréquences. Pour cela, ajoutez le bloc QT GUI Frequency Sink. Pour le configurer c »est très simple : il suffit de lui donner comme fréquence centrale (Center Frequency) la variable frequence. Le spectre se centrera alors automatiquement sur la fréquence écoutée.

Le bloc QT GUI Frequency Sink configuré

On peut commencer à relier le bloc de source avec le filtre passe-bas et le bloc d »affichage de la fréquence.

Le bloc source, le filtre passe-bas et l »affichage de la fréquence reliés entre eux

Le bloc démodulateur

L »étape suivante consiste à démoduler le signal, pour passer d »un signal complexe fournit par le PlutoSDR à un signal de type float qui sera notre signal audio. Pour cela, il existe un bloc tout fait sur GNU Radio : WBFM Receive (il faut bien prendre le WBFM qui correspond à une large bande et le non le NBFM qui lui correspond à une bande étroite).

Là encore la configuration est assez simple : il suffit de lui indiquer qu »en entrée on lui injecte un signal échantillonné à 500k et que l »on ne veut pas modifier le signal.

Le bloc WBFM Receive configuré

Ce bloc vient se connecter à la suite du filtre passe-bas.

Adaptation du taux d’échantillonnage

En sortie du démodulateur le signal a un taux d’échantillonnage à 500k, ce qui est élevé pour de l »audio. Nous allons le ramener à 48k avec le bloc Rational Resampler qui va diviser le taux par 500 et le multiplier par 48.

Le bloc Rational Resampler configuré

Il faut bien penser à changer le Type en float car en sortie du démodulateur nous travaillons avec des nombres flottants. Ce bloc vient donc se connecter à la suite du bloc WBFM Receive.

Le volume

Pour gérer le volume, il suffit de multiplier le signal par une constante entre 0 et 1, 0 correspondant à pas de volume et 1 correspondant à la totalité de l »amplitude du signal. La multiplication se fait avec le bloc Multiply Const. Ce bloc vient multiplier le signal par la variable volume que nous pourrons faire varier avec un curseur sur le même principe que la fréquence.

Le bloc Multiply Const configuré
Le bloc de définition du volume configuré

Ecouter le signal audio

Maintenant il ne reste plus qu »un bloc à ajouter : le bloc Audio Sink qui va nous permettre d »écouter le signal audio. Pour le configurer il suffit de choisir un taux d »échantillonnage de 48k.

Le bloc Audio Sink configuré

Place à l »écoute…

Une fois le programme terminé, il ne reste plus qu »à cliquer sur la flèche d »exécution du programme. La fenêtre de réception doit alors s »ouvrir et vous devriez entendre la fréquence choisie.

Le programme terminé
Le fenêtre de réception

Utiliser le PlutoSDR avec GNU Radio sous linux

Le PlutoSDR est un émetteur / récepteur SDR couvrant de 325 Mhz à 3.8Ghz (de 60Mhz à 6Ghz en mettant à jour le firmware). Il est possible d »utiliser le pluto comme un simple récepteur SDR, mais il est plus intéressant de pouvoir développer des applications autour de lui, avec GNU Radio Companion par exemple. Nous allons donc voir dans cet article comment faire communiquer le PlutoSDR et GNU Radio.

Pour plus d »infos sur le PlutoSDR : www.analog.com/en/design-center/evaluation-hardware-and-software/evaluation-boards-kits/adalm-pluto.html#eb-overview

Installation de GNU Radio

La première chose à faire est d »installer GNU Radio. Sous linux, il suffit de taper une ligne de commande (voir également mon article dédié) :

sudo apt-get install gnuradio

Installer les dépendances nécesssaires

Une fois GNU Radio installé, il faut encore installer quelques dépendances, pour cela tapez les lignes de commandes suivantes :

sudo apt-get install gr-iio

sudo apt-get install libiio-utils

sudo apt-get install gqrx-sdr

Si les commandes ci-dessus ne fonctionnent pas, vous pouvez installer les dépendances manuellement :

apt-get -y install gnuradio-dev libxml2 libxml2-dev bison flex cmake git libaio-dev libboost-all-dev swig

git clone https://github.com/analogdevicesinc/libiio.git

cd libiio

cmake .

make

sudo make install

cd ..

git clone https://github.com/analogdevicesinc/libad9361-iio.git

cd libad9361-iio

cmake .

make

sudo make install

cd ..

git clone https://github.com/analogdevicesinc/gr-iio.git

cd gr-iio

git checkout upgrade-3.8

cmake -DCMAKE_INSTALL_PREFIX=/usr .

make

sudo make install

cd ..

sudo ldconfig

sudo cp -r /usr/local/lib/python2.7/dist-packages/gnuradio/iio /usr/lib/python2.7/dist-packages/gnuradio/

Un premier programme avec le Pluto

Après avoir installé le nécessaire, il ne reste plus qu »à faire un programme de test pour vérifier que tout s »est bien déroulé. Pour cela, ouvrez GNU Radio Companion en super utilisateur :

sudo gnuradio-companion

Je ne reviendrai pas sur les bases de GNU Radio comme l »insertion d »un bloc dans cet article, je vous invite donc à aller voir si besoin mon article permettant de réaliser un montage sur GNU Radio.

Ce montage ne contient pas beaucoup de blocs, il ne permettra de tester la bonne installation du pluto en affichant la chute d »eau des fréquences comprises en 88.5MHz et 91.5MHz (autrement dis une chute d »eau centrée sur 90MHz avec 3MHz de bande passante). Le montage à réaliser est le suivant :

Une fois le programme éxécuté, la chute d »eau de la fréquence s »affiche (on voit bien la station radio FM sur 90.2MHz) :

Et voilà, si la chute d"eau s"affiche c"est que votre PlutoSDR est bien installé sur votre ordinateur, il vous est maintenant possible de créer des applications autour de cet émetteur / récepteur SDR.

Suivre les satellites avec Gpredict

Pour recevoir des satellites par radio comme les satellites météo NOAA par exemple, il est indispensable de savoir quand ils seront audibles. Pour cela, il existe des solutions en ligne et des logiciels. J »utilise le logiciel Gpredict de OZ9AEC. Il est disponible gratuitement ici : http://gpredict.oz9aec.net/ et ici : https://sourceforge.net/projects/gpredict/

Une fois téléchargé, si vous êtes sous windows il suffit de décompresser l »archive et de lancer le fichier gpredict.exe. Au 1er lancement, le logiciel ressemble à ça :

Saisir son emplacement

Il est temps de le configurer. Pour commencer : l »emplacement de la station. Définir l »emplacement correct est important car c »est avec ça que seront calculés les heures de passages ainsi que les azimut et les élévations des satellites lors des passages. La fenêtre de configuration de la station se trouve dans le menu Edit puis Preferences -> General -> Ground Stations. Il y a par défaut un emplacement de saisi, cliquez sur Add new pour en ajouter un nouveau. La fenêtre suivante s »ouvre :

Dans cette fenêtre, choisissez un nom pour l »emplacement et localisez le soit en choisissant l »aéroport le plus proche dans la ligne Location soit en saisissant une latitude et une longitude.

Nouvel emplacement saisi avec les coordonnées GPS

Une fois l »emplacement validé, sélectionner le en tant qu »emplacement par défaut (la petite case à cocher), supprimez l »autre emplacement (vous pouvez le conserver si vous le sauhaitez) puis relancez Gpredict. Normalement une fois le logiciel relancé le nouvel emplacement a dû être prit en compte.

Gpredict avec le nouvel emplacement par défaut

Modifier l »interface

Une fois l »emplacement réglé, il est possible de modifier l »apparence de Gpredict. Pour cela, rendez vous dans le menu Edit -> Preferences -> Modules. Une fois sur ce menu, plusieurs choix s »offrent à vous :

Je vous laisse essayer les différentes combinaisons possible, personnellement j »utilise le choix surligné en bleu sur la capture ci-dessus, je le trouve complet. Une fois que vous avez fait votre choix, validez et relancez de nouveau Gpredict. Une fois relancé, vous devriez voir la nouvelle apparence sur le logiciel :

Mettre à jour la base de données

Pour afficher les différents satellites, il est nécessaire de mettre à jour régulièrement la base de données de Gpredict sur votre ordinateur. Pour cela, cliquez sur update TLE data from network dans le menu Edit.

Choisir les satellites à l »écran

Par défaut, Gpredict affiche quelques satellites, mais ce ne sont pas forcément ceux que vous voulez suivre. Pour choisir de nouveaux satellites, cliquez sur la flèche qui va vers le bas en haut à droite puis cliquez sur configure. Dans la fenêtre sui s »ouvre, mettez dans la colonne de droite les satellites que vous voulez voir. La colonne de gauche contient la liste de tous les satellites disponibles sur Gpredict (et que vous n »avez pas mis dans votre affichage).

Quand vous avez fini de choisir vos satellites, cliquez sur OK. Sur la carte et dans les autres modules à l »écran le changement de satellites est effectué.

Voilà vous avez maintenant les bases pour utiliser Gpredict. D"autres articles un peu plus poussés comme par exemple sur la partie liaison avec un logiciel SDR seront prochainement mis en ligne.

Les filtres « classiques » dans GNURadio

Dans un précédent article, nous avions vu comment générer un signal et le visualiser dans GNURadio Companion. Nous allons maintenant voir comment filtrer ce signal à l »aide de filtres passe-bas, passe-haut, passe-bande ou avec un réjecteur de bande.

Passe-bas, passe-haut… c »est quoi ?

J »ai cité 4 types de filtres, voilà à quoi ils correspondent :

  • Le filtre passe-bas : il laisse passer les fréquences inférieures à sa fréquence de coupure, et atténue voir supprime les fréquences supérieures
  • Le filtre passe-haut : il fonctionne comme le passe-bas, mais laisse passer les fréquences supérieures à sa fréquence de coupure
  • Le filtre passe-bande : il ne laisse passer que les fréquences comprises dans la bande de fréquence pour laquelle il est conçu, il va donc atténuer voir supprimer les fréquences inférieures et supérieures à sa bande de fréquence
  • Le réjecteur de bande (aussi appelé coupe-bande) : c »est l »opposé du passe-bande, il va bloquer les fréquences comprises dans sa bande de fréquence pour ne laisser passer que celles supérieures ou inférieures

Utiliser un passe-bas ou un passe-haut dans GNURadio

Pour insérer un filtre, il faut commencer par rechercher « filter » dans la liste des blocs disponibles. Vous devez obtenir une liste semblable à celle-ci :

Liste des blocs contenant le terme « filter »

On y retrouve notamment les 4 types de filtre cités plus haut. On va commencer par insérer un filtre passe-bas dans le montage réalisé dans le montage de visualisation du signal. Faites donc glisser le bloc « Low Pass Filter » sur le montage et câblez le montage pour que le filtre soit entre le bloc « Signal Source » et le bloc « WX GUI Scope Sink ».

Le filtre inséré dans le montage

Une fois le filtre inséré, on peut voir les flèches de son signal d »entrée et de sortie sont rouges : il nous faut en effet le paramétrer. Pour cela, comme à chaque fois pour configurer un bloc dans GNURadio, double-cliquez dessus et paramétrez le comme ci-dessous :

Fenêtre de configuration du filtre
  • ID : nom du filtre,
  • FIR Type : « format » du signal d »entrée et sortie,
  • Gain : Gain du filtre dans sa bande passante,
  • Cutoff Freq : fréquence de coupure du filtre,
  • Transition Width : largeur de la bande de fréquence avant laquelle le filtre bloque la totalité du signal.

Il est maintenant tant d’exécuter le montage pour voir le résultat !

Le signal de sortie lorsque la fréquence est de 50Hz, donc dans la bande passante du filtre
Le signal de sortie lorsque la fréquence est identique à la fréquence de coupure du filtre soit 100Hz
Le signal de sortie lorsque la fréquence est de 150Hz, donc bien au dessus de la bande passante du filtre

Le filtre passe haut fonctionne exactement de la même manière, la seule différence est qu »il faut insérer le bloc « High Pass Filter » à la place du bloc « Low Pass Filter ». Le signal de sortie avec le filtre passe-haut :

Signal d »une fréquence de 50Hz
Signal d »une fréquence de 100Hz
Signal d »une fréquence de 150Hz

Utiliser un filtre passe-bande

Pour faire un filtre passe-bande, il est possible de mettre à la suite un filtre pass-haut et un filtre passe-bas, ou tout simple utiliser le bloc « Band Pass Filter ». Il s »insère comme les 2 filtres vus précédemment :

Le montage avec un filtre passe-bande

Un filtre passe-bande se configure comme ci-dessous :

Configuration du filtre passe-bande
  • ID : nom du filtre,
  • FIR Type : « format » du signal d »entrée et sortie,
  • Gain : Gain du filtre dans sa bande passante,
  • Low Cutoff Freq : fréquence de coupure « basse » du filtre,
  • High Cutoff Freq : fréquence de coupure « haute » du filtre,
  • Transition Width : largeur de la bande de fréquence avant laquelle le filtre bloque la totalité du signal.

Une fois le filtre configuré et le programme exécuté, le signal de sortie ressemble à ça :

Signal d »une fréquence de 20Hz
Signal d »une fréquence de 75Hz
Signal d »une fréquence de 120Hz

Utiliser un filtre réjecteur de bande

Le filtre réjecteur de bande s »insère comme les filtres précédents. La configuration est également la même que celle du filtre passe-bande, simplement au lieu de laisser passer le signal entre ses 2 fréquences de coupure il va le bloquer.

Configuration du filtre réjecteur de bande

Les paramètres sont les mêmes que pour le filtre passe-bande. Une fois configuré, le signal est filtré de la manière suivante :

Signal d »une fréquence de 20Hz
Signal d »une fréquence de 75Hz
Signal d »une fréquence de 130Hz
Vous pouvez maintenant utiliser ces 4 types de filtres pour traiter votre signal.

Installation de GQRX sous Raspberry

Dans cet article nous allons voir comment installer GQRX pour pouvoir utiliser une clé SDR pour Raspberry. Il ne s »agit pas d »un tutoriel pour installer GQRX sous Linux, pour ça voir cet article.

Installer GQRX

Pour installer GQRX, saisissez les commandes suivantes


sudo apt-get install libqt5gui5 libqt5core5a libqt5network5


sudo apt-get install libqt5widgets5 libqt5svg5 libportaudio2


wget https://github.com/csete/gqrx/releases/download/v2.6/gqrx-2.6-rpi3-1.tar.xz


tar xvf gqrx-2.6-rpi3-1.tar.xz


cd gqrx-2.6-rpi3-1


./setup_gqrx.sh

En fonction du paramétrage de la session, il est possible qu »il faille lancer les commandes ci-dessus en super utilisateur, donc avec sudo.

Configurer la sortie audio

Avant de lancer GQRX, il faut configurer la sortie audio du Raspberry en fonction de si vous voulez utiliser la sortie jack ou la sortie audio HDMI. Pour cela, tapez la commande suivante :

sudo raspi-config

Avec le clavier, rendez-vous dans Advanced Options, puis sur Audio. Enfin, choisissez entre la sortie 3.5mm jack et la sortie HDMI. Aller sur Finish pour valider.

Lancement de GQRX

Si l »installation de GQRX s »est bien déroulée, vous pouvez désormais le lancer :

cd gqrx-2.6-rpi3-1

./run_gqrx.sh

Dans la fenêtre qui s »ouvre vous n »avez qu »à choisir votre clé puis à valider.

GQRX une fois lancé

Décodage DMR avec une clé SDR sous Linux

Nous allons voir comment décoder le DMR en utilisant une clé SDR sous Linux. Un article pour le décodage sous Windows est disponible ici.

La première chose à faire est d »installer GQRX. Pour cela regardez cet article.

Une fois GQRX installé, on peut s »occuper des logiciels pour le DMR.

Téléchargement de DSD+

Comme sous Windows, le logiciel utilisé pour le décodage est DSD+. Téléchargez les fichiers du logiciel et le les DLLs depuis cette page et décompressez les dans un répertoire au choix.

Mon répertoire contenant tous les fichiers

Une fois DSD+ téléchargé et les fichiers décompressés, il faut installer Wine pour pouvoir lancer les exécutables Windows sur Linux.

Installation de Wine

Pour installer Wine, tapez la commande suivante :

sudo apt-get install wine64

Cette ligne concerne les ordinateurs 64 bits, si vous êtes en 32 bits installez wine32.

Après avoir laissé travaillé l »ordinateur, vous pouvez normalement lancer DSDPlus. Pour cela, tapez la commande suivante :

wine /repertoire-de-DSD/DSDPlus.exe

Si tout se passe bien vous devriez voir s »ouvrir les fenêtres suivantes :

On retrouve les même fenêtres que sous windows

Mise en place de liaison GQRX / DSDPlus

Maintenant que DSDPlus est fonctionnel grâce à Wine, il faut créer la liaison entre Wine et DSDPlus. Pour cela, ouvrez les paramètres de Pulseaudio :

sudo nano /etc/pulse/default.pa

Dans le fichier qui s »est ouvert, tout en bas, ajoutez la ligne suivante :

load-module module-null-sink sink_name=Virtual_Sink sink_properties=device.description=Virtual_Sink

Validez les modifications et sortez du fichier, puis redémarrez l »ordinateur.

Normalement maintenant vous devriez pouvoir choisir Virtual_sink comme sortie audio de GQRX.

Les différentes entrées/sorties de GQRX

Pour faciliter le paramétrage de l »audio, installez pavucontrol :

sudo apt-get install pavucontrol

Une fois installé, lancez le avec la commande du même nom.

Pour configurer les entrées et sorties, il est nécessaire de lancer en plus du pavucontrol les logiciels GQRX et DSDPlus.

Dans la fenêtre qui s »ouvre, choisissez Lecture, puis configurez la sortie de GQRX sur Virtual_Sink et la sortie de DSDPlus sur l »Audio Interne comme ci-dessous :

Passez ensuite dans le menu Enregistrement, et configurez l »entrée de DSDPlus sur Virtual_Sink :

Place au décodage

Si vous avez tout bien paramétré, vous devriez pouvoir décoder du DMR à partir de votre clé SDR.

Décodage une fois tous les logiciels configurés

Un premier montage sur GNU Radio

Après avoir installé GNU Radio (voir ici pour Linux, ici pour Windows), il est temps de l »utiliser !

Nous allons réaliser un montage dans lequel nous allons générer un signal sinusoïdal et le visualiser.

ATTENTION : dans les dernières version de GNU Radio, les modules WX ont été supprimés, le montage tel quel ne fonctionne donc qu »avec d »anciennes versions du logiciel.

Le générateur de signal

La première étape est d »insérer le générateur de signal. Vous le trouverez en recherchant Signal Source dans les composants. Faites un double clic pour l »insérer.

Insertion du générateur de signal

La configuration du générateur est assez simple et se fait à l »aide de la fenêtre suivante (elle s »ouvre grâce à un double clic sur le composant) :

Pour régler le signal de sortie, voilà les paramètres à modifier :

La fenêtre de configuration du générateur de signal
  • Waveform : permet de changer la forme du signal (cosinus, sinus, constant, carré, triangulaire…),
  • Frequency : fréquence du signal (50e6 pour 50 Mhz, 1e3 pour 1 Khz…),
  • Amplitude : amplitude du signal,
  • Offset : décalage du signal.
L »oscilloscope

Une fois le générateur intégré, il faut insérer l »oscilloscope qui permettra la visualisation du signal. Pour cela, il faut rechercher WX GUI Scope Sink. Faites ensuite un glisser-déposer pour l »insérer. En double cliquant sur le module vous obtiendrez une fenêtre de configuration à modifier avec les paramètres suivants :

La fenêtre de configuration de l »oscilloscope
Limiter la vitesse d »execution

Avant de relier les bloc entre eux, il est nécessaire d »ajouter un cloc qui va limiter la vitesse d »exécution du montage. En effet, si on ne la limite pas, la vitesse d »exécution sera la vitesse maximale de votre processeur, ce qui peut faire planter votre ordinateur.

Ce bloc se trouve en recherchant Throttle. Paramétrez le ensuite en Type Float.

La version finale du montage

Une fois tous les blocs ajoutés, il est temps de les câbler. Pour cela, il suffit de cliquer sur la sortie d »un bloc puis sur l »entrée d »un autre pour les relier. Relier les différents bloc de notre montage comme ci-dessous :

Le montage câblé

Avant d »exécuter il reste une dernière manipulation à effectuer, double cliquez sur le bloc Options et dans la case Generate Options sélectionnez WX GUI.

Vous pouvez ensuite exécuter le montage. Pour cela, cliquez sur le bouton d »exécution dans la barre d »outil :

Le bouton d »exécution

Vous devriez voir s »ouvrir la fenêtre de l »oscilloscope.

La fenêtre de visualisation du signal

Vous pouvez modifier les paramètre d »affichage grâce aux différents paramètres situés dans la colonne à droite du graph :

  • Secs/Div : réglage de l »axe des abscisses,
  • Counts/div : réglage de l »axe des ordonnées,
  • Y offset : décalage de la courbe sur la courbe des ordonnées,
  • T offset : décalage de la courbe sur l »axe des abscisses.
Ajout d »un curseur pour changer facilement la fréquence

Dans le montage actuel, pour modifier la fréquence du signal, il faut modifier les paramètres du bloc Signal Source. Pour simplifier le changement de fréquence, nous allons ajouter un curseur sur la fenêtre de visualisation du signal.

La première étape consiste à ajouter un bloc WX GUI Slider. Paramétrez ensuite le bloc comme ci-dessous :

Configuration du curseur
  • ID : nom du curseur, son identifiant,
  • Default Value : valeur par défaut du curseur, c »est la valeur qui sera prise à l »exécution, avant que l »utilisateur ne la modifie,
  • Minimum : valeur minimum que peut prendre le curseur,
  • Maximum : valeur maximum que peut prendre le curseur,
  • Num Steps : nombre de pas du curseur,
  • Style : choix du sens du curseur (horizontal ou vertical).

Le curseur est maintenant créé, il faut donc dire au générateur de signal qu »il doit utiliser la valeur du curseur pour définir la fréquence. Pour cela, modifiez les paramètres du bloc Signal Source, et à la case Frequency mettez l »identifiant du curseur (dans mon cas ça sera frequence). Si vous exécutez de nouveau le montage, vous devriez voir apparaitre dans la fenêtre de visualisation du signal un curseur, et si vous le déplacez la fréquence doit varier.

Visualisation du signal avec le curseur de la fréquence réglé à 165 Hz