Lanzamiento de GNU Radio 3.10.0

Después de un año de desarrollo, se ha formado una nueva versión importante de la plataforma gratuita de procesamiento de señales digitales GNU Radio 3.10. La plataforma incluye un conjunto de programas y bibliotecas que le permiten crear sistemas de radio arbitrarios, esquemas de modulación y la forma de señales recibidas y enviadas en las que se configuran mediante programación, y los dispositivos de hardware más simples se utilizan para capturar y generar señales. El proyecto se distribuye bajo la licencia GPLv3. El código para la mayoría de los componentes de GNU Radio está escrito en Python, las partes que son críticas para el rendimiento y la latencia están escritas en C ++, lo que permite que el paquete se use para resolver problemas en tiempo real.

En combinación con transceptores programables universales que no están ligados a la banda de frecuencia y al tipo de modulación de la señal, la plataforma se puede utilizar para crear dispositivos como estaciones base para redes GSM, dispositivos para lectura remota de etiquetas RFID (certificados y pases electrónicos, tarjetas inteligentes ), receptores GPS, WiFi, receptores y transmisores de radio FM, decodificadores de TV, radares pasivos, analizadores de espectro, etc. Además de USRP, el paquete puede usar otros componentes de hardware para la entrada y salida de señales, por ejemplo, los controladores están disponibles para tarjetas de sonido, sintonizadores de TV, dispositivos BladeRF, Myriad-RF, HackRF, UmTRX, Softrock, Comedi, Funcube, FMCOMMS, USRP y S-Mini.

El conjunto también incluye una colección de filtros, códecs de canal, módulos de sincronización, demoduladores, ecualizadores, códecs de voz, decodificadores y otros elementos necesarios para crear sistemas de radio. Estos elementos se pueden usar como bloques de construcción para el sistema terminado, lo que, combinado con la capacidad de determinar los flujos de datos entre bloques, le permite diseñar sistemas de radio incluso sin conocimientos de programación.

Cambios importantes:

  • Se ha agregado un nuevo módulo gr-pdu, que trae herramientas para manipular objetos con el tipo PDU (Protocol Data Unit) utilizado para transferir datos entre bloques GNU Radio. Desde el módulo gr-blocks, todas las PDU se han movido a los módulos gr-network y gr-pdu, y se ha dejado una capa en lugar de gr-blocks para garantizar la compatibilidad con versiones anteriores. Los tipos de PDU de vector ahora están disponibles en el espacio de nombres gr::types y las funciones de manipulación de PDU en el espacio de nombres gr::pdu.
  • Se ha agregado un nuevo módulo gr-iio que proporciona un marco de E/S para organizar el intercambio de datos entre GNU Radio y dispositivos industriales basados ​​en el subsistema IIO (Industrial I/O), como PlutoSDR, AD-FMCOMMS2-EBZ, AD- FMCOMMS3-EBZ, AD-FMCOMMS4-EBZ, ARRADIO y AD-FMCOMMS5-EBZ.
  • Se ha propuesto soporte experimental para la clase Custom Buffer, que simplifica la transferencia de datos entre bloques GNU Radio y aceleradores de hardware basados ​​en GPU, FPGA y DSP. El uso de custom_buffer evita escribir bloques especiales para habilitar la aceleración en el lado de la GPU y hace posible mover datos directamente desde el búfer circular de GNU Radio a la memoria de la GPU, ejecutar núcleos CUDA y devolver datos con el resultado a los búferes de GNU Radio.
  • La infraestructura de registro se transfirió al uso de la biblioteca spdlog, lo que hizo posible mejorar la comodidad de trabajar con registros, eliminar las llamadas a iostream y cstdio, proporcionar soporte para expresiones libfmt para formatear cadenas y modernizar la interfaz de programación. La biblioteca Log4CPP utilizada anteriormente se eliminó de las dependencias.
  • Se ha realizado la transición al uso en el desarrollo del estándar C++ 17. La biblioteca boost::filesystem ha sido reemplazada por std::filesystem.
  • Mayores requisitos para compiladores (GCC 9.3, Clang 11, MSVC 1916) y dependencias (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).
  • Se agregaron enlaces de Python para bloques RFNoC.
  • Se ha agregado soporte para Qt 6.2 a los bloques para construir la interfaz gráfica gr-qtgui. Se agregó la opción "--output" para bloques jerárquicos a la GUI de GRC (GNU Radio Companion).

Fuente: opennet.ru

Añadir un comentario