GNU Radio: El Toolkit Gratuito para Radio Definida por Software

Puntos Clave
  • GNU Radio es un toolkit de software libre bajo la licencia GPL.
  • Permite crear radios definidas por software (SDR) mediante el uso de flowgraphs.
  • Soporta el desarrollo tanto en C++ como en Python.
  • Es compatible con hardware externo como el USRP (Universal Software Radio Peripheral).

GNU Radio es un conjunto de herramientas de desarrollo de software libre que proporciona bloques de procesamiento de señales para implementar radios definidas por software (SDR) y sistemas de procesamiento de señales. Esta herramienta puede utilizarse junto con hardware de radiofrecuencia (RF) externo para crear radios reales o funcionar sin hardware en un entorno de simulación.

Debido a su versatilidad, GNU Radio es ampliamente utilizado en entornos académicos, comerciales y por aficionados para apoyar tanto la investigación en comunicaciones inalámbricas como el despliegue de sistemas de radio reales.

Descripción General

El software de GNU Radio proporciona el marco y las herramientas necesarias para construir y ejecutar aplicaciones de radio por software o aplicaciones generales de procesamiento de señales. Las aplicaciones creadas se conocen como flowgraphs (grafos de flujo), que consisten en una serie de bloques de procesamiento de señales conectados entre sí para describir el flujo de datos.

Una característica fundamental de los sistemas de radio definida por software es la reconfigurabilidad. En lugar de utilizar radios diseñadas para propósitos específicos, se puede emplear una radio de propósito general como front-end y dejar que el software de procesamiento (en este caso, GNU Radio) gestione el procesamiento específico de la aplicación de radio.

Desarrollo y Lenguajes

Los flowgraphs pueden escribirse en C++ o Python. La infraestructura de GNU Radio está escrita íntegramente en C++, mientras que muchas de las herramientas de usuario, como GNU Radio Companion, están escritas en Python. Además, los flowgraphs pueden construirse visualmente a través de la interfaz gráfica de GNU Radio Companion.

Como parte del Proyecto GNU, GNU Radio se distribuye bajo los términos de la Licencia Pública General de GNU (GPL) y la mayor parte de su código es propiedad de la Free Software Foundation.

Historia y Evolución

Publicado por primera vez en 2001, GNU Radio es un paquete oficial del Proyecto GNU. Fue iniciado por el filántropo John Gilmore con una financiación de 320.000 dólares estadounidenses otorgada a Eric Blossom para la creación de código y la gestión del proyecto. Una de las primeras aplicaciones fue la construcción de un receptor ATSC por software.

El software comenzó como una bifurcación (fork) del código Pspectra desarrollado por el proyecto SpectrumWare en el Instituto Tecnológico de Massachusetts (MIT). En 2004 se completó una reescritura total, por lo que actualmente GNU Radio no contiene código original de Pspectra.

Entre los hitos clave destacan la creación del Universal Software Radio Peripheral (USRP) por Matt Ettus, proporcionando una plataforma de hardware compatible. En 2010, Tom Rondeau asumió el liderazgo del proyecto, seguido por Ben Hilburn en 2016. En 2020, GNU Radio pasó a formar parte del Instituto SETI para fines financieros y contractuales, y se reorganizó su liderazgo mediante la creación de una Asamblea General y una Junta Directiva.

Componentes del Software

GNU Radio Companion (GRC)

El GNU Radio Companion es una interfaz de usuario gráfica utilizada para desarrollar aplicaciones de GNU Radio. Actúa como el front-end de las librerías de procesamiento de señales. GRC fue desarrollado por Josh Blum entre 2006 y 2007 y se integró oficialmente en la distribución de software a partir de la versión 3.2.0.

GRC es, en esencia, una herramienta de generación de código Python. Cuando un flowgraph se compila en GRC, genera código Python que crea las ventanas y widgets de la interfaz gráfica de usuario (GUI) y conecta los bloques del flujo de datos.

Actualmente, GRC soporta la creación de interfaces utilizando el toolkit Qt.

Visualización de Datos y Gráficos

GNU Radio ofrece diversos sumideros de datos de visualización y trazado, incluyendo pantallas de FFT, diagramas de constelación de símbolos y pantallas de osciloscopio. Estas herramientas son esenciales tanto para la depuración de aplicaciones de radio como para la interfaz de usuario final de la aplicación.

PyBOMBS

Para gestionar los módulos "fuera del árbol" (out-of-tree modules) creados por los usuarios y las dependencias necesarias para ejecutar GNU Radio, la organización creó el proyecto PyBOMBS (Python Build Overlay Managed Bundle System).

Preguntas Frecuentes

Respuestas a las dudas más habituales sobre GNU Radio: El Toolkit Gratuito para Radio Definida por Software.

Es un toolkit de desarrollo de software libre que proporciona bloques de procesamiento de señales para implementar radios definidas por software y sistemas de procesamiento de señales.

Volver al índice enciclopédico