Aasta kestnud arenduse tulemusena on valminud uus mĂ€rkimisvÀÀrne vabavaraline digitaalsete signaalide töötlemise platvorm GNU Radio 3.10. Platvorm sisaldab programmi ja raamatukogude kogumit, mis vĂ”imaldavad luua erinevaid raadio sĂŒsteeme, modulatsiooniskeeme ja signaalide vastuvĂ”tmise ja edastamise vorme, mida saab programmeerida, samal ajal kui signaalide jÀÀdvustamiseks ja genereerimiseks kasutatakse lihtsamaid riistvaraseadmeid. Projekt levitatakse GPLv3 litsentsi alusel. Suur osa GNU Radio komponente on kirjutatud Pythonis, samas kui jĂ”udluse ja latentsuse poolest kriitilised osad on kirjutatud C++ keeles, mis vĂ”imaldab paketti kasutada reaalajas ĂŒlesannete lahendamisel.
Ăhendatuna universaalsete programmeeritavate saatjate ja vastuvĂ”tjatega, mis ei ole seotud sagedusvahemiku ja signaalimoodulatsiooniga, saab platvormi kasutada selliste seadmete, nagu GSM-vĂ”rkude baastehnika, RFID-siltide kaugloetavad seadmed (elektroonilised isikutunnistused ja pÀÀsmed, nutikaardid), GPS-vastuvĂ”tjad, WiFi, FM-raadio vastuvĂ”tjad ja saatjad, TV-dekooderid, passiivsed radarid, spektraalanalĂŒsaatorid jms valmistamiseks. Lisaks USRP-le saab paketis kasutada ka muid riistvarakomponente signaalide sisendi ja vĂ€ljundi jaoks, nĂ€iteks on saadaval draiverid helikaartidele, TV-tuuneritele, BladeRF-seadmetele, Myriad-RF, HackRF, UmTRX, Softrock, Comedi, Funcube, FMCOMMS, USRP ja S-Mini.
Komplekti kuulub ka filtreid, kanalikoodekeid, synchroniseerimise mooduleid, demodulaatoreid, ekvalaisereid, hÀÀlekoodekeid, dekoodereid ja muid elemente, mis on vajalikud raadiotehnika loomisel. Need elemendid vĂ”ivad olla kasutatud ehitusplokkidena valmis sĂŒsteemi komponeerimiseks, vĂ”imaldades andmevoogude mÀÀratlemist plokkide vahel, mis vĂ”imaldab raadiotehnika projekteerimist isegi ilma programmeerimisoskusteta.
Peamised muudatused:
- Lisatud on uus gr-pdu moodul, mis sisaldab tööriistu PDU (Protokolli AndmeĂŒhik) objektidega manipuleerimiseks, mis on mĂ”eldud GNU Radio plokkide vahel andmete edastamiseks. KĂ”ik PDU plokid on gr-blocks moodulist viidud gr-network ja gr-pdu moodulitesse, jĂ€ttes gr-blocks'i kohale kihistuse tagamaks tagasipööratavust. VektortĂŒĂŒbid PDU on nĂŒĂŒd saadaval gr::types nimes, samas kui PDU-ga manipuleerimise funktsioonid on gr::pdu nimes.
- Lisatud on uus gr-iio moodul, mis pakub sisendi/vĂ€ljundi raamistiku, et korraldada andmevahetust GNU Radio ja tööstusseadmete, mis pĂ”hinevad IIO (Tööstuse Sisendi/VĂ€ljundi) alamsĂŒsteemil, nagu PlutoSDR, AD-FMCOMMS2-EBZ, AD-FMCOMMS3-EBZ, AD-FMCOMMS4-EBZ, ARRADIO ja AD-FMCOMMS5-EBZ vahel.
- Pakutakse eksperimentaalset tuge Custom Buffer klassile, mis lihtsustab andmete edastamist GNU Radio plokkide ja GPU, FPGA ja DSP-pÔhiste riistvarakiirendite vahel. custom_buffer'i kasutamine vÔimaldab vÀltida erilise ploki kirjutamist GPU kiirenduse kasutamiseks ning annab vÔimaluse edastada andmeid otse GNU Radio ringbufferist GPU mÀllu, kÀivitada CUDA tuumasid ja tagastada tulemused GNU Radio pufferitesse.
- Logide haldamiseks on infrastruktuur uuendatud spdlog teegi kasutamiseks, mis on parendanud logidega töö mugavust, vÔimaldanud vÀltida iostream ja cstdio kasutamist, pakkunud libfmt vÀljendite toetust stringide vormindamiseks ja moderniseerinud API-t. Varasemalt kasutatud Log4CPP teek on eemaldatud sÔltuvustest.
- Arenduses on ĂŒlemineku toimunud C++17 standardile. boost::filesystem teek on asendatud std::filesystemiga.
- TÔstetud on nÔuded kompilaatoreile (GCC 9.3, Clang 11, MSVC 1916) ja sÔltuvustele (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).
- Lisatud on Python'i sidemed RFNoC plokkide jaoks.
- gr-qtgui plokkidesse on lisatud Qt 6.2 tugi. GRC (GNU Radio Companion) graafilisse liidesesse on lisatud valik ââoutputâ hierarhiliste plokkide jaoks.
Allikas: opennet.ru
