GNU Radio Companion: primeros pasos

GRC - GNU Radio Companion es mucho mas que un software SDR  multiplataforma es  un conjunto de herramientas de desarrollo de software gratuito (Free Software) y de código abierto (Open Source) que proporciona bloques de procesamiento de señales para implementar radios definidas por  software (SDR). Se puede utilizar con hardware de RF externo de bajo costo y disponible para crear radios definidas por software, o sin hardware en un entorno similar a una simulación.

GRC es todo un mundo pero en esta entrada vamos a intentar atajar para sin perdernos llegar a lo que en el fondo buscamos ahora que es hacer que funcione un hardware como (LimeSuite, Osmocom, RTL-SDR, o  RSP ) en este entorno

El primer proyecto (https://wiki.gnuradio.org/index.php?title=Your_First_Flowgraph)

En el wiki está muy bien explicado paso a paso de esta especie de "Hello World", yo solamente haré algunos comentarios que ayuden a entenderlo mejor. Lo que realmente vamos a hacer es generar  un programa en lenguaje  python pero en lugar de escribir el código, usando un entorno gráfico de bloques que enlazaremos con grafos el cual generará de forma automática el código.

Por defecto en el escritorio del programa tenemos el bloque "Options" y el bloque "Variable". Con doble click sobre "Options" ponemos añadir: id, title, author, copyrogth, Descripcion, ... como hemos hecho en cualquier programa que hemos escrito.

Ahora añadimos bloques del menú de la derecha concretamente:

  • un generador de onda sinusoidal (Signal Source)
  • un Throttle (acelador) 
  • dos bloques para su representación  QT GUI Frecuency Sink y QT GUI Time Sink. 

Dandole a RUN se ejecuta  el programa y nos dibuja ambas gráficas.



Al salvar el programa realmente además del archivo de representación o .grc se crea uno con el código phyton .py, el independizar los bloques y flujos del código es una gran idea que no obliga a reescribir los programas cuando cambiamos un bloque.

Filtro pasa bajos https://wiki.gnuradio.org/index.php?title=Low_Pass_Filter_Example 

Necesitaremos los siguiente módulos

    • Un generador de señales (Ya lo hemos usado; Waveform GEneratots => Signal SOurce)
    • Filtro Pasa bajos (Podemos probar con otros o concatenando varios; Filter => Low Pass filter)
    • un acelerador (Misc => Throttle ) 
    • Un bloque con el rango de representacion (GUI Widgets => QT => QT GUI RAnge)
    • Un bloque para su representación  (Instrumentation  => QT => QT GUI Frecuency Sink )

Despues hay que configurarlos (Boton derecho sobre el bloque) según el tutorial 

Ahora basta con hacer RUN, si no puede es que hay algún error por ejemplo ha dejado algún modulo sin conectar (aunque no se usen hay que borrarlos) o se ha equivocado al teclear el nombre de una variable , para parar la ejecución pulse KILL.

Una modificación que propone es sustituir el "generador de señales (Ya lo hemos usado; Waveform GEneratots => Signal SOurce)" por un "generador de ruido ( Waveform Generatots => Fast Noise Source)" 

A mi se me han ocurrido por ejemplo conectatr un pasa altos apra hacer un pasa banda, y probar con distintos filtros


Referencias



Prohibida la reproducción parcial o total de este artículo sin permiso previo del autor

Comentarios

Entradas populares de este blog

SDR - Software Defined Radio - IIIb: Receptores RSP o MSI (MSI3001: MSI2500 + MSI001)

Ayudas a la navegación aerea: NDB, VOR, ILS y ATIS

Por una montaña más segura