Release of GNU Radio 3.10.0

After a year of development, a new significant release of the free digital signal processing platform GNU Radio 3.10 has been formed. The platform includes a set of programs and libraries that allow you to create arbitrary radio systems, modulation schemes and the form of received and sent signals in which are set programmatically, and the simplest hardware devices are used to capture and generate signals. The project is distributed under the GPLv3 license. The code for most of the GNU Radio components is written in Python, the parts that are critical to performance and latency are written in C ++, which allows the package to be used when solving problems in real time.

In combination with universal programmable transceivers that are not tied to the frequency band and type of signal modulation, the platform can be used to create devices such as base stations for GSM networks, devices for remote reading RFID tags (electronic certificates and passes, smart cards) , GPS receivers, WiFi, FM radio receivers and transmitters, TV decoders, passive radars, spectrum analyzers, etc. In addition to USRP, the package can use other hardware components for signal input and output, for example, drivers are available for sound cards, TV tuners, BladeRF devices, Myriad-RF, HackRF, UmTRX, Softrock, Comedi, Funcube, FMCOMMS, USRP and S -Mini.

The structure also includes a collection of filters, channel codecs, synchronization modules, demodulators, equalizers, voice codecs, decoders and other elements necessary to create radio systems. These elements can be used as building blocks for the finished system, which, combined with the ability to determine data flows between blocks, allows you to design radio systems even without programming skills.

Major changes:

  • A new gr-pdu module has been added, which brings tools for manipulating objects with the PDU (Protocol Data Unit) type used for data transferred between GNU Radio blocks. From the gr-blocks module, all PDUs have been moved to the gr-network and gr-pdu modules, and a layer has been left instead of gr-blocks to ensure backward compatibility. Vector PDU types are now available in the gr::types namespace, and PDU manipulation functions in the gr::pdu namespace.
  • A new gr-iio module has been added that provides an I / O framework for organizing data exchange between GNU Radio and industrial devices based on the IIO (Industrial I / O) subsystem, such as PlutoSDR, AD-FMCOMMS2-EBZ, AD-FMCOMMS3-EBZ, AD -FMCOMMS4-EBZ, ARRADIO and AD-FMCOMMS5-EBZ.
  • Experimental support for the Custom Buffer class has been proposed, which simplifies data transfer between GNU Radio blocks and hardware accelerators based on GPU, FPGA and DSP. Using custom_buffer avoids writing special blocks to enable acceleration on the GPU side and makes it possible to directly move data from the GNU Radio ring buffer to GPU memory, run CUDA kernels and return data with the result to GNU Radio buffers.
  • The logging infrastructure was transferred to the use of the spdlog library, which made it possible to improve the convenience of working with logs, get rid of calls to iostream and cstdio, provide support for libfmt expressions for string formatting, and modernize the programming interface. The previously used Log4CPP library has been removed from dependencies.
  • The transition to use in the development of the C ++ 17 standard has been made. The boost::filesystem library has been replaced with std::filesystem.
  • Increased requirements for compilers (GCC 9.3, Clang 11, MSVC 1916) and dependencies (Python 3.6.5, numpy 1.17.4, VOLK 2.4.1, CMake 3.16.3, Boost 1.69, Mako 1.1.0, PyBind11 2.4.3, pygccxml 2.0.0).
  • Added Python bindings for RFNoC blocks.
  • Support for Qt 6.2 has been added to the blocks for building the gr-qtgui graphical interface. Added "--output" option for hierarchical blocks to the GRC (GNU Radio Companion) GUI.

Source: opennet.ru

Add a comment