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, PyBind11 2.4.3, pygccxml 2.0.0).
  • Добавлены Python-биндинги для блоков RFNoC.
  • В блоках для построения графического интерфейса gr-qtgui добавлена поддержка Qt 6.2. В графический интерфейс GRC (GNU Radio Companion) добавлена опция «—output» для иерархических блоков.

Эх сурвалж: opennet.ru

сэтгэгдэл нэмэх