Sortie de GNU Radio 3.10.0

Après un an de développement, une nouvelle version importante de la plate-forme gratuite de traitement du signal numérique GNU Radio 3.10 a été formée. La plate-forme comprend un ensemble de programmes et de bibliothèques qui vous permettent de créer des systèmes radio arbitraires, des schémas de modulation et la forme des signaux reçus et envoyés dans lesquels sont définis par programme, et les périphériques matériels les plus simples sont utilisés pour capturer et générer des signaux. Le projet est distribué sous licence GPLv3. Le code de la plupart des composants GNU Radio est écrit en Python, les parties critiques pour les performances et la latence sont écrites en C++, ce qui permet d'utiliser le package lors de la résolution de problèmes en temps réel.

En combinaison avec des émetteurs-récepteurs programmables universels qui ne sont pas liés à la bande de fréquence et au type de modulation du signal, la plate-forme peut être utilisée pour créer des dispositifs tels que des stations de base pour les réseaux GSM, des dispositifs de lecture à distance d'étiquettes RFID (certificats et laissez-passer électroniques, cartes à puce ) , récepteurs GPS, WiFi, récepteurs et émetteurs radio FM, décodeurs TV, radars passifs, analyseurs de spectre, etc. En plus de l'USRP, le package peut utiliser d'autres composants matériels pour l'entrée et la sortie du signal, par exemple, des pilotes sont disponibles pour les cartes son, les tuners TV, les appareils BladeRF, Myriad-RF, HackRF, UmTRX, Softrock, Comedi, Funcube, FMCOMMS, USRP et S-Mini.

La structure comprend également une collection de filtres, de codecs de canal, de modules de synchronisation, de démodulateurs, d'égaliseurs, de codecs vocaux, de décodeurs et d'autres éléments nécessaires pour créer des systèmes radio. Ces éléments peuvent être utilisés comme blocs de construction pour le système fini, ce qui, combiné à la capacité de déterminer les flux de données entre les blocs, vous permet de concevoir des systèmes radio même sans compétences en programmation.

Les principaux changements:

  • Un nouveau module gr-pdu a été ajouté, qui apporte des outils de manipulation d'objets de type PDU (Protocol Data Unit) utilisés pour les données transférées entre les blocs GNU Radio. Depuis le module gr-blocks, toutes les PDU ont été déplacées vers les modules gr-network et gr-pdu, et une couche a été laissée à la place des gr-blocks pour assurer la rétrocompatibilité. Les types de PDU vectoriels sont désormais disponibles dans l'espace de noms gr::types et les fonctions de manipulation de PDU dans l'espace de noms gr::pdu.
  • Un nouveau module gr-iio a été ajouté qui fournit un cadre d'E / S pour organiser l'échange de données entre GNU Radio et les appareils industriels basés sur le sous-système IIO (Industrial I / O), tels que PlutoSDR, AD-FMCOMMS2-EBZ, AD- FMCOMMS3-EBZ, AD-FMCOMMS4-EBZ, ARRADIO et AD-FMCOMMS5-EBZ.
  • Un support expérimental pour la classe Custom Buffer a été proposé, ce qui simplifie le transfert de données entre les blocs GNU Radio et les accélérateurs matériels basés sur GPU, FPGA et DSP. L'utilisation de custom_buffer évite d'écrire des blocs spéciaux pour activer l'accélération côté GPU et permet de déplacer directement les données du tampon circulaire GNU Radio vers la mémoire GPU, d'exécuter les noyaux CUDA et de renvoyer les données avec le résultat vers les tampons GNU Radio.
  • L'infrastructure de journalisation a été transférée à l'utilisation de la bibliothèque spdlog, ce qui a permis d'améliorer la commodité de l'utilisation des journaux, de supprimer les appels à iostream et cstdio, de prendre en charge les expressions libfmt pour le formatage des chaînes et de moderniser l'interface de programmation. La bibliothèque Log4CPP précédemment utilisée a été supprimée des dépendances.
  • La transition à utiliser dans le développement de la norme C++ 17 a été effectuée. La bibliothèque boost::filesystem a été remplacée par std::filesystem.
  • Exigences accrues pour les compilateurs (GCC 9.3, Clang 11, MSVC 1916) et les dépendances (Python 3.6.5, numpy 1.17.4, VOLK 2.4.1, CMake 3.16.3, Boost 1.69, Mako 1.1.0, PyBind11 2.4.3, pygccxml 2.0.0).
  • Ajout de liaisons Python pour les blocs RFNoC.
  • La prise en charge de Qt 6.2 a été ajoutée aux blocs pour la construction de l'interface graphique gr-qtgui. Ajout de l'option "--output" aux blocs hiérarchiques dans l'interface graphique GRC (GNU Radio Companion).

Source: opennet.ru

Ajouter un commentaire