Un écosystème Julia pour prototyper efficacement des radios logicielles
Résumé
SDRs are immensely popular as they allow to have a flexible approach for sounding, monitoring or processing radio signals through the use of generic analog components and lots of digital signal processing. As, in this paradigm, most of the processing are done at software level (i.e. on a CPU), an efficient software methodology has to be envisioned. Right now, most of the existing methods focus either on low-level languages (e.g. C or C++) for good runtime performance at the cost of easy prototyping or on high-level languages (such as Python) for flexibility at the price of runtime performance. In this article, we propose a new methodology based on Julia language that addresses this two-language problem and paves the way for efficient prototyping without giving up runtime performance. To prove the benefits of the proposed approach, a performance benchmark with several optimisation levels compares the Julia approach with C++ and Python ones.
Ce papier présente une nouvelle approche de prototypage rapide et efficace à partir du langage Julia. Les radios logicielles sont des architectures radio-fréquences (RF) qui permettent de capter un signal électro-magnétique et de le traiter numériquement avec des processeurs de calcul. Du fait leur flexibilité RF et numérique, les radios logicielles sont des outils précieux largement déployés dans des contextes très divers. La majorité de la chaîne de traitement se faisant via un logiciel, il convient de choisir un langage de programmation qui garantisse cette flexibilité. Les stratégies classiques s'appuient sur des langages de description bas-niveau (e.g. C/C++), pour garantir les performances d'exécution au détriment de la simplicité de conception, ou des approches haut-niveau (e.g. Python) pour offrir une grande capacité d'abstraction au détriment des performances. Dans cet article, nous introduisons une nouvelle méthodologie basée sur le langage Julia qui adresse ce problème du "double langage". Nous proposons un ensemble d'outils pour piloter des radios logicielles et nous démontrons par l'intermédiaire d'un benchmark que les performances obtenues avec l'approche Julia sont très intéressantes.
Origine | Fichiers produits par l'(les) auteur(s) |
---|