Instituto Polit�cnico Nacional
Instituto Politécnico Nacional
"La Técnica al Servicio de la Patria"

Boletín No. 51
1o. de noviembre de 2015




SISTEMAS DE COMUNICACIONES UTILIZANDO GNU RADIO

 

M. en C. Raúl Fernández Zavala
M. en C. Cyntia E. Enríquez Ortiz
IPN-UPIITA
Academia de Telemática

 

Resumen

En este trabajo se introduce al lector en la implementación de sistemas de comunicaciones utilizando GNU Radio Companion como plataforma de desarrollo. Como caso de estudio se realiza la modulación y demodulación en frecuencia para la transmisión de audio.

I. Introducción

GNU Radio es una herramienta de desarrollo de software de código libre para la implementación de Radios Definidos por Software (SDR, por sus siglas en inglés) en plataformas Linux, Mac OS y Windows [1]. Con GNU Radio es posible desarrollar aplicaciones de procesamiento de señales que permiten el análisis, filtrado, codificación, modulación y demodulación de señales utilizadas comúnmente en sistemas de comunicaciones. El uso de GNU Radio con dispositivos periféricos adecuados como las tarjetas USRP, BladeRF, HackRF o SDR-RTL permite transmitir y recibir señales de radio frecuencia.

Para utilizar GNU Radio es necesario tener conocimientos de programación, de procesamiento digital de señales y de sistemas de comunicaciones. El código en GNU Radio se desarrolla principalmente en lenguaje de programación Python y cuando se requiere alto rendimiento en la implementación de los algoritmos se utiliza C++. También es posible desarrollar aplicaciones utilizando la interfaz gráfica de usuario GNU Radio Companion (GRC), la cual permite implementar sistemas de comunicaciones a partir de bloques que realizan funciones básicas de procesamiento de señales, sin necesidad de escribir ni una sola línea de código. Este enfoque permite que los estudiantes modelen sistemas de comunicaciones en forma rápida y flexible. En la figura 1 se muestra la interfaz de GRC.

Figura 1. Interfaz de GNU Radio Companion.

Los bloques de GRC realizan desde operaciones matemáticas básicas hasta operaciones complejas de procesamiento digital de señales. Entre los bloques disponibles se incluyen moduladores, demoduladores, filtros y generadores de señales, entre otros. De igual forma, GRC proporciona bloques de entrada/salida que permiten el acceso a la tarjeta de sonido de la PC, al sistema de archivos y a módulos de radio frecuencia con interfaz USB o Ethernet.

Sistema FM en GNU Radio Companion

Para mostrar la flexibilidad que ofrece GRC en el diseño de sistemas de comunicaciones se presenta la implementación de un sistema FM para la transmisión de señales de audio. En la implementación del transmisor se utilizó un transceptor HackRF One y el modelo del sistema se realizó con GRC en una PC con sistema operativo Linux. El dispositivo HackRF One [2] es un periférico USB utilizado como SDR capaz de transmitir en modo semi-dúplex señales de radio con frecuencias desde 1 MHz hasta 6 GHz. En la figura 2 se muestra el dispositivo HackRF One y en la figura 3 se muestra su diagrama a bloques.

Figura 2. Dispositivo HackRF One.

La tarjeta HackRF incluye un microcontrolador NXP LP43xx y un CPLD XC2C64 de Xilinx para realizar la transferencia de datos con la PC a través de la interfaz USB. La conversión A/D y D/A se realiza en el convertidor Maxim MAX5864 con una resolución de 8 bits con muestras en cuadratura y a una tasa máxima de 20 Msps. El HackRF es un radio de doble conversión que utiliza un transceptor Maxim MAX2837 y un mezclador RFFC5072 para convertir señales de RF a señales en banda base y viceversa. Por medio de un par de amplificadores MGA81563 se realiza la amplificación  de la señal recibida (LNA-Low Noise Amplifier) y de la señal enviada (PA- Power Amplifier).

Figura 3. Diagrama a bloques de la tarjeta HackRF.

En la figura 4 se muestra el diagrama a bloques en GRC de un transmisor de FM. Como fuente se utiliza un bloque Wave File Source que lee un archivo de audio con formato wav. El bloque WBFM Transmit  genera la envolvente compleja de una señal FM de banda ancha de acuerdo a la expresión [3]:

