GNU Radio 3.10.0 发布

经过一年的发展,免费数字信号处理平台GNU Radio 3.10的新的重大版本已经形成。 该平台包括一组程序和库,允许您创建任意无线电系统、调制方案以及接收和发送信号的形式,其中在软件中指定,并且使用最简单的硬件设备来捕获和生成信号。 该项目根据 GPLv3 许可证分发。 GNU Radio 的大部分组件的代码都是用 Python 编写的;对性能和延迟至关重要的部分是用 C++ 编写的,这使得该包可以在实时解决问题时使用。

结合不受频段和信号调制类型限制的通用可编程收发器,该平台可用于创建 GSM 网络基站、RFID 标签远程读取设备(电子 ID 和通行证、智能设备)等设备。卡)、GPS接收器、WiFi、FM无线电接收器和发射器、电视解码器、无源雷达、频谱分析仪等。 除了 USRP 之外,该软件包还可以使用其他硬件组件来输入和输出信号,例如声卡驱动程序、电视调谐器、BladeRF、Myriad-RF、HackRF、UmTRX、Softrock、Comedi、Funcube、FMCOMMS、USRP 和S 设备可供选择 -Mini。

它还包括滤波器、信道编解码器、同步模块、解调器、均衡器、语音编解码器、解码器和创建无线电系统所需的其他元素的集合。 这些元素可以用作构建模块来组装成品系统,再加上确定模块之间数据流的能力,即使没有编程技能,您也可以设计无线电系统。

主要变化:

  • 添加了一个新模块 gr-pdu,它携带用于操作 PDU(协议数据单元)类型对象的工具,用于在 GNU Radio 块之间传输数据。 从 gr-blocks 模块中,所有 PDU 块均已移至 gr-network 和 gr-pdu 模块,并且保留了一层以确保向后兼容性,而不是 gr-blocks。 矢量 PDU 类型现在在 gr::types 命名空间中可用,并且用于 PDU 操作的函数现在在 gr::pdu 命名空间中可用。
  • 添加了新模块gr-iio,它提供了输入/输出框架,用于组织GNU Radio与基于IIO(工业I/O)子系统的工业设备之间的数据交换,例如PlutoSDR、AD-FMCOMMS2-EBZ、AD-FMCOMMS3 -EBZ、AD -FMCOMMS4-EBZ、ARRADIO 和 AD-FMCOMMS5-EBZ。
  • 已经提出了对 Custom Buffer 类的实验支持,这简化了 GNU Radio 模块与基于 GPU、FPGA 和 DSP 的硬件加速器之间的数据传输。 使用 custom_buffer 可以让您避免编写特殊块来启用 GPU 端加速,并可以直接将数据从 GNU Radio 环形缓冲区移动到 GPU 内存、启动 CUDA 内核并将数据和结果返回到 GNU Radio 缓冲区。
  • 日志基础设施已改用 spdlog 库,该库提高了处理日志的可用性,消除了对 iostream 和 cstdio 的调用,为字符串格式化的 libfmt 表达式提供了支持,并使程序界面现代化。 以前使用的 Log4CPP 库已作为依赖项删除。
  • 已过渡到在 C++17 标准的开发中使用。 boost::filesystem 库已替换为 std::filesystem。
  • 增加了对编译器(GCC 9.3、Clang 11、MSVC 1916)和依赖项(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)。
  • 添加了 RFNoC 块的 Python 绑定。
  • 用于构建 gr-qtgui 图形界面的块中添加了对 Qt 6.2 的支持。 为 GRC(GNU Radio Companion)GUI 中的分层块添加了“--output”选项。

来源: opennet.ru

添加评论