Avec les radios logiciel (SDR = Software Design Radio), il est intĂ©ressant de dĂ©velopper son propre logiciel de rĂ©ception radio basĂ© sur ces nouvelles technologies. Ici nous allons utilisĂ© le logiciel Open Source GNU Radio pour crĂ©er un rĂ©cepteur BLU ( SSB) très simple qui permettra de comprendre quelques bases. Pour la partie matĂ©riel (Hardware) j’utilise un HackRF afin de couvrir les bandes dĂ©camĂ©triques. Pour info, on trouve le hackRF avec son boitier autour de 100€ chez Aliexpress en chine. Pour le traitement, j’utilise un Orange Pi PC 2 H5 QUAD CORE 64 Bit achetĂ© en chine sur Ebay.
Pour l’installation du driver du HackRF et de GNU Radio veuillez vous rĂ©fĂ©rer Ă l’article suivant.
Pour l’Ă©tude d’un rĂ©cepteur plus complet voir l’article rĂ©cepteur BLU distant.
Chaine de traitement
La chaĂ®ne de traitement proposĂ©e ici est la plus simple possible. Elle n’est pas optimum en performance mais permet de comprendre et maĂ®triser GNU Radio.

Ouvrir l’éditeur graphique GNUradio-companion qui permet d’implanter facilement des blocs de traitement du signal. Initialiser un nouveau projet (file, new) de type graphique QTGUI.
Echantillonnage
ImmĂ©diatement dans le bloc « ID:samp_rate » (bouton droit) changer la frĂ©quence Ă©chantillonnage Ă 2MHz. Mettez 2e6 pour 2*10 puissance 6. C’est elle qui dĂ©finira l’échantillonnage du HackRF, il est recommandĂ© de ne pas aller en dessous.
Fréquence réception HackRF
Créer un bloc curseur (QT GUI Range), que vous trouvez dans le menu de droite de GNU Radio, définissant la fréquence centrale de réception du HackRF en MHz par pas de 100kHz. On balaye de 7 à 15MHz.

Le HackRF se connecte sur un port USB de l’Orange PI et sera pilotĂ© par le logiciel gr-osmosdr. Mettez un bloc « osmocom source » que vous trouvez dans le menu de droite de GNU Radio.

Pour l’échantillonnage, on se réfère à la variable samp_rate, pour la fréquence à la variable FrequenceMHz définie plus haut.
Il y a 3 gains Ă dĂ©finir pour le HackRF. C’est un point dĂ©licat. On pourrait mettre 3 curseurs pour rechercher l’optimum mais dans un souci de simplification, j’ai mis les valeurs fixes 0, 30 et 30dB.
Ce module est utilisable avec différents SDR comme les RTL-SDR etc. Voir le champ documentation pour identifier les variables à définir et celles non nécessaires.
Filtrage
Imaginons que l’on cherche Ă Ă©couter une station autour de 7180kHz. La frĂ©quence centrale du HackRF sera mise sur 7100kHz. Ainsi en sortie nous aurons sur les signaux I et Q un spectre de 2 MHz de large centrĂ© autour de 7.1MHz.

Pour extraire le signal rouge qui nous intéresse, on utilise un filtre qui translate le spectre de 80kHz autour de 0 et filtre la bande sur +- 3kHz.


CrĂ©er une variable ‘filtrage_3kHz’ qui va contenir la fonction de filtrage de 3kHz avec une bande de transition de 1000Hz. Ce n’est pas très raide mais consomme moins de puissance de calcul.
Créer un deuxième bloc curseur (QT GUI Range), définissant la fréquence fine de décalage (ID:Zoom_frequence) de 0 à 100kHz par pas de 100Hz.

CrĂ©er un bloc Xlating_FIR_Filter pour assurer un dĂ©calage fin suivant le bloc curseur ‘Zoom_frequence’. Pour la sortie (Taps) definissez le filtre de 3kHz avec la ‘variable filtrage_3kHz’ et la frĂ©quence avec la variable ‘Zoom_frequence’.
Comme la bande de frĂ©quence de sortie est limitĂ©e Ă 3kHz on rĂ©duira la frĂ©quence d’Ă©chantillonnage Ă 16kHz pour s’adapter Ă la carte audio de l’Orange PI. Pour cela on positionne le facteur de dĂ©cimation Ă 125.(16kHz=2MHz/125).

Sorties FFT et Audio

En sortie de ce filtre, vu que l’on a perdu beaucoup d’énergie, on positionne un bloc d’amplification par 1000. Pour visualiser les signaux on connecte un bloc FFT qui permet de voir le spectre et contrĂ´ler que l’on ne dĂ©passe pas les 0dB de saturation audio. Ce spectre est centrĂ© sur la frequence du HackRF + la frĂ©quence fine de dĂ©calage. Tous les signaux sont traitĂ©s sous forme de nombres complexes pour contrĂ´ler les amplitudes et phases. A prĂ©sent pour l’audio on ne prend que la partie rĂ©el du signal complexe en mettant un bloc ‘Complex to Real’. En sortie on positionne un bloc ‘Audio Sink’ Ă 16kHz. Cette frĂ©quence dĂ©pend de la carte audio. Parfois il faut prendre du 32, 40.1 ou 48kHz.
Pour écouter une station en LSB ou USB, on se positionne en fréquence au dessus ou en dessous.

On voit que ce traitement n’est pas optimum car on Ă©coute le bruit dans 2 bandes de 3kHz autour de la frĂ©quence centrale. Mais cela offre une chaine de traitement la plus simple Ă comprendre pour dĂ©buter avec GNU Radio. De mĂŞme il faudrait rajouter une fonction de contrĂ´le du gain (AGC).
Vous pouvez télécharger le fichier ( .grc) source de ce récepteur SSB de GNURadio-companion ici.
Si vous souhaitez travailler en VHF ou UHF, vous modifiez le bloc de frĂ©quence de pilotage du HackRF. Il est possible Ă©galement d’utiliser une clĂ© RTL-SDR pour Ă©couter les bandes hautes.
Bravo
idéal pour un débutant (comme moi) qui utilise hackRF one pour la première fois.
73
De ON4YE