Udgivelse af GNU Radio 3.10.0

Efter et års udvikling er en ny betydelig udgivelse af den gratis digitale signalbehandlingsplatform GNU Radio 3.10 blevet dannet. Platformen inkluderer et sæt programmer og biblioteker, der giver dig mulighed for at skabe vilkårlige radiosystemer, moduleringsskemaer og formen for modtagne og sendte signaler, hvori indstilles programmatisk, og de enkleste hardwareenheder bruges til at fange og generere signaler. Projektet distribueres under GPLv3-licensen. Koden til de fleste af GNU Radio-komponenterne er skrevet i Python, de dele, der er kritiske for ydeevne og latency, er skrevet i C++, hvilket gør det muligt at bruge pakken til at løse problemer i realtid.

I kombination med universelle programmerbare transceivere, der ikke er bundet til frekvensbåndet og typen af ​​signalmodulation, kan platformen bruges til at skabe enheder såsom basestationer til GSM-netværk, enheder til fjernaflæsning af RFID-tags (elektroniske certifikater og pas, smart cards ), GPS-modtagere, WiFi, FM-radiomodtagere og -sendere, TV-dekodere, passive radarer, spektrumanalysatorer mv. Ud over USRP kan pakken bruge andre hardwarekomponenter til signalinput og -output, for eksempel er drivere tilgængelige til lydkort, tv-tunere, BladeRF-enheder, Myriad-RF, HackRF, UmTRX, Softrock, Comedi, Funcube, FMCOMMS, USRP og S -Mini.

Sættet indeholder også en samling af filtre, kanalcodecs, synkroniseringsmoduler, demodulatorer, equalizere, stemmecodecs, dekodere og andre elementer, der er nødvendige for at skabe radiosystemer. Disse elementer kan bruges som byggeklodser til det færdige system, som kombineret med evnen til at bestemme datastrømme mellem blokke giver dig mulighed for at designe radiosystemer selv uden programmeringsfærdigheder.

Vigtigste ændringer:

  • Et nyt gr-pdu modul er blevet tilføjet, som bringer værktøjer til at manipulere objekter med PDU (Protocol Data Unit) typen, der bruges til data overført mellem GNU Radio blokke. Fra gr-blocks-modulet er alle PDU'er blevet flyttet til gr-network og gr-pdu-modulerne, og der er efterladt et lag i stedet for gr-blocks for at sikre bagudkompatibilitet. Vektor-PDU-typer er nu tilgængelige i gr::types-navneområdet, og PDU-manipulationsfunktioner i gr::pdu-navnerummet.
  • Et nyt gr-iio-modul er blevet tilføjet, der giver en I/O-ramme til at organisere dataudveksling mellem GNU Radio og industrielle enheder baseret på IIO (Industrial I/O) undersystemet, såsom PlutoSDR, AD-FMCOMMS2-EBZ, AD- FMCOMMS3-EBZ, AD -FMCOMMS4-EBZ, ARRADIO og AD-FMCOMMS5-EBZ.
  • Eksperimentel understøttelse af Custom Buffer-klassen er blevet foreslået, som forenkler dataoverførsel mellem GNU Radio-blokke og hardwareacceleratorer baseret på GPU, FPGA og DSP. Brug af custom_buffer undgår at skrive specielle blokke for at aktivere acceleration på GPU-siden og gør det muligt direkte at flytte data fra GNU Radio-ringbufferen til GPU-hukommelsen, køre CUDA-kerner og returnere data med resultatet til GNU Radio-buffere.
  • Logningsinfrastrukturen blev overført til brugen af ​​spdlog-biblioteket, hvilket gjorde det muligt at forbedre bekvemmeligheden ved at arbejde med logs, slippe af med opkald til iostream og cstdio, give support til libfmt-udtryk til strengformatering og modernisere programmeringsgrænsefladen. Det tidligere brugte Log4CPP-bibliotek er blevet fjernet fra afhængigheder.
  • Overgangen til brug i udviklingen af ​​C++ 17-standarden er foretaget. Boost::filesystem-biblioteket er blevet erstattet med std::filesystem.
  • Øgede krav til compilere (GCC 9.3, Clang 11, MSVC 1916) og afhængigheder (Python 3.6.5, numpy 1.17.4, VOLK 2.4.1, CMake 3.16.3, Boost 1.69, Mako 1.1.0, Py.11.ind, 2.4.3.ind pygccxml 2.0.0).
  • Tilføjet Python-bindinger til RFNoC-blokke.
  • Understøttelse af Qt 6.2 er blevet tilføjet til blokkene til opbygning af den grafiske gr-qtgui-grænseflade. Tilføjet "--output" mulighed for hierarkiske blokke til GRC (GNU Radio Companion) GUI.

Kilde: opennet.ru

Tilføj en kommentar