Доступен новый значительный выпуск свободного проекта GNU Radio, в рамках которого развивается платформа для цифровой обработки сигналов. GNU Radio представляет собой набор программ и библиотек, которые позволяют создавать произвольные радиосистемы, схемы модуляции и форма принимаемых и отправляемых сигналов в которых задаются программно, а для захвата и генерации сигналов применяются простейшие аппаратные устройства. Проект распространяется под лицензией GPLv3, код большей части компонентов GNU Radio написан на языке Python, компоненты, критичные к производительности и времени задержки, написаны на языке С++, что позволяет использовать пакет при решении задач в режиме реального времени.
В комбинации с универсальными программируемыми приёмопередатчиками USRP2, не привязанными к полосе частот и типу модуляции сигнала, платформа может быть использована для создания таких устройств, как базовые станции для GSM сетей, устройства для дистанционного чтения RFID-меток (электронные удостоверения и пропуски, смарт-карты), GPS-ресиверы, WiFi, приемники и передатчики FM-радио, TV-декодеры, пассивные радары, спектральные анализаторы и т.п. Кроме USRP, пакет может использовать и другие аппаратные компоненты для ввода и вывода сигналов, например, доступны драйверы для звуковых карт, TV-тюнеров, устройств Softrock, Comedi, Funcube и S-Mini.
В состав также входит коллекция фильтров, канальных кодеков, модулей синхронизации, демодуляторов, эквалайзеров, голосовых кодеков, декодеров и других элементов, необходимых для создания радиосистем. Указанные элементы могут быть использованы как кирпичики для компоновки готовой системы, что в сочетании с возможностями по определению потоков данных между блоками, позволяет проектировать радиосистемы даже без навыков программирования.
В процессе подготовки новой ветки проведена значительная реструктуризация кода, что сравнивается разработчиками с пересборкой двигателя гоночного автомобиля во время езды. Все первичные компоненты теперь оформлены в соответствии с единой структурой, все блоки перемещены из ядра GNU Radio в непосредственно связанные с ними компоненты, а базовые части поставляются в пакете gnuradio-runtime. Новое API построено с задействованием раздельных пространств имён С++ и виртуальных шаблонов для доступа к приватным классам. Значительные улучшения также связаны с расширением библиотеки блоков GNU Radio DSP, в которую включены новые возможности, отражающие изменения, добавленные в ветке 3.6 фреймворка GNU Radio SDR и runtime-компонентах проекта.
Из изменений можно отметить:
- Представлен новый интерфейс ControlPort для стандартизации системы удалённого взаимодействия с GNU Radio. ControlPort предоставляет средства удалённого управления и визуализации, внешний отладочный интерфейс, возможность подключения нескольких удалённых компонентов к одному приложению GNU Radio и использования одного ControlPort для управления несколькими приложениями GNU Radio. Использование ControlPort не приводит к дополнительной нагрузке на CPU.
- Интерфейс для удалённого мониторинга производительности GNU Radio, с использованием Performance Counters. В поставку также включена утилита gr-perf-monitorx для нагрлядной визуализации полученных параметров;
- Значительная переработка виджетов QTGUI, все графики теперь выделены в отдельные компоненты, в том числе графики динамики изменения амплитуды во времени, FFT и спектрограммы. Каждый обработчик одновременно может обрабатывать несколько соединений с наложением полученных данных. Для изменения оформления графиков могут применяться стили QSS (Qt Style Sheets). Увеличена производительность отрисовки;
- Обновлён модуль gr_filter_design в котором реализованы дополнительные возможности для визуализации работы фильтров;
- Добавлены новые блоки gr::analog::fast_noise_source и gr::analog::agc3_*, реализованы компоненты gr-fec и gr-channels, интегрирована утилита volk_modtool.