Sistemas de Comunicaciones utilizando GNU... about:reader?url=http://www.boletin.upiita.i...
boletin.upiita.ipn.mx
Sistemas de Comunicaciones
utilizando GNU Radio
Oscar
7-9 minutes
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
1 of 10 6/4/20, 1:03 PM
Sistemas de Comunicaciones utilizando GNU... about:reader?url=http://www.boletin.upiita.i...
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
2 of 10 6/4/20, 1:03 PM
Sistemas de Comunicaciones utilizando GNU... about:reader?url=http://www.boletin.upiita.i...
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
3 of 10 6/4/20, 1:03 PM
Sistemas de Comunicaciones utilizando GNU... about:reader?url=http://www.boletin.upiita.i...
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
4 of 10 6/4/20, 1:03 PM
Sistemas de Comunicaciones utilizando GNU... about:reader?url=http://www.boletin.upiita.i...
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
5 of 10 6/4/20, 1:03 PM
Sistemas de Comunicaciones utilizando GNU... about:reader?url=http://www.boletin.upiita.i...
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
6 of 10 6/4/20, 1:03 PM
Sistemas de Comunicaciones utilizando GNU... about:reader?url=http://www.boletin.upiita.i...
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.
7 of 10 6/4/20, 1:03 PM
Sistemas de Comunicaciones utilizando GNU... about:reader?url=http://www.boletin.upiita.i...
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.
8 of 10 6/4/20, 1:03 PM
Sistemas de Comunicaciones utilizando GNU... about:reader?url=http://www.boletin.upiita.i...
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
9 of 10 6/4/20, 1:03 PM
Sistemas de Comunicaciones utilizando GNU... about:reader?url=http://www.boletin.upiita.i...
comunicaciones para la transmisión en tiempo real de
datos, audio o video.
Referencias
10 of 10 6/4/20, 1:03 PM