Выпуск GNU Radio 3.10.0

Пасля года распрацоўкі сфарміраваны новы значны рэліз свабоднай платформы лічбавай апрацоўкі сігналаў GNU Radio 3.10. Платформа ўключае набор праграм і бібліятэк, якія дазваляюць ствараць адвольныя радыёсістэмы, схемы мадуляцыі і форма прыманых і якія адпраўляюцца сігналаў у якіх задаюцца праграмна, а для захопу і генерацыі сігналаў ужываюцца найпростыя апаратныя прылады. Праект распаўсюджваецца пад ліцэнзіяй GPLv3. Код большай часткі кампанентаў GNU Radio напісаны на мове Python, часткі, крытычныя да прадукцыйнасці і часу затрымкі, напісаны на мове З++, што дазваляе выкарыстоўваць пакет пры рашэнні задач у рэжыме рэальнага часу.

У камбінацыі з універсальнымі праграмуемымі прыёмаперадатчыкамі, не прывязанымі да паласы частот і тыпу мадуляцыі сігналу, платформа можа быць скарыстана для стварэння такіх прылад, як базавыя станцыі для сетак GSM, прылады для дыстанцыйнага чытання RFID-пазнак (электронныя пасведчанні і пропускі, смарт-карты) , GPS-рэсіверы, WiFi, прымачы і перадатчыкі FM-радыё, TV-дэкодэры, пасіўныя радары, спектральныя аналізатары і да т.п. Акрамя USRP, пакет можа выкарыстоўваць і іншыя апаратныя кампаненты для ўводу і вываду сігналаў, напрыклад, даступныя драйверы для гукавых карт, TV-цюнараў, прылад BladeRF, Myriad-RF, HackRF, UmTRX, Softrock, Comedi, Funcube, FMCOMMS, USRP і S -Mini.

У склад таксама ўваходзіць калекцыя фільтраў, канальных кодэкаў, модуляў сінхранізацыі, дэмадулятараў, эквалайзераў, галасавых кодэкаў, дэкодэраў і іншых элементаў, неабходных для стварэння радыёсістэм. Паказаныя элементы могуць быць скарыстаны як цаглінкі для кампаноўкі гатовай сістэмы, што ў спалучэнні з магчымасцямі па вызначэнні струменяў дадзеных паміж блокамі дазваляе праектаваць радыёсістэмы нават без навыкаў праграмавання.

Асноўныя змены:

  • Дададзены новы модуль gr-pdu, у які перанесены прылады для маніпуляцыі аб'ектамі з тыпам PDU (Protocol Data Unit), якія ўжываюцца для дадзеных, якія пераносяцца паміж блокамі GNU Radio. З модуля gr-blocks усе блокі PDU перанесены ў модулі gr-network і gr-pdu, а замест gr-blocks пакінутая праслойка для забеспячэння зваротнай сумяшчальнасці. Вектарныя тыпы PDU зараз даступныя ў прасторы імёнаў gr::types, а функцыі для маніпуляцыі PDU - у прасторы імёнаў gr::pdu.
  • Дададзены новы модуль gr-iio, які прадстаўляе фрэймворк уводу/высновы для арганізацыі абмену дадзенымі паміж GNU Radio і прамысловымі прыладамі на базе падсістэмы IIO (Industrial I/O), такімі як PlutoSDR, AD-FMCOMMS2-EBZ, AD-FMCOMMS3-EBZ, AD -FMCOMMS4-EBZ, ARRADIO і AD-FMCOMMS5-EBZ.
  • Прапанавана эксперыментальная падтрымка класа Custom Buffer, які спрашчае перадачу дадзеных паміж блокамі GNU Radio і апаратнымі паскаральнікамі на базе GPU, FPGA і DSP. Ужыванне custom_buffer дазваляе абыйсціся без напісання адмысловых блокаў для задзейнічання паскарэння на боку GPU і дае магчымасць напроста перамяшчаць дадзеныя з колцавага буфера GNU Radio у памяць GPU, запускаць ядры CUDA і вяртаць дадзеныя c вынікам у буферы GNU Radio.
  • Інфраструктура для вядзення логаў пераведзена на выкарыстанне бібліятэкі spdlog, што дазволіла павысіць зручнасць працы з логамі, пазбавіцца ад звароту да iostream і cstdio, забяспечыць падтрымку выразаў libfmt для фарматавання радкоў і мадэрнізаваць праграмны інтэрфейс. Раней ужывальная бібліятэка Log4CPP выдаленая з залежнасцяў.
  • Ажыццёўлены пераход на выкарыстанне пры распрацоўцы стандарту C++17. Бібліятэка boost::filesystem заменена на std::filesystem.
  • Павышаны патрабаванні да кампілятараў (GCC 9.3, Clang 11, MSVC 1916) і залежнасцяў (Python 3.6.5, numpy 1.17.4, VOLK 2.4.1, CMake 3.16.3, Boost 1.69, Mako 1.1.0. pygccxml 11).
  • Дададзеныя Python-біндынгі для блокаў RFNoC.
  • У блоках для пабудовы графічнага інтэрфейсу gr-qtgui дададзена падтрымка Qt 6.2. У графічны інтэрфейс GRC (GNU Radio Companion) дададзена опцыя «output» для іерархічных блокаў.

Крыніца: opennet.ru

Дадаць каментар