Vydání GNU Radio 3.10.0

Po roce vývoje byla vytvořena nová významná verze bezplatné platformy pro digitální zpracování signálu GNU Radio 3.10. Platforma obsahuje sadu programů a knihoven, které umožňují vytvářet libovolné rádiové systémy, modulační schémata a formy přijímaných a odesílaných signálů, ve kterých se programově nastavují, a k zachycení a generování signálů se používají jednoduchá hardwarová zařízení. Projekt je distribuován pod licencí GPLv3. Kód pro většinu komponent GNU Radio je napsán v Pythonu, části, které jsou kritické pro výkon a latenci, jsou napsány v C++, což umožňuje použití balíčku při řešení problémů v reálném čase.

V kombinaci s univerzálními programovatelnými transceivery, které nejsou vázány na frekvenční pásmo a typ modulace signálu, lze z platformy vytvářet zařízení jako základnové stanice pro sítě GSM, zařízení pro dálkové čtení RFID tagů (elektronické certifikáty a průkazy, čipové karty ), GPS přijímače, WiFi, FM rádiové přijímače a vysílače, TV dekodéry, pasivní radary, spektrální analyzátory atd. Kromě USRP může balíček využívat další hardwarové komponenty pro vstup a výstup signálu, k dispozici jsou například ovladače pro zvukové karty, TV tunery, zařízení BladeRF, Myriad-RF, HackRF, UmTRX, Softrock, Comedi, Funcube, FMCOMMS, USRP a S-Mini.

Struktura také zahrnuje kolekci filtrů, kanálových kodeků, synchronizačních modulů, demodulátorů, ekvalizérů, hlasových kodeků, dekodérů a dalších prvků nezbytných k vytvoření rádiových systémů. Tyto prvky lze použít jako stavební bloky pro hotový systém, což v kombinaci se schopností určovat datové toky mezi bloky umožňuje navrhovat rádiové systémy i bez programátorských dovedností.

Hlavní změny:

  • Přibyl nový modul gr-pdu, který přináší nástroje pro manipulaci s objekty typu PDU (Protocol Data Unit) sloužící pro přenos dat mezi bloky GNU Radio. Z modulu gr-blocks byly všechny PDU přesunuty do modulů gr-network a gr-pdu a místo gr-bloků byla ponechána vrstva pro zajištění zpětné kompatibility. Vektorové typy PDU jsou nyní dostupné ve jmenném prostoru gr::types a funkce pro manipulaci s PDU ve jmenném prostoru gr::pdu.
  • Byl přidán nový modul gr-iio, který poskytuje I/O rámec pro organizaci výměny dat mezi GNU Radio a průmyslovými zařízeními založenými na subsystému IIO (Industrial I/O), jako je PlutoSDR, AD-FMCOMMS2-EBZ, AD- FMCOMMS3-EBZ, AD-FMCOMMS4-EBZ, ARRADIO a AD-FMCOMMS5-EBZ.
  • Byla navržena experimentální podpora pro třídu Custom Buffer, která zjednodušuje přenos dat mezi bloky GNU Radio a hardwarovými akcelerátory založenými na GPU, FPGA a DSP. Použití custom_buffer zabraňuje psaní speciálních bloků pro umožnění akcelerace na straně GPU a umožňuje přímo přesouvat data z GNU Radio ring buffer do GPU paměti, spouštět CUDA jádra a vracet data s výsledkem do GNU Radio bufferů.
  • Logovací infrastruktura byla převedena do používání knihovny spdlog, což umožnilo zlepšit pohodlí práce s logy, zbavit se volání iostream a cstdio, poskytnout podporu pro výrazy libfmt pro formátování řetězců a modernizovat programovací rozhraní. Dříve používaná knihovna Log4CPP byla odstraněna ze závislostí.
  • Byl proveden přechod na použití při vývoji standardu C++ 17. Knihovna boost::filesystem byla nahrazena std::filesystem.
  • Zvýšené požadavky na kompilátory (GCC 9.3, Clang 11, MSVC 1916) a závislosti (Python 3.6.5, numpy 1.17.4, VOLK 2.4.1, CMake 3.16.3, Boost 1.69, Mako 1.1.0, Py. pygccxml 11).
  • Přidány vazby Pythonu pro bloky RFNoC.
  • Do bloků pro budování grafického rozhraní gr-qtgui byla přidána podpora pro Qt 6.2. Do grafického uživatelského rozhraní GRC (GNU Radio Companion) přidána možnost „--output“ pro hierarchické bloky.

Zdroj: opennet.ru

Přidat komentář