Guide du SDR et du DSP avec Python (PySDR)
(pysdr.org)- La radio logicielle (SDR) et le traitement numérique du signal (DSP) sont présentés dans un manuel en ligne conçu pour un apprentissage pratique avec Python
- Inclut les principes du SDR, qui traite les signaux RF par logiciel plutôt que par matériel, ainsi que des exemples de visualisation et d’analyse de signaux avec NumPy·Matplotlib
- Conçu pour permettre une compréhension intuitive des concepts grâce à des animations et supports visuels plutôt qu’à des formules mathématiques
- Structuré pour rester accessible même à des apprenants ayant une expérience en programmation sans formation en génie électrique
- Projet open source, auquel il est possible de contribuer à l’amélioration du manuel via des contributions GitHub et le soutien Patreon
1. Objectif et lectorat visé
- Le SDR (Software-Defined Radio) est un concept consistant à effectuer par logiciel le traitement RF traditionnellement assuré par du matériel
- Il peut s’exécuter sur un ordinateur classique (CPU), un FPGA, un GPU, etc., et prend en charge le traitement hors ligne de signaux en temps réel ou enregistrés
- Il existe aussi sous forme d’appareils capables de recevoir et d’émettre des signaux RF via une antenne
- Le DSP (Digital Signal Processing) est la technique de traitement des signaux en mode numérique ; dans ce manuel, l’accent est mis sur les signaux RF
- Le manuel s’adresse notamment aux profils suivants
- Les personnes souhaitant réaliser des projets expérimentaux avec le SDR
- Celles qui sont à l’aise avec Python mais débutantes en DSP et en communications sans fil
- Les apprenants qui préfèrent les supports visuels aux formules
- Les personnes qui préfèrent des explications concises et un apprentissage pratique plutôt qu’un long manuel théorique
- Il convient aussi à des étudiants en informatique ayant une expérience en programmation, même sans spécialisation en génie électrique
- Les concepts clés, comme les séries de Fourier, sont expliqués à l’aide d’images et d’animations plutôt qu’au moyen de mathématiques complexes
- C’est pour cette raison que PySDR n’est pas vendu sous forme imprimée
2. Structure du manuel et approche d’apprentissage
- Les bases théoriques du DSP condensent en quelques chapitres ce qui correspond généralement à un semestre de « Signals and Systems » en génie électrique
- Le contenu s’élargit ensuite à des sujets liés au SDR, tandis que les notions de DSP et de communications sans fil réapparaissent tout au long du manuel
- Les exemples de code Python utilisent NumPy et Matplotlib
- NumPy est la bibliothèque standard pour les tableaux et les opérations mathématiques, et la plupart de ses calculs sont optimisés en C/C++
- Matplotlib est un outil de tracé pour visualiser les signaux, les tableaux et les nombres complexes
- Même si Python est plus lent que C++, ses opérations internes étant optimisées, il offre des performances suffisantes pour la pratique
- Les personnes ayant une expérience de MATLAB, Ruby ou Perl peuvent aussi l’utiliser facilement une fois familiarisées avec la syntaxe Python
3. Comment contribuer
- Il est recommandé de partager ce que vous avez appris avec PySDR avec des étudiants, collègues et autres apprenants
- Un soutien sur Patreon permet d’afficher son nom en bas des pages du manuel
- En lisant le manuel, vous pouvez envoyer questions, avis et propositions de correction par e-mail, ce qui vous fera automatiquement reconnaître comme contributeur
- Vous pouvez aussi proposer directement des modifications (Pull Request) via le dépôt GitHub
- Même sans être à l’aise avec Git, il est possible d’envoyer des suggestions par e-mail
4. Remerciements
- Des remerciements sont adressés aux lecteurs et aux contributeurs aux traductions ayant fourni des retours sur le manuel
- Les participants aux traductions française, néerlandaise, ukrainienne, chinoise et espagnole sont mentionnés
- La liste des soutiens Patreon et des sponsors institutionnels, dont Analog Devices, Inc., est également incluse
- PySDR est distribué sous licence CC BY-NC-SA 4.0
1 commentaires
Commentaires sur Hacker News
Je pense que c’est globalement une bonne ressource, mais c’est dommage que certains détails restent assez vagues
Par exemple, il n’explique pas comment choisir les paramètres de boucle pour obtenir un verrouillage stable lorsqu’on connaît la longueur du préambule et l’offset de fréquence maximal
Cela aurait été bien mieux s’il avait donné ce type de pistes
Cela aurait été mieux de montrer aussi que cela dépend du taux d’échantillonnage et de la durée
Bien sûr, j’admets aussi que les trains d’ondes sinusoïdales parfaits qu’on voit en cours de systèmes linéaires ne sont pas très réalistes
Aujourd’hui, tout le monde a en quelque sorte un assistant personnel de niveau master, donc l’important est d’apprendre à poser les bonnes questions
C’est notamment une très bonne introduction pour les nouveaux membres de l’équipe qui sont à l’aise avec le code mais pas encore avec le DSP
En plus, le matériel couvert dans le livre est peu coûteux, donc c’est facile d’accès. J’utilise actuellement un RTL-SDR de Nooelec, et pour l’apprentissage de base, environ 50 euros suffisent
Il y a bien du bruit ou des signaux parasites selon la bande de fréquence, mais un utilisateur expérimenté gère généralement cela sans difficulté
Plus on découvre le monde de la radio, plus le RTL-SDR ouvre de nouvelles possibilités, et plus tard on finit même par écrire soi-même des logiciels qui traitent directement les échantillons I/Q
L’écoute radio me manquait, alors j’ai décidé de m’y remettre et j’ai finalement commandé un Tecsun PL-880
Si c’est pour écouter sur ordinateur, le streaming me suffit, mais si plus tard je trouve le Tecsun limité, je pense approfondir davantage le SDR
Je n’ai pas envie d’empiler plusieurs radios ni d’avoir un gros équipement de bureau