Введение
GNU Radio Companion – это программное обеспечение для визуального программирования на основе блоков, использующее язык Python, предназначенное для работы с радиосвязью.
GNU Radio – это бесплатный инструментарий разработки программного обеспечения, предоставляющий блоки обработки сигналов для реализации программно-определяемых радиосистем и систем обработки сигналов. Его можно использовать с внешним радиочастотным (RF) оборудованием для создания программно-определяемых радиоприемников и передатчиков, а также без оборудования в среде моделирования. Он широко применяется в любительских, научных и коммерческих целях для поддержки исследований в области беспроводной связи и разработки реальных радиосистем.
Обзор
Программное обеспечение GNU Radio предоставляет основу и инструменты для разработки и запуска программно-определяемого радио или общих приложений обработки сигналов. Приложения GNU Radio обычно называют "блок-схемами потока данных", которые представляют собой последовательность соединенных блоков обработки сигналов, описывающих таким образом поток данных. Как и в любых системах программно-определяемого радио, ключевой особенностью является возможность переконфигурации. Вместо использования различных радиостанций, разработанных для конкретных и различных целей, можно использовать одну универсальную радиостанцию в качестве радиоинтерфейса, а программное обеспечение для обработки сигналов (в данном случае GNU Radio) выполняет обработку, специфичную для конкретного радиоприложения. Эти блок-схемы можно создавать на C++ или Python. Инфраструктура GNU Radio полностью написана на C++, а многие пользовательские инструменты (например, GNU Radio Companion) – на Python. GNU Radio – это пакет для обработки сигналов и часть проекта GNU. Он распространяется на условиях лицензии GNU General Public License (GPL), и авторские права на большую часть кода проекта принадлежат Free Software Foundation.
История
Впервые опубликованный в 2001 году, GNU Radio является официальным пакетом GNU. Филантроп Джон Гилмор инициировал разработку GNU Radio, выделив 320 000 долларов США Эрику Блоссому на создание кода и управление проектом. Одним из первых применений стало создание программного ATSC-приемника. Программное обеспечение GNU Radio изначально было создано на основе кода Pspectra, разработанного проектом SpectrumWare в Массачусетском технологическом институте (MIT). В 2004 году была выполнена полная переработка GNU Radio, поэтому в настоящее время GNU Radio не содержит исходного кода Pspectra. Мэтт Эттус присоединился к проекту в качестве одного из первых разработчиков и создал Universal Software Radio Peripheral (USRP) – аппаратную платформу для использования с программным обеспечением GNU Radio. В 2004 году Мэтт основал Ettus Research LLC и начал продавать USRP, совместимые с GNU Radio. В сентябре 2010 года Эрик Блоссом покинул пост руководителя проекта, его сменил Том Рондо. На ранних этапах проекта основные разработчики начали регулярно проводить полугодовые Hackfests. В 2011 году проект GNU Radio начал проводить ежегодную конференцию под названием "GRCon", которая обычно завершается Hackfest в последний день. В марте 2016 года Том Рондо ушел в отставку, его место руководителя проекта занял Бен Хилбурн, а Джонатан Корган, многолетний участник поддержки проекта, стал главным архитектором. В январе 2018 года Джонатан Корган покинул должность главного архитектора, его сменил Маркус Мюллер. В сентябре 2020 года GNU Radio стало частью Института SETI (некоммерческой многодисциплинарной исследовательской и образовательной организации) в целях финансового и договорного управления. В октябре 2020 года Бен Хилбурн и действующие руководители проекта проголосовали за реорганизацию руководства GNU Radio, сформировав Генеральную Ассамблею с уставом, регулирующим детали функционирования организации. Совет из трех членов, избранных из состава Генеральной Ассамблеи, взял на себя функции, ранее выполнявшиеся руководителем проекта.
GNU Radio Companion (Радио-сопутник GNU)
GNU Radio Companion — графический интерфейс, используемый для разработки приложений GNU Radio. Он является надстройкой над библиотеками GNU Radio для обработки сигналов. GRC был разработан Джошем Блумом во время учебы в Университете Джона Хопкинса (2006–2007 гг.) и затем распространялся как бесплатное программное обеспечение на Hackfest в октябре 2009 года. Начиная с выпуска 3.2.0, GRC официально поставляется в комплекте с дистрибутивом GNU Radio. По сути, GRC является инструментом генерации кода Python. При компиляции блок-схемы в GRC генерируется код Python, который создает необходимые окна и виджеты графического пользовательского интерфейса (GUI), а также создает и соединяет блоки на блок-схеме. В настоящее время GRC поддерживает создание GUI с использованием инструментария Qt.
Графики и дисплеи
GNU Radio предоставляет множество стандартных средств для построения графиков и визуализации данных, включая дисплеи быстрого преобразования Фурье (FFT), диаграммы созвездий и осциллограммы. Они широко используются как для отладки радиоприложений, так и в качестве пользовательского интерфейса готового приложения.
PyBOMBS (пиролиновые бомбы)
Многие пользователи создают модули, не входящие в основную структуру GNU Radio, для использования с GNU Radio. Для управления этими модулями и зависимостями, необходимыми для работы GNU Radio, организация создала проект PyBOMBS (Python Build Overlay Managed Bundle System).