donde A es la amplitud de la envolvente, ko es la constante de desviación de frecuencia y m(t) es la señal moduladora.

El bloque WBFM además de generar la señal FM, incrementa la razón de muestreo de 48 ksps a 480 ksps. El parámetro Tau de este bloque es la constante de tiempo del filtro de preénfasis. El bloque Rational Resampler realiza el cambio de la razón de muestreo de 480 ksps a 1.92 Msps. Finalmente el bloque osmocom Sink  envía a través de la interfaz USB la señal FM compleja a la tarjeta HackRF que se encarga de generar la señal de radio frecuencia en la banda de FM, en este caso con una portadora de 88.6 MHz.

Figura 4. Diagrama a bloques en GRC del transmisor FM.

En el bloque osmocom Sink se ajustan los parámetros de operación del dispositivo HackRF tales como la tasa de muestreo, la frecuencia de la portadora y la ganancia de los amplificadores de IF y RF. La señal entregada a la antena del transceptor HackRF es una señal modulada en frecuencia que se puede expresar como:

Donde Ac es la amplitud de la portadora y  fc  es la frecuencia portadora.

En la implementación del receptor FM se utilizó un dispositivo USB RTL-SDR fabricado por NooElec [4] y el modelo del sistema se realizó en GRC. El receptor RTL-SDR NESDR Mini es un periférico USB diseñado originalmente como receptor de televisión digital terrestre DVB-T, pero puede ser utilizado como radio definido por software ya que es capaz de recibir señales de radio con frecuencias de 24 MHz a 1.766 MHz. El receptor RTL-SDR muestrea en cuadratura la señal recibida con una tasa de 28.8 Msps y utiliza una resolución de 8 bits para cada muestra, sin embargo, la tasa de muestreo se reduce digitalmente a un máximo de 3.2 Msps. En la figura 5 se muestra el dispositivo RTL-SDR.

Figura 5. Receptor RTL-SDR.

En la figura 6 se puede observar el diagrama a bloques en GRC de un receptor de FM, el bloque RTL-SDR Source se encarga de ajustar los parámetros de operación del receptor NESDR Mini y de recibir las muestras en cuadratura de la señal a través de la interfaz USB. El bloque Rational Resampler reduce la razón de muestreo de 240 ksps a 192 ksps. El bloque WBFM recupera la señal de audio envida a partir de la envolvente compleja de la señal FM recibida. En este bloque también se reduce la tasa de muestreo a 48 ksps. Finalmente, el bloque  Audio Sink envía la señal de audio a la tarjeta de sonido de la PC.

Figura 6. Diagrama a bloques en GRC del receptor FM.

Para la visualización de señales, GRC incluyen bloques como osciloscopios y analizadores de espectros. En la figura 7 se muestran la componente en fase y la componente en cuadratura de la envolvente compleja de la señal FM transmitida.

Figura 7. Componentes I y Q de la señal FM transmitida.

En la figura 8 se muestra el espectro en banda base de la envolvente compleja de la señal FM.

Figura 8. Espectro de la envolvente compleja de la señal FM transmitida.

Conclusiones

El entorno de desarrollo GNU Radio Companion ofrece una alternativa al uso de Matlab/Simulink o LabView para el modelado y simulación de sistemas de comunicaciones basados en algoritmos de procesamiento digital de señales y al  mismo tiempo permite que los estudiante apliquen conceptos avanzado como sincronización o estimación de canal en la implementación de radios receptores definidos por software en forma sencilla y económica. El uso de dispositivos periféricos que realizan la digitalización y procesamiento de señales de RF proporciona un acercamiento práctico al diseño de sistemas de comunicaciones para la transmisión en tiempo real de datos, audio o video.

 

Referencias

  1. GNURadio (2015). Consultado el 30 de Octubre de 2015. Disponible en: http://gnuradio.org

  2. HackRF One (2015). Consultado el 30 de Octubre de 2015. Disponible en: https://greatscottgadgets.com/hackrf/

  3. Leon W. Couch, “Sistemas de comunicación digitales y analógicos”, 7ª edición, Prentice Hall, Mexico 2008.

  4. Nooelec (2015). Consultado el 30 de Octubre de 2015. Disponible en: http://www.nooelec.com/store/sdr/sdr-receivers.html