По прошествии шести лет с момента формирования последнего значительного выпуска sНедавно e объявил о выпуске новой версии GNU Radio 3.8.0.. Тем, кто не знаком с GNU Radio, следует знать, что это ПО представляет собой набор программ и библиотек, позволяющих создавать произвольные радиосистемы, Схемы модуляции и форма принимаемых и отправленных сигналов, в которой они конфигурируются программно, а простейшие аппаратные устройства используются для захвата и генерации сигналов.
В рамках проекта Он находится под лицензией GPLv3. Код для большинства компонентов GNU Radio написан на Python, важные части производительности и задержки написаны на C ++, что позволяет использовать пакет для устранения неполадок в реальном времени.
В сочетании с универсальными программируемыми трансиверами, не привязанными к полосе частот и типу модуляции сигнала, платформа может использоваться для создания таких устройств, как базовые станции для сетей GSM, устройства для удаленного считывания RFID-меток (электронные удостоверения личности и пропуска, смарт-карты), GPS-приемники, WiFi, FM-радиоприемники и передатчики, ТВ-декодеры, пассивные радары, анализаторы спектра и т. д.
Помимо USRP, пакет может использовать другие аппаратные компоненты для входных и выходных сигналов, например, доступные драйверы для звуковых карт, ТВ-тюнеров, устройств BladeRF, Myriad-RF, HackRF, UmTRX, Softrock, Comedi, FUNcube, FMCOMMS, USRP. и S -Mini.
В состав также входит набор фильтров, кодеков каналов, модулей синхронизации, демодуляторы, эквалайзеры, речевые кодеки, декодеры и другие элементы, необходимые для создания радиосистем.
Эти элементы могут использоваться в качестве строительных блоков для законченного проектирования системы, что в сочетании с возможностью определять потоки данных между блоками позволяет проектировать радиосистемы даже без навыков программирования.
Что нового в GNU Radio 3.8.0?
С появлением этой новой версии GNU Radio 3.8.0, разработчики перевели код при использовании в разработке стандарта C ++ 11 и система сборки Cmake и использование стиля кода, выровненного по формату clang.
Зависимости включают MPIR / GMP, Qt5, gsm и codec2. С помощью этого требования к зависимостям были обновлены для CMake, GCC, MSVC, Swig, Boost и, в свою очередь, удалены из зависимостей libusb, Qt4 и CppUnit.
Код GNU Radio 3.8.0 совместим с Python 3 и разработчики сообщили, что следующая ветвь GNU Radio 3.8 будет последней с поддержкой Python 2.
В gnuradio-runtime обработка дробных значений временных тегов была переработана в контексте приложения с модулями передискретизации.
В графический интерфейс GRC добавлена дополнительная поддержка генерации кода C ++. (GNU Radio Companion) вместо XML был использован формат YAML, удалены blks2, значительно улучшены инструменты холста и добавлена поддержка закругленных стрелок.
Из других выделяющихся изменений мы находим:
- Графический интерфейс gr-qtgui перенесен с Qt4 на Qt5
- Gr-utils значительно улучшил утилиту gr_modtool. Утилиты на основе PyQwt удалены из состава
- Прекращена поддержка модулей gr-comedi, gr-fcd и gr-wxgui.
Как установить 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