Tema de Tesis: Desarrollo de software de radio modem para la transmisión de datos sobre canales analógicos en la banda de voz aplicado a organismos gubernamentales Autores: Cáceres Najarro, Lismer Andrés Olmedo Castillo, Diego Oswaldo Especialidad: INGENIERÍA ELECTRÓNICA Asesor: Dr. Carlos Valdez Velásquez-López Fecha de Sustentación: 12 de Diciembre del 2012 Lima – Perú 2013 INDICE PAG. INTRODUCCIÓN 1 3 PROPÓSITO DE LA INVESTIGACIÓN E HIPOTESIS PLANTEADA 3 1.1 Hipótesis 4 2. METODOLOGÍA EMPLEADA EN LA INVESTIGACIÓN 4 3. TRABAJOS Y/O EXPERIENCIAS REALIZADAS 5 3.1 Estimación del ancho de banda 6 3.2 Descripción del Sistema desarrollado - Hardware 3.2.1. El equipo radio transceptor 3.2.2. Tarjeta Interfaz LernToch (TILT) 3.2.2.1. Esquemático de la tarjeta interfaz 8 9 10 10 3.3 Diseño del software de radio modem 3.3.1. Requerimientos para la computadora 3.3.2. Descripción del modem software 3.3.2.1. Desarrollo del software 3.3.3. Lenguajes de programación y librerías 11 11 12 12 16 4. ANÁLISIS DE LOS RESULTADOS, PRUEBAS Y VALIDACIÓN DEL SISTEMA 17 4.1 Descripción de la prueba tasa de bits 17 4.2 Descripción de la prueba BER 21 4.3 Resultados de otras investigaciones similares 23 4.4 Análisis de resultados 24 5. CONCLUSIONES 26 6. APLICACIONES REALIZADAS Y OTRAS POSIBILIDADES DE APLICACIÓN 28 ANEXOS 30 BIBLIOGRAFÍA 101 INTRODUCCIÓN La presente investigación se centra en los sistemas de comunicaciones digitales para la transmisión de datos sobre canales analógicos, plasmándose ésta en un proyecto. El proyecto trata del desarrollo de un software de radio modem para la transmisión de datos sobre canales analógicos en la banda de voz, a través de equipos de transmisión en la banda de VHF, aplicado a organismos gubernamentales. La institución en la que se llevó a cabo este proyecto es el Centro de Operaciones de Emergencia Nacional (COEN) del Instituto Nacional de Defensa Civil (INDECI). Este proyecto surge por la imperiosa necesidad de la institución de tener a disposición un sistema de transmisión de datos alternativo al que ya poseen, principalmente el Internet, sobre una infraestructura de comunicación diferente. Es por ello que el proyecto se apoya en el sistema de comunicación VHF, sistema con que la institución cuenta, lo cual dio como resultado una solución flexible y versátil, a un costo significativamente bajo. Además, por su versatilidad, el sistema puede ser usado en distintos campos: sistemas de alerta temprana, chat e intercambio de información inter-comunidades, monitoreo y control remoto para las industrias, etc. Existen desarrollos similares en el mundo, conocidos con el nombre de Packet Radio. Uno de los productos más comerciales de Packet Radio, que se encuentran en la actualidad es de la marca Kantronics, para la transmisión de datos a través de equipos analógicos por radio frecuencia en las bandas HF, VHF y UHF. Si bien en el Perú no existe una estadística del uso de estos equipos, los potenciales usuarios de un producto con estas características son las entidades y personas que poseen un sistema de radio analógico de 2 vías (2-way radio) en estaciones terrenas fijas, móviles, embarcaciones marítimas, etc., y para las aplicaciones que se valen de información presentada en tiempo real o que intercambian datos remotamente. 1. PROPÓSITO DE LA INVESTIGACIÓN E HIPOTESIS PLANTEADA En agosto del 2007, el Perú sufrió una gran catástrofe, un terremoto de casi 8 grados en la escala de Richter el cual enlutó al país entero. Este terremoto se sintió prácticamente en todos los departamentos del Perú, siendo la más afectada la provincia de Pisco. En esos momentos las comunicaciones telefónicas fueron prácticamente inservibles. Las redes de telefonía fija como la de telefonía móvil colapsaron. Algunos organismos gubernamentales emplearon sistemas alternativos de comunicación para poder comunicarse sin depender de la telefonía fija o móvil. Uno de estos sistemas alternativos fue la radio analógica, utilizada por el Centro de Operaciones de Emergencia Nacional (COEN) del Instituto Nacional de Defensa Civil (INDECI). Este sistema, brinda una opción de comunicación que no depende de las redes públicas de comunicación y en ello radica su importancia. Sin embargo, estos sistemas venían siendo utilizados sólo para la transmisión de voz (no digitalizada). La comunicación que realiza esta institución con estos sistemas es puramente analógica, y no se aprovechan las virtudes de 3 las comunicaciones digitales. Es por ello que la presente investigación busca aportar una solución a dicha situación. El propósito de la investigación, plasmada en un proyecto, en primera instancia, es atender la necesidad del COEN de tal manera que la institución pueda contar con un medio de transmisión de datos alternativo al Internet, teniendo en cuenta la disponibilidad de equipos de radio analógicos en la banda VHF. Así mismo, el proyecto resultado de la investigación es altamente versátil y puede ser utilizado en distintas aplicaciones, las cuales se detallan en la sección 6. 1.1. Hipótesis Es posible transmitir datos mediante el empleo de la infraestructura de radio comunicaciones analógicas en la banda VHF con que cuenta el Instituto Nacional de Defensa Civil (INDECI) elaborando una interfaz simple y económica, y desarrollando un software de comunicaciones que puede instalarse en cualquier sistema de cómputo general. 2. METODOLOGÍA EMPLEADA EN LA INVESTIGACIÓN La investigación se desarrolló en el Centro de Operaciones de Emergencia Nacional (COEN) del Instituto Nacional de Defensa Civil (INDECI) y para el mismo, bajo la asesoría del experto en la materia, el Dr. Carlos Valdez VelásquezLópez. Como se mencionó anteriormente, la hipótesis planteada consistió en probar que es posible transmitir datos por radiofrecuencia en la banda VHF, aprovechando los equipos de radio FM del Centro de Operaciones de Emergencia Nacional (COEN). Para ello, se establecieron ocho objetivos específicos realizados de manera secuencial, los cuales se enumeran a continuación: 1. 2. 3. 4. 5. 6. 7. 8. Estimar el ancho de banda del sistema. Analizar y definir el tipo de modulación y demodulación a utilizar. Analizar y definir la codificación de canal a utilizar. Desarrollar e implementar la sincronización. Desarrollar la tarjeta interfaz Computador-Radio. Desarrollar la interfaz de usuario. Integrar todas las etapas del software de radio modem. Determinar la calidad del sistema desarrollado. Para lograr el objetivo número uno, primero se delimitó el ancho de banda utilizando el programa SPARK, el cual es un programa comercial confiable. Gracias a este programa se pudo saber que el ancho de banda del sistema era menor a 4.5 kHz. Una vez hecha la delimitación, se procedió a estimar el ancho de banda del sistema, lo cual se verá a detalle en el apartado 3.1 de la siguiente sección. 4 Una vez determinado el ancho de banda, se pasó a analizar los principales tipos de modulación como son ASK (Amplitud Shift Keying), PSK (Phase Shift Keying), FSK (Frecuency Shift Keying) y sus variantes; de las cuales se eligió la modulación debido, principalmente, a que ésta elimina la ambigüedad de fase y disminuye la dispersión del espectro cuando se trabaja en la zona no lineal de un amplificador de potencia. Luego de esto, se analizó los dos tipos de codificación de canal, más conocidas por sus iniciales en inglés Automatic ReQuest (ARQ) y Forward Error Correction (FEC); de las cuales se optó por la codificación FEC convolucional (2,1,2). Asimismo, se analizaron los distintos tipos de entrelazado de los cuales se decidió utilizar un entrelazado matricial de grado 14 (14x14). Una vez realizado lo anterior, se desarrolló la sincronización del sistema, la misma que fue denominada Sincronizador por Tiempos Muertos (STM). Este sincronizador es versátil y puede ser usado en cualquier tipo de comunicación en la que se envíe información en forma de paquetes. Ésta presenta la característica de que debe transmitir por un intervalo de tiempo breve para que sincronice la señal recibida, de ahí el nombre “Tiempos Muertos”. A continuación, se describe el desarrollo de la tarjeta interfaz Computador-Radio (el Hardware) que se le denominó Tarjeta Interfaz LernToch (TILT). Esta tarjeta de Interfaz es sencilla y de bajo costo y tiene como principal función enlazar el transceptor con la computadora, cuyos detalles se muestran en la sección 3.2. Seguidamente, se describe la interfaz de usuario, la cual fue desarrollada con el lenguaje de programación C Sharp. Desde esta interfaz se controla a los 2 programas núcleo del sistema, es decir al modulador y demodulador, y sus detalles se resumen en la sección 3.3. Luego de ello se integran todas las partes del sistema desarrollado, tanto hardware como software. Finalmente, se procede a determinar la calidad del sistema desarrollado. Para ello se utiliza dos parámetros importantes: la tasa de transferencia (en bps) y la tasa de error de bit (BER), más detalles en la sección 4. De este modo, se logró el propósito planteado y se comprobó la hipótesis de la tesis que luego fue sustentada de manera exitosa y recibió el calificativo de sobresaliente. 3. TRABAJOS Y/O EXPERIENCIAS REALIZADAS Para los trabajos y experiencias que se realizaron se consideraron dos puntos de comunicación ubicados en diferentes lugares. Se realizaron varias tareas, sin embargo tres son las más resaltantes: 1) Estimación de ancho de banda, 2) Diseño y desarrollo del hardware y 3) Diseño y desarrollo del software. 5 3.1. Estimación del ancho de banda Las tarjetas de sonido estándar poseen frecuencias de muestreo de 44,1 kHz, 48 kHz y 96 kHz. La tarjeta que se utilizó en el proyecto soporta sólo 2 frecuencias de muestreo 44,1 kHz y 48 kHz. En el proyecto se utiliza la frecuencia más alta. Por lo que, utilizando la ecuación 1 se obtiene la frecuencia de corte superior. Hz (1) Se tiene en consideración que = 48 kHz por lo que la frecuencia de corte superior resulta 24 kHz. Considerando, de manera teórica, una frecuencia de corte inferior igual a 0 Hz, se tiene una ancho de banda de 24 kHz. Obviamente, al utilizar otras tarjetas de sonido con una mayor frecuencia de muestreo es posible obtener un mayor ancho de banda. Sin embargo, el límite práctico para este proyecto fue determinado por el transceptor, la radio VHF de marca Yaesu FT-2200. Esta radio tiene como finalidad transmitir voz vía una portadora modulada en FM. La portadora en radio frecuencia trata de ocupar el menor canal de comunicación por la limitación del espectro electromagnético. Esto último para tener una banda de guarda que evite interferir con otras transmisiones1. La radio utiliza la FM (Frecuencia Modulada) para la transmisión de voz. Esto quiere decir que combina una señal de AF (Audio Frecuencia) con otra de RF (Radio Frecuencia) que es la portadora. La AF, es la señal moduladora que ingresa al equipo de radio. En el proyecto, ésta es generada por la computadora utilizando el modulador digital QPSK con una 2 frecuencia de portadora 2 kHz . Si bien es cierto que el micrófono de la radio debe estar diseñado para el ancho de banda de la voz, no se sabía exactamente cuánto era su valor; ni mucho menos las frecuencias de corte, la inferior y la superior. Se trató de encontrar el ancho de banda en las especificaciones técnicas del equipo, pero no se llegó a dar con este dato. Por ello, se procedió a hallar el ancho de banda de forma experimental. Por lo que, se realizaron pruebas para poder determinar dicho ancho de banda a la entrada del equipo Yaesu FT-2200. Estas pruebas se realizaron con el programa SPARK, el cual es un programa comercial desarrollado en conexión con una investigación de transmisión VHF OFDM3 de la Universidad de Ciencias Aplicadas de Kaiserlautem y la Universidad Técnica de Kaiserlautem, Alemania4. Este programa se basa en el estándar DRM. Este estándar utiliza la modulación OFDM y cuenta con la conveniente característica de generar audio frecuencia con distintos anchos de banda. Estos audios son enviados por la tarjeta de sonido desde un punto a otro, y es ahí donde se realiza la captura de la señal enviada. Se envió varias señales de este 1 Cfr. Yamada 2009 2 Esta frecuencia de portadora puede ser variada por el usuario. Más detalles en el Anexo. 3 Orthogonal Frequency Division Multiplexing. 4 Cfr. Feilen 2010 6 tipo variando sólo la frecuencia intermedia. Las frecuencias intermedias seleccionadas fueron las siguientes: 400 Hz, 800 Hz, 1,2 kHz, 1,6 kHz y 2 kHz. La captura se realizó con el programa Windows Winrad. Este es un programa para la captura de emisiones radiales con la tarjeta de sonido en plataforma Win325. La ventaja de utilizar este programa es que muestra gráficamente el espectro de la señal recibida. Todas las captura realizadas, mostraron el detalle de cómo afecta el ancho de banda del equipo Yaesu FT-2200 al espectro de la señal transmitida. Es así que se llega a apreciar la filtración de frecuencias. Por lo tanto, teniendo como información que el ancho de banda de las señales enviadas fue de 4,5 kHz, se llega a deducir que el ancho de banda del equipo en mención es menor a ese valor. Sin embargo, para poder definir el ancho de banda del equipo se generó señales sinusoidales con diferentes frecuencias. Estas señales fueron enviadas para ver así la atenuación que sufrían en su espectro, y con el criterio del -3dB calcular la frecuencia de corte superior y la frecuencia de corte inferior . A continuación se detalla el experimento. En la siguiente figura el área de interés es la gráfica del espectro de la captura. Se mueve el cursor para comprobar los valores de la abscisa y la ordenada. Figura (1) Observación de 600 Hz en ~ -3,5 dB Figura (2) Observación de 5,8 kHz en ~ -2,9 dB Una vez recibidas las señales enviadas, se mide la potencia de las señales recibidas. Estas señales van variando su frecuencia en pasos de 200 Hz, desde los 400 Hz hasta los 6 000 Hz. 5 Cfr. Pawlan 2010 7 No se muestran todas las gráficas de las señales recibidas. Sin embargo, en la tabla 1 se muestran los valores obtenidos. Tabla (1) Valores de atenuación de las señales recibidas Los valores obtenidos en la tabla anterior son mostrados en forma gráfica en la figura 3. En ésta se muestran las atenuaciones de las señales recibidas. Figura (3) Atenuación de las señales enviadas Por lo tanto, utilizando el criterio de -3 dB se determina que la = 900 Hz y la = 4,2 kHz. Ya habiendo hallado las frecuencias de corte se determina que el ancho de banda estimado es de 3,3 kHz. 3.2. Descripción del Sistema desarrollado - Hardware El sistema desarrollado satisface la necesidad de transmitir datos en la banda de VHF del Centro de Operaciones de Emergencia Nacional (COEN) del Instituto Nacional de Defensa Civil (INDECI). La institución cuenta con el área de comunicaciones, en la cual se tienen diversas necesidades de comunicación. Por ello, el sistema que se desarrolló es un valor agregado, que fue integrado al existente permitiendo así un uso más eficiente de su infraestructura. Lo dicho se representa de manera gráfica en la figura 4. 8 Figura (4) Sistema de comunicación desarrollado El sistema utiliza la infraestructura ya establecida en la banda de VHF para así poder transmitir datos. Para tal fin, se requiere en esencia tres equipos por punto de comunicación: una computadora, un transceptor y una tarjeta interfaz LernToch “TILT”6. Todo el sistema, en diagrama de bloques, se muestra en la figura 5. Figura (5) Diagrama de bloques del sistema desarrollado Como es de notar, lo que se añade al sistema actual de la institución es la TILT y el software de radio modem que se ejecuta en la computadora. A continuación se dará alcance sobre los equipos. 3.2.1. El equipo radio transceptor El equipo con el que se trabaja en el proyecto es un transmisor de radio analógico en la banda VHF, modelo FT-2200 de la marca YAESU, equipo que dispone el COEN y que se muestra en la figura 6. 6 TILT: Tarjeta Interfaz LernToch 9 Figura (6) Transceptor FT 2200 3.2.2. Tarjeta Interfaz LernToch (TILT) La TILT es un equipo que cumple la función de adaptar las señales de la computadora al equipo de radio. Se llevó a cabo el desarrollo del equipo porque no existe un producto estándar que se comercialice. La figura 7 muestra la TILT. Figura (7) Tarjeta interfaz LernToch La TILT internamente contiene la tarjeta interfaz y la tarjeta de sonido externa. Asimismo, este equipo presenta 4 salidas: la primera para la conexión de la tarjeta externa a la computadora, la segunda para la conexión del circuito PTT (Push To Talk) a la computadora mediante el puerto RS232, la tercera para el conector al altavoz (out put) de la radio y la última al conector del micrófono de la radio. Asimismo, cuenta con un indicador de “peteteo” y un indicador del funcionamiento de la tarjeta de sonido (Tx / Rx). 3.2.2.1. Esquemático de la tarjeta interfaz Para el desarrollo de la tarjeta interfaz radio - tarjeta de sonido se tuvo en consideración 2 aspectos en esencia: la adaptación de impedancias y el manejo de la señal del PTT. La figura 8 muestra el esquemático de la misma. 10 Figura (8) Esquemático de la tarjeta interfaz (radio - tarjeta de sonido) Tal como se puede ver en la figura, el circuito para la conexión de la radio con la tarjeta de sonido es de lo más sencilla. Se utiliza dos transformadores de audio de 600 Ω para aislar el circuito de la radio y la tarjeta de sonido. Los transformadores no deben modificar el audio que viaja por ellos, por lo que la relación del primario con el secundario es de 1:1. También, se tiene el opto acoplador que sirve para activar la transmisión del transceptor. En la parte izquierda de la tarjeta (figura 8) se observa el transformador número 1, éste se utiliza para la conexión del OUT de la radio con el micrófono de la tarjeta de sonido. El transformador número 2 se utiliza para la conexión del OUT de la tarjeta de sonido con el micrófono de la radio. Asimismo, en el secundario de este transformador se coloca en serie un capacitor de 4.7 µF y una resistencia de 3.5 kΩ, esto con el fin de desacoplar la DC. 3.3. Diseño del software de radio modem 3.3.1. Requerimientos para la computadora La interfaz que usa el operador de comunicaciones tiene por nombre modem software. Ésta se ejecuta en la computadora y cumple con la función de generar las señales para enviarlas por la radio. El sistema propuesto requiere de una computadora, en la cual se ejecuta la aplicación modem software. Para el desarrollo del proyecto no se distinguió ninguna arquitectura en particular, ya que el núcleo del modem software fue desarrollado utilizando el lenguaje C++ que es multiplataforma (en Windows en un procesador x86, en GNU/Linux en un procesador x86 y en Mac OS X en un procesador x86 o en un PowerPC). La computadora necesaria para el modem software desarrollado es un equipo Pentium III (como mínimo) o superior, en preferencia, con al menos 1 GB de memoria RAM y espacio libre en disco de 100 MB. Además, el sistema operativo debe contar con los controladores de la tarjeta de sonido y el puerto serial. Algunas laptops actualmente no cuentan con puerto 11 serial, en aquellos casos el usuario hará uso de un cable adaptador 7 que genera un puerto serial conectado a un puerto USB. El driver de estos cables generará un puerto serial en el sistema operativo. Es necesario que la computadora cuente con el software de Microsoft Framework .Net 2.0 o superior8, un driver de tarjetas de sonido ASIO de Soundbird y librerías algebraicas para ejecutables ITPP9, este último se provee como parte de la instalación del software. 3.3.2. Descripción del modem software El modem software fue desarrollado en dos lenguajes de programación: C ++ y C Sharp. Con el primero se desarrolló el núcleo del sistema (modulador y demodulador) y con en el otro la parte visual. De la programación en C++ surgen dos ejecutables: “Modulador.exe” y “Demodulador.exe”. Estos son controlados por un programa maestro, el cual fue desarrollado en C Sharp, “Softradio.exe”. Este último, muestra y maneja la parte visual del modem software. Asimismo, este programa llama al modulador y/o demodulador según se requiera. En conjunto estos 3 programas forman el modem software desarrollado. En seguida se ahondará sobre éstos, se explicará sobre los 2 principales y luego se dará detalles de la interfaz visual. 3.3.2.1. Desarrollo del software Tal como se mencionó, el núcleo del modem software se centra en 2 programas: “Modulador.exe” y “Demodulador.exe.” Éstos han sido desarrollados teniendo en consideración las distintas limitaciones que se tiene en la comunicación por VHF. En ese sentido, estos programas se ciñen a dos diagramas de bloques los cuales se muestran en la figura 9. Figura (9) Diagrama de bloques del Modulador.exe y del Demodulador.exe 7 Los cables USB a serial utilizan el integrado PL-2303 que crea un puente entre el conector serial DB9 macho un conector USB tipo A estándar. 8 Sistemas Microsoft Windows 7 ya tienen el software pre instalado 9 ITPP es una librería matemática de C++ 12 Cada programa consta de tres procesos en esencia, estos a su vez constan con procesos propios, los cuales ayudan a cumplir la función del macro programa “modem software”. En seguida, se detallan los programas modulador.exe y demodulador.exe. Modulador y Demodulador En el modem software todos los programas principales están hechos como función. Las figuras 10 y 11 muestran el diagrama de flujo del modulador y demodulador, respectivamente. Figura (10) Diagrama de flujo del modulador Figura (11) Diagrama de flujo del demodulador Al modulador se le da inicio cuando se le invoca a la función; ésta recibe parámetros como los datos a modular, la frecuencia de muestreo, frecuencia de la portadora y el número de ciclos por símbolo. El modulador tiene cuatro procesos. El primero, realiza el proceso de separar los datos entrantes en dos grupos (cuadratura y fase). Estos dos, en el segundo proceso, son codificados diferencialmente. Luego de la codificación diferencial se pasa al tercer proceso, en la cual la información codificada es multiplicada por la portadora para luego pasar al último proceso en la que se suma las 2 señales, dando finalmente la señal modulada. Por su parte, el demodulador recibe como parámetros la señal capturada por la tarjeta de sonido, la frecuencia de muestreo, frecuencia de la portadora y el número de ciclos por símbolo. La función demodulador consta de 5 procesos. En la primera se genera el retardo y el desfase haciendo operaciones de procesamiento digital con la señal recibida. Una vez realizado esto se pasa al segundo proceso donde se realiza la multiplicación en cuadratura y fase. La señal obtenida del retardo es la que se utiliza como multiplicador común del símbolo de cuadratura y de fase. En el tercer proceso, la señal obtenida del proceso de multiplicación es filtrada utilizando el filtro correlador. Una vez filtrada, se pasa al cuarto proceso donde se toma la muestra de la señal. Si la muestra es mayor que 13 cero entonces es un uno, caso contrario es un cero. Este proceso se realiza independientemente tanto en cuadratura como en fase, por lo que es necesario unirlos. Para tal fin, en el último proceso, se realiza la conversión de paralelo a serie. Esto es juntar los unos y ceros que se obtuvieron en el cuarto proceso. Para mayor detalle de estos algoritmos refiérase al Anexo 5. Transmisión y recepción de datos Tanto la transmisión como la recepción de datos fueron programadas con el lenguaje de programación C Sharp. Las figuras 12 y 13 muestran el diagrama de flujo del programa de transmisión de datos y el diagrama de flujo de la recepción, respectivamente. Éstos reciben como parámetros la frecuencia de muestreo en Hz , la frecuencia de portadora en Hz , el número de ciclos por símbolo (cs) y la robustez del sistema (codificación y/o entrelazado). Figura (12) Diagrama de flujo de la transmisión de datos Figura (13) Diagrama de flujo de la recepción de datos Tal como se aprecia en la figura 12, la transmisión de datos consta de tres procesos. El primer proceso es de activación del puerto “COM” para el “peteteo”. Es decir, se pone al transceptor en modo transmisión. Luego, se pasa al segundo proceso en el cual se llama al “Modulador.exe” y es el modulador quien prepara y adecua los datos para su transmisión. Enseguida, luego de haber hecho la transmisión se desactiva el puerto “COM”. Esto genera un tiempo muerto que ayuda al demodulador a sincronizarse. Estos procesos se repiten cíclicamente hasta que se envíe todos los datos. En la figura 13, se puede observar que el programa de recepción de datos consta de dos procesos. El primer proceso hace un llamado al programa “Demodulador.exe”. Este programa devuelve los datos recibidos. Enseguida, se pasa al segundo proceso el cual muestra los datos recibidos al usuario (operador). Esto se repite cíclicamente hasta que se le detenga, lo cual implica 14 que una vez que se lleve a cabo el muestreo de datos se vuelve a poner en escucha, a espera de nuevos datos. Para mayor detalle de estos algoritmos refiérase al Anexo 5. Detección de la señal enviada Una vez activado el programa “Demodulador.exe” se empieza a capturar la señal que entrega el transceptor con la tarjeta de sonido, la cual es almacenada en un buffer de entrada. Este buffer en todo momento está siendo leído por la función “Clap”. Esta función es la encargada de detectar la señal enviada. La figura 14 muestra la mencionada función. Esta función recibe como parámetros la señal capturada por la tarjeta de sonido que se encuentra almacenada en el buffer de entrada y el adecuado umbral de detección. Este umbral es un valor definido y ayuda a discriminar la señal del ruido. Figura (14) Diagrama de flujo de la recepción de datos Esta función cuenta con dos procesos principales, en el primer proceso se realiza el algoritmo de cruces por cero. Este algoritmo detecta desde que punto se genera cruces por ceros. Se entiende que la señal enviada por el transmisor está formada por señales cosenoidales, por lo que tendrá valores oscilantes alrededor de cero. Por ende, al tener este algoritmo, se está detectando la señal, la portadora modulada. Sin embargo, para tener una mayor certeza de que lo detectado es la señal enviada por el transmisor, se pasa al segundo proceso. En este proceso se busca el punto donde el valor de señal pasa el umbral definido. Este umbral está alrededor de la mitad de la amplitud máxima de la señal enviada por el transmisor. Finalizado este proceso, la señal detectada es almacenada en un buffer anillo, del cual se van extrayendo para ser entregadas como parámetro a la función encargada de la demodulación. Para mayor detalle de este algoritmo refiérase al anexo 5. 15 La interfaz usuario Ésta se desarrolló en plataforma .NET específicamente en C Sharp. A continuación, se describe la interfaz que el usuario maneja. En la parte superior izquierda se tiene 2 pestañas, tanto en la ventana de transmisión como en la de recepción: “configuración” y “Ayuda”. Si se le da click en la primera se desplegará la misma y se mostrará 2 opciones: “Avanzado” y “Básico”. Se puede operar al transmisor en los 2 modos, el avanzado y el básico. En el modo avanzado se permite modificar parámetros para la transmisión como son: la frecuencia de la portadora, la frecuencia de muestreo y el número de ciclos por símbolo (c/s). También, se puede utilizar en modo básico. Este modo tiene configurados todos los parámetros de transmisión, lo cual facilita el envío de datos de manera despreocupada. Es necesario que se ingresen en el formulario del programa los parámetros de frecuencia de muestreo, frecuencia de portadora y el número de ciclos por símbolo. Se puede variar los parámetros de transmisión predefinidos (Modo Básico) dependiendo de las condiciones de calidad en la señal. Los valores de la frecuencia de portadora que se pueden usar son: 1 kHz, 2 kHz y 3 kHz, los valores para la frecuencia de muestreo que se pueden usar son: 44,1 kHz, 48 kHz y 96 kHz y el valor del número de ciclos por símbolo (cs) debe estar en el rango de 2 a 10. Tener en consideración que en el caso de que no se coloquen los mismos valores tanto en el modulador como en el demodulador, se provocarán errores en los datos recuperados. 3.3.3. Lenguajes de programación y librerías En todos los procesos del proyecto: desarrollo, pruebas y validación se utilizaron 3 lenguajes de programación: C++, C Sharp y Matlab. Éste último fue utilizado para observar las señales en cada momento del programa. Cabe recalcar, que núcleo del sistema fue desarrollada en C++. Sin embargo, para el desarrollo de los programas modulador, demodulador y en el procesamiento digital de señales de éstos se utilizó la ayuda de la librería ITPP y RTAUDIO, principalmente. La librería ITPP (también conocida como IT++) es un framework, un conjunto de funciones de C++ que realiza desde las funciones básicas hasta las más elaboradas en el campo de los sistemas de comunicaciones. Esta librería facilita las operaciones algebraicas con vectores y matrices, he ahí su importancia. Asimismo, ésta utiliza librerías matemáticas BLAS, CBLAS, LAPACK, FFTW. ITPP tiene funciones que son equivalentes al Matlab permitiendo importar o exportar variables desde o hacia el Matlab10. Por su parte, RTAUDIO es un conjunto de clases de C++ que provee un API común para la entrada y salida de audio en tiempo real a través del sistema operativo Windows, mediante DIRECTSOUND o ASIO11. ASIO es una librería de 10 11 Cfr. ITPP 2011 Cfr. McGill University 2012 16 manejo de tarjetas de sonido proporcionado por Steinberg12, para que las aplicaciones basadas en ella tengan las mejoras de la baja latencia. Asimismo, Asio4all es un driver que ha sido desarrollado para tener compatibilidad con casi todas las tarjetas existentes. ASIO asegura una comunicación directa entre la tarjeta y la aplicación por ello presenta un menor retardo13. Otros drivers de audio pasan por capas intermedias del sistema operativo, lo cual genera un mayor retardo. Por ello, en el proyecto desarrollado se utiliza ASIO. Algo a resaltar, es que las librerías de esta aplicación son proyectos que son de licencia pública general (GPL), lo cual implica que no hay costos por empleo de éstas. 4. ANÁLISIS DE LOS RESULTADOS, PRUEBAS Y VALIDACIÓN DEL SISTEMA Las pruebas (métodos de validación) que se realizan son las mediciones de la tasa de bits y de la tasa de error de bit (Bit Error Rate, BER), con las que se comprueban los alcances de la investigación plasmada en el proyecto. La primera prueba se refiere a la velocidad práctica alcanzada, ya que la tasa de bits (en bps) mide la cantidad de información que se logra transmitir en un tiempo determinado. La segunda prueba es una medición de la cantidad de bits errados que llegan al receptor, con lo que se calcula el BER. Estas pruebas son explicadas más adelante en forma descriptiva. Primero se muestra el método de realización de las pruebas, luego se evalúan y explican los resultados. Finalmente, estos resultados se comparan con otros sistemas desarrollados. 4.1. Descripción de la prueba tasa de bits La primera prueba que se hizo al sistema es la tasa de bits, la cual se da en unidades de bits por segundo (bps). Para esta prueba primero se halla la tasa binaria utilizando la ecuación 2. (2) Dónde: M: Número de puntos en la constelación. 12 13 Una marca registrada Cfr. Tippach 2012 17 : Periodo de símbolo en segundos. Para esta ecuación se necesita el valor de M y el periodo de símbolo. Al utilizar un modulador QPSK, es claro que el valor de M=4. Ahora, el periodo de símbolo no es fijo, ya que éste depende de 3 parámetros en esencia los cuales son: la frecuencia de muestreo en Hertz ( ), la frecuencia de portadora en Hertz ( ) y el número de ciclos por símbolo ( ); los cuales pueden ser variados por el operador. Sin embargo, para esta prueba los valores seleccionados son los valores predefinidos que están en el software: = 48 000 Hz. = 2 000 Hz. = 4. Teniendo los valores de estos tres parámetros se halla el número de muestras ( ), la cual cumple la siguiente relación. (3) Utilizando la ecuación 3 se halla el número de muestras: remplazando los valores en la ecuación 4: = 96 muestras. Ahora, (4) Se obtiene que . Ahora bien, ya habiendo hallado todas las variables, se utiliza la ecuación 2 para hallar el valor de tasa binaria: = 1 000 bps = 1 kbps. Asimismo, variando los valores de la frecuencia de muestreo , frecuencia portadora y el número de ciclos por símbolo (cs) se puede obtener una tasa de hasta 3 000 bps. Teóricamente, el valor límite es cuando cs=1 y la frecuencia de la portadora sea el valor más alto posible. El valor máximo de la frecuencia portadora está limitado por el ancho de banda del equipo. Validación y desarrollo Para la validación de la tasa binaria se desarrolló una prueba la cual consta de 3 pasos, los cuales se detallan en seguida: Primero: se captura la señal a enviar (1ra señal). Esta señal es generada con el programa Modulador desde C++; y ésta a su vez es mostrada con el MATLAB. Segundo: en el receptor, se captura la señal enviada por la radio (2da señal). Para realizar la captura se utiliza un programa hecho en MATLAB que controla la tarjeta de sonido. Tercero: obtenidas estas dos señales son comparadas tomando un tiempo de análisis de 14ms. Durante este tiempo se tiene que tener la misma cantidad de 18 muestras en ambas señales; así se demostrará que la tasa binaria es tal cual se halló teóricamente (1 000 bps). En esta validación se envió la palabra “validando”, la cual en formato binario es: “111011011000011101100110100111001001100001110111011001001101111”. Estos datos binarios son modulados y se obtiene la señal a enviar, la cual se puede apreciar en la figura 15. Figura (15) Señal enviada Una vez enviada esta señal es capturada con el programa “captura”. Este programa ha sido desarrollado con MATLAB. La señal capturada se ve en la figura 16. El tiempo de captura fue de 8 segundos. Figura (16) señal capturada La señal capturada por la tarjeta de sonido no sólo está compuesta por la señal modulada (Palabra “validando”), sino también, por el ruido inherente del canal y por el ruido por cierre del “peteteo”. Es importante señalar que este último no 19 ocasiona ningún inconveniente en la demodulación. Asimismo, la figura muestra la señal modulada (“validando”) capturada en distintos tiempos. Por ende, para llevar a cabo el tercer paso se extrae la señal modulada. Ésta se puede apreciar en la figura 17. Figura (17) Señal “validando” Habiendo realizado los dos primeros pasos, se realiza el último, en donde se compara parte de las señales (de la enviada y de la recibida), tomando en consideración los 14 ms definidos en el tercer paso. En la figura 18 se muestra las 2 señales a comparar. Figura (18) Comparación de la señal enviada y recibida – 14ms 20 En la figura 18 se muestran partes de la señal enviada (18a) y la recibida (18b) en un tiempo de 14 milisegundos. Tal como se puede apreciar, ambas presentan la misma cantidad de muestras durante el mismo tiempo; por lo cual se verifica que la tasa binaria es de 1 kbps, ésta es la tasa experimental del proyecto. Así también, se demuestra que las frecuencias de muestreo son las mismas tanto en el receptor como en el transmisor. Por otro lado, es importante observar la distorsión que ocasiona el canal a la señal modulada. Pero, aun con esas distorsiones, se llega a recuperar la información. Obviamente, el papel del codificador y entrelazador son de ayuda. 4.2. Descripción de la prueba del BER La segunda y última prueba fue calcular experimentalmente el BER. Para ello, se utilizó la ecuación 5, la cual se define a continuación. (5) Donde: : Numero de bits errados. : Numero de bits transmitidos. Para que se tenga una fiel certeza que el BER es tal cual se da, es decir, con el 100% de seguridad; la cantidad de bits enviados debería ser infinita. Por ende, las pruebas nunca terminarían. Por ello, para hacer práctico hallar el BER se utiliza un parámetro que se denomina “nivel de seguridad” (NS). Para ello, se tiene que fijar un umbral de BER. Obviamente, el umbral del BER será mayor al BER que se desea que tenga el sistema. Por lo tanto, se define el nivel de seguridad con la siguiente ecuación 14: (6) De la ecuación anterior se despeja la cantidad de bits a enviar “ lugar a la ecuación 7. ”, dando (7) Por lo tanto, la ecuación 7 define la cantidad de bits que se requieren enviar para obtener un BER menor al BER umbral con un nivel de seguridad fijado por los que realizan las pruebas. Por otro lado, en cualquier sistema de comunicación se quiere que el nivel de seguridad tienda a 100%. Sin embargo, éste está limitado por la velocidad de transferencia de datos del sistema que se implementa, ya que de esto dependerá 14 Cfr. Agilent Technologies 2012 21 el tiempo que demora realizar la prueba. Por ejemplo, para un estándar de comunicación como es el “Gigabit Ethernet” ( =1.25 Gbit/s) que especifica un BER menor a toma alrededor de 13 minutos en transmitir bits15. Esto quiere decir que con esta cantidad de bits enviados sólo se tendría un nivel de seguridad de seguridad de 63%. Si es que se fijase una BER con un nivel de seguridad de 90%, para el proyecto desarrollado, esta prueba tomaría 59 horas aproximadamente, lo cual no es práctico. Es por ello que para esta última prueba se fija un BER umbral de y un nivel de seguridad de 65 %. Esto quiere decir, utilizando la ecuación 7, se necesita enviar 104 983 bits como mínimo. Validación y Desarrollo Para la validación de esta prueba se desarrolló un testeador del BER. Éste es un programa desarrollado específicamente para el cálculo del BER. En la figura 19 se muestra la parte visual de este programa. Figura (19) Testeador del BER En la figura anterior, se pueden ver los detalles del testeador del BER (BERT). Se aprecian los controles de las características del sistema a variar, ya sean los parámetros de transmisión y recepción o de robustez del sistema. También, se puede apreciar cuadros de textos. En la parte inferior izquierda se encuentra el cuadro de texto, donde se colocan los datos a enviar, que para esta prueba consta de más de 14 998 caracteres. En la parte inferior derecha se encuentra la caja de texto donde se muestra los datos recibidos y en la parte superior de éste 15 Cfr. Palani Subbiah 2012 22 se encuentra otra caja de texto donde se muestra los datos con los que se comparará los datos que se demodulan. Estos dos cuadros de texto ayudan a ver en detalle que caracteres se están comparando, ya que se puede tener pérdida de paquetes y en ese caso se estaría comparando diferentes paquetes. Sin embargo, para evitar ese percance cada paquete enviado viaja con un identificador (cabecera). Esta cabecera es cíclica, va desde el cero hasta el nueve y luego vuelve a reiniciar desde cero. Esto se sabe en el demodulador, el cual cuenta con un algoritmo de detección y conteo de cabecera. Este algoritmo ayuda a sincronizar los paquetes que se comparan. Por ejemplo, un escenario es cuando el receptor está esperando el tercer paquete, pero por efectos de retardo de procesamiento (sea éste en el modulador o demodulador) se perdiesen 2 paquetes; entonces, el paquete a recibir sería el quinto. Esto es detectado por el receptor e inmediatamente cambia el paquete a comparar, del tercer al quinto paquete; con lo cual se soslaya el problema de comparar distintos paquetes de información. El BERT fue creado, en primera instancia, para alternar envío y recepción. Sin embargo, a la hora de realizar las pruebas se observó que el tiempo de procesamiento se incrementó considerablemente. Es por esa razón que se simplificó el código para que la comunicación sólo se dé en un sentido durante el tiempo de prueba. Es decir, que sólo un punto estará enviando y otro recibiendo durante todo el tiempo que demande realizar las pruebas. En esta prueba se envió un total de 16 156 caracteres. Todos estos datos son encapsulados en paquetes de 14 caracteres, de los cuales 13 son caracteres propios del texto a enviar y uno es carácter especial de cabecera que va variando su valor cíclicamente. Al termino del envío de todos estos caracteres se tuvo 3 paquetes perdidos en distintos tiempos por lo que se recibieron un total de 1 151 paquetes, los cuales hacen 112 798 bits recibidos. En todos estos bits recibidos no se apreció ningún error. Cabe mencionar que el tiempo que tomó realizar esta prueba fue de 2 horas con 30 minutos, aproximadamente. 4.3. Resultados de otras investigaciones similares En este apartado se citan a 2 proyectos relacionados al tema en desarrollo: uno de ellos fue realizado en Ucrania y el otro en el Perú. Justamente, el proyecto que se hizo en el Perú se realizó en la Universidad Peruana de Ciencias Aplicadas y en la misma facultad de los desarrolladores del presente proyecto. El proyecto lleva por nombre: “Monitoreo remoto de señales a través del canal de voz de teléfonos celulares GSM”. Por su parte, el proyecto realizado en Ucrania es conocido con el nombre: “UZ7HO Soundcard Modem”. En las siguientes líneas se dará un breve alcance de ambos proyectos. En relación al proyecto realizado en el Perú, fue un proyecto que se presentó el año 2009. Este proyecto consistió en el envío de datos en la banda de UHF (Ultra High Frecuency). Se utiliza una estructura ya establecida como es la telefonía 23 (GSM) y así aprovecha sus enlaces para el envío de datos16. En la siguiente figura se muestra el esquema a nivel macro del mencionado proyecto. Figura (20) Esquema general del proyecto De la figura anterior, se puede apreciar que para enlazar dos puntos se necesita en cada uno de ellos un modem. Para este trabajo, un modem se encuentra en la computadora y el otro en un DSP. Obviamente, el DSP es usado, aparte de actuar como modem, como lector de datos. Estos datos son los que se modulan en el DSP y son enviados mediante el celular. El modem que desarrollaron utiliza un modulador 4-FSK con demodulación no coherente. Asimismo, utilizan un codificador de canal (codificador de bloque (7,4)). Este proyecto, obtuvo como resultado un promedio en la tasa de error de 2,4 % y con una desviación estándar de 0,04 %. Asimismo, consiguieron una tasa de transferencia de 80 bps. Por otro lado, el “UZ7HO Soundcard Modem” es un proyecto realizado por Andrei Kopanchuk’s radio aficionado de Ucrania. Este es un modem software desarrollado para ser usado en las bandas de HF, VHF y UHF para la trasmisión de datos. Este proyecto presenta el mismo esquema de funcionamiento que el sistema que se propone en este proyecto. Sin embargo, se presentan cierta diferencia: en el modulador utiliza la modulación FSK. Asimismo, este presenta distintas tasas de transferencia, dependiendo si la transmisión se hará en HF o en VHF. La tasa para HF está en 300 bps y la tasa para VHF es de 1 200 bps17. Este proyecto sigue realizando mejoras y está teniendo mucha aceptación dentro de los radioaficionados. 4.4. Análisis de resultados Tal como se vio en la sección anterior en el proyecto que se realizó se obtuvo una tasa de transferencia de 1 000 bps. Obviamente, para lograr esto se tomó ciertas consideraciones en la frecuencia de la portadora ( ) y la cantidad de ciclos por símbolo ( ), tal como se mencionó en dicha sección. Comparando con la tasa 16 Cfr. Bodero y Sarmiento 2009 17 Cfr. Andrei Kopanchuk’s 2012 24 obtenida en el trabajo de Bodero y Sarmiento18 se tiene un incremento en 1 150 %. Este gran aumento en la tasa de transferencia se debe a varias razones: al utilizar una modulación en fase con M = 4 ( QPSK) la densidad espectral de potencia es más angosta por lo cual ocupa menor ancho de banda y por ende se tiene mayor posibilidad en variar la frecuencia portadora. Es decir, se tiene más facilidad de aumentar la frecuencia de portadora y por lo tanto incrementar la tasa de transferencia. Por ejemplo, si se cambia, para la ecuación 2, la frecuencia de portadora de 2 kHz a 3 kHz, la tasa se incrementa a 1 500 bps. Otro factor es la cantidad de muestras por símbolo. Ellos utilizan más del doble (200 muestras por símbolo) en cantidad de muestras que las que se utiliza para este proyecto. Obviamente, el utilizar una frecuencia de muestreo menor al que se utilizó, también, es una causa para la diferencia entre las tasas. En contraparte, el proyecto “UZ7HO Soundcard Modem”, presenta una tasa mayor en un 16,6 %. Sin embargo, cabe aclarar que el valor de la frecuencia de portadora puede ser incrementado hasta 3 kHz y el número de ciclos por símbolo reducido hasta 2 ciclos por símbolo; pudiendo así lograr tener una tasa de transferencia de 3 000 bps. Con estas consideraciones se tendría una tasa binaria mayor en un 150 %. Obviamente, al realizar el incremento de la tasa la calidad del sistema decrece. Por otro lado, el proyecto realizado presenta una tasa de error de bit menor a con un nivel de seguridad de 65 %. En contraparte el proyecto realizado por los autores Bodero y Sarmiento presenta una tasa de error de bit, de acuerdo a la estadística brindada, de . La siguiente tabla muestra las características de los proyectos en comparación. Parámetro / Proyectos Cáceres y Olmedo Kopanchuk Bodero y Sarmiento Tasa 1 000 bps 1 200 bps 80 bps BER Menor a Modulación FSK 4-FSK Canal Voz FM - Banda VHF Voz Banda HF, VHF y UHF Voz GSM Codificación Convolucional (2,1,2) - Bloque (7,4) Tabla (2) Comparación de parámetros entre proyectos 18 Cfr. Bodero y Sarmiento 2009 25 5. CONCLUSIONES La investigación realizada, plasmada en un proyecto, fue para satisfacer la necesidad del Centro de Operaciones de Emergencia Nacional (COEN) del Instituto Nacional de Defensa Civil (INDECI). Los usuarios que van a utilizar el modem software desarrollado, no necesariamente tienen conocimiento de las telecomunicaciones digitales. Por ello, la interfaz visual para el usuario presenta 2 modos de operación, la básica y la avanzada. En el modo básico, todo los parámetros de transmisión están predefinidos, por lo cual el usuario sólo tendrá que escribir el texto a enviar y darle click en el botón enviar; olvidándose de configurar valores como la frecuencia de portadora, frecuencia de muestreo y el número de ciclos por símbolo. El proyecto aprovecha la estructura de comunicación analógica por radiofrecuencia en la banda VHF de la institución. Por ello, el único hardware que se crea en el proyecto es la Tarjeta Interfaz LernToch (TILT). Internamente, contiene una tarjeta interfaz para la tarjeta de sonido/radio y la tarjeta de sonido. Este equipo es el encargado de recibir las señales enviadas y entregárselas al modem software. Se logró estimar el ancho de banda del sistema, el cual resultó ser de 3,3 kHz. Esto se logró en dos pasos: Primero, se envió sonidos de audio con un ancho de banda de 4,5 kHz generados con el programa SPARK DRM. Estos fueron capturados por el programa WINRAD, el cual mostraba las filtraciones que sufría los sonidos de audio. Lo anterior ayudó a limitar el ancho de banda. Finalmente, una vez visto que el ancho de banda es menor a los 4,5 kHz se envió tonos desde los 400 Hz hasta los 6 kHz con un paso de 200 Hz (Se envió hasta los 6 kHz para validar el primer paso). Estos tonos fueron capturados y se analizaron la atenuación que sufrían; y con el criterio de los -3 dB se estimó que la frecuencia de corte inferior = 900 Hz y que la frecuencia de corte superior = 4,2 kHz. Por lo que el ancho de banda estimado es 3.3 kHz; lo cual está dentro de lo esperado ya que estas radios (Yaesu FT-2200) están hechas para la transmisión de voz. Se investigó tres tipos de modulación digital en esencia: ASK (Amplitude Shift Keying), FSK (Frecuency Shift Keying), y PSK (Phase Shift Keying). De éstas se eligió utilizar la modulación PSK, debido a que este esquema de modulación presenta mayor inmunidad al ruido que la ASK y ocupa un menor ancho de banda que la modulación FSK. Es decir, se tomó el término medio teniendo en consideración robustez de modulación y optimización del ancho de banda. Asimismo, el esquema de modulación PSK presenta distintas variantes de las cuales se optó por utilizar la modulación QPSK. Esto debido a que ésta elimina la ambigüedad de fase y disminuye el efecto que causa trabajar en la zona no lineal de un amplificador de potencia. 26 La información modulada con QPSK puede ser recuperada mediante demodulación coherente o no coherente. En este proyecto se optó por la no coherente debido a que ésta presenta menor complejidad y por ende menor tiempo de procesamiento, lo cual le da al sistema un mejor tiempo de respuesta. Se llegó a implementar satisfactoriamente la codificación de canal. Para ello, se analizó los dos tipos de codificación de canal la ARQ (Automatic ReQuest) y la FEC (Forward Error Correction). No se optó por la ARQ porque generaría mucho retardo, haciendo ineficiente el sistema. Por ello, se utilizó un tipo de codificación convolucional (2, 1, 2) y en la decodificación se utilizó el algoritmo de Viterbi. Asimismo, se añadió el entrelazado de datos el cual protege aún más la información enviada, especialmente, cuando se produce ráfaga de errores. Sin embargo, cabe mencionar que la codificación de canal es la que consume mayor tiempo de procesamiento, pero se implementó para dar mayor robustez al sistema. La sincronización fue creada especialmente para este proyecto y fue denominada Sincronización por Tiempos Muertos (STM). Esta sincronización requiere que se deje de transmitir por un determinado tiempo. Este tiempo depende de los tiempos de procesamiento tanto en el modulador como en el demodulador. Es así que para este proyecto fue necesario tener un tiempo muerto de aproximadamente 1,2 segundos. Se hallaron dos parámetros que miden al sistema desarrollado: la tasa de transferencia de datos y el BER (Bit Error Rate). En relación al primero, se llegó a comprobar, lo que teóricamente se calculó, que el sistema presenta una tasa de transferencia de 1 000 bits por segundo. El segundo parámetro hallado fue la tasa de error la cual se demostró que es menor a con un nivel de seguridad del 65 %. Lo cual, quiere decir que de 100 000 bits enviados todos llegarán a ser recuperados sin ningún error. 27 6. APLICACIONES APLICACIÓN REALIZADAS Y OTRAS POSIBILIDADES DE El trabajo realizado es muy versátil y se puede dar uso en distintos campos, por ende las aplicaciones pueden ser diversas. Enseguida, se detalla algunas de ellas. • Sistema de alerta temprana Siempre ha sido, es y será necesario un sistema de alerta temprana confiable y seguro. El presente proyecto, se puede adecuar de una manera sencilla con otros dispositivos o sistemas y formar parte de un sistema de alerta temprano. Para lograr lo mencionado, bastaría con crear una interfaz con dichos sistemas. Es así que el presente proyecto se podría utilizar, por ejemplo, para un sistema de alerta de tsunamis. Ya que el modem software se puede unir con un sistema de sensores, los cuales en cada instante estarían censando los parámetros necesarios que indiquen la existencia de un tsunami. Esta información brindada por los sensores serían enviados gracias al modem software y con esta información se podría dar la activación de la alerta para una evacuación de emergencia. • Chat e intercambio de información inter-comunidades Debido a la agreste geografía que presenta el Perú, existen comunidades rurales en el interior del país que prácticamente viven aislados de la sociedad. Éstas cuentan con un pobre sistema de comunicación. Este proyecto se puede utilizar para ayudar a intercomunicar dichas comunidades apartadas, con un centro urbano donde se podría transmitir datos e incluso implementarse un chat rural. • Red de seguridad marítima. Hay ciertos sectores en el mar que son restringidos para la pesca industrial, donde sólo se les permite la presencia de los pescadores artesanales. Sin embargo éstos, haciendo caso omiso a la disposición, realizan sus actividades pesqueras en las zonas restringidas, perjudicando así a los pescadores artesanales. Se podría implementar una interfaz con un sensor el cual dé información al algoritmo de control y mediante el modem software se podría remitir la información a los encargados de la supervisión, para que así puedan sancionar a los responsables. 28 • Uso del canal de audio para enviar información encriptada. En el modem software se pueden desarrollar algoritmos de encriptación para el envío de información encubierta. Esta aplicación estaría enfocada al sector militar. • Sistema de telecomunicaciones para emergencias. Cuando ocurren catástrofes como los ocurridos en agosto del año 2007, las comunicaciones juegan un gran papel dentro del país. Es por ello que es de vital importancia tener sistemas de comunicación que trabajen y funcionen en forma paralela e independiente de las comunicaciones convencionales. Es así que se desarrolló la presente investigación, ya que se enfoca a la transmisión de información digitalizada, aprovechando el sistema de comunicación analógica, el cual funciona de forma independiente del Internet y de las comunicaciones móviles y fijas. • Monitoreo y control remoto para las industrias. Hay gran cantidad de empresas, que tienen sucursales a nivel nacional o simplemente tienen plantas de trabajo, que se encuentran alejados de la sede principal que necesitan de monitoreo y control. Ejemplos de ellas pueden ser las generadoras de electricidad, las centrales hidroeléctricas, las cuales se encuentran en zonas donde la geografía es por lo general agreste. Es así que el modem software que se desarrolló sería útil para el envío, por ejemplo, la intensidad de corriente eléctrica producida o de alguna alerta que se podría dar en una planta de energía eléctrica. • Posicionamiento y localización Existen personas con espíritu aventurero que se van a lugares desconocidos. Un ejemplo de ellos son las personas que practican “off road”, que necesitan comunicarse entre ellos y enviar sus coordenadas de posicionamiento para así no desviarse de su trayecto. El sistema que se desarrolló cuenta con la característica de ser portable y su funcionamiento sería ideal para la transmisión y recepción de coordenadas en la banda ciudadana. 29 ANEXOS INDICE ANEXO 1: ASPECTOS INTRODUCTORIOS Pag. 33 1.1 1.2 Resumen Estado del arte del Modem Software 33 33 1.3 Ventajas y Desventajas 36 ANEXO 2: MARCO TEÓRICO 38 2.1 38 Sistema de comunicaciones (analógicas- digitales) 2.1.1 Modulación analógica 39 2.1.1.1. Modulación Angular 40 2.1.2 Modulación digital 41 2.2 Modulación QPSK 43 2.3 Demodulación 2.4 Filtro correlador 50 2.5 Codificación de canal 51 QPSK 46 2.5.1 Codificador convolucional 52 2.5.2 Decodificación – Algoritmo de Viterbi 57 2.6 Entrelazador 58 2.7 Tasa de error (BER) - Probabilidad de error de bit ( 2.8 Tasa binaría ( 2.9 Sincronización ) ) 59 62 62 ANEXO 3: FRECUENCIAS DE TRABAJO DEL MÓDULO DE COMUNICACIONES DEL CENTRO DE OPERACIONES DE EMERGENCIA NACIONAL (COEN) 66 ANEXO 4: RECOMENDACIONES 68 ANEXO 5: DIAGRAMAS DE FLUJO 69 5.1 Diagramas de flujo del software desarrollado en C++. 69 5.1.1 Demodulador 69 5.1.2 Modulador 71 5.1.3 Entrelazador 72 5.1.4 Desentrelazador 73 5.1.5 Codificador 74 5.1.6 Decodificador 76 5.2 Diagramas de flujo del software desarrollado en C# 78 5.2.1 Transmisor 81 5.2.2 Receptor 83 ANEXO 6: Manual de Usuario 86 Glosario 99 Bibliografía 101 ANEXO 1: ASPECTOS INTRODUCTORIOS 1.1 Resumen El presente trabajo de investigación consistió en implementar un software de radio modem que en adelante se denominará modem software para la transmisión de datos sobre canales analógicos en la banda de voz aplicado en el Centro de Operaciones de Emergencia Nacional (COEN) del Instituto Nacional de Defensa Civil (INDECI). La iniciativa para desarrollar este trabajo de investigación nació con la necesidad del COEN de contar con un medio de transmisión de datos alternativo al Internet, teniendo en cuenta la disponibilidad de equipos de radio analógicos en la banda VHF, que pueden ser aprovechados para dicho objetivo a bajo costo. Al término del trabajo de investigación, se logró desarrollar un sistema de comunicaciones mediante el cual se puede transferir datos a través de equipos de radio analógicos en la banda VHF y que el COEN podrá hacer uso del mismo, como una alternativa a la comunicación básica entre sus distintas sedes. 1.2 Estado del arte del Modem Software El desarrollo del Packet Radio ha evolucionado en el tiempo, para llegar a los estándares que se tiene en la actualidad, lo cual se resume a continuación. Historia del Packet Radio • En 1945 la Comisión Federal de Comunicaciones de EE. UU (Federal Communications Commission - FCC) licencia la banda para el radioaficionado. • En 1970 comienza la era del Packet Radio y el uso del TCP / IP para redes inalámbricas de radioaficionados. DARPA, se convertía en el pionero fundamental en la convocatoria de una red mundial que más tarde se convirtió en la Internet. • En 1981 la FCC autorizó las frecuencias de espectro ensanchado a aficionados. • En 1985 se acepta usar la banda ISM; antes de los 80’s era inaceptable para las radiocomunicaciones porque el equipo producía interferencia. • En 1989 se describió por primera vez un enlace de datos vía microondas a bajo costo, para construir una red de radio aficionados con capacidad de soportar una variedad de aplicaciones, permitiendo a los aficionados compartir recursos. • En 1990 Phil Karn diseña un nuevo método para acceder al canal. Tal desarrollo, más adelante, fue adoptado por el IEEE 802.11. 33 • A principios de 1997 la organización TAPR comenzó a desarrollar una transmisión a 128 Kbps en una frecuencia de 900 MHz con 1 vatio de potencia, lo cual sugería que ese sería el futuro para el Packet Radio (aficionado). • A mediados de 2001, se formó la ARRL HSMM y se comenzó la promoción del uso generalizado de los modos del espectro ensanchado, tales como IEEE 802.11, en las frecuencias de radio aficionados. • 2004, los defensores del open source descubrieron que la serie de routers Linksys WRT54 están basados en los componentes de Linux. Es así que el desarrollo del Packet Radio ha ido avanzando paulatinamente. Sin embargo, a mediados de los años 90, aproximadamente, el crecimiento se detuvo considerablemente debido a la creciente fiebre del Internet; pero las nuevas aplicaciones de software como el Narrow Band Emergency Messaging Software (NBEMS) han mejorado enormemente la función de transmisión y recepción dentro de este campo. Esto debido al trabajo de grandes grupos de radioaficionados. A continuación, se detalla los principales software y estándares de comunicación para el Packet Radio. NBEMS NBEMS1, son las siglas en inglés de Narrow Band Emergency Messaging Software. El NBEMS, es un conjunto de programas (software), para el envío de mensajes de emergencias en banda angosta. Este software, permite enviar y recibir datos de manera confiable, usando una computadora y una radio analógica y sin ningún requerimiento de una estructura digital dedicada como un Terminal Network Controller (TNC). El envío de datos es posible en VHF, UHF y en HF. Este software consta de cuatro programas, los cuales son2: FLdigi: Éste es un programa creado para el radio aficionado y que utiliza al computador personal como el modulador y demodulador (modem). Este programa, emplea la tarjeta de sonido para generar y decodificar señal digital. Así mismo, está preparado para trabajar en diferentes modos digitales como Domino EX, MFSK16, PSK31 y RTTY. Flarq: Del inglés Fast Ligth Automatic Repeat reQuest. Es una aplicación de transferencia de archivos que está basado en la especificación de “ARQ”. Flarq está preparado para enviar tramas de datos con protocolo ARQ. El envío de datos se puede hacer mediante FLdigi o MultiPsk por plataforma Windows, o mediante 1 Cfr. ARRL 2010 2 Cfr. Freese 2010 34 FLdgi por plataforma Linux. Así mismo, este programa se puede utilizar con diferentes módems sea BPSK, QPSK, MFSK, DOMINOEX 11, THOR Y MT63. Flwrap: Este programa permite el envío de los datos con una seguridad alta, tanto de mensajes de texto o imágenes. Se encapsulan los archivos y se les asigna una cabecera de identificación, la cual consta de 16 bits de chequeo, que permiten la verificación de la integridad del archivo. Este software puede ser utilizado con cualquier modem digital. Flmsg: Es un editor de formatos simples de gestión para radio aficionados. Este software maneja formatos estándar para el envío de mensajes, los cuales son: ICS-203, ICS-205, ICS-205A, ICS-206, etc. D-STAR El D-STAR, es un estándar digital para la transmisión por radio que nació en 2001, como un trabajo de investigación financiado por el Ministerio de Correos y Telecomunicaciones de Japón, para investigar tecnologías digitales para radioaficionados. La comisión de desarrollo fue integrada por representantes de los fabricantes japoneses de radioaficionado incluyendo a ICOM y a la Liga de Japón de Radioaficionado (JARL). El sistema D-STAR, lleva voz digitalizada y datos en las bandas VHF y UHF (en 1,2 GHz). El envío de la información se realiza en dos diferentes modos. El primer modo es el D-STAR DV para el envío de voz digitalizada. El segundo modo es el D-STAR DD para el envío de datos3. TETRA TETRA del inglés Terrestrial Trunked Radio, ha sido diseñado específicamente para el uso de las agencias gubernamentales, servicios de emergencia, transporte y militar (principalmente)4. TETRA es un estándar que fue definido por la European Telecommunications Standards Institute (ETSI), cuya primera versión fue publicada en 1995. ETSI fue el ente que publicó la norma para GSM, que es el estándar más popular para los teléfonos móviles en el mundo. TETRA, trabaja de una manera muy similar a la GSM, y sus principales diferencias radican en que los teléfonos tienen un alcance mayor y 3 4 Cfr. Wikimedia 2010A Cfr. ITU 2010 35 hay más ancho de banda asignado para los datos. TETRA es aprobado por el Comité Europeo de Comunicaciones de Radio (ERC) y es de uso obligatorio en Europa. APCO25 (P25) A diferencia del D-STAR, que es un estándar digital diseñado por y para radioaficionados, APCO-25, fue desarrollado específicamente para comunicaciones estatales, locales y federales de seguridad pública de EE. UU5. APCO, es la Asociación de Funcionarios de Seguridad Pública de Comunicaciones, que originalmente fue una asociación de técnicos de comunicación policial y que ahora es una organización privada. El propósito general del estándar APCO-25, es hacer posible que los gobiernos cambien de comunicación analógica a digital con la menor dificultad posible. Esto significa colocar una gran cantidad de énfasis en la compatibilidad con versiones anteriores y en la interoperabilidad. En el mundo de la seguridad pública, la interoperabilidad es un punto clave. La experiencia de comunicaciones caóticas en la ciudad de Nueva York, durante el ataque terrorista del 11 de septiembre del 2001 y en el 2005 durante el huracán Katrina, demostró la importancia crítica de la interoperabilidad6. Durante los desastres, hubo numerosos casos, en que la comunicación por radio entre los distintos grupos era imposible, porque cada grupo estaba usando equipos mutuamente incompatibles. 1.3 Ventajas y desventajas El presente trabajo presenta diversas ventajas y desventajas las cuales se enumeran a continuación: Ventajas: 1. Bajo costo. 2. Confiabilidad para datos de baja velocidad. 3. Acorde a la necesidad del país, porque es de bajo costo de adquisición ya que utiliza la infraestructura existente. 4. Gran versatilidad, permite variedad de aplicaciones. 5 Cfr. APCO 2010 6 Cfr. NBEMS 2010 36 5. Portabilidad, debido a su adaptación en unidades móviles. 6. Alta privacidad, debido a que la información enviada sólo puede ser recuperada por el mismo sistema desarrollado. 7. Simple de usar por la similitud a la interfaz visual de un software de mensajería instantánea. 8. Independencia de un Terminal Network Controller (TNC). 9. Simplicidad para el envío de paquetes. 10. Uso generalizado para cualquier transceptor. Desventajas: 1. Baja tasa de transferencia debido al reducido ancho de banda del canal telefónico. 2. No es interoperable, porque no es compatible con otros módems software. 3. No es confiable para el intercambio de archivos, porque el sistema utiliza la arquitectura Forward Error Correction (FEC), ya que ésta asegura sólo la recuperación de la pérdida de algunos bits más no de los paquetes. 37 ANEXO 2: MARCO TEÓRICO 2.1 Sistema de comunicaciones (analógicas- digitales) Un sistema de comunicaciones, es un conjunto de elementos mediante los cuales se logra transportar información de un lugar a otro. En un sistema, puede haber gran cantidad de elementos que forman parte del mismo; sin embargo, se tiene tres elementos fundamentales, los cuales son: Transmisor: Procesa la señal de entrada, moldeándola de acuerdo a las características del canal de transmisión para que sea posible enviar la información. Canal de transmisión: Es el medio que actúa como un puente, entre la fuente de la información y el destino. Receptor: Es el encargado de recibir la señal del canal de transmisión, para realizar procesos inversos al del transmisor con el fin de recuperar la información enviada. En seguida, en la figura 2.1 se muestra los 3 elementos esenciales de todo sistema de comunicaciones. Figura (2.1) Elementos de un sistema de comunicaciones Estos elementos, son la parte principal tanto de un sistema de comunicación digital como de un sistema de comunicación analógico. En términos simples, un sistema de comunicación digital, es aquel sistema que pasa información de una fuente digital al canal. Un sistema de comunicación analógica, es aquel que pasa información de una fuente analógica al canal7. Asimismo, no cabe duda que el sistema de comunicación digital presenta mayores ventajas que un sistema de comunicación analógico, tales como: 7 Se pueden usar circuitos relativamente baratos. Se puede mezclar y transmitir datos de voz, video y fuentes de datos mediante un mismo sistema. En un sistema de larga distancia, no se acumula el ruido entre una repetidora y otra. Cfr. Couch 1998: 5 38 Los errores en los datos pueden ser menores, incluso cuando hay gran cantidad de ruido. Con frecuencia, se pueden corregir los errores mediante la codificación que se realice. Las desventajas de la comunicación digital son: En general requiere más ancho de banda que los sistemas analógicos. Algunos requieren sincronización, como los sistemas coherentes. Sin embargo, estos sistemas comparten problemas inherentes a todo sistema de comunicaciones los cuales limitan su funcionalidad. Estas limitantes son dos en esencia, los problemas tecnológicos y las de naturaleza física. Dentro del problema tecnológico tenemos, principalmente, la disponibilidad del hardware, factores económicos y las regulaciones de cada Estado. Estos son problemas que teóricamente pueden ser resueltos. Por otro lado, se tienen limitantes fundamentales, basado en las leyes de la física, las cuales determinan si es factible una comunicación, tales como el ancho de banda y el ruido8. Tomando estas dos limitantes fundamentales, en 1948 el renombrado científico Claude E. Shannon llegó a determinar la capacidad del canal de transmisión gaussiano ideal. La ecuación 2.1 muestra lo mencionado. (2.1) Donde: C: capacidad del canal (bps). B: Ancho de Banda (Hz). S/N: Relación señal – ruido. Asimismo, en todo sistema de comunicación, en la parte de transmisión existe una parte a la cual se le considera como el centro de la transmisión, la modulación. Ésta puede ser analógica o digital. 2.1.1 Modulación analógica La modulación analógica, se caracteriza por la variación de algún parámetro de una portadora sinusoidal de alta frecuencia en función de la señal mensaje. La frecuencia de la portadora debe ser alta, ya que gracias a ésta se hace posible la transmisión del mensaje. Existen distintos tipos de modulación analógica, pero las principales son la modulación AM (Amplitude Modulation), FM (Frecuency Modulation), PM (Phase Modulation), etc. Asimismo, hay variantes en relación a éstas que no son tema a tratar en este trabajo de investigación. A continuación, en la figura 2.2 se muestra el diagrama de un sistema de comunicación analógica. 8 Cfr. Carlson 1987: 4-5 39 Figura (2.2) Sistema de comunicación analógica 2.1.1.1 Modulación Angular La modulación angular, es una modulación que engloba a la modulación por fase (PM) y a la modulación por frecuencia (FM)9. En el presente trabajo, dejaremos de lado la modulación por fase y daremos detalles puntuales sobre la modulación por frecuencia. Sin embargo, cabe aclarar que estos dos tipos de modulación son muy parecidos. Hay relación entre ellas y mediante esta relación se puede convertir una modulación por fase en una modulación por frecuencia. La modulación por frecuencia, se caracteriza por variar la frecuencia instantánea de manera proporcional al mensaje. Esto se puede apreciar en la ecuación 2.2. (2.2) Donde: : Frecuencia instantánea (Hz). : Frecuencia de portadora (Hz). : Constante de desviación de frecuencia (rad/V-s). : Mensaje (V). Lo anterior se puede apreciar gráficamente. La figura 2.3 muestra el mensaje, la frecuencia instantánea y la señal modulada en frecuencia10. 9 10 Cfr. Couch 1998: 311 Cfr. Couch 1998: 314 40 Figura (2.3) Modulación en frecuencia (FM) De la gráfica anterior, se puede apreciar que la frecuencia instantánea tiene un máximo y un mínimo, está determinado por la desviación de frecuencia, . A su vez, está limitado por el voltaje pico del mensaje. Esta relación se puede apreciar de forma matemática en la ecuación 2.3. (2.3) Donde: : Desviación de la frecuencia (Hz). : Constante de desviación de frecuencia (rad/V-s). : Voltaje pico del mensaje (V). Esta relación, implica que si la amplitud de la señal modulante (mensaje) se incrementa, también y por ende, el ancho de banda. Sin embargo, la potencia promedio de la señal modulada será la misma. Éstas son características inherentes a la modulación angular. 2.1.2 Modulación digital En la modulación digital, la señal analógica es modulada por un flujo binario (bits). Dentro de la modulación digital se puede decir que hay 2 categorías principales. Una de ellas, es la que mantiene la amplitud de la portadora constante y la información viaja en la frecuencia o fase. La otra, es la que lleva la información en la amplitud. Dependiendo donde se lleve la información se le designa el nombre correspondiente. Es así que, cuando la información viaja en la frecuencia la modulación se conoce con el nombre de Frecuency Shift Keying, más conocido como modulación FSK; si la información se transmite en la 41 fase el nombre de este tipo de modulación es Phase Shift Keying, más conocida como modulación PSK y por último si la información viaja en la amplitud se le denomina Amplitude Shift Keying (ASK). Las anteriores son las principales, sin embargo, de la variación de estos nacen otros tipos de modulación como es la PSK M-aria, FSK M-aria, PSK M-aria, QAM, DMPSK, entre otros. Todas las modulaciones digitales, pueden ser utilizadas en un sistema de comunicaciones digitales. Particularmente, para este trabajo de investigación se utilizó la modulación QPSK, en la sección 2.2 se da las razones de su elección. En la figura (2.4) se muestra el esquema de la modulación de un sistema de comunicaciones digitales. Figura (2.4) Sistema de modulación digital Como se muestra en la figura anterior, un sistema de modulación digital está, principalmente, compuesto por cuatro bloques. La fuente, es donde se origina o recopila la información a transmitir bien puede ser video, texto, voz, etc. El segundo bloque, es el codificador de fuente, la cual tiene como función transformar la información que se tiene de la fuente en un formato adecuado (formato binario) para ser procesado. Algunos de los más usados codificadores de fuente son el MPG2, codec PCH, vocoders, Huffman, etc. El tercer bloque, es el codificador de canal, el cual cumple con la función de proteger la información, para así tener una menor cantidad de bits errados. En el último bloque, se encuentra el modulador digital, el cual tiene como misión adecuar la señal (información) para su adecuada transmisión por el canal. En este bloque se puede utilizar distintos tipos de modulación ya sea ASK, PSK, FSK, QPSK, DPSK, etc. Para un mejor entendimiento de los distintos tipos de modulación a continuación en la figura (2.5) se muestra el diagrama de bloques general del modulador digital11. 11 Cfr. Valdez 2009 42 Figura (2.5) Diagrama de bloques general del modulador digital De la gráfica anterior se define la siguiente ecuación: (2.4) Donde: : Amplitud instantánea en la salida del modulador (voltios). : Frecuencia angular (rads/seg). : Fase de referencia. 2.2 Modulación QPSK La elección de utilizar la modulación PSK y no la modulación ASK, ni la modulación FSK, fue que ésta es más robusta frente al ruido y consume un menor ancho de banda que FSK. Luego de haber seleccionado la modulación en fase se escogió la modulación QPSK. Esto debido a que ésta no sufre una degradación del Bit Error Rate (BER), cuando la eficiencia del ancho de banda se incrementa12 al pasar de BPSK a QPSK. Asimismo, dentro de la modulación QPSK, hay variantes como DQPSK, OQPSK y QPSK. 12 Cfr. Xiong 2000: 154 43 De las variantes mencionadas se escogió la modulación QPSK, debido a que toma las ventajas de la modulación DQPSK y de la OQPSK. Es decir, este tipo de modulación elimina la ambigüedad de fase y disminuye la dispersión del espectro cuando se trabaja en la zona no lineal de un amplificador de potencia. Asimismo, tiene otra ventaja particular ya que puede utilizarse un demodulador no coherente. Y es por estas ventajas que esta modulación ha sido adoptada como un estándar en el sistema digital de celulares en Japón y Estados Unidos13. Asimismo, cabe mencionar que este tipo de modulación es muy parecida a la modulación DEQPSK. La diferencia es que ésta presenta una regla de codificación diferente. A continuación se muestra la regla de codificación de la DEQPSK y de la QPSK. Regla de codificación DEQPSK: (2.5) (2.6) Regla de codificación QPSK: (2.7) (2.8) Donde: : Señal codificada para el canal en fase. : Señal codificada para el canal en cuadratura. Claramente de las ecuaciones 2.5, 2.6, 2.7 y 2.8, se pueden apreciar las diferencias en las reglas de codificación. Asimismo, la codificación en la modulación QPSK es más sencilla, lo cual permite tener un menor tiempo de procesamiento en el modem software. A continuación, en la figura 2.6 se puede apreciar el esquema del modulador 13 QPSK. Cfr. Xiong 2000: 160 - 170 44 Figura (2.6) Modulador Del esquema de modulación anterior, se determinará matemáticamente la señal modulada. Por practicidad se obviarán los bloques del codificador diferencial y la del convertidor serie a paralelo del diagrama de bloques del modulador , la cual se puede apreciar en la figura 2.6. La señal modulada será denotada por . (2.9) (2.10) (2.11) (2.12) En seguida en la figura 2.7 se muestra la señal modulada para los datos binarios “1 0 0 1 1 0 0” 45 Figura (2.7) Señal modulada - 2.3 Demodulación QPSK Al utilizar la modulación QPSK, la información viaja en una diferencia de fase . Esto permite utilizar un demodulador no coherente. Sin embargo, una modulación coherente es necesaria si es que se quiere una mayor eficiencia en cuanto a la potencia de transmisión. Existen cuatro formas de recuperar la información cuando se utiliza la modulación QPSK, éstas son: 1) Detección diferencial en banda base. 2) Detección diferencial en banda IF (Intermediate Frequency). 3) Detección por discriminador FM. 4) Detección coherente. Las primeras tres formas de demodulación son no coherentes. Asimismo, la calidad de éstas respecto a una demodulación coherente es de 2 a 3 dB menos14. Para el desarrollo de este trabajo de investigación, se utilizó un demodulador no coherente con detección diferencial en banda IF, ya que ésta es más sencilla y no necesita un 14 Cfr. Xiong 2000: 173 46 oscilador local. La frecuencia intermedia utilizada varía entre 1 kHz y 3 kHz. Enseguida en la figura 2.8 se puede apreciar el esquema del demodulador utilizado. Figura (2.8) Demodulador Lo destacable de este demodulador es que no necesita de un oscilador local. La señal para la multiplicación en el canal de fase y cuadratura se obtiene de la misma señal recibida. Sin embargo, antes de entrar al multiplicador en el canal de cuadratura la señal de entrada es desfasada en . Luego de pasar por el multiplicador la señal es filtrada. Se decidió utilizar el filtro correlador en vez de un filtro adaptado, ya que el primero es más tolerante al jitter15. Más adelante se dará mayor detalle sobre el filtro correlador y las virtudes que ésta presenta. En seguida de haber sido filtrada la señal se realiza el muestreo, para luego, con ésta realizar la toma de decisión si es un cero o un uno. Algo que es muy importante mencionar es la ventaja de utilizar el modulador , ya que simplifica el trabajo del demodulador. En el sentido que ésta permite que sólo haya un umbral para la detección, lo cual no sucede al utilizar un modulador DEQPSK. Lo anterior se puede apreciar en la figura 2.9. 15 Cfr. Valdez 2009 47 Figura (2.9) Cantidad de umbrales DEQPSK y QPSK Tal como se observa en la figura 2.9a, al utilizar el esquema de modulación DEQPSK, a la salida del filtro, se tiene dos umbrales para la decisión. Se cuenta con 2 umbrales de decisión porque hay varios cruces por cero en casi la mitad de la señal a la salida lo que producen 3 intervalos y es en el intervalo central en dónde se darán indeterminaciones. Esto se reduce cuando se cambia al esquema de modulación QPSK, que con un cruce por cero sólo tiene un umbral, figura 2.9b. De la figura 2.8 es la señal de recepción: (2.13) Donde: : Frecuencia de la portadora. : Fase instantánea de la señal. : Fase de referencia. Considerando el retardo de un periodo, la señal multiplicadora será: (2.14) Por lo que a la salida del multiplicador se tendría : (2.15) (2.16) 48 Luego esta señal pasa a ser filtrada obteniendo a la salida (2.17) La señal filtrada ahora pasa por el muestreador y una vez obtenida la muestra se procede a la toma de decisión, de la siguiente manera: Si: v (2.18) v (2.19) Una vez tomada la decisión, se pasa de paralelo a serie y finalmente se obtiene la información recuperada. Para ver el funcionamiento del demodulador se toma la señal mostrada en la figura 2.7 como la señal . Al pasar esta señal por todas las etapas se llega recuperar la información enviada. En la figura 2.10 se aprecia los bits recuperados. Figura (2.10) Bits recuperados Tal como se puede apreciar en la figura 2.10, se llega a recuperar los bits enviados. Más adelante en la sección del filtro correlador se mostrará cómo es que al pasar la señal por ésta, sólo se tiene un umbral de detección por lo cual facilita el trabajo de toma de decisión. 49 2.4 Filtro correlador El filtro correlador es considerado un filtro óptimo. El filtro óptimo, es un filtro de gran importancia ya que éste tiene un comportamiento que maximiza la señal y minimiza el ruido en el instante de muestreo. Sin embargo, también, se puede considerar el uso de un filtro adaptado que tiene la misma funcionalidad. Sin embargo, desde el punto de vista de la sincronización, el filtro correlador es mejor ya que éste es mucho más tolerante a los problemas de desincronización. A continuación, la figura 2.11 ilustra la respuesta del filtro correlador al ingreso de una señal y la respuesta del filtro adaptado al ingreso de la misma señal. Figura (2.11) Respuesta del filtro Correlador y Adaptado De la figura anterior, se puede apreciar que desde el punto de vista de la sincronización el filtro correlador es más tolerante a retrasos. Esto debido a que a la salida del filtro correlador, por cada periodo de bit se tiene una tendencia de la señal: creciente (mayor a cero) o decreciente (menor a cero). En contraparte, a la salida del filtro adaptado se tiene en un mismo periodo de bit más de una oscilación de valores que cruzan por cero. Lo cual, implica que la toma de muestra no puede tener un retraso ya que al muestrear la señal se podría pasar de un valor positivo a uno negativo o de un valor negativo a uno positivo. Sin embargo, al utilizar el filtro correlador esto no sucede ya que si se produjera una variación en el instante de muestreo dentro del rango del periodo de bit, no se correrá el riesgo de pasar de un valor positivo a uno negativo o viceversa. 50 Asimismo, en seguida se muestra las señales que se obtienen a la salida del filtro correlador. Esto para el caso en que se envía la trama de datos: “1 0 0 1 1 0 0”. La figura 2.12 muestra I x (t ) y a I y (t ) . La figura 2.10 muestra los datos recuperados. Figura (2.12) Señales a la salida del Filtro Correlador Tal como se puede apreciar en la figura 2.12 en ambos casos, fase y cuadratura, sólo se tiene un umbral de decisión, el cual es el cero. Obviamente, esto facilita mucho a la decisión si lo que se envió es un cero o es un uno, más aún cuando la presencia del ruido es considerable. Aún con esta característica de sólo tener un umbral, es necesario de un codificador de canal para obtener una mejor calidad de sistema. 2.5 Codificación de Canal Para el buen desempeño de este trabajo de investigación, la codificación de canal aporta una mejora considerable en cuanto a la calidad del sistema. Esto debido a que además de proteger la señal, ésta llega a corregir los posibles errores que el canal pueda causar a la señal transmitida. Existen dos técnicas de codificación de canal, estos son la solicitud de repetición automática y la corrección de errores hacia adelante. Estos tipos de codificación son más conocidas por sus iniciales en inglés Automatic ReQuest (ARQ) y Forward Error Correction (FEC), respectivamente. La diferencia entre estos codificadores es que el FEC, corrige los errores sin necesitar un reenvío de la información, mientras que el ARQ si lo requiere. Sin embargo, éstas dos cumplen la misma función; permitir que el receptor a la salida entregue los bits enviados. Para lograr ello, ambos codificadores añaden bits de redundancia. Estos bits de 51 redundancia son los que protegen a los bits reales16. En seguida se nombran los principales tipos de codificación: Convolucionales. La codificación por bloques: Hamming. Reed Solomon. BCH. Golay. Cíclico. Para el desarrollo de este trabajo se decidió utilizar un tipo de codificador FEC convolucional en la siguiente sección se ahondará en esta cuestión. 2.5.1 Codificador convolucional Para esta aplicación en particular se optó por elegir una codificación de canal del tipo FEC. Esto debido a que si se utilizaría una codificación del tipo ARQ, la tasa efectiva de transferencia de datos disminuiría considerablemente ya que el tipo de comunicación que se cuenta es del tipo halfdúplex17. Es por ello que se decidió utilizar la codificación FEC convolucional como el codificador de canal de este trabajo de investigación. Algo particular de la codificación convolucional es que los datos de salida, los datos codificados, no sólo dependen del bit entrante en ese momento, sino también de los bits que le precedieron. Lo cual lleva a utilizar necesariamente memorias para el almacenaje de los bits precedentes para su uso luego. Todos los codificadores convolucionales tienen tres parámetros que identifican a primera instancia el sub tipo de codificación convolucional, estos son: : Número de bits a la salida del codificador. : Número de bits entrantes al codificador. : Número unidades de memorias del registro de desplazamiento. 16 Cfr. Carlson 1986: 473 - 480 17 Cfr. Couch 1998: 19 52 Por lo tanto, un codificador se identifica de la siguiente manera: “codificador convolucional ( )”. A su vez, cada codificador puede pertenecer al grupo de codificadores sistemáticos o no sistemáticos. La característica del codificador determinará si es una o es otra. A continuación, la figura 2.13 muestra el diagrama general de un codificador convolucional. Figura (2.13) Diagrama de bloques general de la codificación convolucional De la figura 2.13, de la cantidad de registros que se tenga se obtendrá la cantidad de estados. Por ello, se define como la cantidad de estados, la cual cumple la siguiente relación: (2.20) A su vez, se define como la razón del código y presenta la siguiente relación: (2.21) Por otro lado, una vez seleccionado el tipo de codificación, ésta se puede representar de tres formas distintas gráficamente: el diagrama del árbol, el diagrama de estados y el diagrama de Trellis (enrejado). 53 Dicho lo anterior, el codificador que se utilizó para el desarrollo de este trabajo de investigación es el convolucional (2, 1, 2). Se decidió utilizar este tipo de codificador por una razón principal, por el menor tiempo de procesamiento que éste implica. Asimismo, este codificador además de ser rápido computacionalmente permite la corrección de hasta 2 bits errados18. En seguida, la figura 2.14 muestra el diagrama de bloques del codificador convolucional (2, 1, 2). Figura (2.14) Codificador convolucional (2, 1, 2) De la figura anterior, se puede comprobar que los bits de salida y no sólo dependen del bit entrante sino, también, de los bits que le precedieron. Estos, a su vez son formados por la suma en módulo dos de los valores que tienen los registros. Sin embargo, esta suma se realiza con una determinada lógica que uno puede elegir. Para este caso, la lógica que se escogió es la siguiente: (2.22) (2.23) Al margen de las sumas en base dos que se realiza para la determinación de los bits de salida, este codificador presenta una razón de código = 0,5 y la cantidad de estados sería =4 de acuerdo a las ecuación 2.21 y 2.20, respectivamente. 18 Cfr. Benedetto y Biglieri 1999: 532 - 544 54 Ya sabiendo las características del codificador seleccionado se procederá a representarlo de las tres maneras gráficas que anteriormente se mencionó. La figura 2.15 muestra el diagrama del árbol, la figura 2.16 muestra el diagrama de Trellis y la figura 2.17 muestra el diagrama de estados para el codificador seleccionado19. Figura (2.15) Diagrama de Trellis 19 Cfr. Valdez 2009 55 Figura (2.16) Diagrama del árbol Figura (2.17) Diagrama de estados 56 2.5.2 Decodificación – Algoritmo de Viterbi Una vez hecha la codificación de canal, luego de viajar por el canal y finalmente ser recibida en el receptor, la información debe decodificarse. Sin embargo, existen tres métodos para recuperarla: decodificación por retroalimentación, decodificación secuencial y la decodificación por máxima certidumbre. De estos tres métodos, se decidió utilizar la decodificación por máxima certidumbre. Se escogió ésta porque utiliza la máxima probabilidad para la decodificación de los datos. Esta máxima probabilidad se logra gracias al algoritmo de Viterbi. Al utilizar este algoritmo la calidad es alta, sin embargo, se requiere mayor procesamiento computacional. Es así que este algoritmo tiene que guardar posibles secuencias de decodificación. Por ello, al aumentar el valor de la complejidad en la decodificación se incrementa exponencialmente. Lo anterior también fue una de las razones por la cual se escogió un codificador del canal como el que se utiliza en este trabajo de investigación, con un valor . El algoritmo de Viterbi compara la secuencia recibida con las posibles secuencias en el diagrama de Trellis; siguiendo así sólo con las rutas que menores errores presenten. Por último, escoge el que presenta menor acumulación de errores y es de esa secuencia que se saca los bits recuperados. A continuación, la figura 2.18 muestra el funcionamiento del algoritmo de Viterbi20. 20 Cfr. Valdez 2009 57 Figura (2.18) Ilustración del algoritmo Viterbi 2.6 Entrelazador Existen distintos tipos de entrelazador, por ejemplo, el entrelazador por bloque, entrelazador convolucional y el entrelazador helicoidal. Sin embargo, todos estos cumplen una misma función la cual es combatir la ráfaga de errores (burst error). Esto se logra de una manera sencilla, reordenando los datos secuenciales que van al modulador de forma aleatoria; con lo cual se consigue la dispersión de estos en el tiempo, de tal forma que se llega a mitigar los errores en bits consecutivos. Para el desarrollo de este trabajo de investigación se optó por el entrelazador por bloque. El entrelazador por bloque utiliza una matriz rectangular de M filas por N columnas, tal como muestra en la siguiente matriz: (2.24) El procedimiento para realizar el entrelazado es el siguiente: 58 Recordemos que los datos (bits) entran al modulador de forma secuencial, por lo tanto éstos se fraccionan en tamaños de N bits hasta completar la matriz fila por fila. Una vez completada la matriz se retornan éstos a su forma original, secuencial. Sin embargo, la manera de retornarlos a su forma secuencial es extrayendo las columnas (de la matriz) una por una y colocándolas una tras otra. Es de notar que realizando el procedimiento inverso se llega a desentrelazar los datos enviados. En el trabajo de investigación se utiliza una matriz cuadrada de M x M, donde M=14, por lo que el grado del entrelazador es 14. Con ello se logra soportar un tiempo de ráfaga de error menor igual a 16 ms. Teniendo en consideración lo siguiente: la frecuencia de muestreo fs = 48 000 Hz, la frecuencia de portadora fc = 2 000 Hz y el número de ciclos por símbolo cs = 4. Cabe mencionar, que los valores prácticos de la frecuencia de muestreo (fs), frecuencia portadora (fc) y número de ciclos por símbolo (cs) están entre los 41 000 Hz – 48 000 Hz, 900 Hz - 3 000 Hz y 2 - 6, respectivamente. 2.7 Tasa de error (BER) - Probabilidad de error de bit ( ) El BER es la probabilidad estimada de que cualquier bit enviado sea recibido con error. La tasa de error es la cantidad de bits errados que se tiene en el receptor de una trama de bits transmitidos. Esto expresado matemáticamente es: (2.25) Donde: : Numero de bits errados. : Numero de bits transmitidos. Habiendo definido la tasa de error, ahora, es posible dar un alcance sobre la probabilidad de error de bit ( ). La probabilidad de error de bit se aproxima a la tasa de error de bit (BER) para secuencias muy largas, lo cual expresado matemáticamente es: (2.26) La probabilidad de error de bit o simplemente la probabilidad de error en un sistema de comunicación depende, principalmente, del tipo de codificación de canal, del método de modulación y de demodulación que se utiliza. 59 Para este trabajo de investigación se utiliza la modulación QPSK y una demodulación no coherente. La probabilidad de error para este esquema se puede aproximar con la ecuación 2.2721. (2.27) Donde: Q (.): Es la función Q de Marcum. : Energía de bit. : Energía del ruido. La función Q de Marcum cumple la siguiente relación: (2.28) En seguida en la figura 2.19 se muestra en forma gráfica la probabilidad de error del esquema de modulación QPSK22. 21 Cfr. Xiong 2000: 164 22 Cfr. Xiong 2000: 161 60 Figura (2.19) Probabilidad de error de QPSK De la figura anterior, cabe aclarar, que la relación de la energía de bit a ruido está dada en decibeles (dB). Asimismo, se puede apreciar que con el esquema de modulación QPSK, dependiendo que tipo de demodulación se use, sea este coherente o no coherente se tendrá diferente probabilidad de error. Es así que en la figura 2.19 se ve que al utilizar un demodulador coherente ésta tiene la misma probabilidad de error que al utilizar un esquema con modulación DEBPSK o una modulación DEQPSK, utilizando un demodulador coherente, en ambos casos. En este trabajo de investigación se utiliza una demodulación no coherente. Por ello, para obtener la misma probabilidad de error que al utilizar una demodulación coherente se necesita incrementar el SNR entre 2 a 3 dB, aproximadamente. Sin embargo, al utilizar la demodulación no coherente se obtiene la misma probabilidad de error que al utilizar el óptimo demodulador DQPSK. 61 2.8 Tasa binaría ( ) La tasa binaria indica la cantidad de bits que se transfiere en un determinado tiempo. Por lo general, la tasa de bits se da en bits por segundo (bps). La tasa binaria se obtiene por la siguiente ecuación: (2.29) Donde: M: Número de puntos en la constelación. : Periodo de símbolo (s). 2.9 Sincronización La sincronización utilizada en este trabajo de investigación fue creado específicamente para este trabajo de investigación y es denominada Sincronización por Tiempos Muertos (STM). Este sincronizador es versátil y puede ser usado en cualquier tipo de comunicación en la que se envíe información en forma de paquetes. Sin embargo, ésta presenta una ligera inconveniencia: requiere que se deje de transmitir por un determinado tiempo para que sincronice la señal recibida. De ahí el nombre “Tiempos Muertos”. En seguida analizaremos la STM a mayor detalle: Sea la señal transmitida, la cual se muestra en la figura 2.20: Figura (2.20) Señal Transmitida 62 De la figura anterior se define las siguientes variables: : Tiempo de procesamiento computacional del transmisor. : Tiempo muerto en el transmisor (silencio). : Tiempo total en el transmisor. Asimismo, se desprende la ecuación 2.30 (2.30) El desarrollo del modem software, tanto para la transmisión como para la recepción, ha sido desarrollado con 2 lenguajes de programación, C++ y C Sharp. Es por ello que el tiempo de procesamiento computacional es la suma de los tiempos computacionales generados por los códigos hechos en C++ y C Sharp. Por tal razón, se desprende la ecuación 2.31 y 2.32. (2.31) Donde: : Tiempo de procesamiento computacional del transmisor en C ++. : Tiempo de procesamiento computacional del transmisor en C #. Y por último se define la variable “ ”: Tiempo de propagación de la señal, la cual será utilizada junta a las otras más adelante. De la misma forma que se definió variables en el transmisor, se procederá a realizarlo en el receptor. Por ello, la figura 2.21 muestra la señal en el receptor. 63 Figura (2.21) Señal en el receptor Es así que de la figura 2.21 se definen las siguientes variables: : Tiempo de procesamiento computacional del receptor. : Tiempo muerto en el receptor. : Tiempo total en la recepción. Con las cuales se da lugar a la ecuación 2.32: (2.32) Así también, se define la ecuación 2.33: (2.33) 64 Habiendo definido las variables necesarias, se procederá a demostrar que con esta técnica de sincronización se adecúa la recuperación de la señal de tal manera que es factible la recuperación de datos. En tal sentido, para que sea factible la demodulación de datos se tiene que cumplir una premisa en particular. El tiempo de transmisión total más el tiempo de propagación de la señal tiene que ser menor al tiempo total en la recepción. Esto debido a que si no se cumpliese lo mencionado sucedería que mientras se está demodulando la información recibida ya se habría enviado un nuevo paquete, mientras que el receptor todavía no está liberado para la recepción de otro. Lo anterior conllevaría a la pérdida de la información, por lo cual con la ecuación 2.34 se define la desigualdad que evita lo mencionado: (2.34) Remplazando las ecuaciones 2.30 y 2.32 en la inecuación 2.34 se obtiene lo siguiente: (2.35) A su vez se reemplaza las ecuaciones 2.31 y 2.33 en la ecuación anterior, obteniéndose: (2.36) Para que se entienda de una manera clara, debe precisarse que los tiempos de procesamiento en C++ y en C# tanto en el transmisor como en el receptor son constantes, debido a que las instrucciones ejecutadas son las mismas cada vez que se ejecuta el modem software. Asimismo, la variable también es una constante con un valor de 0.01 nano segundos aproximadamente, por lo que se le considera despreciable. Es así que teniendo los tiempos de procesamientos constantes y siendo el tiempo de propagación una variable no manejable, es posible manejar sola la variable del tiempo muerto del transmisor. En tal sentido, el tiempo muerto en la transmisión juega un papel crucial para el cumplimiento de la desigualdad que se quiere. Por ello, así se tenga tiempos de procesamientos muy largos en el receptor y muy cortos en la transmisión, se podrá incrementar el tiempo muerto en el transmisor para que siempre se tenga la desigualdad. Teóricamente se puede incrementar el tiempo muerto en la transmisión hasta el infinito ya que con esto se estaría asegurando la desigualdad, por ende la recuperación de la información. Por lo tanto, es totalmente factible la sincronización y por ende la demodulación de datos. 65 ANEXO 3: FRECUENCIAS DE TRABAJO DEL MÓDULO DE COMUNICACIONES DEL CENTRO DE OPERACIONES DE EMERGENCIA NACIONAL (COEN) El módulo de comunicaciones del COEN, es un servicio interno que tiene a cargo elaborar informes de las distintas comunicaciones de emergencias recibidas. Este centro cuenta con equipos de radio para esta labor. Las comunicaciones por radio frecuencia se dan empleando las frecuencias asignadas por el Ministerio de Transportes y Comunicaciones (MTC). También, las comunicaciones se dan utilizando el Internet, fax, por medio de telefonía RTB y satelital23. Además, se monitorea la prensa escrita y televisiva. La finalidad es la de redactar informes recogiendo las incidencias, y calculando la magnitud de alguna situación de emergencia. El COEN, dada una eventualidad se apoya (en el peor de los casos), por enlaces de radio para poder contar con el equipo encargado de las operaciones de emergencia. Para ello, se tiene el área de comunicaciones que posee una red de radio comunicaciones que cuenta con las once siguientes frecuencias asignadas: En HF: 7 415 kHz, 7 365 kHz y 3 655 kHz 24 En la ciudad de Lima los enlaces alcanzan hasta la Provincia de Canta y Matucana. En VHF, se posee una Red de Emergencia en FM25 cuyas frecuencias son: Canal 1: RX 142.60 MHz. RX 143.840 MHz. Canal 2: 143 y 180 MHz. Canal 3: 142.920 MHz (Alterno). Canal 4: 142.840 MHz (Alterno). También, cuenta con una repetidora que opera en dos canales: En transmisión 142.260 MHz. En recepción 143.840 MHz. 23 Cfr. INDECI 2012B 24 Cfr. El Peruano 2007 25 Cfr. INDECI 2012A 66 Este enlace tendría mayor utilidad si el mensaje pudiera ser escrito ya que posibilitaría la transmisión de datos oficiales haciendo uso de un equipo informático, mejorando la comunicación de sólo voz. 67 ANEXO 4: RECOMENDACIONES El trabajo de investigación tiene la potencialidad de ser optimizado en software y en hardware. En software, se podría desarrollar algoritmos más avanzados teniendo en consideración técnicas más eficientes que resultaría en un aumento de la tasa de transferencia de datos. En hardware, la interfaz puede incluir una o varias etapas de filtrado para reducir las señales espurias y el ruido. Lo cual mejoraría el SNR, y con ello la calidad del sistema. La calidad del trabajo de investigación sólo fue puesto a prueba en un sistema de modulación FM de 2 vías en la banda de 144-146 MHz (banda VHF), se sugiere para un trabajo posterior realizar las pruebas correspondientes para las bandas HF y UHF. Cabe aclarar que para realizar las pruebas tanto en HF y UHF se tendrían que adecuar el hardware y los valores del software desarrollados. El trabajo de investigación presenta una tasa de transferencia estándar a la mayoría de módems software desarrollados, 1 000 bits por segundo. Sin embargo, ésta se puede mejorar incrementando la eficiencia espectral, utilizando esquemas de modulación más sofisticados como la OFDM, por ejemplo. Esto conllevaría a incrementar la tasa de transferencia considerablemente. Para todo trabajo de investigación relacionado a sistemas de comunicaciones, se recomienda tener claro las limitaciones físicas del sistema de comunicación a implementar, como por ejemplo el ancho de banda. Para así utilizar el mejor esquema de modulación que esté más acorde a los requerimientos del trabajo de investigación. Para el cálculo del BER se requiere el envío de miles de datos desde un punto a otro. Para ello se desarrolló un programa que calcula el BER luego de haber recibido todos los datos enviados de un mismo punto. Es decir que el valor del BER es hallado después de que toda la transmisión desde un punto termine. Lo cual toma un tiempo considerablemente grande. Por lo que, se sugiere mejorar el programa para que la transmisión sea desde los dos puntos de comunicación, simulando un “ping pong”. Esto implica que la transmisión y recepción sea sincronizada en los 2 puntos de comunicación. Realizando esto se estaría reduciendo el tiempo de cálculo del valor del BER. 68 ANEXO 5: DIAGRAMAS DE FLUJO 5.1 Diagramas de flujo del software desarrollado en C++. A continuación las funciones principales en C++. 5.1.1 Demodulador En la parte inicial la aplicación demodulador se calculan algunas variables con los datos de entrada e inicializa a otras variables. En el código desarrollado se crean las siguientes variables: yI: Vector para la señal en fase. yQ: Vector para la señal en cuadratura. yA: Es la señal en fase multiplicada por si misma con un retardo. yB: Es la señal en cuadratura multiplicada por si misma con un retardo. yint1: Es el resultado de filtrar señal yA. yint2: Es el resultado de filtrar yB. yit: Se obtiene de juntar todos los vectores yint1 de la señal. Yqt: Se obtiene de juntar todos los vectores yint1 de la señal. xk: Es una muestra de la señal que pasará a decidirse que correspondería a un valor discreto. yk: Es una muestra de la señal que pasará a decidirse que correspondería a un valor discreto. El vector "yI" toma muestras de la señal con retardo de un símbolo (menos un número de posiciones al inicio) y sin las muestras un cuarto de fase del final (menos un número de muestras de la última posición). El vector "yQ_desf" se crea al quitar muestras para generar el desfase de un cuarto de fase con "yI" en posición hacia adelante. Las variables "yA" y "yB" almacenan el resultado de multiplicar cada uno (cuadratura y fase) con un RET que es un vector de muestras retardado un símbolo. Luego de haber realizado la multiplicación éstas son filtradas y el resultado guardados en "yit" y "yqt" . Todo esto ocurre dentro de un bucle para cada símbolo de la señal digital de muestras en procesamiento. A continuación se ejecuta un bucle para muestrear la señal filtrada, los 69 valores de muestra son guardados en las variables "xk" y "yk". Si la muestra es mayor que cero entonces el bit recuperado es un uno, caso contrario el valor es un cero. Finalmente luego de la toma de la decisión, los bits son almacenados en el vector de datos "dtorec" el cual contiene todos los datos demodulados. El demodulador emplea otros algoritmos de procesamiento de señal para el audio previo al llenado de los buffers lo cual son las funciones: “clap”, “callback” y “main”. Figura (5.1.1) Diagrama de flujo de la demodulación C++ 70 5.1.2 Modulador En la parte inicial el programa consta de 3 grupos de variables: los datos de entrada, los valores iniciales y los valores calculados de los datos de entrada. En el código desarrollado se crean las siguientes variables: uuk: Es un vector de la función seno de longitud de muestras por símbolo a codificar. vvk: Es un vector de la función coseno de longitud de muestras por símbolo a codificar. Ik: Es el MSB de un par de bits de la data. Qk: Es el LSB de un par de bits de la data. u: Resultado MSB de evaluar los bits en la tabla de verdad. v: Resultado LSB de evaluar los bits en la tabla de verdad. dto: Es el vector de la data. ukk: Es el vector formado por los resultantes “u” de las operaciones de verdad. vkk: Es el vector formado por los resultantes “v” de las operaciones de verdad. uuk: Es la señal “ukk” multiplicada por la portadora. vvk: Es la señal “vkk” multiplicada por la portadora. El modulador trabaja con 2 arreglos, primero se construyen un vector función seno de un ciclo y un vector función coseno un ciclo que se crean en un bucle con la cantidad de muestras del ciclo portadora y la frecuencia portadora. Esta función se convierte en "uuk" y "vvk" que es la señal seno y la señal coseno de la longitud de ciclos que se requieren para la data que se modulará. A continuación se toman los valores "Ik" y "Qk" que son tomados por pares de "dto", cada par corresponde a un valor que luego tomará el valor "u" o "v" por la ecuación de la tabla de verdad de QPSK. Así mismo, "ukk" "vkk" son los vectores resultantes de estas operaciones. Estas 2 señales se deben multiplicar por las señales portadora "uuk" y "vvk". Finalmente se suman las 2 señales resultado del producto y se obtiene la señal modulada. 71 Figura (5.1.2) Diagrama de flujo del modulador C++ 5.1.3 Entrelazador Esta función al inicio recibe los parámetros de cuántos datos ingresan en la cadena de datos de entrada "dtos" y a su vez cuántas filas y columnas tendrán las matrices temporales contenedoras de datos. Por lo común se utiliza el mismo número de filas y columnas. Luego ingresamos los datos a la matriz de entrada desde el primer dato hasta el último dato en orden y por filas. Luego estos datos son extraídos de la cadena de datos de salida "dtosout" por columnas de la matriz transpuesta. 72 Figura (5.1.3) Diagrama de flujo del entrelazador 5.1.4 Desentrelazador Esta función al igual que Entrelazador recibe los parámetros de cuántos datos tiene la cadena de datos de entrada "dtos" y de las filas y columnas de las matrices temporales pero ahora el número de filas de entrada es el número de columnas de salida del entrelazador o lo que es lo mismo la matriz de entrada es la matriz de salida del entrelazador y todo tiene el mismo procedimiento. 73 Figura (5.1.4) Diagrama de flujo del desentrelazador 5.1.5 Codificador Este código recibe como único parámetro de entrada los datos a codificar “dto”. Se tiene en cuenta que el codificador desarrollado es un convolucional (2, 1, 2). Esto quiere decir que por cada bit entrante el codificador entrega 2 bits, colocando así un bit redundante. Sin embargo, el añadir un bit redundante no sólo depende del bit entrante sino también del estado en que la lógica se encuentre. Es por ello, que en el código desarrollado se crean 5 variables: st: Variable que guarda la información del estado en que se encuentra la lógica. bitt: Variable puente que sirve para almacenar un solo bit, el bit entrante a codificar. B: Matriz que almacena todos los valores de transición de un estado a otro, considerando la entrada de un bit con valor 0 ó 1. i: Contador general. dto_cod: Variable donde se almacena los datos codificados. Toda la lógica está gobernada por un solo bucle. En éste se recorre los datos a codificar (“dto”), bit a bit hasta llegar al último. La lógica de codificación siempre inicia desde el 74 primer estado (“st=1”) y dependiendo si el bit entrante es 0 ó 1 le corresponderá un dueto de bits, los cuales están almacenados en la matriz “B”. Es por ello que en el diagrama de flujo de la figura 5.1.5 se puede apreciar que la variable “st” esta inicializado con el valor 1. Así mismo, dentro del bucle, a la vez que se recorre todos los datos a codificar se va variando los estados dependiendo del valor del bit entrante a codificar. Es por ello que se puede observar que dentro del bucle se encuentran 8 condicionales, los cuales cubren todas las posibilidades de variación de estados y en el valor del bit entrante. Figura (5.1.5) Diagrama de flujo del codificador 75 5.1.6 Decodificador El decodificador por el algoritmo de Viterbi es el algoritmo más complejo dentro de todos los algoritmos realizados. Éste recibe como único parámetro de entrada los datos a decodificar que se almacena en la variable “dto_cod”. Así mismo, se crean 10 variables intermedias para todo el proceso y una variable final, donde se almacena los datos decodificados “dto_deco”. El código en total cuenta con más de 20 procesos, de los cuales se dará alcance de los más importantes. A continuación se da detalles del uso que se le da a cada variable en todo el código: Cod: Variable que almacena los datos de entrada en forma matricial “nx2”. B: Matriz que contiene todos los estados posibles. Diff: Matriz que almacena la diferencia que existe de los datos de entrada con los estados. Peso: Matriz que almacena los pesos acumulados para cada rama. Direc: Matriz que almacena los hitos de las posibles trayectorias de la rama que finalmente dará los datos decodificados. p,pr: Variables puente para la matriz peso. A: Matriz provisoria de la matriz peso. Posj: Variable que indica en qué estado se encuentra la lógica. Dto_cod: Variable que almacena los datos recuperados (decodificados). I, j: Contadores para distintos propósitos. Nota: la denominación “rama” se refiere a las posibles trayectorias de decodificación. Debido a la complejidad del código, y por ende a la gran cantidad de procesos que se lleva a cabo, el diagrama de flujo del código desarrollado se presenta en cuatro diagramas. En el primer diagrama, en la figura 5.1.6 se aprecia dos procesos principalmente. El primer proceso es convertir los datos que entran en forma de un arreglo en un formato matricial, de “nx2”. Esto para tener mayor facilidad de manejo de los datos de entrada. Así mismo, se aprovecha inicializar las diferentes matrices que más adelante serán usadas. 76 Figura (5.1.6) Diagrama de flujo del decodificador parte 1 El segundo proceso consta de 3 procesos repetitivos, en los cuales se pueden apreciar que se hallan las diferencias de los datos de entrada con los estados; y es en la matriz “diff” donde se guardan estas diferencias. La matriz “diff” es una matriz de n filas por 4 columnas. Las 4 columnas representan los 4 estados. Luego de haber hallado la matriz de diferencia se procede a hallar la matriz de pesos. Para ello, se recorre la matriz “diff”. En esta se recorre los cuatro estados de cada fila. Cabe aclarar que en cada fila de esta matriz se guarda el valor que indica la diferencia de bits del par codificado26 con los 4 estados. 26 “par codificado” se refiere al dueto de bits que se obtiene luego de codificar un bit. Recordar que el codificador agrega un bit de redundancia. 77 Figura (5.1.7) Diagrama de flujo del decodificador parte 2 En el diagrama de flujo de la figura 5.1.7 se puede apreciar el bucle anidado que recorre la matriz “diff” con el fin de hallar los pesos por cada nodo. Así mismo, se recorre los cuatro estados posibles, donde j es la variable utilizada que gobierna la variación de estado a estado. En esta parte del código no es necesario realizar una comparación de pesos por cada nodo, debido a que los 2 pares entrantes a esta lógica son los 2 primeros pares a decodificar. Es por ello, también, que la matriz “direc” solo almacena los hitos 27 que indican la ruta superior. Así mismo, a partir del tercer par (i>1) a decodificar se requiere realizar comparación de pesos. De la comparación de pesos se toma el menor. A partir del 3 par, por nodo, se obtiene 2 pesos. De estos se almacena el menor de ellos y dependiendo a que ruta pertenece, se almacena en la matriz “direc” el valor del hito correspondiente (-1 ó 1). Todo lo anterior se puede apreciar en el diagrama de flujo de la figura 5.1.8. 27 “hito” se refiere al valor que puede adquirir un nodo (estado) para que se indique si seguir una ruta superior o inferior. Para ello, la ruta inferior es representada por -1 y la ruta superior por 1. 78 Figura (5.1.8) Diagrama de flujo del decodificador parte 3 Una vez obtenida la matriz de pesos y la matriz que guarda los hitos correspondientes a las posibles rutas de decodificación, se procede a determinar la ruta de decodificación. Para ello, se obtiene la última columna de la matriz “peso” y se identifica el peso menor. Una vez identificado el peso menor se identifica la posición del mismo. Una vez hecho esto se procede con la recuperación de los bits codificados, consultando a la matriz “direc” que es donde se guarda los hitos para la trayectoria de decodificación. Esto se puede apreciar en el diagrama de flujo de la figura 5.1.9. 79 Figura (5.1.9) Diagrama de flujo del decodificador parte 4 80 5.2 Diagramas de flujo del software desarrollado en C# A continuación los Windows Forms principales de la aplicación en C# 5.2.1 Transmisor A continuación se da detalles del uso que se le da a cada variable en todo el código: tambloq: La variable indica el tamaño, en número de caracteres, del bloque. Este bloque de caracteres aporta 7 bits por caracter. Tambloq fue calculado resultando 14 porque el número de bits a continuación de la codificación resultaría en 196 que es el total de bits requeridos para entrelazar en una matriz cuadrada de 14 x 14. ProcessObj: Es el objeto configurado con el proceso el cual se llama para enviar los datos a modular. numbloq: Es el número de bloques que hay del total de caracteres ingresados al programa. Newdto: Es el total de caracteres ingresados. valpte: Es una trama de caracteres temporal que extrae un bloque de caracteres del contenedor Newdto. Las variables son cargadas de la interfaz de usuario en C#. Se completa el número de datos que ingresaron para crear un número múltiplo de tamaño de bloque, cumplida esta validación se convierte la data, que es el texto ingresado por el usuario, del ASCII a una cadena de bits y en el caso que el MSB resultó 0 se completa la trama de 6 bits en la sétima posición con su valor, que es cero, para que completen 7 bits. Finalmente estos datos son pasados al proceso "modulador.exe" 81 Figura 5.2.1 Diagrama de flujo del transmisor C# 82 5.2.2 Receptor A continuación se da detalles del uso que se le da a cada variable en todo el código: _process: Es el objeto configurado con el proceso el cuál se llama para recibir datos. Recipiente: es un arreglo de caracteres que almacena temporalmente la trama recibida cada llamada el receptor. txtbuff: es otro arreglo de caracteres que almacena temporalmente la trama recibida El programa realiza el proceso inverso del “Windows form” “transmisor”, el “receptor” es la interfaz de usuario en C# encargada de recibir y mostrar los datos ingresados y enviados de su programa contraparte. Éste llama al proceso "demodulador.exe". El proceso llamado es terminado una vez comprobado que la trama recibida es de la longitud esperada. En seguida, las tramas se concatenan para mostrarse una a continuación de otra. Se distinguen 2 partes del programa: la primera parte se observa el lanzamiento inicial del proceso “demodulador.exe” precedido por preparaciones y verificaciones iniciales. 83 Figura 5.2.2 Diagrama de flujo del receptor parte 1 En la figura siguiente tenemos el diagrama de flujo de la parte del programa que realiza la verificación de los datos recibidos por el proceso llamado anteriormente y que es recolectado previo a ser mostrado al usuario y a continuación previo al reinicio de todo con el procedimiento “start”, es terminando el proceso para ser lanzado nuevamente. Al finalizar esta parte se regresa a la primera parte del programa de la figura anterior. 84 Figura 5.2.3 Diagrama de flujo del receptor parte 2 85 ANEXO 6: MANUAL DE USUARIO 86 CENTRO DE OPERACIONES DE EMERGENCIA NACIONAL (COEN) “Desarrollo de software de radio modem para la transmisión de datos sobre canales analógicos en la banda de voz aplicado a organismos gubernamentales” Manual de Usuario Cáceres Najarro, Lismer Andrés - Olmedo Castillo, Diego Oswaldo 03/08/2012 En este documento se encontrará información relevante sobre el uso del modem software; así como las consideraciones a tomar en cuanto a las configuraciones en el driver y la tarjeta de sonido. 87 Contenido Software………………………………………..………………………………………..89 Características: ……………………………………………………………………….....89 Acerca de la aplicación: ……………………………………………………………..….89 Instalación.……………………………………………………………………………....89 Operación.……………………………………………………………………………….90 Ventana Principal.……………………….……………………………………………....90 Configuración de la tarjeta de sonido……………………………………………….…..93 Configuración del driver ASIO4ALL……………………………...……………...……94 Hardware………………………………………………………………………..……….94 Acerca de la interfaz………………………………………………………………….....95 Descripción.…………………………………………………………………………......95 Operación.…………………………………………………………………………….....98 88 SOFTWARE CARACTERÍSTICAS El modem software desarrollado presenta las siguientes características: 1) Puede transmitir hasta 3000 bps variando las configuraciones. 2) Puede soportar una tarjeta de sonido interna o externa. 3) Puede ejecutarse en Windows XP, Vista y Windows 7. 4) Opera por un sólo canal de audio. 5) "Peteteo" automático. 6) Puede operar en las bandas de HF, VHF y UHF. 7) Presenta dos modos de operación: básico y avanzado. ACERCA DE LA APLICACIÓN El modem software presentado, se podría decir, que es una versión beta ya que ésta tiene para seguir mejorando. La aplicación provee una interfaz bien sencilla. Esto con el fin de que hasta los usuarios que desconocen de comunicaciones digitales puedan usar el trabajo de investigación. La aplicación se ejecuta por default en modo básico. INSTALACIÓN La instalación del modem software es bien simple. El modem software está compuesto por 3 ejecutables (.exe). Estos son: SoftRadio, Modulador y Demodulador. Los 2 últimos son programas esclavos. Es decir, que el SoftRadio es el programa maestro y que desde éste, de acuerdo a la manipulación del usuario se estará controlando al modulador y/o al demodulador. Estos 3 ejecutables siempre deberán estar dentro de una misma carpeta. El nombre de la misma no tiene mayor importancia. Sin embargo, se recomienda colocar un nombre sugerente al trabajo de investigación. Así mismo, para que pueda ejecutarse los programas sin ningún inconveniente, el sistema debe contar con 3 dlls. Son los siguientes: Blas_win32.dll imprescindible 89 Lapack_win32.dllOpcional Libfftw3-3.dllOpcional Estos tienen que ser colocados en los archivos del sistema operativo, dentro de la carpeta “System32”. Una vez hecho esto se podrá ejecutar el modem software sin ningún inconveniente. En síntesis, para la instalación del modem software existen 2 pasos: 1. Primero: Copiar los 3 ejecutables (.exe) dentro de una misma carpeta. 2. Segundo: Copiar las 3 dlls dentro de la carpeta “System32” que pertenece a los archivos de programa. Nota: Es indispensable tener el driver “ASIO4ALL” para el manejo de la tarjeta de audio. Éste es gratuito y se puede descargar de la siguiente página: http://www.asio4all.com/. OPERACIÓN Para iniciar el modem software, simplemente hacer doble click a la aplicación “SoftRadio.exe” que se encuentra en la carpeta de trabajo que se creó. Para un uso más sencillo, se sugiere crear un acceso directo de Windows y guardarlo en el escritorio o en el menú de inicio. La aplicación puede ser operada en dos modos: el avanzado y el básico. En el modo avanzado se puede variar la robustez del sistema, quitando la codificación y/o entrelazado. Realizando lo anterior se reducirá la carga computacional de la CPU. Ventana Principal La figura 1 muestra la ventana principal de usuario. En esta ventana se nombra a los desarrolladores del trabajo de investigación y al asesor de los mismos. 90 Figura (1). Ventana Principal de presentación – Portada Así mismo, en la parte superior se tiene dos pestañas: de “Ir a” y la de “Ayuda”. Si se le da click a la primera pestaña se desplegará y mostrará dos opciones: Transmisor y Receptor. El usuario elegirá si desea transmitir datos o recibirlos. Pero, si el usuario no tiene la menor idea del funcionamiento del programa podrá darle click en la pestaña de ayuda. Al darle click se mostrará una nueva ventana en la cual se dará detalles del uso del software. Si el usuario desea transmitir, se abrirá la ventana de transmisión que se muestra en la figura 2.En la parte superior izquierda se tiene 2 pestañas: “configuración” y “Ayuda”. Si se le da click en la primera se desplegara la misma y se mostrará 2 opciones: “Avanzado” y “básico”. Para poder transmitir en con cualquiera de las 2 opciones es imprescindible realizar la configuración de puerto para "el peteteo". Para la adecuada configuración del puerto se debe verificar que puerto ha sido asignado por la computadora. Una vez realizado esto se puede operar al transmisor en los 2 modos, el avanzado y el básico. En el modo avanzado te permite modificar parámetros para la transmisión como es la frecuencia de la portadora, la frecuencia de muestreo y el número de ciclos por símbolo (c/s). 91 Figura (2). Ventana de Transmisión Así mismo, se puede utilizar en modo básico. Este modo tiene configurados todos los parámetros de transmisión, facilita el envío de datos de manera despreocupada. En la ventana de transmisión se tiene 3 botones: “Transmitir”, “Reset” y “Limpiar”. El primero es para empezar a enviar los datos que se desee. El segundo es para detener el envío y el tercero es para limpiar la ventana donde se escribe los datos a enviar; facilitando así la escritura de un nuevo texto a enviar. Por otro lado, si se desea poner al modem en “escucha”. Es decir, el usuario desea recibir datos, simplemente, el usuaria tendrá que darle en la opción “Recepción”, en la ventana principal. Es necesario que el usuario fije adecuadamente los parámetros de frecuencia de muestreo, frecuencia de la portadora y el número de ciclos por símbolo, si es que se modificaron los parámetros de transmisión predefinidos (Modo Básico). En el caso de que no se coloquen los mismos valores que en el modulador, se provocarán errores en los datos recuperados. La figura 3 muestra la venta de recepción. 92 Figura (3). Ventana del Receptor Ésta presenta 2 pestañas en la parte superior izquierda, igual que el modulador: “Configuración” y “Ayuda”. Al darle click en la pestaña configuración se desplegará la misma mostrando 2 modos de operación: “Avanzado” y “Básico”. Si se selecciona el avanzado, se podrán modificar los parámetros de recepción: la frecuencia de la portadora, la frecuencia de muestreo y el número de ciclos por símbolo (c/s). Si se selecciona el modo básico, los valores de los parámetros de recepción serán los predefinidos. Así mismo, se tiene tres botones: “Empezar”, “Parar” y “Limpiar”. Al presionar el botón “Empezar” se da inicio a la recepción de información. Los datos recibidos se muestran en el recuadro de la parte inferior. Si se desea parar con la recepción de información se debe dar clic en el botón “Parar” y si se desea limpiar los datos recibidos se debe dar clic en “Limpiar”. CONFIGURACIONES DE LA TARJETA DE SONIDO. En la reproducción se tiene que tener en consideración lo siguiente: Deshabilitar todos los efectos de la tarjeta de sonido. Predefinir la frecuencia de muestreo. Utilizar el altavoz con una ganancia entre 10 y 50, preferentemente. En la grabación se tiene que tener en consideración lo siguiente: 93 Deshabilitar todos los efectos de la tarjeta de sonido. Deshabilitar el control automático de ganancia (AGC). Predefinir la frecuencia de muestreo. Utilizar un nivel de ganancia entre 2 y 5. CONFIGURACIONES DEL DRIVER ASIO4ALL Para poder configurar este driver se tiene que abrir el “ASIO4ALL off line settings”. Este se instala al momento de instalar el driver. La figura 4 muestra la ventana de configuración. Figura (4). Ventana de configuración ASIO4ALL La figura anterior muestra las opciones de configuración y los estados de ellos. En la parte superior izquierda se tiene los dispositivos (todas las tarjetas de audio conectadas a la computadora). Ahí se pueden apreciar los estados de la entrada y salida de audio. Estos estados son tres: habilitado, en uso y deshabilitado. Para el adecuado funcionamiento del software el micrófono y el altavoz tienen que estar habilitados. Si el micrófono o altavoz se encuentran en uso por otra aplicación, cierre la aplicación para liberarlo. El tamaño del buffer tiene que ser de 1024 y todas las demás opciones deben de estar deshabilitadas. HARDWARE CARACTERÍSTICAS El hardware desarrollado, la Tarjeta Interfaz LernToch (TILT), presenta las siguientes características: 1) Presenta tarjeta USB externa. 2) Presenta tarjeta interfaz entre la tarjeta de sonido y el transceptor 94 3) Puede ser adaptado para diferentes modelos de transceptores. 4) Indicadores LED (Tx/Rx y PTT) 5) 2 Conectores hacia la computadora y 2 conectores hacia el transceptor. 6) Peso: 0.5 kg. 7) Dimensiones: 13 cm x 7 cm x 3 cm. ACERCA DE LA INTERFAZ La TILT es un equipo que cumple la función de adaptar las señales de la computadora al equipo radio. Se lleva a cabo el desarrollo del equipo porque no existe un producto estándar que se comercialice. La figura 5 muestra a la TILT. Figura (5). Tarjeta interfaz LernToch DESCRIPCIÓN La TILT internamente contiene la tarjeta interfaz y la tarjeta de sonido externa. Este equipo presenta 4 cables conectados: el primero para la conexión de la tarjeta externa a la computadora, el segundo para la conexión del PTT con interfaz USB; que va hacia la computadora; el tercero para el conector de altavoz (out put) de la radio y el último para el conector del micrófono de la radio. Asimismo, cuenta con un indicador de “peteteo” y un indicador del funcionamiento de la tarjeta de sonido. La siguiente figura indica la ubicación de estos en la TILT. 95 Figura (6). Ubicación de los cables conectados a la TILT A continuación se muestran los conectores en las figuras 7, 8 y 9. En la figura 8 se observa que el conector USB que se usa es doble para utilizar la corriente extra de un puerto USB adicional. Figura (7). Conector DB9 para la conexión del PTT con interfaz USB 96 Figura (8). Conector USB doble para la tarjeta de sonido externa Figura (9). Conector del micrófono de la radio La figura 10 muestra la configuración de los pines. Si se da el caso de que la configuración de pines no esté de acuerdo a la figura que se muestra, se tendrá que hacer un simple cambio en el cable de conexión que une la tarjeta interfaz con el transmisor. 97 Figura (10) Configuración de los pines de entrada - transmisor OPERACIÓN Para la operación de la TILT existen 4 pasos: 1. Primero: Conectar el cable RS232 a un puerto de la computadora para este protocolo. La mayoría de computadoras actuales no vienen con puerto RS232, para esa situación utilizar el adaptador USB – Serial. Para comprobar su funcionamiento activar el puerto COM al que esté conectado el cable usando un programa de control o usando el modem software. Si utiliza el modem software, al activar el “Peteteo” (al activar la transmisión), el led indicador se encenderá cada vez que se transmita. Si no se enciende revisar el conexionado y la asignación del puerto COM. 2. Segundo: Conectar el cable de la tarjeta USB a la computadora y comprobar su detección por ASIO4ALL. Activar como tarjeta de sonido predeterminada en el sistema operativo. Observar el led de encendido de tarjeta de sonido y en parpadeo al reproducir sonido vía esta tarjeta. 3. Tercero: Conectar el cable de conector para el equipo de radio (euro DIN) a la interfaz de ésta. 4. Cuarto: Configurar el equipo de radio para envío y recepción y graduar el volumen de amplificación de recepción. Comprobar que en el "peteteo" el equipo se encuentre en uso (LED indicador del “peteteo” permanece encendido). A partir de esta parte refiérase al manual de usuario del equipo radio transceptor, el que está personalizado para cada marca y modelo de equipo. 98 GLOSARIO ACML: AMD Core Math Library. ATLAS: Automatically Tuned Linear Algebra Software. BER: Bit Error Rate. Es la tasa de error. BERT: Bit Error Rate Tester. Es un módulo para pruebas de BER. BLAS: Basic Lineal Algebra Subroutines. CBLAS: Complex basic Linea Algebra Subprograms. Controlador: Software que permite a un Sistema operativo el control de un hardware de computador. C++: Lenguaje de programación orientado a objetos. C#: Lenguaje derivado del C++ que usa la plataforma .Net . Eb/N0: Se lee Ebno. Significa Energía de bit sobre energía de ruido. Entrelazado: Técnica de protección de bits en la que se mezclan los bits enviados. FFTW: Fastest Fourier Transform in the west. Framework: Conjunto de librería o clases reusables para un sistema o subsistema. Interferencia: Perturbación debido a fenómenos indeseados en el canal de comunicación. Jitter: Retardo de la llegada de un paquete en tiempo real. LAPACK: Linear Algebra PACKage. MKL: Intel Math Kernel Library. .NET: es un framework de Microsoft que hace un énfasis en la transparencia de redes, con independencia de plataforma de hardware. Ruido: Señales indeseadas que se interfieren en el canal de la comunicación. SNR: (Signal to Noise Ratio) Nivel de potencia de una señal frente al nivel de ruido. Sincronización de bit: Asegura que la máquina receptora sepa en que momento principie o termine un bit. Peteteo: Termino en referencia al Push To Talk (PTT). ASK: Amplitud Shift Keying. PSK: Phase Shift Keying. FSK: Frecuency Shift Keying. 99 OFDM: Orthogonal Frecuency Division Multiplexing. 100 BIBLIOGRAFIA AGILENT TECHNOLOGIES (2012) Bit error rate measure (Consulta: 16 de julio) (http://www.home.agilent.com/agilent/editorial.jspx?cc=PE&lc=eng&ckey=14811 06&nid=-536902433.0.00&id=1481106). AMATEUR RADIO RELAY LEAGUE (ARRL) (2010) (http://www.arrl.org/nbems) Sitio web oficial del ARRL; contiene información sobre la institución y enlaces de interés (Consulta: 17 de diciembre). APCO (2010) Project 25 (Consulta: 10 de diciembre) (http://apcointl.org/spectrum-management/resources/interoperability/p25.html). BALANIS, Constantine (2005) Antenna theory analysis and design. 3rd. Ed. USA: John Wiley. BENEDETTO, Sergio y BIGLIERI, Ezio (1999) Principles of digital transmission with wireless aplications. California. BODERO, Luis y SARMIENTO, Diego (2009) Monitoreo remoto de señales a través del canal de voz de teléfonos celulares GSM (tesis de grado en ingeniería electrónica). Lima: Universidad Peruana de Ciencias Aplicadas. CANSAYA, Him (2005) DESARROLLO INTERFAZ USB ESTACIONES RADIO (Tesis de Licenciatura de Ingeniería Electrónica). Lima: Pontificia Universidad Católica del Perú. CARMONA (2007) INSTALACIONES SINGULARES EN VIVIENDAS Y EDIFICIOS. Madrid: Mc Graw Hill. CARLSON, Bruce (1987) Communication systems. 3rd. Ed. Mexico: McGrawHill. COUCH, H. Leon W (1998) Sistemas de comunicación digitales y analógicos, 5a. ed. México: Prentice Hall. EL COMERCIO (2011) Sistema de prevención de tsunamis (Consulta: 30 de marzo). (http://elcomercio.pe/lima/445971/noticia-gobierno-destino-2186000implementar-sistema-alerta-tsunamis) . ECURED (2012) Enciclopedia colaborativa en la red cubana (Consulta: 02 de febrero) (http://www.ecured.cu/index.php?title=Tarjeta_de_Sonido). EL PERUANO (2007) Normas legales pp. 22. En: El Peruano, 18 de diciembre. EUROPEAN TELECOMMUNICATIONS STANDARDS INSTITUTE (ETSI) (2010) (http://www.etsi.org/WebSite/homepage.aspx) Sitio web oficial del ETSI; contiene información sobre la institución y enlaces de interés (Consulta: 17 de diciembre). 101 FEILEN, Michael (2010) SPARK Your solution for digital radio (Consulta: 11 de noviembre) (http://www.drm-sender.de/?page=history&lang=en) FREESE, David (2010) Software por W1HKJ y asociados (Consulta: 17 de diciembre) (http://www.w1hkj.com/). HAYKIN, Simone (1991), editor, Advances in Spectrum Analysis and Array Processing, vol.1, Prentice-Hall. INSTITUTO NACIONAL DE DEFENSA CIVIL (INDECI) ( (2012A) Simulacro nacional de Sismo publicado en la Municipalidad de Lima. INSTITUTO NACIONAL DE DEFENSA CIVIL (INDECI) (2012B) (http://www.indeci.gob.pe/) Sitio web oficial del INDECI; contiene información sobre la institución y enlaces de interés (Consulta: 25 de marzo). INTEL (2002) The Audio Codec ’97 Specification. Santa Clara, CA, EUA:Intel Corporation INTERNATIONAL TELECOMMUNICATIONS UNION (ITU) (2010) (http://www.itu.int/es/Pages/default.aspx) Sitio web oficial de la ITU; contiene información sobre la institución y enlaces de interés (Consulta: 30 de noviembre). ITPP (2012) (http://itpp.sourceforge.net/current/) Sitio web oficial del ITPP; contiene información sobre la librería y enlaces de interés (Consulta: 2 de febrero). JARA, Jorge y otros (2007) Antenas inteligente (Consulta: 15 de marzo). (http://148.206.53.231/UAMI14431.pdf). JONES, Greg (2012) Packet Radio: Introduction to Packet Radio (Consulta: 07 de julio) (http://www.tapr.org/pr_intro.html). KANTRONICS, Inc. (2011) Kantronics (http://www.kantronics.com/modems.html) Página de los productos Kantronics que lista UN catálogo y muestra las soluciones en las que son empleados. (Consulta: 11 de noviembre) KOPANCHUK’S, Andrei (2012) UZ7HO Soundcard Modem (Consulta: 18 de julio) (http://uz7.ho.ua/packetradio.htm). LAMPEREUR, Steve (2011). High Speed Multi Media (Consulta: 11 de noviembre) (http://www.qsl.net/kb9mwr/projects/wireless/plan.html) 102 MICROSOFT (2010) MSDN Microsoft Developer Network (http://msdn.microsoft.com/en-us/ms348103.aspx) Página con contenido específico sobre las plataformas de desarrollo de Microsoft (Consulta: 11 de noviembre). McGILL UNIVERSITY (2012) RTAUDIO (Consulta: 6 de junio) (http://www.music.mcgill.ca/~gary/rtaudio/apinotes.html). MILNES, Ralph (2010) KC2RLM (Consulta: 11 de noviembre) (http://www.qsl.net/soundcardpacket/). MINISTERIO DE TRASNPORTE Y TELECOMUNICACIONES (MTC) (2011) (http://www.mtc.gob.pe/portal/inicio.html) Sitio web oficial del MTC; contiene información sobre la institución y enlaces de interés (Consulta: 25 de marzo). NEWTON, Harry (2004) Newton's Telecom Dictionary. CMP books. PAWLAN, Jeffrey (2010) Winrad.org (Consulta: 11 de noviembre) (http//www.Winrad.org). PROCOM (2012) (http://www.procom.dk/) Sitio web del fabricante de Antenas Procom de Dinamarca (Consulta: 08 de agosto). SUBBIAH, Palani y SEMICONDUCTOR, C. (2006) Bit-Error Rate (BER) for high speed serial data communication (www.analogzone.com) (Consulta: 03 de octubre). TIPPACH, Michael (2011) ASIO4ALL Universal ASIO driver (Consulta: 6 de junio) (http://www.asio4all.com/). YAESU (2000) Manual Usuario FT-2200. Tokyo, Japan: Yaesu Musen Co. YAMADA, Fujio y otros (2009) Radio Digital, pp. 91-100 En: Revista de Radiodifusão - SET, v. 3, n. 03. WIKIMEDIA (2010A) Digital Smart Technologies for Amateur Radio (Consulta: 10 de diciembre) (http://en.wikipedia.org/wiki/D-STAR). WIKIMEDIA (2010B) Wikipedia the free enciclopedia (Consulta: 10 de noviembre) (http://es.wikipedia.org/wiki/Tarjeta_de_sonido). WIKIMEDIA (2012) Wikipedia the free enciclopedia (Consultada 07 julio) http://es.wikipedia.org/wiki/Mezclador_de_la_tarjeta_de_sonido). 103