После полутора лет разработки была сформирована новая версия. важная часть бесплатной платформы обработки цифровых сигналов GNU Радио 3.9 и в этой новой версии внесены изменения в организацию разработки, а также поддержка улучшений и многое другое.
Тем, кто не знаком с платформой, следует знать, что это включает набор программ и библиотек, позволяющих создавать произвольные радиосистемы, схемы модуляции и форма принимаемых и отправляемых сигналов настраиваются программно, а простые аппаратные устройства используются для захвата и генерации сигналов.
В сочетании с универсальными программируемыми трансиверами, не привязанными к полосе частот и типу модуляции сигнала, платформу можно использовать для создания устройств в качестве базовых станций для сетей GSM, устройства для удаленного считывания RFID-меток (электронные идентификаторы и пропуски, смарт-карты), GPS-приемники, WiFi, FM-радиоприемники и передатчики, ТВ-декодеры, пассивные радары, анализаторы спектра и т. д.
Помимо USRP, пакет может использовать другие аппаратные компоненты для ввода и вывода сигнала, например, драйверы доступны для звуковых карт, ТВ-тюнеров, устройств BladeRF, Myriad-RF, HackRF, UmTRX, Softrock, Comedi, Funcube, FMCOMMS, USRP и S -Mini.
Основные новые возможности GNU Radio 3.9
В этой новой версии GNU Radio 3.9 внесены серьезные изменения для участия в разработке и именно в этот момент подпись CLA больше не требуется, вместо этого разработчику нужно только подтвердить, что он имеет право передавать код и не пытается присвоить чужой код.
Сертификат разработчика о происхождении документа (DCO) используется для формализации передачи кода, который используется с 2004 года для передачи изменений в ядро Linux. Чтобы отслеживать автора, к каждому изменению прилагается строка «Подписано: имя и адрес электронной почты разработчика» (git commit -s). Прикрепляя эту подпись к патчу, разработчик подтверждает его авторство. о переданном коде и принять его распространение как часть проекта или как часть кода под бесплатной лицензией.
Еще одно изменение, которое выделяется в новой версии GNU Radio 3.9, - это прекращено использование генератора API SWIG в качестве PyBind11 теперь используется для связывания кода C / C ++ и Python, что требует дополнительного кода, но обеспечивает более предсказуемый и стабильный результат. Наряду с переходом на PyBind, была проделана большая работа по модернизации кода графического интерфейса GRC (Радио-компаньон GNU).
Добавлен новый модуль gr-network для создания сетевых блоков, поддерживающих TCP и UDP.
Графический интерфейс gr-qtgui добавил графики азимута, расстояния и автокорреляции, обеспечил отображение компаса, добавил вертикальную панель.
Добавлено поддержка UHD 4.0 (Аппаратный драйвер USRP) и был предложен новый API для создания фильтров.
Поддержка Python 2 была удалена, теперь для работы требуется как минимум Python 3.6.5. Обновлены зависимости: numpy 1.13.3, VOLK 2.4.1, CMake 3.10.2, Boost 1.65, Mako 1.0.7, PyBind11 2.4.3. Из компиляторов поддерживаются GCC 8.3.0, Clang 11.0.0 и MSVC 1910 (Microsoft VS 2017 15.0). Библиотека libsndfile включена в зависимости. VOLK (Vector Optimized Library of Kernels) перенесена из подмодулей в отдельную зависимость.
Кроме того, разрешены конструкции C ++ 14, но код, который продолжает использовать Boost, продолжает использовать конструкции C ++ 11. Кроме того, в код были добавлены заголовки с информацией о лицензии в формате SPDX.
Как установить GNU Radio на Ubuntu и производные?
Для тех, кто заинтересован в возможности установить эту новую версию, пока они должны скомпилировать свой исходный код, поскольку он еще не доступен в репозиториях Ubuntu.
Перед этим мы должны установить необходимые зависимости для его работы, мы устанавливаем их, открыв терминал в системе (вы можете сделать это комбинацией клавиш Ctrl + Alt + T) и в нем вы наберете следующее:
sudo apt install git cmake g++ libboost-all-dev libgmp-dev swig python3-numpy \ python3-mako python3-sphinx python3-lxml doxygen libfftw3-dev libcomedi-dev \ libsdl1.2-dev libgsl-dev libqwt-qt5-dev libqt5opengl5-dev python3-pyqt5 \ liblog4cpp5-dev libzmq3-dev python3-yaml python3-click python3-click-plugins
После этого нам нужно будет только ввести следующее, чтобы загрузить исходный код:
git clone --recursive https://github.com/gnuradio/gnuradio.git cd gnuradio mkdir build cd build
И, наконец, мы собираемся компилировать, вводя одну за другой следующие команды:
cmake ../ make make test sudo make install