Випуск 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 -Міні.

До складу також входить колекція фільтрів, канальних кодеків, модулів синхронізації, демодуляторів, еквалайзерів, голосових кодеків, декодерів та інших елементів, необхідних створення радіосистем. Зазначені елементи можуть бути використані як цеглини для компонування готової системи, що в поєднанні з можливостями визначення потоків даних між блоками дозволяє проектувати радіосистеми навіть без навичок програмування.

Основні зміни:

  • Додано новий модуль 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 і повертати дані з результатом у буфери 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

Додати коментар або відгук