Introduction

Objectif et public cible

Tout d’abord, quelques termes importants:

Software-Defined Radio (SDR):

ou Radio Logicielle en bon français. C’est une radio qui utilise un logiciel pour effectuer des tĂąches de traitement du signal qui Ă©taient traditionnellement effectuĂ©es par des composants Ă©lĂ©ctroniques.

Digital Signal Processing (DSP):

ou traitements numérique du signal (RF dans notre cas) en bon français.

Ce manuel est une introduction pratique aux domaines du DSP, de la radio logicielle et des communications sans fil. Il est conçu pour quelqu’un qui:

  1. Est intéressé à utiliser les SDR pour faire des trucs cool

  2. a une bonne connaissance de Python

  3. est relativement nouveau dans le domaine du DSP, des communications sans fil et de la radio logicielle.

  4. est un apprenant plutÎt visuel, préférant les animations aux équations.

  5. comprends mieux les équations aprÚs avoir appris les concepts de base.

  6. cherche des explications concises, et non un manuel de 1000 pages.

Il s’adresse par exemple Ă  un Ă©tudiant en informatique intĂ©ressĂ© par un emploi dans le domaine des communications sans fil aprĂšs l’obtention de son diplĂŽme. Ou toute autre personne dĂ©sireuse d’en savoir plus sur la DSP et ayant une expĂ©rience en programmation. En tant que tel, il couvre la thĂ©orie nĂ©cessaire pour comprendre les techniques DSP sans les mathĂ©matiques intenses qui sont gĂ©nĂ©ralement incluses dans les cours universitaires. Au lieu de vous enterrer sous de nombreuses Ă©quations, une abondance d’images et d’animations sont utilisĂ©es pour aider Ă  transmettre les concepts, comme l’animation du plan complexe de la sĂ©rie de Fourier ci-dessous. Je pense que les Ă©quations sont mieux comprises aprĂšs l’apprentissage des concepts par des images et des exercices pratiques. L’utilisation intensive d’animations est la raison pour laquelle PySDR n’aura jamais de version papier vendue sur Amazon.

_images/fft_logo_wide.gif

Ce manuel a pour but d’introduire les concepts rapidement et en douceur, permettant au lecteur de rĂ©aliser des DSP et d’utiliser les SDRs intelligemment. Il n’a pas pour but d’ĂȘtre un manuel de rĂ©fĂ©rence pour tous les sujets DSP/SDR ; il existe dĂ©jĂ  beaucoup d’excellents manuels en anglais, tels que Analog Device’s SDR textbook”. et dspguide.com. Vous pouvez toujours utiliser Google pour rappeler les identitĂ©s trigonomĂ©triques ou la limite de Shannon. ConsidĂ©rez ce manuel comme une porte d’entrĂ©e dans le monde de la DSP et de la SDR: c’est un engagement plus lĂ©ger et moins coĂ»teux en temps et en argent, comparĂ© aux cours et manuels plus traditionnels.

Pour couvrir la thĂ©orie fondamentale du DSP, un semestre entier de « Signaux et systĂšmes », cours typique d’ingĂ©nierie, est condensĂ© en quelques chapitres. Une fois les fondements du DSP couverts, nous nous lançons dans les SDR, bien que les concepts de DSP et de communications sans fil continuent d’ĂȘtre abordĂ©s tout au long du manuel.

Les exemples de code sont fournis en Python. Ils utilisent NumPy, qui est la bibliothĂšque standard de Python pour les tableaux et les mathĂ©matiques de haut niveau. Les exemples s’appuient Ă©galement sur Matplotlib, qui est une bibliothĂšque de traçage Python permettant de visualiser facilement des signaux, des tableaux et des nombres complexes. Notez que si Python est plus « lent » que C++ en gĂ©nĂ©ral, la plupart des fonctions mathĂ©matiques de Python/NumPy sont implĂ©mentĂ©es en C/C++ et sont fortement optimisĂ©es. De mĂȘme, l’API SDR que nous utilisons est simplement un ensemble de liaisons Python pour des fonctions/classes C/C++. Ceux qui ont peu d’expĂ©rience de Python mais de solides bases en MATLAB, Ruby ou Perl se dĂ©brouilleront sans problĂšme aprĂšs s’ĂȘtre familiarisĂ©s avec la syntaxe de Python.

Contribution

Si vous parvenez Ă  lire une partie de ce manuel et que vous m’envoyez un courriel Ă  l’adresse marc@pysdr.org avec des questions/commentaires/suggestions, alors fĂ©licitations, vous aurez contribuĂ© Ă  ce manuel!

Mais Ă  une plus grande Ă©chelle, vous pouvez contribuer Ă  ce manuel de la mĂȘme maniĂšre que n’importe quel projet de logiciel open source - Ă  travers Git. Ce manuel prend la forme d’un site Web, mais le matĂ©riel source Ă  partir duquel il est gĂ©nĂ©rĂ© vit sur la page GitHub du manuel https://github.com/777arc/PySDR. N’hĂ©sitez pas Ă  soumettre un problĂšme ou mĂȘme une demande de transfert (Pull Request, PR) avec des corrections ou des amĂ©liorations. Ceux qui soumettent des commentaires/rĂ©parations de valeur seront ajoutĂ©s de façon permanente Ă  la section des remerciements ci-dessous. Vous n’ĂȘtes pas douĂ© pour Git mais vous avez des changements Ă  suggĂ©rer? N’hĂ©sitez pas Ă  m’envoyer un courriel Ă  marc@pysdr.org.

Le site Web sur lequel ce manuel est hĂ©bergĂ© est exempt de publicitĂ©, car nous dĂ©testons tous les publicitĂ©s. Je ne fournis pas non plus d’adresse PayPal ou Bitcoin oĂč j’accepte les dons. Il n’y a littĂ©ralement aucun moyen pour moi d’ĂȘtre payĂ© pour ce manuel. Au lieu de cela, je suggĂšre simplement de partager ce manuel avec des collĂšgues, des Ă©tudiants et d’autres apprenants tout au long de la vie qui pourraient ĂȘtre intĂ©ressĂ©s par ce matĂ©riel.

Remerciements

Nous remercions tous ceux qui ont lu une partie de ce manuel et nous ont fait part de leurs commentaires, et tout particuliĂšrement: