Proyecto Fin de Carrera Ingeniería de Telecomunicación Estudio piloto de los demoduladores de la serie RTL de Realtek para la Radio Definida por Software Autor: Manuel Puerto González Director: Juan José Murillo Fuentes Teoría de la Señal y Comunicaciones Escuela Técnica Superior de Ingeniería Universidad de Sevilla Sevilla, 2014 Proyecto Fin de Carrera Ingeniería de Telecomunicación Estudio piloto de los demoduladores de la serie RTL de Realtek para la Radio Definida por Software Autor: Manuel Puerto González Director: Juan José Murillo Fuentes Profesor Titular Teoría de la Señal y Comunicaciones Escuela Técnica Superior de Ingeniería Universidad de Sevilla 2014 Proyecto Fin de Carrera: Autor: Director: Estudio piloto de los demoduladores de la serie RTL de Realtek para la Radio Definida por Software Manuel Puerto González Juan José Murillo Fuentes El tribunal nombrado para juzgar el trabajo arriba indicado, compuesto por los siguientes profesores: Presidente: Vocal/es: Secretario: acuerdan otorgarle la calificación de: El Secretario del Tribunal Fecha: Agradecimientos Este proyecto desde su inicio hasta su fin ha sufrido muchos cambios, las ideas iniciales no pudieron ser llevadas a cabo y los problemas encontrados fueron numerosos. Además, por diversos motivos he necesitado ayuda en fechas poco apropiadas para un profesor de la Escuela. Por todo esto quiero agradecer a J.J. Murillo sus minuciosas correcciones y su extraordinaria atención. También quiero incluir a Jan van Katwijk, que con su amabilidad, su programa y sus correos hizo posible este proyecto. Y por último a Alba, por sus aportaciones. Sevilla, Enero de 2014 I Prefacio Desde hace ya algunos años la curiosidad que siento por el ámbito de la enseñanza va en aumento, por mi experiencia como estudiante puedo decir que una materia puede ser el comienzo de una vocación o afición, o simplemente pasar de largo, y en parte podría ser debido a la docencia y a los recursos de los que se dispongan. Este proyecto, mediante el estudio de la tecnología de demoduladores de Realtek, de la familia usada para televisión y radio digital, y el Software Definido por Radio, pretende aportar un recurso económico, accesible y con una gama de complejidad que permite la recepción de señales de diversa índole a cualquier persona con unos conocimientos básicos hasta profesionales con niveles de programación y comunicaciones muy avanzados, con diversos niveles de dificultad dependiendo de los programas y el hardware adicional usados, convirtiéndose este pequeño dispositivo en una herramienta potencialmente útil. III Resumen La formación de los ingenieros debe de complementarse aplicando los conocimientos adquiridos. En el campo de las radiocomunicaciones hasta hace poco la manera asequible de llevarla a la práctica era mediante simulaciones de ordenador. En este proyecto se pretende demostrar que existen una serie de dispositivos de Radio Definida por Software con características similares que pueden ser útiles para aplicar dichos conocimientos de forma económica. Para ello se elige el dispositivo Nooelec TV28T, un pequeño receptor externo USB de televisión digital, formado por un demodulador RTL2832U y un sintonizador R820T. Se detallan sus características y se analizan algunos de los programas gratuitos y compatibles para este elemento. Además se recoge información sobre la Radio Definida por Software y su vertiente de más bajo coste. Se incluyen dos prácticas con el programa gratuito SDR-J, una para la sintonización de radio FM y otra para la sintonización de radio digital. También se han incorporado de forma detallada los pasos necesarios para instalar una versión de GNU Radio Companion muy apta para los intereses de este proyecto, ya que se ha añadido el código de un receptor FM para este programa. La novedad de estos dispositivos y sus programas compatibles conllevan una serie de inconvenientes que se han detallado. A pesar de ello, este conjunto hardware y software es una herramienta útil para poner en práctica conocimientos de radiocomunicación. El disponer de un programa como el SDR-J sirve como introductorio dada su simplicidad y los otros más complejos son de gran ayuda para poder desarrollar futuras aplicaciones radio. V Abstract The academic training of engineers should be complemented applying the knowledge acquired. The affordable method to put it into practice in the field of the radiocommunication was through computer simulations until recently. This project tries to demonstrate that there are a series of devices Software Defined Radio with similar features that may be useful to apply this knowledge economically. To that end is selected the Nooelec TV28T device, a small external USB digital TV receiver, it consists of a demodulator RTL2832U and a tuner R820T. Their features are detailed and some of the free and compatible programs for this gadget are analyzed. Besides information on the Software Defined Radio and its lower cost aspect is gathered. Two practices with the free SDR-J, one for FM radio tuning and one for tuning digital radio, are included. The steps required to install a version of GNU Radio Companion, which it is very suitable for the interests of this project, have also been incorporated in detail, because it has been added an FM receiver code for this program. The novelty of these devices and its compatible programs involve several problems which have been detailed. However, this hardware and software set is an useful tool to put radiocommunication theory into practice. The availability of a program like SDR- J serves as an introductory view given its simplicity and the more complex others are of great help to develop future radio applications. VII Índice Agradecimientos I Prefacio III Resumen V Abstract VII 1 INTRODUCCIÓN 1.1 1.2 1.3 1.4 1 Definiciones previas Análisis inicial 1.2.1 Breve historia de SDR 1.2.2 Evolución actual 1.2.3 RTL Objetivo del proyecto Organización del proyecto 1 1 2 2 3 3 4 2 CONCEPTOS BÁSICOS DE SDR 2.1 2.2 5 Funcionamiento del SDR 2.1.1 En recepción 2.1.2 En transmisión SDR en el mercado actual 6 6 7 7 3 CONCEPTOS DE ELEMENTOS Y ARQUITECTURA HARDWARE 3.1 3.2 3.3 3.4 Nooelec TV28T v2 RTL2832U 3.2.1 Características R820T tuner Información no contrastada 9 10 10 13 13 4 SOFTWARE E INFORMACIÓN GENERAL SOBRE RTL-SDR 4.1 9 Algunas noticias destacadas 4.1.1 LNA4HF: Interest check 4.1.2 Transmitting data with a Raspberry PI and RTL-SDR 4.1.3 ADS-B Active PCB antenna for the RTL-SDR 4.1.4 Creating an FM receiver in GNURadio using an RTL-SDR source IX 17 18 18 18 18 18 Índice X 4.2 Programas habilitados para usar dispositivos RTL 4.2.1 GNU Radio Algunas características de GNU Radio Companion 4.2.2 SDR-J 4.2.3 SDR# 5 PROPUESTAS DE USO DEL RTL-SDR EN PRÁCTICAS DE RADIO DIGITAL 5.1 5.2 5.3 Introducción 5.1.1 Objetivo 5.1.2 Desarrollo FM Receiver 5.2.1 Iniciar el programa 5.2.2 Frecuencia y ajustes DAB Receiver 5.3.1 Iniciar el programa 5.3.2 Ajustes 6 CONCLUSIONES 6.1 6.2 Conclusiones Problemas encontrados 18 18 19 20 21 25 25 26 26 27 27 28 31 31 33 39 39 40 Apéndice A Código del programa FMRADIO de GRC 41 Apéndice B Sobre la instalación de GRC 67 B.1 B.2 B.3 B.4 Introducción Pasos previos GNU Radio Osmocom blocks 67 67 68 68 Apéndice C Instalación de Zadig 71 C.1 Introducción Índice de Figuras Índice de Tablas Índice de Códigos Bibliografía 71 73 75 77 79 1 INTRODUCCIÓN 1.1 Definiciones previas Para un mejor entendimiento de este proyecto se detallan previamente los principales términos y conceptos. Es importante diferenciarlos ya que pueden prestarse a confusión. SDR, Radio Definida por Software: Concepto. Radio en la cual alguna o todas las funciones de la capa física son definidas por software [1]. RTL-SDR: Concepto. Sería la misma definición anterior añadiendo, en particular, para los receptores SDR que usan el demodulador RTL2832U. Es decir, RTL-SDR forma parte del amplio conjunto de SDR. Estos receptores fueron originalmente concebidos para ser receptores de TV. Es el concepto SDR pero, aquí viene la diferencia, de muy bajo coste. Debe tenerse en cuenta que es un concepto aún novedoso y puede ser encontrado en la red simplemente como SDR, que como se ha dicho en el párrafo anterior, lo abarca. Nooelec TV28T: Elemento. Dispositivo usado en este proyecto. Es uno de los receptores de TV digital que usa el demodulador RTL2832U. Otro de los elementos principales de los que está formado es el sintonizador, en este caso modelo R820T. RTL2832U: Elemento. Modelo de demodulador de Realtek y que da nombre al concepto RTLSDR. R820T: Elemento. Modelo de sintonizador de Rafael Micro. Actualmente existen varios modelos de diferentes marcas compatibles con RTL-SDR. Nooelec, por ejemplo, ofrece varios receptores SDR con distintos sintonizadores. 1.2 Análisis inicial Esta sección está ordenada cronológicamente, desde el inicio del SDR hasta la situación actual, pero antes es importante dar una descripción un tanto oficial de SDR, a modo de introducción: 1 INTRODUCCIÓN 2 Un sistema Radio definido por Software, SDR (Software Defined Radio), es un sistema de radiocomunicación donde la mayor parte de los componentes necesarios se implementan en software en lugar de en hardware. Al utilizar esta tecnología, se implementa un receptor Zero-IF o low-IF1 configurable de tal manera que puede utilizarse para diseñar distintos componentes como mezcladores, filtros, amplificadores, moduladores/demoduladores y detectores entre otros e incluso sistemas completos tales como transmisores, receptores, transceptores, osciloscopios, analizadores de espectro o analizadores vectoriales de redes, siendo sus parámetros configurables dinámicamente y por consiguiente aportando una gran flexibilidad a la hora de realizar un sistema de radiocomunicación [2]. Así que con un ordenador doméstico con un puerto USB2 (el usado actualmente), un sistema SDR y una antena que dependerá de las necesidades se puede obtener un sistema radio completo por un precio bastante inferior al que se requeriría para un sistema radio tradicional (con todos sus elementos hardware). 1.2.1 Breve historia de SDR La idea de SDR inicial trata de reducción de costes y aprovechamiento de dispositivos de propósito general. Desde 1991 hasta 1995 surge el proyecto militar SPEAKEasy en USA, un equipo programable que albergaba 10 tipos de tecnologías de comunicaciones inalámbricas con un rango entre los 2 MHz y 200 MHz. La segunda fase del proyecto tardó poco más de un año y trabaja en un rango entre los 4 MHz y los 400 MHz [2]. Surge el SDR Forum, actual Wireless Innovation Forum, en 1996 como grupo de trabajo de un conjunto de grandes empresas. En 2001 comienza el proyecto de GNU3 GNU Radio, una herramienta de Software libre para implementar sistemas SDR. En 2006 se inicia el GRC, GNU Radio Companion, una interfaz gráfica para GNU Radio, que hace mucho más intuitiva la programación. El siguiente hito es el USRP, Universal Software Radio Peripheral, un dispositivo SDR del 2010 no solo importante por sí mismo, sino por hacer común el programa GNU Radio. 1.2.2 Evolución actual Actualmente hay muchos foros que son un hervidero de ideas (y que se nombrarán más adelante) donde los usuarios informan de las pruebas que realizan, las nuevas funciones que encuentran para los muchos programas que van surgiendo y los problemas nuevos a los que se van enfrentando. Y este movimiento es generado gracias a que ahora se encuentran dispositivos receptores muy económicos, por unos diez o veinte euros, lo que lo hace accesible a una gran mayoría [3]. A la vez, los equipos transmisores/receptores están también en auge, ya que un solo dispositivo y distinto software puede aportar soluciones muy diversas. Un claro ejemplo es Noctar, de la empresa Per Vices, el cual abarca desde GPS hasta Bluetooth, pasando por 3G [4]. Y mientras, un compendio de empresas unidas en la labor de unificar fuerzas, estandarizar y llevar una línea común, siguen trabajando desde 1996, la Wireless Innovation Forum, antes conocida como SDR forum [1]. Lo que parece cada vez más claro es que hay dos tendencias claras, por un lado transmisores/receptores de precio económico y por otro solo receptores de un precio ínfimo, tan bajo que permiten una gran apertura 1 Frecuencia Intermedia Serial Bus 3 GNU is Not Unix 2 Universal INTRODUCCIÓN 3 al público, y será este el que guíe el camino de su evolución. 1.2.3 RTL RTL-SDR es un dispositivo SDR muy barato basado en el chip de la familia RTL de Realtek. En principio estaba destinado para el DVB-T4 pero se descubrió en torno al 2010/2011 que podía utilizarse como un sistema SDR de recepción [9]. Para este proyecto se ha elegido el RTL2832U junto al sintonizador R820T, de Rafael Micro; la otra opción era el sintonizador E4000, cuya única ventaja era un mayor rango de frecuencia, con las desventajas de que era más caro, daba peores resultados y, lo que fue más decisivo para la elección tomada, se vendía mucho menos que el otro. Por todo este movimiento es recomendable realizar un primer análisis de esta tendencia ya que puede ser altamente provechosa para la universidad, desde simples actividades para el alumnado a proyectos más complejos que ya se van viendo en la red. En las páginas sucesivas se halla el estado del arte del RTL-SDR, una descripción de los elementos usados y unas prácticas de iniciación y posibles vías para el estudio. 1.3 Objetivo del proyecto El objetivo principal es crear un producto educativo muy económico de laboratorio para prácticas en radio digital basado en el dispositivo Nooelec de la familia RTL. Para ello se investiga sobre receptores radio de bajo coste y se trata de averiguar sus posibles aplicaciones útiles para un laboratorio académico. El objetivo inicial era aportar una plataforma software basada en el hardware del dispositivo RTL con las siguientes funcionalidades: Analizador de espectro. Analizador de la constelación. Demodulador DAB. Para conseguir estos tres objetivos el primer programa en que se pensó fue el GRC pero por los problemas encontrados, descritos en el segundo apartado de Conclusiones, se tuvo que desechar. El motivo es que el uso SDR de los dispositivos de la familia RTL es bastante nuevo y conlleva que la cantidad de información ha estado limitada. Para empezar la documentación oficial es casi nula y los programas que hacen uso (y funcionan correctamente) del dispositivo ahora empiezan a ser más abundantes. Por esta razón la investigación se centró en los diferentes programas que se pueden usar de forma gratuita, pero con el aliciente de tener que ser de fácil instalación y manejo, ya que un requisito debe ser su accesibilidad y simplicidad, y que fueran compatibles con los dispositivos RTL-SDR. El objetivo principal pasó a ser un estudio piloto para animar al estudio de este campo que contiene tantas posibilidades. Y para ejemplificar esta intención fue elegido el SDR-J, un programa que reúne las cualidades necesarias y cumple los tres objetivos marcados anteriormente, convirtiéndose en el programa óptimo para este proyecto. 4 Digital Video Broadcasting – Terrestrial, Difusión de Video Digital - Terrestre 4 INTRODUCCIÓN 1.4 Organización del proyecto En el capítulo dos se analiza brevemente el estado actual del SDR tanto sus características físicas como de los programas que actualmente lo soportan. En el capítulo tres se detallan las características de un dispositivo RTL-SDR y sus dos elementos principales, el modulador RTL2832U y el sintonizador R820T. El capítulo cuatro hace un recorrido de la situación actual de RTL-SDR, con ejemplos de noticias y de programas que soportan esta tecnología. El capítulo cinco es un ejemplo de posible práctica para usar el dispositivo, se hace uso de un programa que hace las funciones de receptor FM y receptor DAB. El último capítulo incluye las conclusiones finales e indica una serie de problemas que tuvieron lugar en el transcurso del desarrollo del proyecto. En los anexos se añade el código de una interfaz gráfica de radio FM para GRC, se explican los problemas y ciertos pasos no intuitivos en Windows 8, Linux, GNUradio y #SDR y como fueron solventadas dichas incidencias. 2 CONCEPTOS BÁSICOS DE SDR No existe, aún, un regulador ni estándar oficial para el SDR, pero la Wireless Innovation Forum, Figura 2.1, junto al Institute of Electrical and Electronic Engineers (IEEE) P1900.1 group han establecido la siguiente definición para SDR: "La radio que, alguna o todas las funciones de la capa física, las defina (realice) mediante software". Además, se encuentra en el primer párrafo de la Wireless Innovation Forum. La modificación de los dispositivos de radio de fácil manejo y rentables se ha convertido en crítica para el negocio debido al crecimiento exponencial de formas y medios en los cuales las personas necesitan comunicarse (comunicación de datos, voz, vídeo, mensajes de difusión, comunicaciones de control y órdenes, de respuesta a emergencias, etc.). La tecnología de la Radio Definida por Software (SDR) aporta la flexibilidad, eficiencia de coste y energía para impulsar las comunicaciones, con amplitud de beneficios para los usuarios finales realizados por los proveedores del servicio y los desarrolladores del producto [8]. Figura 2.1 Logotipo del Wireless Innovation Forum. La Wireless Innovation Forum, anteriormente llamado SDR Forum, fue fundada en 1996, es una corporación sin ánimo de lucro que aboga por el uso innovador del espectro radioeléctrico y el avance de la tecnología radio que soporta las comunicaciones esenciales y críticas mundiales. Los miembros del foro están vinculados al Software Definido por Radio (SDR), Radio Cognitiva (CR) y Acceso Dinámico al Espectro (DSA) y aquello que gira en torno al mercado de las comunicaciones sin cable, a todos los niveles, para reducir los costes, acelerar el desarrollo de la familia de productos, tecnologías y servicios. Este foro es el centro de unión para llevar adelante estos objetivos, proporcionando a sus socios toda la ayuda posible y a todos los niveles. Entre los miembros se encuentran: Google, EADS, NASA Glenn Research 5 CONCEPTOS BÁSICOS DE SDR 6 Center, MIT Lincoln Laboratory, Motorola Solutions, etc. 2.1 Funcionamiento del SDR Partiendo de la Figura 2.2 se describirá SDR por bloques funcionales. Figura 2.2 Diagrama de bloques funcionales de SDR. Imagen obtenida de [2]. A continuación la descripción se dividirá en función de si es recepción o transmisión. El motivo es que los dispositivos RTL son solo de recepción. A tener en cuenta en los dos siguientes subapartados que la señal IF puede ser 0, es decir, del tipo Zero-IF. 2.1.1 En recepción El triángulo equilátero con punta hacia abajo es el equivalente de la antena, justo a continuación se encuentra el bloque RF Front-End que recibe la señal de radiofrecuencia y la pasa a frecuencia intermedia. En la sección IF se encuentran el ADC1 , que pasa la señal analógica a digital y que tiene las siguientes características: Tasa de Muestreo: número de mediciones de la señal analógica por segundo. Rango Dinámico: diferencia entre los valores máximos y mínimos de la señal analógica que es capaz de convertir. Tiempo de Conversión: tiempo que tarda en pasar un dato analógico a digital. Número de niveles: cantidad de valores existentes entre el máximo y el mínimo de la señal analógica, indica la precisión del conversor. El DDC2 se encarga de pasar la frecuencia de IF a BB3 . El bloque que se observa en BB es la parte que se realiza mediante software: demodulación, análisis espectral, etc. 1 Conversor Analógico Digital Digital de Bajada 3 Banda Base 2 Conversor CONCEPTOS BÁSICOS DE SDR 2.1.2 7 En transmisión Caso similar al anterior pero en sentido contrario. Se comienza en BB, procesando la señal mediante software, pasando por el DUC4 se pasa a IF para luego pasar por el DAC5 para obtener la señal analógica que luego el bloque RF Front-End se encarga de amplificar y modular para que la antena pueda transmitir finalmente la señal. 2.2 SDR en el mercado actual Además de la familia de los RTL, que se verán a partir del próximo capítulo hay que mencionar otras dispositivos: 1. USRP: del que se recomienda la lectura de [2] 2. FUNCube: este dispositivo funciona en todos los sistemas operativos típicos de ordenadores, trabajando en un rango de frecuencias entre 150 kHz y 240 MHz y de 420 MHz a 1.9 GHz y un precio de 125 libras (el modelo nuevo). La página oficial es http:// www.funcubedongle.com/ . 3. Noctar: de Per vices [4] con un rango de frecuencias entre 100 kHz y 4 GHz y un precio de 2500 dólares. Y los programas más conocidos son los siguientes: 1. GRC: del que se habla en parte de este proyecto. 2. SDR #: funciona en Windows, de fácil instalación. http:// sdrsharp.com/ . 3. HDSDR: también en Windows, toda la información en http:// www.hdsdr.de/ . Además de estos tres se pueden encontrar muchos programas más pero hay que tener en cuenta que se puede dar el caso que no se hayan actualizado desde hace tiempo o estén en fases muy tempranas de desarrollo. 4 Conversor 5 Conversor Digital de Subida Digital Analógico 3 CONCEPTOS DE ELEMENTOS Y ARQUITECTURA HARDWARE El dispositivo TV28T, Figura 3.1, es un producto comercializado por Nooelec. En los siguientes apartados se introducirán sus principales características y de sus dos elementos principales, el demodulador, RTL2832U, y el sintonizador, R820T. 3.1 Nooelec TV28T v2 Nooelec es una empresa estadounidense dedicada a dar soluciones relacionadas con el mundo de las telecomunicaciones, tienen productos de SDR. En cuanto a la parte de RTL-SDR, es decir, que contienen el modulador RTL2832U, disponen de cuatro receptores SDR con los siguientes sintonizadores: Figura 3.1 Dispositivo con mando a distancia y antena. 9 CONCEPTOS DE ELEMENTOS Y ARQUITECTURA HARDWARE 10 Figura 3.2 Exterior dispositivo Nooelec TV28T. 1. R820T. 2. E4000. 3. FC0013. El TV28T v2, Figura 3.2 y Figura 3.3, usa el R820T y tiene como propiedades un rango de frecuencias aproximado entre 25 MHz y 1750 MHz [14] y que trabaja con una frecuencia de muestreo de 3.2 MHz, aunque se recomienda que sea de 2.8 MHz para evitar pérdidas [15]. La entrada de la antena es un MCX hembra, Figura 3.4. 3.2 RTL2832U Pertenece a la empresa Realtek Semiconductor Corp. Ubicada en Taiwan y fundada en 1987, dedicándose desde entonces a los circuitos integrados. El RTL2832U, Figura 3.5, es un demodulador de Realtek, concretamente es, según la compañía, un demodulador COFDM de televisión digital terrestre, DVB-T, con puerto USB 2.0. Incluye soporte radio para FM, DAB y DAB+. Lleva algoritmos propios y se vende como solución para un amplio rango de aplicaciones PC-TV [16]. El RTL2832U es el primer modulador, y por ello lleva su nombre el concepto, RTL-SDR. La pieza clave que hace que un receptor de TV pase a ser un receptor SDR. 3.2.1 Características COFDM cumple con las siguientes especificaciones: 1. NorDig Unified 1.0.3 2. D -Book 5.0 CONCEPTOS DE ELEMENTOS Y ARQUITECTURA HARDWARE Figura 3.3 Interior dispositivo Nooelec TV28T. 3. EN300 744 (ETSI) Soporta múltiples frecuencias IF, 4.57 MHz o 36.167 MHz, e inversión de espectro. Incluye ISDB-T (SBTVD-T) 1-Seg (televisión japonesa para dispositivos móviles). Soporta entrada de Zero -IF. Cristal de bajo coste para la generación de la señal de reloj. Modo de transmisión automático y detección de intervalos de guarda. Circuito de cancelación de ruido de impulsos. Recuperación de la portadora automática con amplio rango de offset (+- 800 kHz). Rendimiento superior con pre/post/long echo perfil. Circuito de rechazo de interferencia cocanal e interferencia adyacente. Retraso AGC con Take- Over Point (TOP) programable. CAD de 7 bits para medida de niveles de señales de radiofrecuencia. 11 12 CONCEPTOS DE ELEMENTOS Y ARQUITECTURA HARDWARE Figura 3.4 Antena incluida con el dispositivo Nooelec TV28T. Figura 3.5 Demodulador RTL2832U. Filtros hardware MPEG-2 PID. Para el control remoto y "wake up" del puerto infrarrojo soporta los protocolos: 1. Microsoft RC6. 2. NEC, Sony, SIRC, RC-5. Ocho puertos de propósito general de entrada/salida. Interfaz USB 2.0: CONCEPTOS DE ELEMENTOS Y ARQUITECTURA HARDWARE 13 1. Soporta USB Full/High speed. 2. Información del proveedor configurable vía EEPROM externa 3. Supera certificación USB-IF. Alimentación externa de 3.3 V. Empaquetado verde QFN de 48 pines (6x6mm2 ). 3.3 R820T tuner De la empresa Rafael Micro, Rafael Microelectronics, Inc, una empresa creada en 2006 especializada en sintonizadores híbridos de silicio (hybrid silicon tuner). Este sintonizador de TV digital, DVB-T, de silicio de Rafael Micro [17]. En el mercado se encuentran diversos sintonizadores y hasta hace poco el principal era el E4000 de Elonics, pero su mayor coste y menor estabilidad han hecho que vaya perdiendo mercando. Las principales características de R820T son las siguientes: Soporta los estándares de televisión digital: DVB-T, ATSC (USA y otros), DTMB (China y otros) y ISDB-T (Japón y otros). Cumple con las siguientes especificaciones: 1. EN 300 744. 2. Nordig 2.2. 3. D-BOOK 7.0. 4. ARIB B21. 5. ABNT 15604. 6. ATSC A74. 7. GB20600-2006. 8. EN-55020. 9. EN55013. 10. FCC. Consume menos de 190 mA y necesita 3,3 V. Viene en formato de montaje superficial: 24-pin 4x4 QFN lead-free package. Interfaz 2-wired I2C (tipo de bus). 3.4 Información no contrastada Estos sintonizadores, además de no llevar mucho tiempo en el mercado, desde hace poco han incrementado el interés de personas interesadas en averiguar el potencial de estos componentes, así que es fácil encontrar información no oficial de ambas. Se pueden observar unas marcas de agua en las imágenes de los esquemas, esto es debido a que esta información es de dudosa procedencia, no proviniendo de una fuente no oficial, y que se supone que es una versión preliminar del datasheet. 14 CONCEPTOS DE ELEMENTOS Y ARQUITECTURA HARDWARE Figura 3.6 Esquema del sintonizador R820T para la televisión. Figura 3.7 Esquema del sintonizador R820T para el ordenador. Por ejemplo, las Figura 3.6 y la Figura 3.7, son los esquemas del sintonizador para televisión y una computadora e incluyen un demodulador sin especificar marca y modelo. En estos esquemas, comparándolos con la Figura 2.2, se observa que el sintonizador abarca la sección RF y entrega la señal IF, encargándose el demodulador de la sección IF. El diagrama de bloques simplificado se observa en la Figura 3.8 CONCEPTOS DE ELEMENTOS Y ARQUITECTURA HARDWARE Figura 3.8 Diagrama de bloques simplificado del R820T. 15 4 SOFTWARE E INFORMACIÓN GENERAL SOBRE RTL-SDR A continuación se pretende dar una guía para la introducción en el mundo RTL-SDR, se explica el funcionamiento de la página web que se considera clave y pilar esencial de este proyecto y tres programas compatibles con el dispositivo usado. Cabe recordar que poco a poco van surgiendo más programas y que, salvo el SDR-J, los otros dos mencionados ya tienen una trayectoria en SDR. Antes de seguir leyendo hay que aclarar que el concepto de RTL-SDR es bastante novedoso, así que a día de la preparación de este proyecto no hay un solo libro ni "documentación oficial". La aparición de ésta surge como fenómeno al desarrollo de la SDR, mejoras y nuevos programas para radiocomunicaciones y el abaratamiento de los dispositivos, en el caso de este estudio, de los receptores. Pero la ventaja de tener un dispositivo tan barato y tan usado genera el inconveniente de que sin unos organismos reguladores la información se organiza de una forma un tanto caótica y dispersa. Para seguir una investigación exhaustiva de las últimas tendencias y controlar el estado actual de cada investigación habría que consultar a fondo otras páginas, como es el caso de GNU radio, pero para tener una noción general de la diversidad y evolución actual la página www.rtl-sdr.com es la que está siendo referente. Esta página comenzó el 11 de abril de 2013 y el 22 de mayo en twitter. Y comenzó a nutrirse de sitios especializados o de distintas ramas que hacen uso del chip RTL. El funcionamiento consiste en publicar un resumen del tema con sus correspondientes enlaces, y desde aquí pasan a publicarse en Facebook y en Twitter. Las partes de la página son: Buy RTL-SDR doongles. Esta fue unas de las primeras páginas que consulté. Hay muchísimos dispositivos y en esta página fue donde encontré el dispositivo de la marca Nooelec. Radio Signal ID Guide. Esta sección contiene una lista de sonidos y espectros que se corresponden a diferentes tipos de señales. Featured articles. Son hasta la fecha tutoriales, el resto de artículos suelen ser de divulgación sin entrar en tanto detalle. Quick Start Guide. Es la primera parte para usar dispositivos RTL2832U en Windows, consiste en una explicación para instalar Zadig (consultar en Anexos) y algunos enlaces para usar programas como el SDRSharp y para Linux. 17 SOFTWARE E INFORMACIÓN GENERAL SOBRE RTL-SDR 18 About RTL-SDR. Contiene una muy buena introducción del concepto RTL-SDR. 4.1 Algunas noticias destacadas Esta no es una simple sección de la página web, es un apartado que considero que debía ser incluido ya que es la forma de seguir las novedades que van surgiendo en la red. Son noticias destacadas debido a la relación que podrían tener como inicios de investigaciones futuras interesantes para esta escuela. 4.1.1 LNA4HF: Interest check Artículo de http:// www.rtl-sdr.com/ lna4hf-interest-check/ del 19 de noviembre de 2013. Muestra un amplificador LNA de alta frecuencia, de 2 a 30 MHz, diseñado específicamente para los dispositivos DVB-T SDR, según el autor es un prototipo y está sin terminar. Meses antes, en abril, publicó un artículo sobre otro LNA con un rango entre 25 y 2500 MHz y que puso a la venta. 4.1.2 Transmitting data with a Raspberry PI and RTL-SDR Artículo de http:// www.rtl-sdr.com/ transmitting-data-raspberry-pi-rtl-sdr/ del 18 de noviembre de 2013 Considero este artículo importante ya que liga a un receptor RTL-SDR con el dispositivo Raspberry PI, un ordenador de muy bajo coste, para la recepción de una señal generada con otra Raspberry PI, desarrollado para el aprendizaje de la informática y que además de interesar a universidades comienza a interesar también a empresas por su bajo consumo. Se habla de transmitir con la Raspberry y un programa llamado minimodem una señal FSK de 100 MHz. 4.1.3 ADS-B Active PCB antenna for the RTL-SDR Artículo de http:// www.rtl-sdr.com/ ads-b-active-pcb-antenna-rtl-sdr/ del 10 de noviembre de 2013 El autor muestra su antena PCB activa, centrada en una frecuencia de 1090 MHz. En el enlace se muestra el diseño y los resultados obtenidos. 4.1.4 Creating an FM receiver in GNURadio using an RTL-SDR source Artículo de http:// www.rtl-sdr.com/ tutorial-creating-fm-receiver-gnuradio-rtl-sdr/ del 4 de noviembre de 2013 En este se describe como crear mediante bloques un receptor FM. Todo de forma detallada, clara y ordenada. Es un buen ejemplo para probar el dispositivo y dar los primeros pasos con el GNURadio. 4.2 Programas habilitados para usar dispositivos RTL 4.2.1 GNU Radio GNU Radio es un conjunto de herramientas software. Es open-source y libre, Figura 4.1. Implementa radio software proporcionada por bloques de procesamiento de señales. Puede ser usado con hardware de SOFTWARE E INFORMACIÓN GENERAL SOBRE RTL-SDR 19 radiofrecuencia externo de bajo coste y muy accesible, o sin dicho hardware, en un entorno de simulación. Muy usado entre aficionados y entornos académicos y comerciales como soporte en ambos para la investigación de comunicaciones inalámbricas y sistemas radio. GNU Radio tiene licencia GNU GPL v.3 [18], Licencia Pública General de GNU versión 3, este tipo de licencia viene detallado en http:// www.gnu.org/ licenses/ quick-guide-gplv3.html. Figura 4.1 Logotipo de la organización GNU Radio. Sobre el GNU Radio tiene particular interés el software GNU Radio Companion, o GRC, Figura 4.2, que es una herramienta para crear flujos de señal de forma gráfica y generar código fuente de las gráficas de flujo. Hay un grupo de trabajo asignado al desarrollo de GRC. En los anexos se detalla como instalar una versión apropiada de GRC para poder usar el dispositivo RTL-SDR, lo cual puede resultar algo engorroso si no se tienen conocimientos del sistema operativo Linux. Una vez instalado correctamente y comprobar que funcione se puede probar el ejemplo que se detalla en el subapartado de noticias destacadas de la página web www.rtl-sdr.com. A continuación, se detallan algunas características de GRC usando la radio FM de http:// www.instructables.com/ id/ RTLSDR-FM-radio-receiver-with-GNU-Radio-Companion/ del autor v3l0c1r4pt0r, la cual se ha probado con el dispositivo Nooelec TV28T en Linux Mint 15 Cinnamon y funciona correctamente. Figura 4.2 Logotipo e icono de GNU Radio Companion. Algunas características de GNU Radio Companion Al abrir el programa, a la derecha, se encuentran los bloques ordenados por tipos, el orden puede resultar un poco complejo, así que en alguna ocasión puede que haya que mirar todo. De manera muy resumida, y siendo esta una clasificación personal, los bloques pueden ser: 1. Fuente: Todos aquellos bloques que introducen datos. a) Real: Cuando son datos obtenidos de algún dispositivo. b) Simulado: Cuando son generados aleatoriamente por el equipo. c) Fichero: Provienen de un fichero, su origen puede ser creado manualmente o provenir de otra aplicación. SOFTWARE E INFORMACIÓN GENERAL SOBRE RTL-SDR 20 2. Sumidero: a) Gráfico: El resultado se muestra gráficamente, puede ser una gráfica dinámica o estática. b) Fichero: Se almacenan los datos en un fichero. c) Audio: La salida pasa la información a la tarjeta de sonido, usado normalmente para frecuencias audibles por el oído humano. 3. Procesado: Cualquier bloque que continúe con el flujo de la señal y la procese de alguna forma: filtros, amplificadores, conmutadores, operaciones booleanas, etc. Los cuadrados de los lados de los bloques que se observan en la Figura 4.3 definen si el flujo de datos es real, flotante o complejo. Si la salida de un bloque es de un tipo la entrada del siguiente bloque ha de ser del mismo. Figura 4.3 Ejemplo de la radio FM en GRC completo. Por último, el módulo de la fuente RTL-SDR, en la Figura 4.4. Se observa que GRC permite modificar varios valores del dispositivo, como la frecuencia de muestreo, frecuencia central, ganancias, etc. Una vez que se genera el fichero .py y se ejecuta el programa se puede ver en la primera pestaña del display la Figura 4.5 que muestra el espectro de entrada y algunos parámetros para modificar. En la segunda pestaña del display se ve la Figura 4.6 que muestra el espectro de salida y algunos parámetros más. Se aprecia en las gráficas que la calidad de la señal no es muy buena, aún así, en este caso, la frecuencia 99.6 fue la que mayor calidad de sonido tenía. 4.2.2 SDR-J El SDR-J es un programa creado por Jan van Katwijk en septiembre de 2013. Contiene una radio DAB, como la de la Figura 4.7, una radio FM, como la de la Figura 4.8, y una mini radio FM, Figura 4.9. Las dos primeras radios muestran características de ambas y permiten ajustar algunos parámetros. Para información más detallada consultar el ejemplo de prácticas, donde se explica el funcionamiento del SOFTWARE E INFORMACIÓN GENERAL SOBRE RTL-SDR Figura 4.4 21 Bloque y propiedades de la fuente RTL-SDR. programa. La tercera radio no tiene interés ya que es como la radio FM pero más simplificada. 4.2.3 SDR# Es una aplicación de Radio Definida por Software de alto rendimiento. Está escrito en C#. Trabaja en frecuencias desde los kHz hasta los cientos de MHz. El código fuente se ofrece para propósitos educativos y de desarrollo de plugins. La página web oficial http:// sdrsharp.com/ contiene noticias relacionadas con el programa, enlaces relacionados y el programa y plugins para descargar. 22 SOFTWARE E INFORMACIÓN GENERAL SOBRE RTL-SDR Figura 4.5 Display del espectro de entrada de la radio FM. SOFTWARE E INFORMACIÓN GENERAL SOBRE RTL-SDR Figura 4.6 Display del espectro de salida de la radio FM. Figura 4.7 Radio DAB de SDR-J. 23 24 SOFTWARE E INFORMACIÓN GENERAL SOBRE RTL-SDR Figura 4.8 Figura 4.9 Radio FM de SDR-J. Radio simplificada FM de SDR-J. 5 PROPUESTAS DE USO DEL RTL-SDR EN PRÁCTICAS DE RADIO DIGITAL 5.1 Introducción Se pretende que esta primera práctica la pueda realizar cualquier persona, esté o no en algún laboratorio de la universidad, así que el sistema operativo elegido es Windows, ya que la mayoría de usuarios disponen de éste. De cualquier manera, para aprovechar mejor los dispositivos RTL-SDR conviene instalar Linux, donde existe una gran variedad de programas que ofrecen muchísima libertad en cuanto a su manipulación. El programa elegido para hacer esta práctica inicial sobre RTL-SDR, es el SDR-J de Jan van Katwijk por ser fácil e intuitivo y además ofrecer una serie de opciones para mostrar las características y propiedades tanto de FM como de DAB. Existen dos versiones, la de 32 bits y la de 64 bits, dependiendo del equipo se debe instalar una u otra. Es imprescindible haber hecho la instalación de Zadig para que reconozca el dispositivo RTL. La explicación está incluida en el Apéndice C. Se ha comprobado que funciona correctamente en Windows (XP, 7 y 8). El programa para diversas plataformas y el manual en inglés se pueden encontrar en la página web www.sdr-j.tk. En cuanto al dispositivo Nooelec, con una entrada MCX hembra, dispone de su propia antena, Figura 5.1, no muy buena, con una salida MCX macho. Si se quiere usar otra antena hay que recordar que seguramente haya que incorporar un adaptador para MCX o un cable con una salida MCX macho por un lado y la que le corresponda para la antena, que normalmente son SMA (macho o hembra) o puede que también BCN. Si la práctica se realiza en un laboratorio y el alumnado dispone de su propio portátil el coste es de unos 20 euros por alumno, que es el precio del Nooelec TV28T, dependiendo de las variaciones del precio de venta y el cambio dólar-euro. Además, para el caso de un laboratorio de tamaño estándar bastaría con la antena que viene de serie. En caso de ser necesaria una antena diferente, el cable o adaptador cuesta en torno a unos 2 euros. El precio de la antena es muy variable, dependiendo de la calidad y el rango de frecuencias para la que esté hecha. 25 PROPUESTAS DE USO DEL RTL-SDR EN PRÁCTICAS DE RADIO DIGITAL 26 Figura 5.1 5.1.1 Antena serie de los dispositivos SDR de Nooelec. Objetivo El objetivo de esta propuesta de práctica doble es dar al usuario interesado las herramientas necesarias para una primera toma de contacto con un dispositivo RTL-SDR, en el caso de este proyecto con el Nooelec TV28T. Al ser un programa en Windows no requiere tener conocimientos de Sistemas Operativos, además el programador, Jan van Katwijk, ha realizado un gran trabajo ya que se pueden usar de manera simple y en caso de estar interesado se puede ahondar en las características de la radio FM y DAB. 5.1.2 Desarrollo Para la realización de esta propuesta recomiendo comenzar con el programa FM Receiver, es más simple y se puede probar en cualquier lugar. Tras finalizar éste se puede abrir el programa DAB Receiver, es algo más complejo y no se puede probar en cualquier lugar, la emisión de DAB en España se limita a Madrid y Barcelona. Una vez abierto uno de los dos programas se debe seguir las instrucciones del apartado correspondiente de este capítulo. Están expuestas por orden de uso, es decir, se comienza explicando cómo se inicia el programa y se termina cerrando el programa, y cada paso con su botón o pantalla correspondiente. Se ha hecho de este modo por considerar que botón por botón es la forma más simple. Además se añaden algunas explicaciones para dar mayor profundidad. PROPUESTAS DE USO DEL RTL-SDR EN PRÁCTICAS DE RADIO DIGITAL Figura 5.2 27 Captura de FM Receiver 0.92 con numeración (versión usada 0.96, no afecta a la numeración). 5.2 FM Receiver Este receptor FM, aparte del funcionamiento típico permite ver el espectro de potencia y realizar cambios en algunos parámetros que afectan a la forma de oírse, lo que hace que sea interesante probar este programa. Para describirlo creo que la mejor forma es ir describiendo los distintos botones/selectores (numerados) y pantallas, Figura 5.2. Como se trata de ir describiéndolo el orden será el que considero más apropiado para su mejor entendimiento. 5.2.1 Iniciar el programa 1 INPUT DEVICE. Primer botón que se debe usar, las opciones que muestra son las siguientes, Figura 5.3. 1. Dabstick: usa el dispositivo RTL, que previamente ha debido usarse Zadig para que sea reconocido. Usando la antena que viene de serie ha de saberse que la calidad de la señal recibida será muy baja. 2. File input: para usar fichero de entrada. El formato es “.raw” pero el problema es que con la versión actual se cierra el programa al seleccionarlo. 3. No device: no recibe nada así que no hace nada. Por si se quiere abrir y no se dispone del dispositivo ni de algún fichero de entrada. 3 OUTPUT DEVICE Depende del equipo, ofrecerá distintas salidas, normalmente ofrece varias, lo típico es seleccionar alguna de la salida de los altavoces, Figura 5.4 PROPUESTAS DE USO DEL RTL-SDR EN PRÁCTICAS DE RADIO DIGITAL 28 Figura 5.3 Figura 5.4 Selector 1. Input device. Selector 3. Output device. Figura 5.5 Figura 5.6 Selector 2. Start. Selector 11. Raw input dump. 2 START Inicia el proceso, Figura 5.5. 11 RAW INPUT DUMP graba los datos recibidos por el dispositivo en bruto con el formato “.raw”. Si se pulsa de nuevo para de grabar, Figura 5.6. 12 AUDIO DUMP graba la salida de audio en formato “.wav”. Si se pulsa de nuevo para de grabar, Figura 5.7. 5.2.2 Frecuencia y ajustes Una vez que está funcionando habría que elegir la frecuencia. Esta actividad se puede realizar de varias formas: 1. La forma más sencilla es usando el teclado numérico del centro de la interfaz, Figura 5.8. Por ejemplo, para sintonizar 98,8 MHz se marca 9 8 8 0 0 y después el botón “kHz”. 2. Sobre el display superior, pinchando con el ratón. 3. Con el botón izquierda o el botón derecha del teclado. 4. Pulsando los botones 7 F++ y 8 F–, Figura 5.9, se incrementará o disminuirá tanto como kHz se hayan marcado en el cuadro de selección 10, situado en Figura 5.11. 5. Usando los botones Fc++ y Fc– marcados con el número 9, Figura 5.10, que va cambiando la frecuencia dando saltos según el cuadro 10, situado en Figura 5.11. En la parte superior se encuentran dos displays: 1. El superior, Figura 5.12, muestra el espectro de los datos recibidos por el dispositivo. 2. El inferior, Figura 5.12, muestra el espectro de los datos ya decodificados. PROPUESTAS DE USO DEL RTL-SDR EN PRÁCTICAS DE RADIO DIGITAL Figura 5.7 Figura 5.8 29 Selector 12. Audio dump. Teclado numérico y selectores para el control de la frecuencia. Figura 5.9 Figura 5.10 Selectores f++ y f–. Selectores fc++ y fc–. Bajo el display inferior a la izquierda se encuentra el selector 6 que permite elegir entre mostrar el espectro o el espectro en cascada. Bajo el display inferior a la derecha, Figura 5.13, de izquierda a derecha se muestran tres pantallas con tres valores: 1. Ratio o tasa de salida. 2. Tasa de procesamiento de la señal FM. 3. Tasa recibida por el stick (dispositivo). Las barras y el selector a la derecha de "freq corrector" de la Figura 5.14 son: 1. La barra 14 controla la atenuación HF. 2. La barra 15 controla el balance entre las partes I y Q de la señal de entrada. 3. La barra 5 es el volumen general. 4. El selector 13 FREQ CORRECTOR es un corrector de frecuencia preciso. En la parte inferior se encuentran varios botones y displays: El selector 20 indica si están activados filtros adicionales. El cuadro de selección 31 elige la intensidad con que se aplica el filtro. El selector 21 permite elegir entre 5 decodificadores de FM diferentes, Figura 5.15. El nombre del decodificador viene indicado a la derecha: 1. Difference based 2. Complex baseband D 3. Mixed demulator 4. Pll decoder 5. Real baseband delay PROPUESTAS DE USO DEL RTL-SDR EN PRÁCTICAS DE RADIO DIGITAL 30 Figura 5.11 Figura 5.12 Selectores de salto de frecuencia. Pantallas de espectro de frecuencia, la superior es la recibida y la inferior la decodificada. Figura 5.13 Información de tasas de datos. Figura 5.14 Diversos controles. El selector 22 permite elegir decodificar como mono o estéreo. El selector 23 permite entre elegir una salida mono o estéreo (siempre que se haya decodificado en estéreo). La barra 30 es el balance de la salida izquierda y derecha. El selector 29 permite decodificar con uno de los dos decodificadores disponibles o no decodificar, Figura 5.16. La información decodificada se muestra a la derecha del selector. El selector 24 permite elegir varias vistas diferentes del espectro de la señal decodificada (el display inferior). El selector 25 permite elegir el filtro de de-énfasis, no activarlo o un valor de “50” o “75”. El selector 26 es un filtro Low Pass, si no se quiere incluir hay que elegir “none”. El selector 27, si está activado muestra los displays que se sitúan en la parte inferior derecha, Figura 5.17, con una velocidad de refresco de 1 segundo. Los valores que se muestran son: 1. Pilotstrenght fuerza de la señal piloto. 2. Rdsstrenght fuerza de la señal rds. 3. Noisestrengh fuerza del ruido. El selector 28 SAVE almacena los valores anteriores en un fichero. QUIT Para cerrar el programa, si está grabando lo guarda y cierra, Figura 5.18. PROPUESTAS DE USO DEL RTL-SDR EN PRÁCTICAS DE RADIO DIGITAL Figura 5.15 Selector 21. Decodificadores. Figura 5.16 Figura 5.17 31 Selector 29. RDS. Displays de información sobre la señal recibida. Figura 5.18 Selector Quit. 5.3 DAB Receiver Ante de nada, para aquel que quiera ampliar información o consultar alguna particularidad debe saber que la regulación de DAB se encuentra repartida en la página web de European Telecommunications Standards Institute y que se puede encontrar de forma resumida en el libro de Transmisión por Radio [5]. La radio DAB surge como una mejora de la radio FM ideada por fabricantes y aquí en España no tomada con demasiado interés por parte de usuarios y aún menos del estado, que la ha eliminado de casi la totalidad del territorio español, salvo Madrid y Barcelona. La solución encontrada ha sido usar dos ficheros cedidos por el programados, uno simula una señal sin ruido y el otro son los datos de una señal grabada en Italia. La descripción del programa se hará de forma similar al de FM Receiver, Figura 5.19. 5.3.1 Iniciar el programa 1 INPUT DEVICE, Figura 5.20. Primer botón que debemos usar. Permite elegir entre: 1. Dabstick: usa el dispositivo RTL, que previamente ha debido usarse Zadig para que sea reconocido. Como se ha mencionado antes, en España solo es posible en Madrid y Barcelona. 2. File input: para usar fichero de entrada. El formato es “.raw” y son datos en bruto I/Q, permite seguir usando los controles, la única diferencia es que da igual la frecuencia en la que se centre, ya que los datos recibidos por el dispositivo son los mismos. 32 PROPUESTAS DE USO DEL RTL-SDR EN PRÁCTICAS DE RADIO DIGITAL Figura 5.19 DAB Receiver con numeración. Figura 5.20 Selector 1. Input device. Figura 5.21 Selector 2. Mode. 3. No device: no recibe nada así que no hace nada. Por si se quiere abrir y no se dispone del dispositivo ni de algún fichero de entrada. 2 MODE, Figura 5.21. Se puede elegir entre diversos modos, por defecto es el modo I, para bandas SFN de radiodifusión terrenal, que son aquellas frecuencias que antiguamente se usaban para la televisión en Banda III. El ejemplo teórico “testmode-II.raw” fue grabado distinto así que para usarlo hay que colocar el selector en modo II. Este modo y el modo III se destinan a redes locales por cable. El modo IV está diseñado para redes SFN por satélite en Banda L [5]. Cada uno de ellos tiene unas características especiales, como se ve en la Tabla 5.1. PROPUESTAS DE USO DEL RTL-SDR EN PRÁCTICAS DE RADIO DIGITAL Tabla 5.1 A B C D E F G H I J K L M N O 33 Características DAB en función del modo. Tabla obtenida de [5]. Período de símbolo, Tsimb (µs) Tiempo útil, Tu (µs) Tiempo de guarda, TS (µs) Número de portadoras, N Número de bits por símbolo Período de trama, Tt (µs) Bloques FIB por trama Bits FIB codificados por trama Velocidad media FB (kbit/s) Símbolos FIC por trama Campos CIF por trama Duración símbolo nulo (µs) Símbolos COFDM por trama Separación entre portadoras (kHz) Anchura de banda (kHz) Figura 5.22 MI 1.246 1.000 246 1.536 3.072 96 12 9.216 96 3 4 1.297 72 1 1.536 M II 312 250 62 384 768 24 3 2.304 96 3 1 324 72 4 1.536 M III 156 125 31 192 384 24 4 3.072 128 3 1 168 144 8 1.536 M IV 623 500 123 768 1.536 48 6 4.608 96 3 2 648 72 2 1.536 Relación C = A−B E = 2×D I = 768 × H J = I/G K = I/E P = D×N Selector 3. Banda. 3 BAND, Figura 5.22. Por defecto es la banda III. Según la banda que se elija se dispondrá de unos canales u otros. 1. Banda L: banda con canales asignados para DAB, en orden de GHz, Figura 5.3. 2. Banda III: banda VHF, entre los 174 y 230 MHz. Especialmente dedicada a audio y video, Figura 5.2. La nomenclatura usada es debido a que los canales que se usaban para la televisión analógica eran de 7 MHz. Cada canal DAB tiene un tamaño de 1,536 MHz, así que por cada antiguo canal se pueden obtener cuatro nuevos canales de DAB, designados por: A, B, C y D. 4 CHANNEL. Diverso en función de la banda elegida antes. Para la banda III los canales son los de la Tabla 5.2 Para la banda L los canales son los de la Tabla 5.3 19 SELECT OUTPUT, Figura 5.23. Depende del equipo, ofrecerá distintas salidas, normalmente ofrece varias, lo típico es seleccionar alguna de la salida de los altavoces. En mi portátil, por ejemplo, ofrece cuatro posibilidades. 14 START, Figura 5.24. Para iniciar el proceso. Puede tardar un poco, en función a la calidad de la señal recibida, esto es debido a que el programa tiene que sincronizar los datos recibidos. 5.3.2 Ajustes Tras pulsar START aparecen tres valores a la derecha de CHANNEL, Figura 5.25 de izquierda a derecha: 34 PROPUESTAS DE USO DEL RTL-SDR EN PRÁCTICAS DE RADIO DIGITAL Tabla 5.2 Lista de canales de la banda III. Block 5A 5B 5C 5D 6A 6B 6C 6D 7A 7B 7C 7D 8A 8B 8C 8D 9A 9B 9C 9D 10A 10B 10C 10D 10N 11A 11B 11C 11D 11N 12A 12B 12C 12D 12N 13A 13B 13C 13D 13E 13F Centre Frequency 174.928 MHz 176.640 MHz 178.352 MHz 180.064 MHz 181.936 MHz 183.648 MHz 185.360 MHz 187.072 MHz 188.928 MHz 190.640 MHz 192.352 MHz 194.064 MHz 195.936 MHz 197.648 MHz 199.360 MHz 201.072 MHz 202.928 MHz 204.640 MHz 206.352 MHz 208.064 MHz 209.936 MHz 211.648 MHz 213.360 MHz 215.072 MHz 210.096 MHz 216.928 MHz 218.640 MHz 220.352 MHz 222.064 MHz 217.088 MHz 223.936 MHz 225.648 MHz 227.360 MHz 229.072 MHz 224.096 MHz 230.784 MHz 232.496 MHz 234.208 MHz 235.776 MHz 237.488 MHz 239.200 MHz 1. El primer valor indica el desplazamiento (offset) detectado en kHz. El programa lo detecta y corrige esta desviación hasta que queda sincronizada, quedando un valor de 0 en caso de llegar una señal perfecta. PROPUESTAS DE USO DEL RTL-SDR EN PRÁCTICAS DE RADIO DIGITAL Tabla 5.3 Lista de canales de la banda L. Block LA LB LC LD LE LF LG LH LI LJ LK LL LM LN LO LP Figura 5.23 Center Frequency 1452.960 MHz 1454.572 MHz 1456.384 MHz 1458.096 MHz 1459.808 MHz 1461.520 MHz 1463.232 MHz 1464.944 MHz 1466.656 MHz 1468.368 MHz 1470.080 MHz 1471.792 MHz 1473.504 MHz 1475.216 MHz 1476.928 MHz 1478.640 MHz Selector 19. Selección de la salida. Figura 5.24 Figura 5.25 35 Selector 14. Inicio. Información de las tramas recibidas. 2. El segundo valor indica la longitud de las tramas detectadas, que son de 196608. 3. El tercer valor indica la frecuencia de muestreo, que para DAB es de 2048000. Bajo los botones de BANDA y CHANNEL y los displays mencionados antes, Figura 5.26, se halla información de la estación seleccionada. 20 STATION Figura 5.27 En un canal van multiplexadas varias estaciones, y la que se elija es la que se reproducirá. Depende del canal y la ubicación habrá unas u otras estaciones a elegir. La pantalla de arriba a la izquierda, Figura 5.28, muestra la constelación I/Q, es decir, los símbolos OFDM recibidos, si se han realizado correctamente los pasos previos debería verse una nube de puntos. En caso 36 PROPUESTAS DE USO DEL RTL-SDR EN PRÁCTICAS DE RADIO DIGITAL Figura 5.26 Información de la estación. Figura 5.27 Figura 5.28 Figura 5.29 Lista de estaciones. Constelación de la estación. Selector 7. Spectrum/waterfall. de usar una simulación teórica se vería que los puntos se encuentran mucho más concentrados. 7 SPECTRUM/WATERFALL, Figura 5.29. Este selector permite elegir la visualización de la pantalla superior derecha. 1. Espectro: Muestra una gráfica con frecuencias en el eje horizontal y potencia recibida en decibelios (dBm) en el eje vertical, Figura 5.30. 2. Espectro en cascada: donde el eje horizontal es la frecuencia y el eje vertical es la potencia recibida, se representa con colores y está en movimiento (desplazamiento constante en función del tiempo), Figura 5.31. 18 DABSTICK GAIN es la ganancia del dispositivo, a mayor valor mayor ganancia, los valores seleccionables están entre 0 y 17. Dependiendo de la antena y la ubicación la calidad de la señal variará. En la parte inferior izquierda, Figura 5.32 se muestran seis valores distintos que son: 1. UEPFLAG: Unequal Error Protection. Mientras la bandera esté a uno la calidad es suficiente para poder escuchar el canal. En el momento en que esté a cero significa que el nivel de calidad es PROPUESTAS DE USO DEL RTL-SDR EN PRÁCTICAS DE RADIO DIGITAL Figura 5.30 Figura 5.31 37 Pantalla con el espectro. Pantalla con el espectro en cascada. Figura 5.32 Figura 5.33 Información diversa. Selector 12. Reset. inferior al establecido y se dejaría de oír. 2. START ADDR 3. LENGTH 4. PROT LEVEL: Nivel de protección. 5. BIT RATE: Tasa error bit. 6. ASCTy: Audio Service Component Type. 12 RESET, Figura 5.33. Es un botón de reinicio, sería como volver a abrir el programa y llegar hasta el paso de START. 38 PROPUESTAS DE USO DEL RTL-SDR EN PRÁCTICAS DE RADIO DIGITAL Figura 5.34 Selector 15. Quit. Salida de DAB Receiver. 16 DUMP graba los datos recibidos por el dispositivo en bruto con el formato “.raw”. Si se pulsa de nuevo para de grabar. Similar al de FM Receiver. 17AUDIO-DUMP graba la salida de audio en formato “.wav”. Si se pulsa de nuevo para de grabar. Similar al de FM Receiver. 15 QUIT, Figure 5.34. Para cerrar el programa (si se está grabando guarda automáticamente y se cierra). 6 CONCLUSIONES 6.1 Conclusiones Como primera conclusión hay que decir que no es lo que el RTL-SDR haya hecho, es lo que está por hacer. Lo que más me llamó la atención sobre el tema cuando empecé a leer fue las enormes posibilidades que tiene. Un dispositivo pequeño y económico que permite recibir señales entre los 30 MHz hasta los 1800 MHz. Es una oportunidad para que aficionados, académicos e incluso empresas puedan experimentar y desarrollar nuevas líneas de investigación y de productos. Empiezan a salir proyectos en los cuales intervienen otros productos de bajo coste y se desarrollan piezas específicas para estos dispositivos. En el campo académico, para ser más específico, esta escuela, la Escuela Técnica Superior de Ingeniería de Sevilla, tiene un proyecto de SDR con un dispositivo USRP, el cual es bastante caro. Ésta es la oportunidad de aprovechar ese proyecto. El concepto es simple, usar dicho USRP, transmisor, con dispositivos RLT-SDR, receptores, que con el precio que tienen un departamento podría adquirir varios de ellos fácilmente e incluso los alumnos, más de uno seguramente, podrían comprar. La implementación está casi hecha. En GNU Radio Companion están implementados ya los ejercicios que se hicieron en el anterior proyecto tanto para transmisor y receptor. Para transmitir no habría que cambiar nada y en cuanto al receptor habría que cambiar la fuente de entrada que está hecha específica para USRP. Para adaptarla a la tecnología RTL-SDR hay que tener en cuenta que hay que cambiar el bloque de fuente (para RTL-SDR hay dos fuentes disponibles) y seguramente añadir algún otro bloque. Todo esto no se ha probado pero en este proyecto sí se ha probado que el programa es compatible, al menos, con el dispositivo TV28T (Apartado 4.2.1). Personalmente veo un gran futuro al desarrollo combinado con dispositivos como la Raspberry, que es otro equipo de bajo coste. Las implicaciones que tiene son que ahora mismo mucha gente tiene la posibilidad de aprender, manejar y desarrollar sobre las radiocomunicaciones, además de forma práctica, algo que estaba restringido a aquellos que dispusiesen de los equipos necesarios. Con la llegada del SDR se abrió pero es ahora cuando empieza a ser una actividad accesible. 39 40 CONCLUSIONES 6.2 Problemas encontrados Durante el desarrollo del proyecto el principal problema ha sido una falta de conocimientos de Linux, la correcta instalación del GNU Radio Companion para que permita el uso de la tecnología RTL no es trivial. Requiere soltura y un manejo avanzado ya que el menor desvío de uno de los múltiples pasos implica no solo el no funcionamiento correcto del dispositivo sino poder dejar inutilizado el sistema operativo. En mi caso, de tres ordenadores, en solo uno he conseguido usar el GRC con el dispositivo. Uno de ellos dejó de funcionar, totalmente. Otro parcialmente, viéndose afectada la parte gráfica e incluso de manejo. Otro problema es el uso compartido de varios sistemas operativos (cuidado con la nueva actualización de Windows 8). Otra característica a desear en aquellos que quieran ahondar en los programas, un claro ejemplo es GNU Radio, son conocimientos en lenguajes de programación, como Python y C# como claros ejemplos. Por último, y siendo este párrafo también una conclusión, existe una necesidad de cierto orden, existen muchos grupos que se dedican a investigar, alguna página que se dedica a divulgar pero por ahora no se encuentra casi nada con carácter académico. Se pueden encontrar vídeos y manuales pero muchos de ellos incompletos y de difícil entendimiento. Aún no hay bibliografía sobre el tema que pueda servir de base. Como recomendación: tiempo y paciencia, hay mucha información pero dispersa, Linux puede resultar tedioso, al menos para una persona con un nivel muy básico, pero la evolución que se observa en la red sobre RTL, es increíble las nuevas versiones de programas y las creaciones de aficionados y universitarios que se están sucediendo desde hace algunos meses. Apéndice A Código del programa FMRADIO de GRC Código de la radio FM para GNU Radio Companion creado por v3l0c1r4pt0r. Código A.1 fmradio.grc. <?xml version =’1.0’ encoding=’ASCII’?> <flow_graph> <timestamp>Wed Oct 30 20:14:16 2013</timestamp> <block> <key>options</key> <param> <key>id</key> <value>top_block</value> </param> <param> <key>_enabled</key> <value>True</value> </param> <param> <key> title </key> <value>FM Radio</value> </param> <param> <key>author</key> <value></value> </param> <param> <key> description </key> <value></value> </param> <param> <key>window_size</key> <value>1280, 1024</value> 41 Apéndice A. Código del programa FMRADIO de GRC 42 </param> <param> <key>generate_options</key> <value>wx_gui</value> </param> <param> <key>category</key> <value>Custom</value> </param> <param> <key>run_options</key> <value>prompt</value> </param> <param> <key>run</key> <value>True</value> </param> <param> <key>max_nouts</key> <value>0</value> </param> <param> <key>realtime_scheduling </key> <value></value> </param> <param> <key>_coordinate</key> <value>(93, 250)</value> </param> <param> <key>_rotation </key> <value>0</value> </param> </block> <block> <key>variable</key> <param> <key>id</key> <value>seek</value> </param> <param> <key>_enabled</key> <value>False</value> </param> <param> <key>value</key> <value>0</value> </param> <param> 43 <key>_coordinate</key> <value>(263, 166)</value> </param> <param> <key>_rotation </key> <value>0</value> </param> </block> <block> <key>variable</key> <param> <key>id</key> <value>freq</value> </param> <param> <key>_enabled</key> <value>False</value> </param> <param> <key>value</key> <value>90.2e6</value> </param> <param> <key>_coordinate</key> <value>(49, 351)</value> </param> <param> <key>_rotation </key> <value>0</value> </param> </block> <block> <key>variable</key> <param> <key>id</key> <value>samp_rate</value> </param> <param> <key>_enabled</key> <value>True</value> </param> <param> <key>value</key> <value>2e6</value> </param> <param> <key>_coordinate</key> <value>(155, 343)</value> </param> 44 Apéndice A. Código del programa FMRADIO de GRC <param> <key>_rotation </key> <value>0</value> </param> </block> <block> <key>variable</key> <param> <key>id</key> <value>taps</value> </param> <param> <key>_enabled</key> <value>False</value> </param> <param> <key>value</key> <value> firdes . low_pass(1,samp_rate, cutoff , width)</value> </param> <param> <key>_coordinate</key> <value>(94, 151)</value> </param> <param> <key>_rotation </key> <value>0</value> </param> </block> <block> <key>variable</key> <param> <key>id</key> <value>sample</value> </param> <param> <key>_enabled</key> <value>True</value> </param> <param> <key>value</key> <value>500e3</value> </param> <param> <key>_coordinate</key> <value>(280, 254)</value> </param> <param> <key>_rotation </key> <value>0</value> 45 </param> </block> <block> <key>audio_sink</key> <param> <key>id</key> <value>audio_sink_0</value> </param> <param> <key>_enabled</key> <value>True</value> </param> <param> <key>samp_rate</key> <value>48000</value> </param> <param> <key>device_name</key> <value></value> </param> <param> <key>ok_to_block</key> <value>True</value> </param> <param> <key>num_inputs</key> <value>1</value> </param> <param> <key> affinity </key> <value></value> </param> <param> <key>_coordinate</key> <value>(815, 478)</value> </param> <param> <key>_rotation </key> <value>0</value> </param> </block> <block> <key>rational_resampler_xxx</key> <param> <key>id</key> <value>rational_resampler_xxx_0 </value> </param> <param> <key>_enabled</key> Apéndice A. Código del programa FMRADIO de GRC 46 <value>True</value> </param> <param> <key>type</key> <value>ccc</value> </param> <param> <key>interp</key> <value>int (sample)</value> </param> <param> <key>decim</key> <value>int (samp_rate)</value> </param> <param> <key>taps</key> <value></value> </param> <param> <key>fbw</key> <value>0</value> </param> <param> <key> affinity </key> <value></value> </param> <param> <key>minoutbuf</key> <value>0</value> </param> <param> <key>_coordinate</key> <value>(354, 311)</value> </param> <param> <key>_rotation </key> <value>0</value> </param> </block> <block> <key>analog_wfm_rcv</key> <param> <key>id</key> <value>analog_wfm_rcv_0</value> </param> <param> <key>_enabled</key> <value>True</value> </param> 47 <param> <key>quad_rate</key> <value>sample</value> </param> <param> <key>audio_decimation</key> <value>10</value> </param> <param> <key> affinity </key> <value></value> </param> <param> <key>minoutbuf</key> <value>0</value> </param> <param> <key>_coordinate</key> <value>(849, 279)</value> </param> <param> <key>_rotation </key> <value>0</value> </param> </block> <block> <key>rational_resampler_xxx</key> <param> <key>id</key> <value>rational_resampler_xxx_1 </value> </param> <param> <key>_enabled</key> <value>True</value> </param> <param> <key>type</key> <value> fff </value> </param> <param> <key>interp</key> <value>48</value> </param> <param> <key>decim</key> <value>int (sample/10e3)</value> </param> <param> <key>taps</key> Apéndice A. Código del programa FMRADIO de GRC 48 <value></value> </param> <param> <key>fbw</key> <value>0</value> </param> <param> <key> affinity </key> <value></value> </param> <param> <key>minoutbuf</key> <value>0</value> </param> <param> <key>_coordinate</key> <value>(340, 453)</value> </param> <param> <key>_rotation </key> <value>0</value> </param> </block> <block> <key>notebook</key> <param> <key>id</key> <value>notebook</value> </param> <param> <key>_enabled</key> <value>True</value> </param> <param> <key>style</key> <value>wx.NB_TOP</value> </param> <param> <key>labels</key> <value>[’ Input ’, ’Output ’]</ value> </param> <param> <key>grid_pos</key> <value></value> </param> <param> <key>notebook</key> <value></value> </param> 49 <param> <key>_coordinate</key> <value>(79, 609)</value> </param> <param> <key>_rotation </key> <value>0</value> </param> </block> <block> <key>wxgui_fftsink2</key> <param> <key>id</key> <value>wxgui_fftsink2_1</value> </param> <param> <key>_enabled</key> <value>True</value> </param> <param> <key>type</key> <value> float </value> </param> <param> <key> title </key> <value>Output</value> </param> <param> <key>samp_rate</key> <value>samp_rate</value> </param> <param> <key>baseband_freq</key> <value>0</value> </param> <param> <key>y_per_div</key> <value>10</value> </param> <param> <key>y_divs</key> <value>10</value> </param> <param> <key> ref_level </key> <value>0</value> </param> <param> <key>ref_scale </key> Apéndice A. Código del programa FMRADIO de GRC 50 <value>2.0</value> </param> <param> <key> fft_size </key> <value>1024</value> </param> <param> <key> fft_rate </key> <value>15</value> </param> <param> <key>peak_hold</key> <value>False</value> </param> <param> <key>average</key> <value>False</value> </param> <param> <key>avg_alpha</key> <value>0</value> </param> <param> <key>win</key> <value>None</value> </param> <param> <key>win_size</key> <value></value> </param> <param> <key>grid_pos</key> <value></value> </param> <param> <key>notebook</key> <value>notebook,1</value> </param> <param> <key>freqvar</key> <value>None</value> </param> <param> <key> affinity </key> <value></value> </param> <param> <key>_coordinate</key> <value>(811, 526)</value> 51 </param> <param> <key>_rotation </key> <value>0</value> </param> </block> <block> <key>blocks_multiply_const_vxx</key> <param> <key>id</key> <value>blocks_multiply_const_vxx_0</value> </param> <param> <key>_enabled</key> <value>True</value> </param> <param> <key>type</key> <value> float </value> </param> <param> <key>const</key> <value>volume</value> </param> <param> <key>vlen</key> <value>1</value> </param> <param> <key> affinity </key> <value></value> </param> <param> <key>minoutbuf</key> <value>0</value> </param> <param> <key>_coordinate</key> <value>(604, 478)</value> </param> <param> <key>_rotation </key> <value>0</value> </param> </block> <block> <key> variable_slider </key> <param> <key>id</key> Apéndice A. Código del programa FMRADIO de GRC 52 <value>volume</value> </param> <param> <key>_enabled</key> <value>True</value> </param> <param> <key>label</key> <value>Volume</value> </param> <param> <key>value</key> <value>1</value> </param> <param> <key>min</key> <value>1e−3</value> </param> <param> <key>max</key> <value>10</value> </param> <param> <key>num_steps</key> <value>100</value> </param> <param> <key>style</key> <value>wx.SL_HORIZONTAL</value> </param> <param> <key>converver</key> <value> float_converter </value> </param> <param> <key>grid_pos</key> <value></value> </param> <param> <key>notebook</key> <value></value> </param> <param> <key>_coordinate</key> <value>(607, 527)</value> </param> <param> <key>_rotation </key> <value>0</value> 53 </param> </block> <block> <key> variable_slider </key> <param> <key>id</key> <value> cutoff </value> </param> <param> <key>_enabled</key> <value>True</value> </param> <param> <key>label</key> <value>Cutoff</value> </param> <param> <key>value</key> <value>100e3</value> </param> <param> <key>min</key> <value>1e3</value> </param> <param> <key>max</key> <value>1e6</value> </param> <param> <key>num_steps</key> <value>100</value> </param> <param> <key>style</key> <value>wx.SL_HORIZONTAL</value> </param> <param> <key>converver</key> <value> float_converter </value> </param> <param> <key>grid_pos</key> <value></value> </param> <param> <key>notebook</key> <value>notebook,0</value> </param> <param> Apéndice A. Código del programa FMRADIO de GRC 54 <key>_coordinate</key> <value>(673, 130)</value> </param> <param> <key>_rotation </key> <value>0</value> </param> </block> <block> <key> variable_slider </key> <param> <key>id</key> <value>freq</value> </param> <param> <key>_enabled</key> <value>True</value> </param> <param> <key>label</key> <value>Frequency</value> </param> <param> <key>value</key> <value>90.2e6</value> </param> <param> <key>min</key> <value>24e6</value> </param> <param> <key>max</key> <value>1766e6</value> </param> <param> <key>num_steps</key> <value>100</value> </param> <param> <key>style</key> <value>wx.SL_HORIZONTAL</value> </param> <param> <key>converver</key> <value> float_converter </value> </param> <param> <key>grid_pos</key> <value></value> 55 </param> <param> <key>notebook</key> <value></value> </param> <param> <key>_coordinate</key> <value>(80, 689)</value> </param> <param> <key>_rotation </key> <value>0</value> </param> </block> <block> <key>osmosdr_source</key> <param> <key>id</key> <value>osmosdr_source_0</value> </param> <param> <key>_enabled</key> <value>True</value> </param> <param> <key>type</key> <value>fc32</value> </param> <param> <key>args</key> <value></value> </param> <param> <key>nchan</key> <value>1</value> </param> <param> <key>sample_rate</key> <value>samp_rate</value> </param> <param> <key>freq0</key> <value>freq + seek</value> </param> <param> <key>corr0</key> <value>0</value> </param> <param> Apéndice A. Código del programa FMRADIO de GRC 56 <key>dc_offset_mode0</key> <value>0</value> </param> <param> <key>iq_balance_mode0</key> <value>0</value> </param> <param> <key>gain_mode0</key> <value>0</value> </param> <param> <key>gain0</key> <value>20</value> </param> <param> <key>if_gain0</key> <value>20</value> </param> <param> <key>bb_gain0</key> <value>20</value> </param> <param> <key>ant0</key> <value></value> </param> <param> <key>bw0</key> <value>0</value> </param> <param> <key>freq1</key> <value>100e6</value> </param> <param> <key>corr1</key> <value>0</value> </param> <param> <key>dc_offset_mode1</key> <value>0</value> </param> <param> <key>iq_balance_mode1</key> <value>0</value> </param> <param> <key>gain_mode1</key> 57 <value>0</value> </param> <param> <key>gain1</key> <value>10</value> </param> <param> <key>if_gain1</key> <value>20</value> </param> <param> <key>bb_gain1</key> <value>20</value> </param> <param> <key>ant1</key> <value></value> </param> <param> <key>bw1</key> <value>0</value> </param> <param> <key>freq2</key> <value>100e6</value> </param> <param> <key>corr2</key> <value>0</value> </param> <param> <key>dc_offset_mode2</key> <value>0</value> </param> <param> <key>iq_balance_mode2</key> <value>0</value> </param> <param> <key>gain_mode2</key> <value>0</value> </param> <param> <key>gain2</key> <value>10</value> </param> <param> <key>if_gain2</key> <value>20</value> Apéndice A. Código del programa FMRADIO de GRC 58 </param> <param> <key>bb_gain2</key> <value>20</value> </param> <param> <key>ant2</key> <value></value> </param> <param> <key>bw2</key> <value>0</value> </param> <param> <key>freq3</key> <value>100e6</value> </param> <param> <key>corr3</key> <value>0</value> </param> <param> <key>dc_offset_mode3</key> <value>0</value> </param> <param> <key>iq_balance_mode3</key> <value>0</value> </param> <param> <key>gain_mode3</key> <value>0</value> </param> <param> <key>gain3</key> <value>10</value> </param> <param> <key>if_gain3</key> <value>20</value> </param> <param> <key>bb_gain3</key> <value>20</value> </param> <param> <key>ant3</key> <value></value> </param> 59 <param> <key>bw3</key> <value>0</value> </param> <param> <key>freq4</key> <value>100e6</value> </param> <param> <key>corr4</key> <value>0</value> </param> <param> <key>dc_offset_mode4</key> <value>0</value> </param> <param> <key>iq_balance_mode4</key> <value>0</value> </param> <param> <key>gain_mode4</key> <value>0</value> </param> <param> <key>gain4</key> <value>10</value> </param> <param> <key>if_gain4</key> <value>20</value> </param> <param> <key>bb_gain4</key> <value>20</value> </param> <param> <key>ant4</key> <value></value> </param> <param> <key>bw4</key> <value>0</value> </param> <param> <key> affinity </key> <value></value> </param> <param> Apéndice A. Código del programa FMRADIO de GRC 60 <key>minoutbuf</key> <value>0</value> </param> <param> <key>_coordinate</key> <value>(63, 433)</value> </param> <param> <key>_rotation </key> <value>0</value> </param> </block> <block> <key>wxgui_fftsink2</key> <param> <key>id</key> <value>wxgui_fftsink2_0</value> </param> <param> <key>_enabled</key> <value>True</value> </param> <param> <key>type</key> <value>complex</value> </param> <param> <key> title </key> <value>Input</value> </param> <param> <key>samp_rate</key> <value>samp_rate</value> </param> <param> <key>baseband_freq</key> <value>freq + seek</value> </param> <param> <key>y_per_div</key> <value>10</value> </param> <param> <key>y_divs</key> <value>10</value> </param> <param> <key> ref_level </key> <value>0</value> 61 </param> <param> <key>ref_scale </key> <value>2.0</value> </param> <param> <key> fft_size </key> <value>1024</value> </param> <param> <key> fft_rate </key> <value>15</value> </param> <param> <key>peak_hold</key> <value>False</value> </param> <param> <key>average</key> <value>False</value> </param> <param> <key>avg_alpha</key> <value>0</value> </param> <param> <key>win</key> <value>None</value> </param> <param> <key>win_size</key> <value></value> </param> <param> <key>grid_pos</key> <value></value> </param> <param> <key>notebook</key> <value>notebook,0</value> </param> <param> <key>freqvar</key> <value>None</value> </param> <param> <key> affinity </key> <value></value> </param> Apéndice A. Código del programa FMRADIO de GRC 62 <param> <key>_coordinate</key> <value>(335, 545)</value> </param> <param> <key>_rotation </key> <value>0</value> </param> </block> <block> <key> variable_slider </key> <param> <key>id</key> <value>seek</value> </param> <param> <key>_enabled</key> <value>True</value> </param> <param> <key>label</key> <value>Seek</value> </param> <param> <key>value</key> <value>0</value> </param> <param> <key>min</key> <value>−20e6</value> </param> <param> <key>max</key> <value>20e6</value> </param> <param> <key>num_steps</key> <value>400</value> </param> <param> <key>style</key> <value>wx.SL_HORIZONTAL</value> </param> <param> <key>converver</key> <value> float_converter </value> </param> <param> <key>grid_pos</key> 63 <value></value> </param> <param> <key>notebook</key> <value></value> </param> <param> <key>_coordinate</key> <value>(248, 732)</value> </param> <param> <key>_rotation </key> <value>0</value> </param> </block> <block> <key> variable_slider </key> <param> <key>id</key> <value>width</value> </param> <param> <key>_enabled</key> <value>True</value> </param> <param> <key>label</key> <value> Transition </value> </param> <param> <key>value</key> <value>1e6</value> </param> <param> <key>min</key> <value>1e3</value> </param> <param> <key>max</key> <value>4e6</value> </param> <param> <key>num_steps</key> <value>100</value> </param> <param> <key>style</key> <value>wx.SL_HORIZONTAL</value> </param> 64 Apéndice A. Código del programa FMRADIO de GRC <param> <key>converver</key> <value> float_converter </value> </param> <param> <key>grid_pos</key> <value></value> </param> <param> <key>notebook</key> <value>notebook,0</value> </param> <param> <key>_coordinate</key> <value>(520, 129)</value> </param> <param> <key>_rotation </key> <value>0</value> </param> </block> <block> <key> freq_xlating_fir_filter_xxx </key> <param> <key>id</key> <value> freq_xlating_fir_filter_xxx_0 </value> </param> <param> <key>_enabled</key> <value>True</value> </param> <param> <key>type</key> <value>ccc</value> </param> <param> <key>decim</key> <value>1</value> </param> <param> <key>taps</key> <value> firdes . low_pass(1,samp_rate, cutoff , width)</value> </param> <param> <key>center_freq</key> <value>0</value> </param> <param> <key>samp_rate</key> 65 <value>sample</value> </param> <param> <key> affinity </key> <value></value> </param> <param> <key>minoutbuf</key> <value>0</value> </param> <param> <key>_coordinate</key> <value>(574, 265)</value> </param> <param> <key>_rotation </key> <value>0</value> </param> </block> <connection> <source_block_id>rational_resampler_xxx_0 </source_block_id> <sink_block_id> freq_xlating_fir_filter_xxx_0 </ sink_block_id> <source_key>0</source_key> <sink_key>0</sink_key> </connection> <connection> <source_block_id> freq_xlating_fir_filter_xxx_0 </source_block_id> <sink_block_id>analog_wfm_rcv_0</sink_block_id> <source_key>0</source_key> <sink_key>0</sink_key> </connection> <connection> <source_block_id>blocks_multiply_const_vxx_0</source_block_id> <sink_block_id>audio_sink_0</sink_block_id> <source_key>0</source_key> <sink_key>0</sink_key> </connection> <connection> <source_block_id>analog_wfm_rcv_0</source_block_id> <sink_block_id>rational_resampler_xxx_1 </ sink_block_id> <source_key>0</source_key> <sink_key>0</sink_key> </connection> <connection> <source_block_id>rational_resampler_xxx_1 </source_block_id> <sink_block_id>blocks_multiply_const_vxx_0</sink_block_id> <source_key>0</source_key> <sink_key>0</sink_key> </connection> 66 Apéndice A. Código del programa FMRADIO de GRC <connection> <source_block_id>osmosdr_source_0</source_block_id> <sink_block_id>rational_resampler_xxx_0 </ sink_block_id> <source_key>0</source_key> <sink_key>0</sink_key> </connection> <connection> <source_block_id>osmosdr_source_0</source_block_id> <sink_block_id>wxgui_fftsink2_0</ sink_block_id> <source_key>0</source_key> <sink_key>0</sink_key> </connection> <connection> <source_block_id>blocks_multiply_const_vxx_0</source_block_id> <sink_block_id>wxgui_fftsink2_1</ sink_block_id> <source_key>0</source_key> <sink_key>0</sink_key> </connection> </flow_graph> Apéndice B Sobre la instalación de GRC B.1 Introducción La instalación del GNURadio no es trivial, y si además se quieren usar un dispositivo RTL más aún. Mi recomendación es ir haciéndolo paso a paso y con muchísima atención. Cualquier pequeño descuido podría implicar un error fatal para el funcionamiento del mismo. En mi caso las descargas las realicé con el Gestor de Paquetes Synaptic, creo que es la forma más simple de realizarlo. B.2 Pasos previos Los pasos previos provienen de http:// gnuradio.org/ redmine/ projects/ gnuradio/ wiki/ UbuntuInstall. Las herramientas de desarrollo necesarias para compilar son: g++ git make cmake sdcc (salen varios resultados, añadiendo universe solo queda el necesario) guile ccache (esto es opcional, en mi caso lo he instalado) Las librerías para el funcionamiento del programa y la compilación: python-dev SWIG libfftw3-dev libcppunit-dev Boost 1.35 (o superior, pero no 1.46, 1.47 o 1.52). Lo ideal es instalar libboost1.53-all-dev si es posible, depende de la versión de Linux puede que no sea posible. Muy importante, comprobar que al instalar alguna versión "permitida" de boost no quede instalada alguna versión de las que se rechazan ya que impediría el funcionamiento del programa. libgsl0-dev libusb y libusb-dev libusb-1.0-dev Importante, este fichero hay que comprobar que esté instalado. alsa-base, libasound2 y libasound2-dev Para GNU Radio Companion: python-numpy, python-cheetah y python-lxml Para WX GUI: python-wxgtk2.8 y python-numpy Para QT GUI: python-qt4, python-qwt5-qt4, libqt4-opengl-dev, libqwt5-qt4-dev, libfontconfig1-dev, libxrenderdev, libxi-dev Para Video-SDL: libsdl1.2-dev Para Polyphase Filter Bank examples: python-scipy, python-matplotlib, y python-tk 67 68 Apéndice B. Sobre la instalación de GRC Otros paquetes útiles: doxygen octave Si la versión de Ubuntu es la 12.04 se debe ejecutar lo siguiente en el terminal: sudo apt-get -y install git-core autoconf automake libtool g++ python-dev swig \ pkg-config libboost1.48-all-dev libfftw3-dev libcppunit-dev libgsl0-dev \ libusb-dev sdcc libsdl1.2-dev python-wxgtk2.8 python-numpy \ python-cheetah python-lxml doxygen python-qt4 python-qwt5-qt4 libxi-dev \ libqt4-opengl-dev libqwt5-qt4-dev libfontconfig1-dev libxrender-dev En caso contrario consultar la página web donde vienen detalladas más posibilidades. B.3 GNU Radio Hay que tener en cuenta que desde el Gestor de Software o el mismo Gestor de Paquetes de Synaptic se puede instalar la versión 3.6 pero si es necesario instalar una versión más moderna, por ejemplo para poder usar el dispositivo RTL, hay que buscar fórmulas alternativas. Después de probar muchas, considero que esta es la más eficiente y sencilla http:// gnuradio.org/ redmine/ projects/ gnuradio/ wiki/ InstallingGR# Using-the-build-gnuradio-script. Para instalar el GNU Radio hay que ubicar el terminal en la dirección donde se quiera instalar el programa y escribir: wget http://www.sbrac.org/files/build-gnuradio && chmod a+x ./build-gnuradio && ./build-gnuradio La instalación es automática y lenta, y si se instalase rápidamente es probable que hubiera habido algún problema durante este proceso. B.4 Osmocom blocks En el caso de que ya estuviese instalada en el ordenador una versión superior a la 3.6.4 o por algún motivo no se hayan instalado los bloques se deben seguir las recomendaciones de http:// sdr.osmocom.org/ trac/ wiki/ GrOsmoSDR. En caso de querer instalar el módulo (si se ha seguido el paso anterior no es necesario) hay que ejecutar en el terminal: git clone git://git.osmocom.org/gr-osmosdr cd gr-osmosdr/ Después hay que ejecutar (y si estaba instalado pero no instalado): mkdir build cd build/ cmake ../ Luego, make sudo make install sudo ldconfig B.4 Osmocom blocks Y ya deberían aparecer los bloques que interesan. 69 Apéndice C Instalación de Zadig C.1 Introducción Para que los sistemas operativos de Windows reconozcan el dispositivo RTL se debe instalar el software Zadig, que es la base para poder usar cualquier programa del sistema operativo más común. Para ello he seguido las instrucciones de la página http:// www.rtl-sdr.com/ rtl-sdr-quick-start-guide/ . 71 Índice de Figuras 2.1 2.2 Logotipo del Wireless Innovation Forum Diagrama de bloques funcionales de SDR. Imagen obtenida de [2] 3.1 3.2 3.3 3.4 3.5 3.6 3.7 3.8 Dispositivo con mando a distancia y antena Exterior dispositivo Nooelec TV28T Interior dispositivo Nooelec TV28T Antena incluida con el dispositivo Nooelec TV28T Demodulador RTL2832U Esquema del sintonizador R820T para la televisión Esquema del sintonizador R820T para el ordenador Diagrama de bloques simplificado del R820T 9 10 11 12 12 14 14 15 4.1 4.2 4.3 4.4 4.5 4.6 4.7 4.8 4.9 Logotipo de la organización GNU Radio Logotipo e icono de GNU Radio Companion Ejemplo de la radio FM en GRC completo Bloque y propiedades de la fuente RTL-SDR Display del espectro de entrada de la radio FM Display del espectro de salida de la radio FM Radio DAB de SDR-J Radio FM de SDR-J Radio simplificada FM de SDR-J 19 19 20 21 22 23 23 24 24 5.1 5.2 5.3 5.4 5.5 5.6 5.7 5.8 5.9 5.10 5.11 Antena serie de los dispositivos SDR de Nooelec Captura de FM Receiver 0.92 con numeración (versión usada 0.96, no afecta a la numeración) Selector 1. Input device Selector 3. Output device Selector 2. Start Selector 11. Raw input dump Selector 12. Audio dump Teclado numérico y selectores para el control de la frecuencia Selectores f++ y f– Selectores fc++ y fc– Selectores de salto de frecuencia 26 27 28 28 28 28 29 29 29 29 30 73 5 6 74 5.12 5.13 5.14 5.15 5.16 5.17 5.18 5.19 5.20 5.21 5.22 5.23 5.24 5.25 5.26 5.27 5.28 5.29 5.30 5.31 5.32 5.33 5.34 Índice de Figuras Pantallas de espectro de frecuencia, la superior es la recibida y la inferior la decodificada Información de tasas de datos Diversos controles Selector 21. Decodificadores Selector 29. RDS Displays de información sobre la señal recibida Selector Quit DAB Receiver con numeración Selector 1. Input device Selector 2. Mode Selector 3. Banda Selector 19. Selección de la salida Selector 14. Inicio Información de las tramas recibidas Información de la estación Lista de estaciones Constelación de la estación Selector 7. Spectrum/waterfall Pantalla con el espectro Pantalla con el espectro en cascada Información diversa Selector 12. Reset Selector 15. Quit. Salida de DAB Receiver 30 30 30 31 31 31 31 32 32 32 33 35 35 35 36 36 36 36 37 37 37 37 38 Índice de Tablas 5.1 5.2 5.3 Características DAB en función del modo. Tabla obtenida de [5] Lista de canales de la banda III Lista de canales de la banda L 75 33 34 35 Índice de Códigos A.1 fmradio.grc 41 77 Bibliografía [1] The Wireless Innovation Forum. "Wireless Innovation Forum", [en línea]. 2012, [Octubre 2013]. http:// www.wirelessinnovation.org [2] Murillo Fuentes, Juan José y Pinar Dominguez, Iván, (2011). "Laboratorio de Comunicaciones Digitales Radio Definidas por Software", Universidad de Sevilla, Sevilla. [3] A9.com, Motor de búsqueda. "Búsqueda de dispositivos en Amazon", [en línea]. 2004, [Octubre 2013]. http:// www.amazon.com [4] PerVices. "Noctar", [en línea]. 2013, [Octubre 2013]. http:// www.pervices.com [5] Hernando-Rábanos, José María, (2008). "Transmisión por radio", 6ª edición, Editorial Ramón Areces, Madrid. [6] Perales Benito, Tomás, (2005). Radio y Televisión Digitales", Editorial Creaciones Copyright, Madrid. [7] 213.253.40.136. "Software Defined Radio", [en línea]. Septiembre 2002, Octubre 2013, [Octubre 2013]. http:// en.wikipedia.org/ wiki/ Software-defined_radio [8] The Wireless Innovation Forum. "Wireless Innovation Forum. What is SDR?", [en línea]. 2012, [Octubre 2013]. http:// www.wirelessinnovation.org/ what_is_sdr [9] RTL-SDR blog. “About RTL-SDR”, [en línea]. Agosto 2013, [Octubre 2013]. http:// www.rtl-sdr. com/ about-rtl-sdr/ [10] SDR-RADIO.com GmbH. "SDR-RADIO", [en línea]. 2009, Noviembre 2013, [Noviembre 2013]. http:// sdr-radio.com/ [11] Brown, Simon. "SDR-RADIO", [en línea]. Mayo 2012, Agosto 2013, [Noviembre 2013]. http:// v2. sdr-radio.com/ [12] Brown, Simon. "SDR-RADIO", [en línea]. Mayo 2012, Agosto 2013, [Noviembre 2013]. https: // www.facebook.com/ sdrradiodotcom?fref=ts [13] RTL-SDR blog. “RTL-SDR Blog”, [en línea]. Agosto 2013, Noviembre 2013, [Noviembre 2013]. https:// www.facebook.com/ rtlsdrblog?fref=ts [14] Nooelec Inc. "NooElec TV28T", [en línea]. 2012, [Noviembre 2013] http:// www.nooelec.com/ store/ software-defined-radio/ sdr-receivers/ tv28tv2-sdr-dvb-t-usb-stick-set.html#.Us3UC_TuKjA 79 80 Bibliografía [15] Amateur-radio-wiki. RTL2832U", [en línea]. Abril 2012, Agosto 2013, [Enero 2014]. http:// www. amateur-radio-wiki.net/ index.php?title=RTL2832&action=history [16] Realtek Semiconductor Corp. Realtek RTL28332U", [en línea]. 2013, [Octubre 2013]. http:// 152.104.125.41/ products/ productsView.aspx?Langid=1&PNid=22&PFid=35&Level= 4&Conn=3&ProdID=257 [17] Rafael Microelectronics Inc. Realtek Rafael Micro", [en línea]. 2010, [Octubre 2013]. http:// www. rafaelmicro.com [18] Lang, Jean-Philippe. "GNU RADIO", [en línea]. 2006, 2011, [Noviembre 2013]. http:// gnuradio. org/ redmine/ projects/ gnuradio/ wiki