Uitgave van GNU Radio 3.10.0

Na een jaar van ontwikkeling is er een nieuwe belangrijke release van het gratis digitale signaalverwerkingsplatform GNU Radio 3.10 ontstaan. Het platform bevat een reeks programma's en bibliotheken waarmee u willekeurige radiosystemen, modulatieschema's en de vorm van ontvangen en verzonden signalen kunt creëren, waarin de software is gespecificeerd, en de eenvoudigste hardwareapparaten worden gebruikt om signalen op te vangen en te genereren. Het project wordt gedistribueerd onder de GPLv3-licentie. De code voor de meeste componenten van GNU Radio is geschreven in Python; delen die cruciaal zijn voor de prestaties en latentie zijn geschreven in C++, waardoor het pakket kan worden gebruikt bij het in realtime oplossen van problemen.

In combinatie met universeel programmeerbare transceivers die niet gebonden zijn aan de frequentieband en het type signaalmodulatie, kan het platform worden gebruikt om apparaten te creëren zoals basisstations voor GSM-netwerken, apparaten voor het op afstand uitlezen van RFID-tags (elektronische ID's en passen, slimme kaarten), GPS-ontvangers, WiFi, FM-radio-ontvangers en -zenders, tv-decoders, passieve radars, spectrumanalysatoren, enz. Naast USRP kan het pakket andere hardwarecomponenten gebruiken voor de in- en uitvoer van signalen, bijvoorbeeld stuurprogramma's voor geluidskaarten, tv-tuners, BladeRF, Myriad-RF, HackRF, UmTRX, Softrock, Comedi, Funcube, FMCOMMS, USRP en S-apparaten zijn beschikbaar -Mini.

De structuur omvat ook een verzameling filters, kanaalcodecs, synchronisatiemodules, demodulatoren, equalizers, spraakcodecs, decoders en andere elementen die nodig zijn voor het creëren van radiosystemen. Deze elementen kunnen worden gebruikt als bouwstenen om een ​​kant-en-klaar systeem samen te stellen, waardoor u, in combinatie met de mogelijkheid om gegevensstromen tussen blokken te bepalen, zelfs zonder programmeervaardigheden radiosystemen kunt ontwerpen.

Grote veranderingen:

  • Er is een nieuwe module gr-pdu toegevoegd, die tools bevat voor het manipuleren van objecten met het PDU-type (Protocol Data Unit), gebruikt voor gegevensoverdracht tussen GNU-radioblokken. Van de gr-blocks-module zijn alle PDU-blokken verplaatst naar de gr-network- en gr-pdu-modules, en in plaats van gr-blocks is er een laag overgelaten om achterwaartse compatibiliteit te garanderen. Vector-PDU-typen zijn nu beschikbaar in de gr::types-naamruimte, en functies voor PDU-manipulatie zijn nu beschikbaar in de gr::pdu-naamruimte.
  • Een nieuwe module gr-iio toegevoegd, die een input/output-framework biedt voor het organiseren van data-uitwisseling tussen GNU Radio en industriële apparaten gebaseerd op het IIO (Industrial I/O) subsysteem, zoals PlutoSDR, AD-FMCOMMS2-EBZ, AD-FMCOMMS3 -EBZ, AD-FMCOMMS4-EBZ, ARRADIO en AD-FMCOMMS5-EBZ.
  • Er is experimentele ondersteuning voor de Custom Buffer-klasse voorgesteld, die de gegevensoverdracht tussen GNU Radio-blokken en hardwareversnellers op basis van GPU, FPGA en DSP vereenvoudigt. Door custom_buffer te gebruiken, kun je voorkomen dat je speciale blokken schrijft om versnelling aan de GPU-kant mogelijk te maken en wordt het mogelijk om gegevens direct van de GNU Radio-ringbuffer naar GPU-geheugen te verplaatsen, CUDA-kernels te starten en de gegevens met het resultaat terug te sturen naar de GNU Radio-buffers.
  • De loginfrastructuur is overgeschakeld naar het gebruik van de spdlog-bibliotheek, waardoor de bruikbaarheid van het werken met logs is verbeterd, oproepen naar iostream en cstdio zijn geëlimineerd, ondersteuning is geboden voor libfmt-expressies voor tekenreeksopmaak en de programma-interface is gemoderniseerd. De eerder gebruikte Log4CPP-bibliotheek is als afhankelijkheid verwijderd.
  • De overstap naar gebruik bij de ontwikkeling van de C++17 standaard is gemaakt. De boost::filesystem-bibliotheek is vervangen door std::filesystem.
  • Verhoogde vereisten voor compilers (GCC 9.3, Clang 11, MSVC 1916) en afhankelijkheden (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).
  • Python-bindingen toegevoegd voor RFNoC-blokken.
  • Ondersteuning voor Qt 6.2 is toegevoegd aan de blokken voor het bouwen van de grafische interface gr-qtgui. “--output” optie voor hiërarchische blokken toegevoegd aan de GRC (GNU Radio Companion) GUI.

Bron: opennet.ru

Voeg een reactie