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:
Est intéressé à utiliser les SDR pour faire des trucs cool
a une bonne connaissance de Python
est relativement nouveau dans le domaine du DSP, des communications sans fil et de la radio logicielle.
est un apprenant plutÎt visuel, préférant les animations aux équations.
comprends mieux les équations aprÚs avoir appris les concepts de base.
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.
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:
Marc Lichtman
Matthew Hannon
James Hayek
Deidre Stuffer