Спустя шесть лет с момента прошлого значительного выпуска сформирован релиз GNU Radio 3.8, свободной платформы цифровой обработки сигналов. GNU Radio представляет собой набор программ и библиотек, которые позволяют создавать произвольные радиосистемы, схемы модуляции и форма принимаемых и отправляемых сигналов в которых задаются программно, а для захвата и генерации сигналов применяются простейшие аппаратные устройства. Проект распространяется под лицензией GPLv3. Код большей части компонентов GNU Radio написан на языке Python, части, критичные к производительности и времени задержки, написаны на языке С++, что позволяет использовать пакет при решении задач в режиме реального времени.
В комбинации с универсальными программируемыми приёмопередатчиками, не привязанными к полосе частот и типу модуляции сигнала, платформа может быть использована для создания таких устройств, как базовые станции для сетей GSM, устройства для дистанционного чтения RFID-меток (электронные удостоверения и пропуски, смарт-карты), GPS-ресиверы, WiFi, приемники и передатчики FM-радио, TV-декодеры, пассивные радары, спектральные анализаторы и т.п. Кроме USRP, пакет может использовать и другие аппаратные компоненты для ввода и вывода сигналов, например, доступны драйверы для звуковых карт, TV-тюнеров, устройств BladeRF, Myriad-RF, HackRF, UmTRX, Softrock, Comedi, Funcube, FMCOMMS, USRP и S-Mini.
В состав также входит коллекция фильтров, канальных кодеков, модулей синхронизации, демодуляторов, эквалайзеров, голосовых кодеков, декодеров и других элементов, необходимых для создания радиосистем. Указанные элементы могут быть использованы как кирпичики для компоновки готовой системы, что в сочетании с возможностями по определению потоков данных между блоками позволяет проектировать радиосистемы даже без навыков программирования.
Основные изменения:
- Осуществлён переход на использование при разработке стандарта C++11 и сборочной системы CMake. Стиль кода приведён в соответствие с clang-format;
- В число зависимостей включены MPIR/GMP, Qt5, gsm и codec2. Обновлены требования к версиям зависимостей CMake, GCC, MSVC, Swig, Boost. Удалены из зависимостей libusb, Qt4 и CppUnit;
- Обеспечена совместимость с Python 3, следующая ветка GNU Radio 3.8 станет последней с поддержкой Python 2;
- В gnuradio-runtime переработана обработка дробных значений тегов "time" в контексте применения с модулями передискретизации;
- В графический интерфейс GRC (GNU Radio Companion) добавлена опциональная поддержка генерации кода на C++, вместо XML задействован формат YAML, удалён blks2, значительно улучшены инструменты работы с холстом и добавлена поддержка скруглённых стрелок;
- Графический интерфейс gr-qtgui переведён с Qt4 на Qt5;
- В gr-utils существенно улучшена утилита gr_modtool. Из состава удалены утилиты на базе PyQwt;
- Прекращена поддержка модулей gr-comedi, gr-fcd и gr-wxgui.
|