Desarrollo de una librería de rutinas para la simulación de sistemas GSM

March 22, 2018 | Author: José Ramón Cerquides Bueno | Category: Mobile Telephony, Gsm, Radio, Telecommunications Engineering, Networks
Share Embed Donate


Short Description

Download Desarrollo de una librería de rutinas para la simulación de sistemas GSM...

Description

Área de Teoría de la Señal y Comunicaciones Departamento de Ingeniería Electrónica Escuela Superior de Ingenieros Universidad de Sevilla

PROYECTO FIN DE CARRERA “Desarrollo de una librería de rutinas para la simulación de sistemas GSM”

Autor: Antonio Pulido Ruiz Tutor: José Ramón Cerquides Bueno

PROYECTO FIN DE CARRERA “Desarrollo de una librería de rutinas para la simulación de sistemas GSM”

ÍNDICE ÍNDICE........................................................................................................................

2

PRÓLOGO..................................................................................................................

9

PRIMERA PARTE: INTRODUCCIÓN.................................................................. CAPÍTULO I: OBJETIVOS Y JUSTIFICACIÓN DEL PROYECTO......................................... I.1.- Objetivos y alcance del Proyecto................................................................... I.2.- Justificación del proyecto............................................................................... CAPÍTULO II: UN POCO DE HISTORIA.......................................................................... II.1.- Las comunicaciones móviles antes de GSM................................................. II.2.- El proceso de especificación de las recomendaciones de GSM................... II.3.- El futuro inmediato de las comunicaciones móviles....................................

11 12 12 13 15 15 17 20

SEGUNDA PARTE: EL SISTEMA DE TELEFONÍA MÓVIL CELULAR GSM............................................................................................................................. CAPÍTULO I: DESCRIPCIÓN GENERAL DEL SISTEMA GSM.......................................... I.1.- Requerimientos............................................................................................... Requerimientos del usuario.............................................................................. Requerimientos del operador de red................................................................. Requerimientos del fabricante.......................................................................... Requerimientos del organismo regulador......................................................... I.2.- Especificaciones del Sistema GSM................................................................. I.3.- Servicios de Telecomunicación en GSM......................................................... Servicios portadores......................................................................................... Teleservicios..................................................................................................... Servicios suplementarios.................................................................................. Calidad de Servicio (QOS)............................................................................... I.4.- Arquitectura del sistema GSM........................................................................ I.5.- Descripción de las unidades funcionales....................................................... La Estación Móvil (MS)................................................................................... La Estación Transceptora de Base (BTS)......................................................... El Controlador de Estación Base (BSC)........................................................... El Centro de Conmutación de servicios Móviles (MSC)................................. El Registro de Abonados Locales (HLR)......................................................... El Centro de Autenticación (AUC).................................................................. El Registro de Visitantes (VLR)...................................................................... El Registro de Identidad de Equipos (EIR)...................................................... El Centro de Operaciones y Mantenimiento (OMC), el Centro de Gestión de Red (NMC) y la Unidad de Gestión Comercial............................................... I.6.- Estructura de localización del sistema GSM..................................................

22 23 23 23 24 24 24 25 29 30 31 33 34 35 38 38 40 43 44 45 46 47 48 48 50 2

I.7.- Protocolos empleados en las distintas interfaces........................................... 51 MSC.................................................................................................................. 51 Interfaz A.......................................................................................................... 52 Interfaz A-bis.................................................................................................... 53 Interfaz Um....................................................................................................... 53 CAPÍTULO II: LA INTERFAZ RADIO DE GSM............................................................... 54 II.1.- Introducción.................................................................................................. 54 II.2.- La Capa Física.............................................................................................. 54 II.2.1- Canales Lógicos.................................................................................... 55 Canales de tráfico....................................................................................... 56 Canales de control...................................................................................... 57 II.2.2.- Canales físicos...................................................................................... 59 II.2.3.- Correspondencia entre canales lógicos y canales físicos..................... 65 Multitrama MF26....................................................................................... 66 Multitrama MF51....................................................................................... 70 Estructuras de multitramas......................................................................... 73 Configuración de la correspondencia canales lógicos - canales físicos..... 74 II.2.4.- Sincronización de portadora y de ráfaga.............................................. 75 II.2.5.- Funcionamiento con saltos de frecuencia ("Frequency Hopping")...... 77 II.2.6.- Codificación de canal........................................................................... 79 Códigos convolucionales............................................................................ 79 Decodificación de códigos convolucionales.............................................. 83 Códigos convolucionales "pinchados" (PCC)............................................ 89 Códigos bloque........................................................................................... 91 Códigos cíclicos......................................................................................... 95 Entrelazado................................................................................................. 101 Codificación de los canales lógicos de GSM............................................. 107 II.2.7.- Modulación........................................................................................... 128 II.2.8.- Demodulación...................................................................................... 136 II.2.9.- Transmisión y Recepción..................................................................... 138 Espectro de salida en RF............................................................................ 138 Emisiones espurias..................................................................................... 142 Atenuación de la intermodulación............................................................. 143 Características del receptor........................................................................ 144 Rendimiento de transmisión / recepción.................................................... 145 II.2.10.- El canal de propagación..................................................................... 152 Cálculo de las pérdidas de propagación..................................................... 154 Desvanecimiento lento............................................................................... 159 Desvanecimiento rápido............................................................................. 160 Modelos de propagación definidos para GSM........................................... 165 II.2.11.- Ecualización....................................................................................... 168 Introducción................................................................................................ 168 Receptor óptimo......................................................................................... 168 Fundamentos de la ecualización Viterbi.................................................... 170 Procesado en banda base para la ecualización........................................... 174 II.2.12.- Control del enlace radio..................................................................... 191 MS en modo inactivo................................................................................. 191 MS en modo activo.................................................................................... 196 3

Traspaso ("Handover")............................................................................... 198 Control de potencia.................................................................................... 201 Fallo del enlace radio................................................................................. 202 II.3.- La capa de Enlace......................................................................................... 202 II.3.1.- Modos de operación de LAPDm.......................................................... 204 II.3.2.- Formato de las tramas de LAPDm....................................................... 205 II.3.3.- Descripción de los campos de las tramas LAPDm.............................. 206 II.3.4.- Puntos de acceso al servicio................................................................. 210 II.3.5.- Parámetros del sistema......................................................................... 212 II.4.- La capa de Red.............................................................................................. 213 II.4.1.- Subcapa CM......................................................................................... 214 Control de llamada (CC) ........................................................................... 214 Soporte para servicio de mensajes cortos (SMS) ...................................... 216 Soporte para Servicios Suplementarios (SS) ............................................. 217 II.4.2.- Subcapa MM........................................................................................ 217 II.4.3.- Subcapa RR.......................................................................................... 218 II.4.4.- Formato de los mensajes de capa 3...................................................... 219 II.5.- Codificación de la voz................................................................................... 221 II.5.1.- Introducción.......................................................................................... 221 II.5.2.- Codificación de voz en GSM............................................................... 223 Elección del codificador de voz a velocidad completa para GSM............. 225 El codificador RPE-LTP............................................................................ 226 El decodificador RPE-LTP......................................................................... 232 II.5.3.- El concepto de transmisión discontinua............................................... 234 TERCERA PARTE: DESCRIPCIÓN DE LAS FUNCIONES MATLAB®......... 237 CAPÍTULO I: DESCRIPCIÓN GENERAL DE LA LIBRERÍA................................................. 238 I.1.- Introducción................................................................................................... 238 I.2.- Estructura de la librería de funciones............................................................ 239 CAPÍTULO II: DESCRIPCIÓN DE LAS FUNCIONES.......................................................... 243 II.1.- Introducción. Listado alfabético de funciones.............................................. 243 II.2.- Funciones del bloque Empaquetado TDMA................................................. 245 burstgen............................................................................................................ 245 transbts.............................................................................................................. 247 II.3.- Funciones del bloque Desempaquetado TDMA............................................ 251 extraedat........................................................................................................... 252 II.4.- Funciones del bloque Sincronización........................................................... 252 genrel................................................................................................................ 253 II.5.- Funciones del bloque Codificador de Canal................................................. 255 codconv............................................................................................................ 256 pcc.................................................................................................................... 258 codbl................................................................................................................. 260 tabenths............................................................................................................. 261 coefcodc............................................................................................................ 262 codcanal............................................................................................................ 263 II.6.- Funciones del bloque Decodificador de Canal............................................. 264 genmtcod.......................................................................................................... 265 decovit.............................................................................................................. 266 decodcan........................................................................................................... 285 4

II.7.- Funciones del bloque Modulador.................................................................. 289 filgaus............................................................................................................... 289 gmskmod.......................................................................................................... 291 II.8.- Funciones del bloque Demodulador............................................................. 296 cuant................................................................................................................. 297 adc.................................................................................................................... 299 gmskdem.......................................................................................................... 303 II.9.- Funciones del bloque Transmisor de RF...................................................... 316 sumperd............................................................................................................ 317 genruido............................................................................................................ 321 amplif................................................................................................................ 322 p12l................................................................................................................... 326 powramp........................................................................................................... 327 genmask............................................................................................................ 331 II.10.- Funciones del bloque Receptor de RF........................................................ 332 convfrec............................................................................................................ 333 agc.................................................................................................................... 335 II.11.- Funciones del bloque Canal de Propagación............................................. 343 pathloss............................................................................................................. 344 matcan.............................................................................................................. 349 canal.................................................................................................................. 360 II.12.- Funciones del bloque Ecualizador.............................................................. 367 gensec............................................................................................................... 367 estimcan............................................................................................................ 369 estimsec............................................................................................................ 373 ecuvit................................................................................................................ 374 ecualiz............................................................................................................... 381 II.13.- Funciones de carácter general.................................................................... 386 arfcn2f.............................................................................................................. 386 bingen............................................................................................................... 387 bin2nrz.............................................................................................................. 387 binadec.............................................................................................................. 388 decabin.............................................................................................................. 388 coddif................................................................................................................ 388 decoddif............................................................................................................ 389 diezmar............................................................................................................. 390 hopping............................................................................................................. 390 potrafbb............................................................................................................ 391 CUARTA PARTE: SIMULACIONES..................................................................... 392 CAPÍTULO I: INTRODUCCIÓN....................................................................................... 393 I.1.- Introducción.................................................................................................... 393 CAPÍTULO II: SIMULACIÓN 1....................................................................................... 394 II.1.- Descripción................................................................................................... 394 Configuración del transmisor........................................................................... 394 Bloques del transmisor de RF.......................................................................... 395 Canal................................................................................................................. 397 Receptor RF...................................................................................................... 398 Demodulación, ecualización y decodificación de canal................................... 400 5

II.2.- Ficheros de comandos................................................................................... 401 Fichero simul_1a.............................................................................................. 402 Fichero simul_1b.............................................................................................. 403 Fichero simul_1c.............................................................................................. 405 Fichero simul_1d.............................................................................................. 405 Fichero simul_1e.............................................................................................. 409 Fichero simul_1f............................................................................................... 411 II.3.- Resultados..................................................................................................... 415 CAPÍTULO III: SIMULACIÓN 2..................................................................................... 432 III.1.- Descripción.................................................................................................. 432 Datos de las Estaciones Base............................................................................ 433 BTS “A”..................................................................................................... 435 BTS “B”..................................................................................................... 435 BTS “C”..................................................................................................... 436 Canal de Propagación....................................................................................... 436 III.2.- Ficheros de comandos................................................................................. 439 Fichero simul_2a.............................................................................................. 439 Fichero simul_2b.............................................................................................. 441 Fichero simul_2c.............................................................................................. 442 Fichero simul_2d.............................................................................................. 446 III.3.- Resultados.................................................................................................... 447 CAPÍTULO IV: SIMULACIÓN 3..................................................................................... 451 IV.1.- Descripción.................................................................................................. 451 Configuración de la transmisión....................................................................... 451 Transmisor de RF............................................................................................. 451 Canal................................................................................................................. 452 Receptor de RF................................................................................................. 453 Demodulación, ecualización y decodificación de canal................................... 455 IV.2.- Ficheros de comandos.................................................................................. 456 Fichero simul_3a.............................................................................................. 456 Fichero simul_3b.............................................................................................. 458 Fichero simul_3c.............................................................................................. 459 Fichero simul_3d.............................................................................................. 459 Fichero simul_3e.............................................................................................. 462 Fichero simul_3f............................................................................................... 464 IV.3.- Resultados.................................................................................................... 468 QUINTA PARTE: CONCLUSIONES Y FUTURAS LÍNEAS DE INVESTIGACIÓN..................................................................................................... 473 CAPÍTULO I: CONCLUSIONES...................................................................................... 474 CAPÍTULO II: LÍNEAS DE INVESTIGACIÓN FUTURAS Y POSIBLES AMPLIACIONES.......... 475 APÉNDICES............................................................................................................... 477 ABREVIATURAS EMPLEADAS EN LA MEMORIA............................................................ 478 BIBLIOGRAFÍA............................................................................................................. 484 AGRADECIMIENTOS............................................................................................. 487

6

A Yolanda y a mi familia

7

“My ego and I, we have faced many dangers. Fear and self loathing have never been strangers. Nobody knows of the depths we have been to or all the fine messes we’ve got ourselves into. For ten lonely years, that’s my reward.” Martin Walkyier “Another Fine Mess”

8

PRÓLOGO Descripción del contenido del presente documento

En este prólogo vamos a comentar brevemente el contenido del presente documento, que se ha estructurado en una serie de Partes divididas en Capítulos. En la Primera Parte (Introducción) se definirán los objetivos del proyecto y el alcance de los mismos. Se justificarán dichos objetivos pertinentemente. Se hará esto en el capítulo I (Objetivos y Justificación del Proyecto). En el capítulo II (Un poco de Historia) se ofrecerá un breve repaso a los hitos históricos que han llevado a las Telecomunicaciones hasta el nacimiento del sistema GSM ("Global System for Mobile communications"), y se comentará sucintamente el proceso que siguieron la CEPT ("Conference Europeene des Postes et Telecommunications") y después el ETSI ("European Telecommunications Standards Institute") para la definición del estándar GSM. Se ofrecerá también una breve perspectiva de las expectativas de futuro de las comunicaciones móviles. La Segunda Parte (El Sistema de Telefonía Móvil Celular GSM) describirá la estructura general de la Red Pública Móvil Terrestre (PLNM, "Public Land Mobile Network") Paneuropea definida por las recomendaciones GSM del ETSI. En el capítulo I (Descripción General del Sistema) se definirán y describirán los elementos que componen la red, sus funciones y objetivos de calidad, así como los servicios y facilidades que la red ofrece a los usuarios. En el capítulo II (La Interfaz Radio de GSM) se describirá la estructura de capas de la interfaz radio, haciendo especial hincapié en la capa física, cuya simulación es el principal objetivo de este Proyecto. Se describirán los canales físicos, los canales lógicos, el modo en que se mapean los canales lógicos en los canales físicos, el códec vocal, la codificación de canal, la modulación, etc. La tercera parte (Descripción de las Funciones Matlab®) versará sobre el desarrollo de las rutinas diseñadas para la simulación de la capa física de la interfaz radio de GSM. En el capítulo I (Descripción General de la Librería) se ofrece una visión general de la librería de rutinas que se ha desarrollado, definiendo la estructura de bloques lógicos en los que se englobarán las distintas funciones. En el capítulo II (Descripción de las Funciones) se profundiza en la descripción de cada una de las funciones de la librería, detallando su sintaxis, parámetros de entrada y de salida, relación con otras funciones, pruebas realizadas para la validación de cada función, y, para las funciones de mayor complejidad, una explicación del funcionamiento interno de las mismas. Las rutinas descritas en este capítulo se organizan en los bloques lógicos mencionados anteriormente. En la cuarta parte (Simulaciones) se ofrecen distintas simulaciones, a modo de ejemplo de utilización de las funciones de la librería y con el principal objetivo de clarificar las interrelaciones entre las diferentes rutinas.

9

En la quinta parte (Conclusiones y Líneas de Investigación Futuras) se ofrecen las conclusiones (capítulo I) y las líneas futuras de investigación y posibles ampliaciones al proyecto (capítulo II). Finalmente, se ofrecen dos anexos, el primero de los cuales contiene el glosario de abreviaturas utilizadas en el texto de la Memoria, mientras que en el segundo se incluyen las referencias bibliográficas empleadas.

10

Agradecimientos Dicen que es de buen nacido ser agradecido, así que me dispongo a mencionar a las personas que merecen mi reconocimiento por su apoyo y ayuda durante el periodo de tiempo que he invertido en la realización del presente proyecto. A Isco Román, Isa Román y familia, por la hospitalidad que siempre mostraron con mi persona. A Carlos Espada, Luis Morales y Rafa Bretón por la constante presión psicológica durante los últimos meses. A Celia Trevilla por la información sobre cables y antenas de BTS, así como por los cambios de turno, que siempre me vinieron muy bien. A Pepe Morales por las noticias de orden burocrático, que siempre son bien recibidas. A Ana Valero por la documentación del curso de Ericsson y los “drive tests”. A Ángel Barbero por los “drive tests” que hizo con Ana. A Fabrizio Alberoni porque sí. A Ismael Hervás por la documentación de los emplazamientos (los “final sites”). A José Ramón Cerquides por la paciencia, que parece a veces inagotable. A Paco Fajardo, Rafa Ceballos y Diego por ese pedazo de piso de estudiantes que compartimos durante el primer año. A los amigos que hace tiempo que no veo. Ya sabéis quiénes sois. A Yolanda por estar siempre ahí, y por los sacrificios que ha tenido que hacer para que yo terminara este proyecto. Nunca le estaré suficientemente agradecido. A los padres de Yolanda, por haberla traído al mundo. Por supuesto, a mis padres y a mi hermana, que la familia siempre es la familia.

Y por último, un recuerdo a aquellas personas a las que les hubiera gustado verme terminar la Carrera, pero que desgraciadamente ya no están: mis abuelos Antonio, Encarna y Francisca, y Carmen Martínez. Descansen en paz.

487

Primera Parte Primera Parte: INTRODUCCIÓN

Primera Parte: Introducción

CAPÍTULO I

Capítulo I: Objetivos y Justificación del Proyecto I.1.- Objetivos y Alcance del Proyecto I.2.- Justificación del Proyecto

I.1.- Objetivos y Alcance del Proyecto El objetivo del presente Proyecto Fin de Carrera es diseñar y desarrollar una librería de rutinas para la simulación del comportamiento de la capa física de la interfaz radio de un sistema GSM. Las rutinas deberán conformar un entorno de simulación adecuado para la experimentación con nuevas técnicas de procesamiento de señal que puedan aplicarse al sistema GSM. En este sentido, el diseño y desarrollo de estas rutinas se hará con un alto nivel de detalle, de modo que los resultados obtenidos se aproximen a la realidad lo más fielmente que sea posible. Una característica fundamental que debe tener la librería de rutinas es la modularidad, de forma que se faciliten futuras ampliaciones o mejoras en determinados bloques, así como que se permita sustituir alguno de los bloques por otro de funcionalidad similar que pueda haber desarrollado el usuario de la librería. Además, las funciones deberán tener cierto grado de versatilidad, con objeto de permitir la experimentación con diferentes valores en sus parámetros de entrada, pudiendo en algunos casos ser útiles para la simulación de otros sistemas diferentes de GSM. El alcance del Proyecto viene determinado por las funciones que realiza la capa física de la interfaz radio del sistema GSM, entre las que se incluyen: -

Codificación y decodificación de canal Modulación y demodulación Ecualización Transmisión y recepción Generación de ráfagas Extracción de datos de las ráfagas

El modelado del canal de propagación es también objetivo del presente Proyecto. Se deberán diseñar, generar y probar rutinas que lleven a cabo los diferentes procesos relativos a las funciones que se acaban de mencionar.

12

Primera Parte: Introducción

Finalmente, se realizarán simulaciones del sistema completo en diferentes escenarios, comprobando así el correcto interfuncionamiento de los distintos bloques y la exactitud de los resultados, que en algunos casos podrán compararse con experimentos de campo. Estas simulaciones globales servirán también para una mayor comprensión por parte del usuario de la librería acerca de la correcta utilización de las diferentes funciones. La codificación y decodificación de la voz no son objetivo del presente Proyecto, por lo que se generarán secuencias pseudoaleatorias para emular la señal entregada por el codificador de voz al codificador de canal. Tampoco son objetivo del Proyecto los procedimientos de envío de medidas desde la estación móvil a la estación base, control de potencia (“power control”) y traspaso (“handover”). No obstante, este tipo de procedimientos pueden implementarse basándose en las rutinas que de diseñarán y desarrollarán en el presente Proyecto, generándose las estructuras adecuadas en un nivel superior.

I.2.- Justificación del proyecto El presente proyecto resulta de interés por varias razones, entre las que podemos destacar: -

La profundización en el estudio del sistema GSM, que hoy por hoy es el sistema de telefonía móvil más extendido en Europa.

-

La posibilidad de emplear la librería de rutinas como herramienta didáctica para el estudio de diversos aspectos de las comunicaciones móviles en general y de GSM en particular, tales como la codificación y decodificación de canal, la ecualización o el modelado del canal de propagación.

-

La librería de rutinas que se ha desarrollado en este proyecto constituye un entorno de simulación útil para ensayar nuevas técnicas de procesado de señal aplicables al sistema GSM, tales como la incorporación al mismo de técnicas de acceso múltiple en el dominio espacial, o para probar diferentes diseños de bloques como amplificadores de radiofrecuencia, filtros, antenas, ecualizadores, etc.

-

La facilidad para ampliar la librería de modo que se incluyan rutinas para simulación de GPRS o EDGE, sistemas intermedios entre la 2ª y la 3ª generación de las comunicaciones móviles. Esto resulta de especial interés, dado que estos sistemas, especialmente GPRS, están teniendo un desarrollo mucho más extenso del inicialmente esperado para ellos, debido a los constantes retrasos en la implementación de los sistemas de tercera generación (UMTS).

-

Muchas de las rutinas generadas para esta librería pueden utilizarse para la simulación de diversos sistemas, no sólo GSM, dada su versatilidad y carácter general. Este es el caso de las funciones encargadas de llevar a cabo 13

Primera Parte: Introducción

la codificación y decodificación convolucional o la modulación GMSK, por ejemplo. Asimismo, los modelos empleados para la simulación de canales de propagación cuya respuesta es variable con el tiempo pueden ser útiles para la simulación de otros sistemas de comunicaciones móviles diferentes de GSM.

14

Primera Parte: Introducción

CAPÍTULO II

Capítulo II: Un poco de Historia II.1.- Las comunicaciones móviles antes de GSM II.2.- El proceso de especificación de las recomendaciones de GSM II.3.- El futuro inmediato de las comunicaciones móviles

II.1.- Las comunicaciones móviles antes de GSM Desde la antigüedad hasta finales del siglo XIX, el único medio de comunicación entre personas separadas por una larga distancia era la escritura. Los mensajes viajaban a una velocidad limitada por el medio de transporte que se emplease para llevarlos. A partir de los primeros años del siglo XX, la aparición de sistemas de comunicación más sofisticados y rápidos, basados en la transmisión de ondas electromagnéticas por distintos medios, hizo que las distancias parecieran acortarse, en comparación con la transmisión de mensajes escritos utilizada hasta entonces. Fue durante el siglo XIX cuando se pusieron las primeras piedras para las telecomunicaciones actuales. El teléfono, debido a Alexander Graham Bell, apareció por vez primera en 1876. La comunicación se realizaba entre dos aparatos fijos unidos por un par de hilos. En 1887, German Hertz descubrió las "ondas hertzianas", conocidas hoy como ondas de radio. El descubrimiento de Hertz fue utilizado por Guglielmo Marconi en 1896 para llevar a cabo la primera transmisión de información por radio. Marconi denominó a su invento "telegrafía sin hilos". Ya no era necesario que el transmisor y el receptor estuvieran unidos por hilos. Posteriormente se trasladó a Inglaterra, donde desarrolló el primer enlace transatlántico de radio en 1901. En 1909 recibió el premio Nobel de Física por su trabajo sobre las "ondas hertzianas". Las ondas electromagnéticas no sólo permiten la comunicación entre dos puntos fijos separados por una larga distancia, sino que ofrecen una solución ideal para el problema de la comunicación entre interlocutores que cambien su posición con el tiempo, ya sean viandantes o personas que viajen a bordo de vehículos en movimiento tales como barcos, coches, aviones o cualquier otro tipo de medio de transporte. Durante las dos o tres primeras décadas del siglo XX, el código Morse fue el más utilizado para las comunicaciones vía radio. En 1928 apareció el primer sistema de radio móvil terrestre para enviar mensajes a los vehículos de policía. En 1933 se introdujo un sistema que permitía a los agentes enviar mensajes de voz a la central. Este tipo de sistemas empezaron a ser empleados también por los militares, los servicios de ambulancia, bomberos, la marina, la aviación, etc. A principios de la década de los 50, los Laboratorios Bell presentaron el servicio de radiotelefonía a sus clientes. Así, las comunicaciones móviles pasaron de estar 15

Primera Parte: Introducción

reservadas a instituciones a estar al alcance del público en general1. De todos modos, la tecnología de la época sólo permitía acomodar un pequeño número de abonados a este sistema. Para responder a la creciente demanda de conexión al servicio, era necesario desarrollar nuevas técnicas que permitieran compartir las bandas de frecuencia entre un mayor número de clientes, así como mejorar el funcionamiento de la red. La falta de espectro radioeléctrico disponible para este tipo de servicios hizo que el crecimiento de los mismos fuese lento al principio. En 1964 se introdujo el concepto de recursos compartidos en las redes de radiotelefonía. La red asignaba dinámicamente un canal de radio a cada nueva llamada. Ese canal era utilizado por el usuario mientras duraba la llamada, siendo liberado al terminar la misma. La gestión de las frecuencias era ya dinámica, y no estática como hasta entonces. Esto permitía un crecimiento en el número de usuarios, ya que podían existir más que canales de radio. De cualquier modo, las bandas de frecuencia seguían siendo un recurso escaso, y era necesario optimizar su utilización. Aunque los Laboratorios Bell concibieron la radio celular en 1947, no fue posible desplegar una red de ese tipo hasta 1979, debido a las limitaciones existentes en la tecnología. El sistema introducido por Bell es conocido como AMPS ("Advanced Mobile Phone Service"). Fue estandarizado en los Estados Unidos de América en 1982. El sistema celular se basa en la subdivisión del área geográfica cubierta por la red en un conjunto de zonas de menor tamaño, llamadas células. En cada una de las células, una estación fija actúa como transmisor-receptor, dando servicio a todas las estaciones móviles situadas dentro de los límites de la célula. A cada célula se le asigna un cierto número de radiocanales. En células separadas entre sí una cierta distancia (la distancia cocanal o distancia de reutilización), pueden reutilizarse las mismas frecuencias. Las principales ventajas del sistema celular frente a los existentes antes de su aparición son: 1.- Mayor número de abonados móviles, gracias a la reutilización de frecuencias. 2.- Reducción de la potencia radioeléctrica emitida, debido a que las estaciones fijas dan cobertura a zonas de menor superficie que la total. 3.-Capacidad de expansión del sistema. Pero hay que tener en cuenta la mayor complejidad de la red, que debe soportar la conmutación automática en curso cuando un usuario que está realizando una llamada pasa de una célula a otra. Dicho usuario pasa a estar bajo el control de otra estación base, que le va a asignar una frecuencia distinta a la que empleaba en la célula en la que inició la llamada. La frecuencia original que estaba utilizando será liberada al producirse el traspaso de una célula a otra. El cambio de frecuencia deberá hacerse de forma transparente al usuario, y con suficiente rapidez para que no parezca que la comunicación ha sufrido cortes.

1

Del que pudiera permitírselo, claro está.

16

Primera Parte: Introducción

Durante la década de los 80 entraron en servicio diferentes redes de radiotelefonía celular. Se trataba de sistemas analógicos, y fueron diseñados siguiendo estándares incompatibles entre sí. Entre ellos podemos mencionar el sistema NMT ("Nordic Mobile Telephone"), utilizado en los países nórdicos, Bélgica, Países Bajos, Francia y España, el británico TACS ("Total Access Communications System"), derivado del estándar americano AMPS, y empleado en el Reino Unido, Italia y España, los sistemas C y D alemanes, el japonés NAMTS ("Nippon Advanced Mobile Telephone System"), y el francés Radiocom 2000™ (de France Télécom). Todos estos estándares usaban transmisión analógica, tenían una capacidad baja en términos de usuarios y tráfico, y requerían un gran número de frecuencias. La tecnología analógica limitaba la calidad y tipos de servicios que podían ofrecerse. Además, en esa época, la mayoría de los servicios de telecomunicaciones se prestaban en régimen de monopolio por parte de un único operador, por lo que la inexistencia de competencia apenas estimulaba el crecimiento de la telefonía móvil. La creciente demanda llegó a sobrepasar la capacidad de estos sistemas, a causa de las limitaciones del espectro disponible y de la tecnología. Para contrarrestar las limitaciones de estos sistemas se hizo necesario abordar dos problemas técnicos: 1.- La multiplexión de los usuarios en el tiempo. 2.- Cambiar los sistemas analógicos por sistemas digitales. Además, la creciente movilidad de los usuarios en el ámbito europeo hizo que fuera necesario un estándar a nivel comunitario. Los objetivos de esta solución no sólo serían beneficiosos para los usuarios, que podrían desplazarse por diversos países sin tener que cambiar de terminal móvil, sino también para los fabricantes, cuyo mercado se vería ampliado a millones de usuarios potenciales, consiguiendo reducir los costes de los equipos debido a las economías de escala.

II.2.- El proceso de especificación de las recomendaciones de GSM La problemática que suponían los sistemas analógicos de telefonía móvil automática hizo que en 1982 la CEPT creara el Grupo Especial Móvil (GSM, "Groupe Spéciale Mobile") con el objetivo de desarrollar un estándar europeo para comunicaciones móviles en la banda de frecuencias reservada a tal efecto en 1978 por la WARC ("World Administrative Radio Conference"). El nuevo sistema a desarrollar tendría un mercado potencial de 10 millones de usuarios en Europa para el año 2000, y debería ser muy flexible en cuanto a los terminales. Asimismo, debería estar abierto a la interacción con futuras redes de telecomunicación. El GSM definió en primer lugar una serie de requisitos básicos para el sistema. Destacamos los siguientes: 1.- Capacidad total de seguimiento automático, asegurando itinerancia internacional dentro de los países de la Unión Europea. 17

Primera Parte: Introducción

2.- Gran capacidad de tráfico, con una utilización eficiente del espectro radioeléctrico. 3.- Mejoras en la calidad de servicio (que debería ser comparable a la de la red fija) y mayores facilidades que los sistemas analógicos. 4.- Posibilidad de coexistencia con los sistemas analógicos existentes en los mismos emplazamientos de estaciones base. 5.- Posibilidad de interconexión con la RDSI (Red Digital de Servicios Integrados, en inglés ISDN, "Integrated Service Digital Network"). 6.- Empleo de sistemas de señalización digitales. 7.- Servicios básicos de voz y datos, con amplia variedad de servicios telemáticos. 8.- Posibilidad de utilización de equipos móviles de reducido tamaño (portátiles). 9.- Terminales personalizables. 10.- Seguridad y privacidad en la interfaz radio, con encriptación de la transmisión. 11.- Coste reducido para los usuarios. Los primeros estudios del GSM se centraron en la especificación de una banda de frecuencias común en todos los países, así como en el desarrollo de unas especificaciones armonizadas para los interfaces entre las unidades funcionales básicas del futuro sistema, de forma que las redes pudieran construirse con equipos de diferentes fabricantes, dejando siempre la posibilidad de que éstos pudieran ofrecer prestaciones adicionales, estimulando así la competitividad. Una de las primeras decisiones fue la elección de un sistema digital. Siguieron una serie de experimentos sobre distintos tipos de sistemas digitales de radiotelefonía celular en distintos países europeos. A mediados de 1986 se recibieron 9 propuestas para el futuro sistema paneuropeo de telecomunicaciones móviles, y se comenzaron una serie de pruebas para elegir el sistema con mejor comportamiento. Los sistemas propuestos empleaban una gran variedad de métodos de acceso múltiple, esquemas de modulación y tasas de transmisión. En la tabla II.2.1 mostramos los 9 sistemas candidatos probados por el GSM en París en 1986. Tipo de Acceso

Tasa binaria de transmisión (kb/s)

Espaciado entre portadoras (kHz)

CD-900 CDMA/TDMA 7980 4500 MATS-D/W CDMA/TDMA 2496 1250 ADPM TDMA 512 600 DMS-90 TDMA 340 300 MOBIRA TDMA 252 250 SFH-900 TDMA 200 150 S900-D TDMA 128 250 MAX II TDMA 104.7 50 MATS-D/N FDMA 19.5 25 Tabla II.2.1: Sistemas probados por el GSM en París, en 1986

Modulación

Número de canales por portadora

4-PSK QAM ADPM GMSK GMSK GMSK 4-FSK 8-PSK GTMF

63 32 12 10 9 3 10 4 1

Factor de reutilización de la codificación de canal 6.67 1.13 2.0 1.85 1.6 2.6 1.15 1.5 1.13

18

Primera Parte: Introducción

Basándose en las pruebas de campo y en tests de laboratorio, los sistemas candidatos fueron evaluados y ordenados en orden de importancia respecto a los siguientes criterios: n Eficiencia espectral n Calidad subjetiva de la voz n Coste del equipo móvil n Posibilidad de fabricar equipos portátiles de mano n Coste de la estación base n Capacidad de incorporar nuevos servicios n Coexistencia con sistemas existentes Con todo ello, el GSM decidió a principios de 1987 adoptar un sistema digital de banda estrecha con acceso múltiple por división de tiempo (TDMA, "Time Division Multiple Access), encriptado de las transmisiones y un algoritmo de compresión de la voz para obtener una tasa binaria reducida. Las principales características del sistema elegido fueron: n 8 canales TDMA por cada frecuencia portadora n Códec vocal RPE-LTP ("Regular Pulse Excited Linear Predictive Coding with Long Term Prediction", en español Codificación Predictiva Lineal con Excitación Pulsada Regular y Predicción a Largo Plazo), operando a 13 kb/s. n Codificación de canal anidada, con un código de tipo convolucional de longitud obligada K=5 y tasa R=1/2, y un código bloque. n Espaciado de 200 kHz entre portadoras n Modulación de envolvente constante GMSK ("Gaussian Minumum Shift Keying") Hacia finales de 1988 se había completado un conjunto de especificaciones para el sistema paneuropeo de telefonía móvil digital. Las especificaciones fueron publicadas por el GSM como 13 bloques de recomendaciones que cubren diversos aspectos del sistema. La norma definida para el sistema es conocida también como norma GSM, empleando las mismas siglas que el grupo redactor. Asimismo, el sistema también se designa como GSM, significando la sigla actualmente "Global System for Mobile communications". Uno de los hechos más importantes que han propiciado la expansión del sistema GSM ha sido la constitución del llamado MoU ("Memorandum of Understanding"), constituido por los operadores de redes GSM. El MoU se formó en septiembre de 1987 cuando los operadores de 13 países europeos (Alemania, Bélgica, Dinamarca, España, Finlandia, Francia, Irlanda, Italia Noruega, los Países Bajos, Portugal, el Reino Unido y Suecia) se pusieron de acuerdo para la implantación de una red celular digital europea. En el seno del MoU se firman los acuerdos de itinerancia ("roaming") que permiten que un abonado pueda llamar y ser llamado a su número personal en cualquier momento y en todas las redes GSM cuyos operadores hayan establecido ese tipo de acuerdos. 19

Primera Parte: Introducción

En el curso del desarrollo de la norma GSM se creó el Instituto Europeo de Normalización de las Telecomunicaciones (ETSI, "European Telecommunications Standards Institute"), con lo que el trabajo del grupo GSM original fue transferido al comité SMG del ETSI. El SMG se divide en 5 subgrupos, que se encargan de definir: 1) 2) 3) 4) 5)

Servicios ofrecidos El interfaz de radio Aspectos de red Transmisión de datos El Módulo de Identidad de Usuario (tarjeta SIM, "Subscriber Identity Module").

Desde la creación del MoU ha habido un aumento del número de operadores signatarios, incluyendo operadores de países no europeos, de modo que GSM es ya un estándar a nivel global. El sistema GSM ha supuesto un cambio revolucionario en la concepción, diseño y explotación de los sistemas de Telefonía Móvil Pública celular, por lo que se le conoce como un sistema de segunda generación. La implantación del GSM, a partir de 1992, ha coincidido con la liberalización de las comunicaciones móviles en distintos países. Esto ha hecho que se preste el servicio en régimen de competencia entre varios operadores, con las consiguientes ventajas para los usuarios. El grado de desarrollo del GSM ha superado con creces las expectativas iniciales, pese a que en muchos países se está compitiendo con sistemas analógicos que tienen, al menos inicialmente, una mayor cobertura superficial. A finales de 1995 el número de abonados en todo el mundo era de unos 12 millones, cifra que ha crecido vertiginosamente a partir de entonces, alcanzando los 80 millones de abonados a principios de 1999.

II.3.- El futuro inmediato de las comunicaciones móviles El enorme desarrollo alcanzado en los sistemas de telefonía móvil de segunda generación, como GSM, por un lado, y en paralelo el desarrollo de las redes de datos a nivel mundial (Internet), ha llevado a los fabricantes y organismos reguladores a estimar que el futuro pasa por la condensación de ambos campos en uno solo, dando lugar a los servicios de datos en movilidad. Los sistemas móviles de segunda generación están evolucionando para adaptarse a estos nuevos servicios basados en Internet. El problema es la coexistencia a nivel mundial de distintos sistemas de segunda generación que utilizan tecnologías radio incompatibles y diferentes bandas en el espectro de frecuencia, lo que imposibilita que puedan captar un mercado mundial a largo plazo. 20

Primera Parte: Introducción

La idea es definir un estándar a nivel mundial que integre servicios de voz y datos de elevada tasa binaria y alta calidad de servicio, y permita movilidad total del usuario. Estos sistemas se conocen como sistemas de tercera generación. Un ejemplo de ellos es el UMTS (“Universal Mobile Telephony System”). El sistema UMTS proporcionará, usando la misma red, servicios de telecomunicación tradicionales junto con nuevos servicios basados en Internet. Soportará tasas binarias elevadas, desde 384 Kbit/s a 2 Mbit/s. El optimismo inicial respecto a las posibilidades de implementar y desplegar redes basadas en el sistema UMTS en un periodo de tiempo bastante corto no ha tenido de momento una plasmación clara en el mundo real. La tecnología no ha madurado tan deprisa como las expectativas de negocio, lo que ha llevado en muchos casos a terminar paralizando las inversiones en UMTS. Esto ha permitido que los sistemas de transición entre la segunda y la tercera generación se desarrollen más de lo que en principio se esperaba. En Europa, este es el caso de GPRS (“General Packet Radio Service”), que no es más que una actualización de GSM que permite la transmisión de datos en el interfaz radio en modo paquete y una conexión a velocidad bastante aceptable a servicios de Internet2. Los cambios en la red GSM necesarios para el despliegue de GPRS afectan principalmente a los nodos de conmutación, ya que deben añadirse nodos capaces de realizar conmutación de paquetes. En el interfaz radio los cambios son principalmente a nivel software. La consecución de tasas de bit elevadas es posible gracias a configuraciones multislot en el interfaz aire. Este tipo de configuración, en la que se asignan a un mismo usuario varios intervalos de tiempo consecutivos, es también empleada por HSCSD (“High Speed Circuit Switched Data”), que está pensado para la transmisión de datos basada en conmutación de circuitos. Mientras que HSCSD y GPRS consiguen aumentar la tasa binaria mediante la asignación de varios intervalos de tiempo a un mismo usuario, EDGE (“Enhanced Data rate for GSM Evolution”) consigue tasas binarias aún mayores modificando el interfaz aire. EDGE emplea una modulación 8-PSK, que al tiempo que mantiene las mismas características espectrales que la modulación GMSK utilizada en GSM, consigue una tasa binaria muy superior, al mapearse 3 bits en cada símbolo. Si se emplean configuraciones multislot en EDGE, puede conseguirse una velocidad binaria de 554 Kbit/s para datos en modo paquete en el interfaz aire. El principal inconveniente de EDGE es que, al funcionar con un esquema de modulación diferente, es necesaria una actualización del hardware en todas las estaciones base de la red, lo cual implica unos costes económicos elevados.

2

La velocidad es comparable a la que ofrece un módem de 56 Kbit/s conectado a la PSTN.

21

Segunda Parte Segunda Parte: EL SISTEMA DE TELEFONÍA MÓVIL CELULAR GSM

Segunda Parte: El Sistema de Telefonía Móvil Celular GSM

CAPÍTULO I

Capítulo I: Descripción General del Sistema GSM I.1.- Requerimientos 1.2.- Especificaciones del Sistema GSM I.3.- Servicios de Telecomunicación en GSM I.4.- Arquitectura del sistema GSM I.5.- Descripción de las unidades funcionales I.6.- Protocolos empleados en las distintas interfaces

I.1.- Requerimientos Las especificaciones del estándar GSM han sido redactadas por el ETSI con la finalidad de identificar y satisfacer las necesidades de todas las partes implicadas, que no son otras que: n n n n

Los usuarios Los operadores de red Los fabricantes Los organismos reguladores de las comunicaciones.

Requerimientos del usuario Los usuarios buscan en la telefonía móvil una herramienta cuyo uso debe ser simple y confortable, y cuyo precio debe ser barato. Los requerimientos de los usuarios son aplicables tanto al equipo terminal móvil como a los servicios ofrecidos por la red. ETSI ha identificado los siguientes requisitos del usuario:

• • • • • • • • •

Una calidad de voz comparable a la del teléfono convencional. Privacidad de las llamadas. Amplia cobertura. Servicios de envío de mensajes. Servicios de datos. Equipos móviles ligeros, compactos y ergonómicos. Coste razonable de acceso a los servicios. Tarifas razonables de uso de los servicios. Posibilidad de usar el servicio en redes extranjeras, distintas a la red a la cual el usuario está suscrito. Es lo que se conoce como itinerancia o "roaming".

23

Segunda Parte: El Sistema de Telefonía Móvil Celular GSM

Requerimientos del operador de red El operador de red considera a ésta como una inversión que debe ser económicamente posible, soportar futuras demandas y ser actualizable. El operador de red es el encargado de ofrecer servicios a los usuarios. Para él la red es una herramienta de trabajo y el principal sustento de su actividad comercial. Lo que el operador pide a la red es:

• Utilización óptima de los recursos (frecuencias de radio y capacidad • • • • • • • •

de transmisión). Una alta disponibilidad. Operación simple y a la vez eficiente. Medios simples, efectivos y fiables para identificar abonados y terminales. Un gran número de abonados. Equipos estandarizados. Estándares flexibles. Un coste de infraestructura razonable. Que existan varios fabricantes de equipos.

Requerimientos del fabricante El fabricante se encarga de la manufactura de los equipos, tanto móviles como fijos. Precisa estándares que aseguren lo siguiente:

• • • •

Una definición estable de la funcionalidad de los productos. Una definición clara de las restricciones. Una autoridad de certificación de los productos. Un mercado tan amplio como sea posible.

Requerimientos del organismo regulador Los objetivos de las autoridades encargadas de la regulación de las comunicaciones son:

• Que el acceso a la radiotelefonía sea posible a toda la población. • Abrir este tipo de servicio a la libre competencia entre operadores. • Estandarizar los equipos para poder abrir el mercado a todos los fabricantes. • Estandarizar el equipo del abonado. • Utilizar al máximo la banda de frecuencias asignada a GSM. • Desplegar el servicio de radiotelefonía a lo largo y ancho de su país.

24

Segunda Parte: El Sistema de Telefonía Móvil Celular GSM

Las autoridades reguladoras pretenden actuar imparcialmente en nombre de todas las partes involucradas en el problema, adoptando políticas que garanticen diversas opciones para el ofrecimiento del servicio y libertad de elección para los consumidores.

I.2.- Especificaciones del Sistema GSM Para dar respuesta a los requerimientos de las distintas partes, el ETSI ha publicado alrededor de 140 especificaciones técnicas acerca de los sistemas GSM y DCS-18001. Hay tres categorías en ese estándar: n Las referidas a GSM a 900 MHz n Las referidas a DCS a 1800 MHz n Las referidas a ambos grupos Las especificaciones del sistema de telefonía móvil celular GSM se dividen en series que tratan de temas específicos del sistema. En la tabla I.2.1 indicamos a qué tema en concreto se refiere cada serie de especificaciones. Serie 01 02 03 04 05 06 07 08 09 11 12

Tema Cuestiones generales. Aspectos de servicio. Aspectos de red. Interfaz y protocolos MS-BS. Capa física de radio. Codificación de voz. Adaptadores de terminal para MS. Interfaces BS-MSC. Interfuncionamiento de redes. Especificaciones de homologación. Operación y mantenimiento.

Tabla I.2.1.- División de las especificaciones de GSM en series

Trataremos con más profusión la capa física del interfaz radio, pues el objetivo fundamental del proyecto es el desarrollo de una librería de funciones para la simulación de dicha capa. No obstante, también haremos indicaciones sobre aspectos de interfuncionamiento y explotación. A continuación presentamos las especificaciones fundamentales de la capa física del sistema GSM, así como sus aspectos operativos de mayor relieve.

1

DCS 1800 es un estándar de ETSI para Redes de Comunicaciones Personales, conocidas como PCNs ("Personal Communications Networks").

25

Segunda Parte: El Sistema de Telefonía Móvil Celular GSM

1) Bandas de frecuencias Banda

Enlace ascendente (desde la Enlace descendente (desde la estación móvil a la estación base) estación base a la estación móvil)

GSM 900 estándar E-GSM (“Extended GSM”) R-GSM (“Railways GSM”) DCS 1800 PCS 1900 (Estados Unidos)

890 - 915 MHz 880 - 915 MHz 876 - 915 MHz 1710 - 1785 MHz 1850 - 1910 MHz

935 - 960 MHz 925 - 960 MHz 921 - 960 MHz 1805 - 1880 MHz 1930 - 1990 MHz

2) Separación dúplex 45 MHz para los sistemas de la banda de 900 MHz 95 MHz para DCS 1800 80 MHz para PCS 1900 3) Separación de canales 200 KHz, que proporciona un valor mínimo de selectividad de canal RF adyacente dentro del sistema igual a 18 dB. Los valores correspondientes a los segundos y terceros canales son, respectivamente, 50 y 58 dB como mínimo. 4) Modulación GMSK con Bb· T = 0.3 y velocidad de modulación de 270.83 Kbit/s en RF, con un rendimiento espectral aproximado de 1 bit/s/Hz. 5) Clase de emisión 271 K F 7 W2 6) Relación de protección cocanal Rp = 9 dB 7) Retardo compensable máximo 223 µs. 8) Dispersión Doppler Puede compensarse la dispersión Doppler del canal hasta velocidades del móvil de 200 km/h.

2

Esta denominación de la emisión significa que el ancho de banda necesario es de 271 KHz (271 K), con modulación de frecuencia (F), el 7 significa que se transportan 2 o más canales con información cuantificada o digital, mientras que W hace referencia a que el tipo de información enviado puede ser una combinación de telefonía, facsímil, transmisión de datos, etc.

26

Segunda Parte: El Sistema de Telefonía Móvil Celular GSM

9) PIRE máxima de la estación base 500 W por portadora 10) Dispersión temporal Puede ecualizarse una dispersión temporal de hasta 16 µs. 11) Codificación de canal Se utiliza un código bloque detector y un código convolucional corrector de errores, con entrelazado de bits para combatir las ráfagas de errores. 12) Potencia nominal de las estaciones móviles Hay diversos tipos de estaciones móviles con potencias de cresta iguales a 0.25, 0.8, 1, 2, 4, 5, y 8 W. 13) Estructura celular y reutilización La estructura celular es sectorizada, de tipo 3/9 ó 4/12 en medios urbanos. En medios rurales las células son omnidireccionales. El radio celular varía entre 35 km (en zonas rurales) y 200 m (en zonas urbanas). 14) Acceso múltiple Se utiliza TDMA ("Time Division Multiple Access") con 8 intervalos de tiempo por trama. La duración de cada intervalo es de 0.577 ms. La trama comprende 8 canales físicos que transportan los canales lógicos de tráfico y señalización asociada al canal. También existen estructuras de multitrama para señalización por canal común. 15) Canales de tráfico Hay dos tipos de canales de tráfico: a) Para voz: Se han definido canales de velocidad total y de velocidad mitad para los cuales el codec vocal proporciona señales de 13 Kbit/s y 6.5 Kbit/s, respectivamente. b) Para datos: Se sustentan servicios de datos de tipo transparente a velocidades de 2.4, 4.8 y 9.6 Kbit/s con diferentes procedimientos de adaptación de velocidad, codificación de canal y entrelazado. Se admiten también servicios de datos de naturaleza no transparente con una velocidad neta de 12.0 Kbit/s. También se han definido canales de datos de alta velocidad (HSCSD, “High Speed Circuit Switched Data”), que precisan de una configuración de multi-intervalo.

27

Segunda Parte: El Sistema de Telefonía Móvil Celular GSM

16) Canales de control Se han establecido cuatro categorías de canales de control: • De difusión • Comunes • Dedicados • Asociados 17) Protecciones radioeléctricas Bajo mandato de la red, los móviles pueden efectuar sus transmisiones cambiando de frecuencia de una trama a otra. Esta modalidad de funcionamiento se conoce como saltos de frecuencia o FH ("Frequency Hopping"). Esta técnica produce un efecto similar al de la diversidad en frecuencia, consiguiendo una mejora de la calidad, además de reducir el número de fuentes de interferencia. También puede utilizarse la técnica de transmisión discontínua o DTX ("Discontinuous Transmission"), mediante la cual únicamente hay emisión de señal RF cuando el usuario está hablando. Se reduce así el nivel de interferencia y se prolonga la duración de la batería. 18) Selección de célula En situación de reposo el móvil está vinculado a una célula, de forma que pueda interpretar con gran fiabilidad las señales de control del enlace descendente y, asimismo con gran probabilidad, establecer una comunicación por el enlace ascendente. La condición para efectuar la selección de célula se basa en criterios de pérdidas de propagación. Si se rebasa un umbral de pérdidas, o si el móvil es incapaz de decodificar los bloques de control o de efectuar el acceso a la estación base, inicia el proceso de reselección. 19) Localización automática Se efectúa mediante la evaluación, por parte del móvil, de la señal de control y la devolución de su identidad a la red. La localización automática debe ser posible entre los centros de conmutación del servicio móvil (MSCs) de cada país y entre países. 20) Conmutación en curso o traspaso ("handover") El traspaso asegura la continuidad de una comunicación cuando el móvil pasa de la zona de cobertura de una célula a la de otra. Puede emplearse también para aliviar una congestión de tráfico (traspaso gobernado por la red). El traspaso puede hacerse entre un canal de una célula y otro de una adyacente o entre canales de la misma célula. La estrategia del traspaso se basa en el control del enlace mediante mediciones efectuadas por las estaciones móviles y las estaciones base. El móvil supervisa el nivel y calidad de la señal enviada por la estación base que le atiende y por las células vecinas. La estación base supervisa el nivel y calidad de la señal enviada por cada móvil. Las mediciones de nivel se utilizan también para el control de la potencia de RF. 28

Segunda Parte: El Sistema de Telefonía Móvil Celular GSM

Es posible el traspaso entre diferentes zonas de localización y centrales MSC pertenecientes a la misma PLMN. 21) Señalización La señalización entre las estaciones base y el MSC sigue un procedimiento estructurado, similar al de la ISDN. Entre los MSC se emplea el sistema de señalización número 7 del CCITT. 22) Numeración El plan de numeración es conforme a las recomendaciones de la serie E del Sector de Normalización de la Unión Internacional de Telecomunicaciones (ITU-T). 23) Seguridad Se ha establecido una técnica de cifrado para las comunicaciones de voz y de datos, así como un sistema de autenticación para el acceso al sistema por parte de los terminales.

I.3.- Servicios de Telecomunicación en GSM El sistema GSM proporciona a los usuarios servicios que podemos dividir en dos tipos, los servicios portadores y los teleservicios. A ellos se unen los servicios suplementarios, que modifican o complementan a un servicio básico. Esta clasificación está inspirada en los tipos de servicio especificados por las recomendaciones de la serie I.200 de la ITU-T (Unión Internacional de Telecomunicaciones, sector de Normalización) para la RDSI (ISDN). La figura I.3.1 muestra el ámbito de definición de los servicios portadores y los teleservicios en relación a los principales elementos en un sistema de radiotelefonía.

( TE

GSM PLMN

Red de tránsito

Servicios portadores

Red terminal

TE

:

Teleservicios

Figura I.3.1: Servicios portadores y teleservicios

29

Segunda Parte: El Sistema de Telefonía Móvil Celular GSM

Servicios portadores Los servicios portadores se establecen entre terminaciones de red en ambos extremos y ofrecen al usuario una capacidad de transporte independiente del contenido de la información. Existen diversas modalidades de funcionamiento, que se especifican mediante una serie de atributos. Para definir un servicio portador se emplean atributos de las capas bajas de OSI (de la 1 a la 3). Los atributos se clasifican según tres grupos: • Atributos de transferencia de información • Atributos de acceso • Atributos generales Los atributos de transferencia de información se dividen, como veremos a continuación, en primarios (o dominantes) y secundarios. Los atributos de acceso y los atributos generales constituyen el conjunto de atributos calificadores. A continuación detallamos los distintos atributos de servicio portador: 1.- Atributos de transferencia de información Describen las opciones de transferencia en redes punto a punto y punto a multipunto. Existen dos tipos de atributos: • Primarios • Secundarios Los atributos primarios definen una categoría de servicio, mientras que los secundarios definen un servicio en particular, dentro de esa categoría. Por su parte, veremos que los atributos calificadores (constituidos por los atributos de acceso y loas atributos generales) proporcionarán variaciones dentro del servicio. En la tabla I.3.1 presentamos una lista de estos atributos. 1 2 3 4 5 6 7

Modo de transferencia (circuito, paquete) Velocidad de transferencia Tipo de información (voz, datos) Estructura de la información Modo de establecimiento de conexión Simetría (unidireccional, bidireccional) Configuración de la comunicación

Atributos primarios

Atributos secundarios

Tabla I.3.1: Atributos de transferencia de información

2.- Atributos de acceso Estos atributos describen el modo de acceder a servicios y funciones adicionales de una red. Se muestran en la tabla I.3.2.

30

Segunda Parte: El Sistema de Telefonía Móvil Celular GSM

1 2

Canal de acceso y velocidad Protocolos de acceso: señalización información

Tabla I.3.2: Atributos de acceso

3.- Atributos generales Estos atributos se refieren al conjunto completo de servicios suplementarios. Se muestran en la tabla I.3.3. 1 2 3 4

Servicios suplementarios Calidad de servicio Posibilidades de interfuncionamiento Aspectos operacionales y comerciales

Tabla I.3.3: Atributos generales

En la recomendación GSM 02.02 se especifican diversos servicios portadores, cuyas características generales son: • Datos síncronos/asíncronos con conmutación de circuitos. • Acceso a funciones de empaquetado/desempaquetado PAD ("Packet Assembly Disassembly") para datos asíncronos. • Acceso a redes públicas de paquetes X.25 para datos síncronos a 2400-9600 bit/s. • Conmutación voz/datos durante una llamada de forma alternada voz/datos o voz seguida de datos. • Sustentación de técnicas de retransmisión automática ARQ ("Automatic Request") para mejora de la tasa de errores en modo no transparente3. Teleservicios Los teleservicios son servicios de telecomunicación que proporcionan una capacidad completa de comunicación entre los usuarios, incluyendo las funciones del equipo terminal (TE, "Terminal Equipment"). Se proporcionan atributos de teleservicio compatibles o idénticos en el punto de acceso a la red GSM (GSM PLMN) y en el punto de acceso en la red del otro extremo de la comunicación. Asimismo, permiten al usuario el acceso a algunas funciones de la red, como el almacenamiento y tratamiento de mensajes. Se trata de aplicaciones que involucran a un terminal en un punto de acceso en una red GSM y a un sistema que proporciona funciones de capa superior. Ese sistema puede estar situado en la propia red GSM o en otra red.

3

Los servicios portadores pueden ser transparentes o no transparentes. En un servicio transparente la protección contra los errores se hace empleando un código de corrección de errores FEC ("Forward Error Correction"). Los servicios no transparentes tienen además la protección adicional de la petición de retransmisión automática ARQ en el protocolo del enlace radio. Esto proporciona mayor integridad en los datos, pero tiene dos inconvenientes principales: mayor retardo de transmisión y menor "throughput".

31

Segunda Parte: El Sistema de Telefonía Móvil Celular GSM

Los teleservicios hacen uso de las opciones ofrecidas por los servicios portadores para poder permitir la comunicación entre usuarios en el contexto de una aplicación. Un teleservicio se caracteriza por un conjunto de atributos de bajo nivel y otro de atributos de alto nivel, además de un conjunto de atributos generales. Los atributos de bajo nivel son los mismos que los utilizados para caracterizar un servicio portador. Lo mismo ocurre con los atributos generales: son los mismos que se utilizan para la caracterización de un servicio portador. Los atributos de alto nivel hacen referencia a funciones y protocolos de las capas 4 a 7 del modelo de referencia OSI ("Open Systems Interconnection"). Se relacionan con la transferencia, almacenamiento y procesado de los mensajes de usuario. En la tabla I.3.4 se da una lista de los atributos (de bajo y alto nivel) de teleservicio. Atributos de capa 1 y capa 2 (Bajo nivel) 1 Modo de transferencia de información 2 Velocidad de transferencia Atributos de las capas 3 a 7 (Alto nivel) 3 Tipo de codificación de datos 4 Funciones del protocolo de la capa de transporte 5 Funciones del protocolo de la capa de sesión 6 Funciones del protocolo de la capa de presentación 7 Funciones del protocolo de la capa de aplicación Tabla I.3.4: Atributos de teleservicio.

Los teleservicios que puede proporcionar una red GSM se dividen en seis categorías: 1) Transmisión de conversación y tonos de señalización en la banda de frecuencias vocales de la PSTN ("Public Switched Telephone Network" o Red Telefónica Pública Conmutada) y la ISDN (o RDSI), a velocidades de 13 kbit/s (velocidad normal, calidades normal y mejorada) y 6.5 kbit/s (velocidad mitad). 2) Servicio de mensajes cortos SMS ("Short Message Service"), que permite al usuario enviar o recibir mensajes alfanuméricos de hasta 160 caracteres a través de un centro de control. Los mensajes pueden leerse en la pantalla del teléfono móvil o en un PC que disponga de programas de gestión de MS ("Mobile Station" o Estación Móvil). • Punto a punto: con origen o destino en una MS. • Punto a multipunto: difusión desde la BS ("Base Station" o Estación Base). 3) Almacenamiento y tratamiento de mensajes. Se trata de un servicio de mensajería vocal que permite el almacenamiento de los mensajes no atendidos, por estar el teléfono móvil desconectado o fuera de cobertura. Los mensajes se almacenan en un buzón de voz, y pueden ser recuperados en 32

Segunda Parte: El Sistema de Telefonía Móvil Celular GSM

cualquier momento por el usuario, que también puede realizar operaciones de tratamiento como borrado, ordenación o repetición. 4) Teletext 5) Videotext 6) Facsímil. Es posible la conexión de aparatos facsímil del Grupo 3 de forma automática o alternada con la voz para la transmisión y recepción de documentos en la estación móvil. Servicios suplementarios Los servicios suplementarios modifican o complementan a un servicio básico de manera que el usuario puede elegir ciertos aspectos de su prestación. Consecuentemente, no se puede ofrecer un servicio suplementario por sí solo, sino que debe ir asociado siempre a un servicio básico. En GSM los servicios suplementarios son, fundamentalmente, servicios de llamadas. Se dividen en ocho categorías. A continuación damos una lista de dichas categorías y de algunos de los servicios que pueden encontrarse en ellas. 1) Identificación de números • Presentación de la identificación del número del abonado que llama • Presentación de la identificación del número conectado • Restricción de la identificación del número del abonado que llama • Restricción de la identificación del número conectado • Identificación de llamadas "maliciosas" ⇒ Los servicios de "presentación de identificación" ofrecen la posibilidad de indicar el número del interlocutor que llama o que está conectado, mientras que los servicios de "restricción de identificación" ofrecen al interlocutor que llama o que está conectado la posibilidad de restringir la presentación de su número. 2) Tratamiento de llamadas entrantes • Servicios de desvío de llamadas: Permiten que las llamadas entrantes dirigidas al abonado sean desviadas hacia otro número. El desvío de llamadas puede ser: ∗ Incondicional ∗ Si el móvil está ocupado con otra llamada ∗ Si el destinatario no contesta ∗ Si existe congestión en el sistema ∗ Si el destinatario está desconectado o fuera de cobertura • Transferencia de llamada. Permite transferir la llamada a un tercer interlocutor. 3) Complemento de llamadas • Llamada en espera • Retención de llamada

33

Segunda Parte: El Sistema de Telefonía Móvil Celular GSM

⇒ El servicio de llamada en espera permite al abonado ser informado de una llamada entrante mientras está ocupado con otra llamada. El usuario podrá contestar, rechazar o ignorar la llamada entrante. ⇒ El servicio de retención de llamada permite interrumpir la comunicación en una llamada existente para posteriormente reestablecerla. 4) Multiconferencia • Llamada a tres • Llamada con múltiples participantes 5) Grupo cerrado de usuarios ⇒ Permite a un grupo de usuarios conectados a la red GSM y/o a la ISDN (RDSI) comunicarse solamente dentro de ese grupo. Si se requiere, uno o más abonados pueden realizar y recibir llamadas fuera del grupo. 6) Tarificación • Indicación del coste de la llamada en curso • Cobro revertido • Servicio de teléfono gratuito, en el que el usuario paga las llamadas entrantes, que son gratuitas para el interlocutor que llama. 7) Transferencia de información adicional ⇒ Es un servicio de señalización entre usuarios que permite a un abonado intercambiar una cantidad limitada de información con otro abonado de la red GSM o de la ISDN. La transferencia se realiza sobre el canal de señalización. 8) Restricción de llamadas • Prohibición de realizar llamadas • Prohibición de realizar llamadas internacionales • Prohibición de realizar llamadas internacionales, excepto las dirigidas al país de origen • Prohibición de entrada de llamadas • Prohibición de entrada de llamadas cuando el abonado esté itinerante en una PLMN ajena. Calidad de Servicio (QOS) Los objetivos generales de calidad de servicio telefónico para GSM son: n Tiempo entre el encendido de la estación móvil y la disponibilidad del servicio: 4 segundos en la red local (H-PLMN) 10 segundos en la red visitada (V-PLMN)

34

Segunda Parte: El Sistema de Telefonía Móvil Celular GSM

n Tiempos de conexión/liberación con la red destinataria de la llamada: 4 seg. / 2 seg. n Tiempo de aviso a la estación móvil de una llamada entrante: 4 seg. en la primera tentativa 15 seg. en la última tentativa n Retardo máximo unidirecccional: 90 ms. n Inteligibilidad de la voz: 90 % n Interrupción máxima en el traspaso: 100 ms dentro de la misma célula 150 ms entre distintas células

I.4.- Arquitectura del sistema GSM El sistema GSM se estructura en unidades funcionales e interfaces. Las primeras son entidades encargadas de la ejecución de las funciones del sistema, mientras que las interfaces son las fronteras de separación entre las unidades funcionales. Las interfaces soportan el diálogo entre las diferentes unidades funcionales y facilitan su interfuncionamiento. La estandarización de las interfaces garantiza la interoperabilidad entre equipos de diferentes fabricantes. El conjunto organizado de estos elementos constituye la arquitectura funcional de GSM. Se ha representado en la figura I.4.1. En la figura podemos observar que existen tres grandes bloques, que son: • El Subsistema de Estación Base BSS ("Base Station Subsystem"), también conocido como Estación Base BS ("Base Station") • El Subsistema de Conmutación de Red NSS ("Network Switching Subsystem") • El conjunto de Estaciones Móviles MS ("Mobile Stations") Entre estos subsistemas funcionales se han definido las dos interfaces básicas: • Interfaz de línea, denominada "A", entre el NSS y el BSS • Interfaz aérea o interfaz de radio, denominada "Um", entre el BSS y el bloque de MS

35

Segunda Parte: El Sistema de Telefonía Móvil Celular GSM

Unidad de gestión comercial NMC

OMC

EIR AUC HLR

VLR

MSC

BTS

MT

BSC

TE

TRX

MS PSTN ISDN PLNM

GMSC

BCF

BSS

VLR

Interfaz A bis

NSS

Interfaz Um

Interfaz A

Figura I.4.1: Arquitectura funcional de GSM

Dentro de los bloques anteriores, se definen una serie de unidades funcionales: n Dentro del BSS: • La unidad funcional BTS ("Base Transceiver Station" o Estación Transceptora de Base), que incluye las Funciones de Control de la Estación Base (BCF, "Base station Control Functions") y los equipos de transmisión TRX. • El Controlador de Estación Base BSC ("Base Station Controller"). n Dentro del NSS: • Los Centros de Conmutación de servicios Móviles MSC ("Mobile services Switching Centre") junto con sus Registros de Visitantes VLR ("Visitors Location Register"). • El MSC de Cabecera GMSC ("Gateway MSC"), a través del cual se efectúa la conexión de la PLMN/GSM con las redes públicas externas: PSTN, ISDN, otras PLMN, etc. • El Registro de Abonados Locales HLR ("Home Location Register").

36

Segunda Parte: El Sistema de Telefonía Móvil Celular GSM

• El Registro de Identidad de Equipos EIR ("Equipment Identity Register"). • El Centro de Autenticación AUC ("Autenthication Centre"). • El Centro de Operación y Mantenimiento OMC ("Operation and Maintenance Centre"). • El Centro de Gestión de Red NMC ("Network Management Centre"). • La Unidad de Gestión Comercial ("Commercial Management Unit"), también conocida como Centro de Administración ADC ("Administration Centre"). Por su parte, la MS incluye, funcionalmente, una Terminación Móvil MT ("Mobile Termination") y el Equipo Terminal TE ("Terminal Equipment"), que puede consistir en más de una pieza de equipo, como por ejemplo un teléfono y un Equipo Terminal de Datos DTE ("Data Terminal Equipment"). Si es necesario, pueden incluirse uno o más Adaptadores de Terminal TA ("Terminal Adapters"). Además de las interfaces "A" y "Um", ETSI ha estandarizado tres interfaces más, que describimos a continuación. Con el fin de simplificar la operación de las estaciones base, pueden ejecutarse muchas funciones de control de forma centralizada en el BSC, del cual dependerán varias BTSs. Para el caso en que se utilice esta configuración, se ha definido la interfaz "A-bis" entre el BSC y las BTSs. Aunque no aparece en el esquema de la figura I.4.1, existe un enlace X.25, denominado interfaz "Q3", que une el BSC y el OMC a través de una red de paquetes de datos. La interfaz entre el GMSC y las redes públicas externas al sistema está definida por el sistema de señalización número 7 del CCITT (SS7). La división funcional básica de la red PLMN/GSM tiene lugar en la interfaz "A". Las funciones se pueden dividir en dos grandes grupos: • Funciones propias de red, que abarcan las entidades MSC, VLR y HLR. • Funciones relativas a los aspectos radioeléctricos, ejecutadas en el BSS. Las entidades del primer grupo llevan a cabo tareas de gestión de recursos, interfuncionamiento con otras redes, señalización, control de llamadas, autenticación, localización y radiobúsqueda y cifrado de la información de usuario. En general, se encargan de la gestión de la movilidad. El BSS, por su parte, se encarga de gestionar los canales de radio que comprende. Entre otras funciones, podemos señalar la asignación de canales, la supervisión de la calidad de transmisión, la organización temporal de los mensajes, la codificación y la conversión de velocidad. Las entidades de ambos grupos cooperan en la ejecución de ciertas tareas. Por ejemplo, aunque es generalmente el MSC quien ordena la liberación de un canal, el BSS puede solicitar una liberación si la llamada se ha degradado debido a condiciones de propagación adversas. También cooperan en el tratamiento de los informes de medición de señal efectuados por la MS y que sirven como ayuda para el traspaso ("handover"),

37

Segunda Parte: El Sistema de Telefonía Móvil Celular GSM

así como en el transporte de los parámetros utilizados para la autenticación del abonado móvil y de su equipo. Trataremos todos estos aspectos con mayor profundidad en siguientes apartados.

I.5.- Descripción de las unidades funcionales A continuación ofrecemos una breve descripción de las unidades funcionales del sistema GSM. La Estación Móvil (MS) La estación móvil está compuesta físicamente por dos partes: • El terminal telefónico, que es el elemento de hardware. • La tarjeta SIM ("Subscriber Identity Module"), que identifica al abonado de manera única. La tarjeta SIM cumple muchas funciones, entre las que se encuentran la autenticación, la seguridad de las transmisiones por radio y el almacenamiento de los datos del usuario. Los datos del abonado se dividen en datos de identificación permanente, datos de identificación temporal y datos adicionales. Los datos de identificación permanente incluyen: • El número de Identidad Internacional de Abonado Móvil IMSI ("International Mobile Subscriber Identity") • La clave de autenticación Ki • Los algoritmos de cifrado y autenticación (A3, A5 y A8) Los datos de identificación temporal incluyen: • La localización del terminal • La Identidad Temporal del Abonado Móvil TMSI ("Temporal Mobile Subscriber Identity") El número TMSI se emplea para proteger la identidad del abonado. La TMSI es una identidad temporal que sustituye a la IMSI, de modo que se asegure la confidencialidad de esta última. La IMSI se transmite por primera vez cuando el usuario accede a la red. Para contactos sucesivos, se sustituye por la TMSI, que es asignada por el VLR de la zona donde se encuentra el abonado, y que lo identifica unívocamente dentro de dicha zona. Los datos adicionales que se almacenan en la tarjeta SIM son: • Directorio telefónico del usuario • Mensajes cortos • Información de tarificación enviada por la red • Lista de números restringidos, en caso de utilizar algún tipo de restricción de llamadas

38

Segunda Parte: El Sistema de Telefonía Móvil Celular GSM

Por su parte, el terminal móvil (elemento hardware) desempeña dos funciones: • Es un teléfono para el abonado. • Es un medio de conectarse a la red. Como teléfono del usuario, deberá tener las mismas cualidades que un teléfono doméstico, en cuanto a la calidad del sonido, a la estética del microteléfono y a la facilidad de uso. Además, debe ser ligero y compacto, y consumir poca energía, de modo que pueda tener la mayor autonomía posible. Para esto último, los fabricantes hacen uso de circuitos integrados de bajo consumo, y el terminal toma también en consideración los periodos de actividad y de reposo, ya que en estos últimos puede reducirse significativamente el consumo de energía. Además, existe control de la potencia de transmisión de la MS por parte de la estación base. Como medio de acceso a la red, el terminal debe estar conforme con los estándares de compatibilidad electromagnética, gestionar los protocolos de señalización, gestionar los algoritmos de encriptado y llevar a cabo la digitalización de la voz. El estándar define tres tipos de terminal: • Terminales fijos montados en vehículos, que usan la batería del vehículo y tienen la antena situada en el exterior . • Terminales "transportables" o desmontables, que pueden ser transportados fuera del vehículo. • Terminales portátiles "de mano", muy compactos y ligeros, y totalmente autónomos. Las estaciones móviles pueden clasificarse también atendiendo a la potencia máxima de emisión. En las tablas I.5.1.a y I.5.1.b se muestran las 5 clases de estaciones móviles definidas según este criterio. Clase de estación 1

Potencia máxima nominal de emisión (W) 20

2

8

3 4 5

5 2 0.8

Tipo de terminal Montado en vehículo o portátil Montado en vehículo o portátil Portátil de mano Portátil de mano Portátil de mano

Tabla I.5.1.a: Estaciones móviles para GSM 900

Clase de estación 1 2 3

Potencia máxima nominal de emisión (W) 1 0.25 4

Tipo de terminal Portátil de mano Portátil de mano Montado en vehículo o portátil

Tabla I.5.1.b: Estaciones móviles para DCS 1800 y PCS 1900

39

Segunda Parte: El Sistema de Telefonía Móvil Celular GSM

En todos los casos existe una tolerancia de ±2 dB en condiciones normales y ±2.5 dB en condiciones extremas. La potencia de salida del terminal puede ser reducida en escalones de 2 dB mediante control remoto desde la estación base. Esta funcionalidad permite reducir la interferencia cocanal manteniendo la calidad del enlace radio, a la vez que reduce el consumo de baterías, lo cual es importante para portátiles de mano. Se han establecido distintas configuraciones para las estaciones móviles, según el servicio que vayan a prestar, como se indica en la figura I.5.1. Para el servicio de telefonía (voz) se empleará la configuración MT0, en la cual la MS no tiene conectado ningún tipo de terminal. Para servicios de datos puede utilizarse la configuración MT0, si el equipo es plenamente integrado, o bien conectar el Equipo Terminal TE ("Terminal Equipment") adecuado. Si el TE es de naturaleza ISDN (lo que se denomina TE1), la configuración se denomina MT1. El TE se conecta directamente a través de la interfaz S. La configuración MT2 incluye funciones de adaptación de terminales de las series V y X del CCITT (terminales conocidos como TE2), conectados en la interfaz R. Se puede conectar un TE con interfaz no-ISDN a un MT1 empleando un Adaptador de Terminal TA ("Terminal Adaptor"). Um MT0

CONFIGURACIONES DE ESTACIÓN MÓVIL

R TE2

S TE1

MT1

TA

MT1

TE2

SISTEMA DE ESTACIÓN BASE (BSS)

MT2

R

CONCEPTOS ISDN

CONCEPTOS PLMN/GSM

Figura I.5.1: Configuraciones de estación móvil

La Estación Transceptora de Base (BTS) El elemento básico para la cobertura de servicio en una determinada zona es la célula. La estación transceptora de base (BTS) se encarga de proporcionar la cobertura radioeléctrica al área definida por una cierta célula. La BTS representa un punto de entrada a la red para los abonados que están presentes en la célula a la que da cobertura, permitiéndoles realizar y recibir llamadas. 40

Segunda Parte: El Sistema de Telefonía Móvil Celular GSM

El área de la célula varía significativamente entre zonas rurales y zonas urbanas. En estas últimas, donde hay una elevada densidad de tráfico, las células son de reducido tamaño, con el objetivo de incrementar la capacidad por unidad de área. En estas situaciones el radio de la célula puede llegar a los límites inferiores (unos 200 m). Estos límites inferiores vienen determinados por los costes de infraestructura y las condiciones de propagación. Por otro lado, en áreas rurales la densidad de tráfico es mucho menor, y el radio de las células es, por consiguiente, mucho mayor (puede llegar a ser de 30 km). Los límites en este caso vienen determinados por la potencia transmitida. La estación base es básicamente un transmisor/receptor que puede ser controlado, localmente o remotamente, mediante un controlador de estación base (BSC). Los terminales móviles acceden a la estación base a través de la interfaz "Um", y las comunicaciones entre la BTS y el BSC se llevan a cabo a través de la interfaz "A bis". Una BTS controla entre una y ocho portadoras, cada una de las cuales transporta ocho canales de radio de velocidad completa. La antena puede ser omnidireccional o direccional (normalmente con un ancho de haz de 120º). Las antenas direccionales dan lugar a un modelo de estructura sectorizada. En ese caso, en un mismo emplazamiento pueden coexistir varias estaciones base, que estarán sincronizadas con objeto de aumentar la eficiencia de los traspasos entre células ("inter-cell handovers"). Las funciones de la BTS son: • Transmisión vía radio en el formato GSM, empleando técnicas de saltos de frecuencia (“Frequency Hopping”) y diversidad espacial. • Implantación de algoritmos de ecualización para contrarrestar los efectos de la propagación multitrayecto. • Codificación y decodificación de canal. • Encriptado del flujo de datos. • Control de los protocolos que gobiernan la capa de enlace de radio (protocolo LAPDm). • Transmisión de mensajes de señalización. • Operación y mantenimiento del equipamiento de la BTS. Al igual que se hizo con las estaciones móviles, podemos clasificar las estaciones base según la máxima potencia transmitida, medida a la entrada del combinador de transmisión, como se muestra en las tablas I.5.2.a y I.5.2.b.

41

Segunda Parte: El Sistema de Telefonía Móvil Celular GSM

Clase de estación 1 2 3 4 5 6 7 8

Potencia máxima de salida (W) 320-( L. El número de métricas incrementales será ahora 2v, ya que hay dos métricas incrementales asociadas con cada estado. Cuando la suma de la duración de la respuesta impulsiva del filtro del modulador (L) y la duración de la respuesta estimada del canal Lp es mayor que v, no es posible llevar a cabo una ecualización completa de la señal. El receptor deberá operar en un segmento de la respuesta impulsiva del canal que debe seleccionarse de modo que se 177

Segunda Parte: El Sistema de Telefonía Móvil Celular GSM

minimice la tasa de error de bit (BER). Este ecualizador se conoce como ecualizador Viterbi con número de estados reducido (“reduced-state Viterbi equaliser”). Ninguna de las formas de onda estimadas coincidirá exactamente con las formas de onda recibidas. Sin embargo, puede conseguirse un buen rendimiento en cuanto a BER. Hemos dicho que el ecualizador Viterbi con número de estados reducido debe seleccionar un segmento apropiado de la respuesta impulsiva del canal. La duración de la respuesta está limitada a LT bits, donde: LT = v − L Se tomarán entonces LT bits de h’(t) para formar hW(t). Este proceso se conoce como enventanado rectangular. Un criterio razonable para seleccionar el segmento de h’(t) es desplazar la ventana rectangular de longitud LT bits sobre la respuesta estimada, calculando la energía contenida dentro de la ventana en cada punto, y entonces identificar la posición de la ventana donde la energía es máxima. Entonces, podemos esperar que la ventana residirá en la parte de h’(t) que permita al ecualizador Viterbi regenerar los datos con la menor tasa de error de bit. Para una estimación de canal de longitud LP bits y con una tasa de sobremuestreo η R , la energía en la i-ésima posición de muestreo viene dada por: ηLT

Ei = ∑ hi'+ k ; 2

i = 0 a η R ( LP − LT ) .

k =0

En la figura II.2.65 se muestra una respuesta impulsiva h’(t) arbitraria, el movimiento de la ventana y el segmento seleccionado hW(t). hW(t) h’(t)

t w(t)

LT Figura II.2.65.- Enventanado de la estimación del canal h’(t) para obtener hW(t)

Generación de la señal estimada Antes de procesar los datos de tráfico del paquete, se intenta determinar el conjunto de todas las señales que pueden aparecer a la salida de un canal cuya respuesta impulsiva sea hW(t). Todas las posibles secuencias de v bits son generadas por un modulador local, incluido en el ecualizador Viterbi. La longitud de estas secuencias (v) viene determinada por el número de estados del ecualizador Viterbi (2v-1). Por tanto, un generador de secuencias proporcionará todas las secuencias de v bits al modulador local, que proporcionará las estimaciones de fase φ (t ) . Se calculan entonces las componentes 178

Segunda Parte: El Sistema de Telefonía Móvil Celular GSM

en fase y cuadratura ( 2 E / T )1 / 2 cos φ (t ) y ( 2 E / T )1 / 2 sin φ (t ) . Son estas componentes las que se convolucionarán con la respuesta impulsiva banda base estimada del canal hW(t) para proporcionar las estimaciones de todas las señales recibidas posibles sobre un intervalo de bit. Normalmente, las estimaciones cos φ (t ) y sin φ (t ) son almacenadas en una memoria ROM, de modo que los cálculos relativos al modulador local son sustituidos por un conjunto de valores que vienen direccionados por las posibles secuencias de v bits de datos. Obsérvese que en la figura II.2.64 la salida del modulador local es:

[

]

~ s (t ) = ( 2 E / T )1 / 2 cos φ (t ) + j sin φ (t ) . La función de ambigüedad Se ha dicho anteriormente que la respuesta impulsiva estimada del canal h’(t) es el resultado de la convolución de la respuesta impulsiva real del canal h(t) con la función de ambigüedad ρ (t ) . Además, h’(t) es enventanada para obtener hW(t). Por consiguiente, las señales estimadas en el receptor estarán basadas en hW(t), no en la desconocida h(t). La señal de información (datos de tráfico) recibida es: r ( t ) = s ( t ) ∗ h (t ) donde s(t) es la señal de información. El receptor estima que las posibles señales recibidas son ~ x (t ) = ~ s (t ) ∗ hW (t ) s (t ) ∗ ( w(t )h ' (t )) =~ ~ = s (t ) ∗ w(t )(h(t ) ∗ ρ (t ) ) s (t ) = w(t )(h (t ) ∗ ρ (t ) ) ∗ ~ ~ = w( t ) ( ρ ( t ) ∗ h ( t ) ∗ s ( t ) ) donde ~ s (t ) es la salida del modulador local, y w(t) representa la función de enventanado que se aplica a la estimación del canal h’(t). Entonces, para obtener la mayor coincidencia posible entre las señales recibidas y las estimadas, r(t) debe convolucionarse con w(t) ρ (t ) . Podemos entonces escribir la señal recibida banda base como: x (t ) = r (t ) ∗ (w(t ) ρ (t ) ) = h(t ) ∗ s (t ) ∗ (w(t ) ρ (t ) ) = (w(t ) ρ (t ) ) ∗ h(t ) ∗ s (t ) El uso de la función de ambigüedad enventanada w(t) ρ (t ) permite una mejor coincidencia entre la señal recibida x(t) y las señales estimadas ~ x (t ) que si se utilizara simplemente ρ (t ) . Llamaremos a la función de ambigüedad enventanada ρ W (t ) . 179

Segunda Parte: El Sistema de Telefonía Móvil Celular GSM

Dado que ρ (t ) suele ser enteramente real (o al menos, su parte imaginaria suele ser despreciable), podemos escribir: x (t ) = [rI (t ) + jrQ (t )]∗ ρW (t ) = rI (t ) ∗ ρW (t ) + jrQ (t ) ∗ ρW (t ) = xI (t ) + jxQ (t ) donde xI(t) y xQ(t) son las componentes en fase y cuadratura de la señal banda base. Supongamos que existe ruido aditivo en el canal. Las componentes banda base de la señal recibida pueden escribirse como sigue, en presencia de dicho ruido aditivo: x I (t ) =

2E [hI (t ) ∗ sI (t ) − hQ (t ) ∗ sQ (t )]∗ ρW (t ) + n I (t ) ∗ ρW (t ) T

xQ ( t ) =

2E [hI (t ) ∗ sQ (t ) + hQ (t ) ∗ s I (t )]∗ ρW (t ) + nQ (t ) ∗ ρW (t ) T

y

donde hI(t) y hQ(t) son las componentes complejas de h(t), y nI(t) y nQ(t) las del ruido aditivo banda base n(t). Nótese que, aunque hemos ignorado el efecto del ruido aditivo al calcular la estimación del canal, hemos incluido el ruido en las ecuaciones anteriores. Esto puede justificarse5 considerando la alta energía de la secuencia de sondeo comparada con la energía por bit. La relación señal a ruido efectiva (SNR) de la estimación del canal es mucho mayor que la experimentada durante la recepción de datos. Consecuentemente, cuando la SNR se hace demasiado pequeña para asegurar una estimación de canal razonable, los datos son inútiles de cualquier modo. Cálculo de la métrica incremental Inicialmente, vamos a prescindir de la representación en componentes en fase y cuadratura, con objeto de clarificar el texto. Consideraremos señales banda base reales, de modo que podemos expresar la señal recibida como: x ( t ) = α ( t ) ∗ q ( t ) ∗ h ( t ) ∗ ρW ( t ) donde α (t ) es una secuencia de impulsos que representan el vector de datos en el transmisor, q(t) es la respuesta impulsiva del filtro del modulador, y h(t) es la respuesta impulsiva del canal. Ignoraremos también los efectos del ruido del canal.

5

Ref. [1]

180

Segunda Parte: El Sistema de Telefonía Móvil Celular GSM

Por su parte, las secuencias de señal estimadas a partir de la convolución de las secuencias de salida del modulador local en el receptor con la respuesta impulsiva del canal estimada y enventanada, vienen dadas por ~ x ( t ) = α (t ) ∗ q(t ) ∗ hW (t ) donde hW(t) es en este caso una estimación truncada de la respuesta impulsiva del canal, calculada, como se ha visto anteriormente, aplicando una ventana rectangular a h’(t). Para generar estas señales sobre cada periodo de bit, se hacen pasar todos los patrones posibles de v bits α −v +1 Kα 0 por el modulador local y se realiza la convolución de la salida de éste con la estimación truncada del canal hW(t), tal como se muestra en la figura II.2.66. Podemos representar el efecto combinado del filtro del modulador y la estimación enventanada del canal mediante un filtro cuya respuesta impulsiva sea: d ( t ) = q( t ) ∗ h W ( t ) de manera que, como se muestra en la figura II.2.66, ~ x ( t ) = α (t ) ∗ d ( t ) .

Generador de secuencias

α −v +1 Kα 0

Filtro banda base del modulador

α ( t ) ∗ q( t )

hW(t)

~ x (t )

q(t)

α −v +1 Kα 0

d(t)

~ x (t )

Figura II.2.66.- Generación local de la señal estimada

Las formas de onda banda base ~x (t ) generadas localmente en el receptor dependen del número de bits de datos v, de la respuesta impulsiva del filtro del modulador q(t) y de la respuesta impulsiva estimada y enventanada del canal hW(t). Al generar la representación digital de la señal x(t) hay que muestrear con una tasa de η R veces la tasa binaria, para prevenir un aliasing excesivo. Tomemos como ejemplo el caso en que η R = 2 y v = 5. Las señales estimadas ~ x (t ) se forman tomando 5 bits ( α −4 , α −3 , α −2 , α −1 y α 0 ). Como la tasa de sobremuestreo

es η R = 2, hay dos muestras por bit, que se consiguen intercalando un cero entre los valores α , como se muestra en la figura II.2.67. En dicha figura, se propone una respuesta d(t) arbitraria, cuyos valores muestreados son d0, d1, d2, ... d9. También se muestra la red cuyos coeficientes son {dn}, y los datos durante el primer intervalo de muestreo. La salida del filtro transversal, en ese instante, será: ~ xu ,0 = α 0 d 0 + α −1d 2 + α − 2 d 4 + α −3d 6 + α −4 d 8 . 181

Segunda Parte: El Sistema de Telefonía Móvil Celular GSM

En el siguiente intervalo de muestreo, los datos son desplazados hacia la derecha, y un cero seguirá tras α 0 . ~ xu ,1 = α 0 d 1 + α −1d 3 + α −2 d 5 + α −3d 7 + α −4 d 9 Dado que v = 5, existirán 32 valores posibles de ~ xu ,0 y ~ xu ,1 , es decir, u = 0, 1, ... 31, y estos valores se emplearán en el cálculo de las métricas incrementales para el algoritmo de Viterbi. d4 d(t) d3

d5

d2

d6

d1

d7

d0

d8

D = T /ηR α0

d0 x

α −1

0

d1 x

d2 x

D = T /ηR α−2

0

d3 x

d9

α −3

0

d4 x

d5 x

α −4

0

d6 x

d7 x

0

d8 x

d9 x

+

~ xu 0 Figura II.2.67.- Ejemplo de generación de señales estimadas

En el primer instante de muestreo, del k – ésimo bit, las señales estimadas ~ xu ,0 se restan a la señal recibida xk0, y los resultados se elevan al cuadrado, obteniéndose las 2 distancias euclídeas (x k 0 − ~ xu 0 ) . En el segundo instante de muestreo de ese mismo bit, 2 se obtienen de la misma manera las distancias (x − ~ x ) . Las métricas incrementales k1

u1

para un intervalo de bit se calculan a partir de las distancias euclídeas obtenidas para cada instante de muestreo, y son por tanto:

182

Segunda Parte: El Sistema de Telefonía Móvil Celular GSM 2 2 muk = ( xk 0 − ~ xu 0 ) + (xk 1 − ~ xu1 ) ; u = 0, 1, ... 31 .

Esta expresión es válida para el ejemplo que acabamos de estudiar. Para valores generales de v y η R , esta ecuación se convierte en: muk =

η R −1

∑ (x

−~ xui ) ; u = 0, 1, ... 2 v − 1 . 2

ki

i =0

Continuando con nuestro ejemplo, una vez calculadas las 32 métricas incrementales, éstas se aplican al procesador Viterbi, como se muestra en la figura II.2.68, y se calculan nuevas métricas para cada estado, de acuerdo con el algoritmo de Viterbi, descrito anteriormente. En el siguiente intervalo de bit, k + 1, las entradas serán xk+1,0 y xk+1,1. Sin embargo las señales ~ xu ,0 y ~ xu ,1 , con u = 0, 1, ... 31, no variarán, dado que son constantes durante la ráfaga TDMA. Estas señales estimadas se actualizarán cuando se genere una nueva estimación de la respuesta impulsiva del canal, lo cual no ocurrirá hasta que se reciba la siguiente ráfaga. Obsérvese que las muestras a partir de las cuales se lleva a cabo el cálculo de la métrica incremental son valores muestreados de las formas de onda analógicas x(t) y ~ x (t ) . Nótese también que el procesador de Viterbi deberá favorecer los valores mínimos de las métricas incrementales, dado que se está utilizando como criterio la distancia euclídea. Si el criterio fuera la correlación entre señales, el algoritmo debería maximizar esa medida. xk0

~ x 0, 0

~ x0,1

Cálculo de métrica incremental

xk1

Cálculo de métrica incremental

~ x1,0

~ x1,1

~ x31,0

~ x31,1

Cálculo de métrica incremental

m0,k

m1,k

u=0

u=1

Procesador Viterbi

m31,k

u = 31

Figura II.2.68.- Ejemplo de cálculo de la métrica incremental

Hasta ahora hemos considerado que el ecualizador operaba sobre señales reales. Pero nos interesa extender los resultados a señales que contengan componentes en fase y cuadratura. Si xIki y xQki representan, respectivamente, la componente en fase y la componente en cuadratura de la señal recibida en la muestra i – ésima del k – ésimo 183

Segunda Parte: El Sistema de Telefonía Móvil Celular GSM

intervalo de bit, y ~ x Iui y ~ xQui son los valores correspondientes de las señales estimadas generadas localmente en el receptor, con u = 0, 1, ... 2v-1, entonces el cuadrado de la distancia euclídea en ese instante de muestreo es:

(x Iki − ~x Iui )2 + (xQki − ~xQui )2 ;

u = 0, 1, ... 2 v − 1 .

Como i tomará los valores 0, 1, ... η R – 1, la métrica incremental se convierte en la suma de los cuadrados de las distancias euclídeas en cada instante de muestreo durante un periodo de bit, esto es: muk =

η R −1

∑ (x i =0

−~ x Iui ) + (xQki − ~ xQui ) ; u = 0, 1, ... 2 v − 1 . 2

Iki

2

Consideraciones sobre ventanas no rectangulares Anteriormente se ha mencionado que, para que el receptor pueda tratar retardos de propagación elevados, es necesario aumentar la longitud de la ventana (LT) usada para truncar la respuesta impulsiva estimada del canal, de manera que sea del orden del máximo retardo esperado. Aumentar LT implica la necesidad de más bits en la secuencia { α k } para cada estimación ~ xu ,i , y cada bit adicional en { α k } duplica el número de estados necesarios en el ecualizador Viterbi, y por tanto la complejidad hardware. Una alternativa es el uso de ventanas no rectangulares para la truncación de la estimación del canal. Ilustraremos la discusión con un ejemplo. Supongamos que: ηR = 1 L=3 v=5 y que la respuesta impulsiva del canal es truncada a una longitud de ( v + 1 ) = 6 bits, en lugar de ser truncada a LT = v – L = 2 bits. El número de estados en el ecualizador será 2v-1 = 16. Supongamos además que la señal recibida es una señal DPM (modulada en fase). Podemos expresar la señal a la salida del demodulador como:   s (t ) = exp j ∑ α p q(t − pT )  p  donde hemos supuesto la amplitud igual a la unidad y el desfase φ0 = 0. La versión en tiempo discreto de esta señal será:   s (t , α ) = exp j ∑ α p qn − pη R   p  y tras realizar la convolución de esta señal con la estimación del canal enventanada, obtenemos: 184

Segunda Parte: El Sistema de Telefonía Móvil Celular GSM

  n    ηR   W xui = ∑ hi − n ·exp j  ∑ α p qn − pη R ; u = 0, 1, ..., 2v − 1 . n =i −η R LT  p =  n +1  − L    ηR   i

Dado que en nuestro ejemplo η R = 1, i = 0 y n varía entre 0 y v + 1, ya que hay v + 2 muestras de la respuesta impulsiva del canal, las muestras de la señal estimada serán: xu ,0 =

 n  W h exp j ∑  ∑ α p qn − p  . −n n = − ( v +1)  p =n +1− L  0

Expandiendo esta expresión obtenemos: xu ,0 = h6W exp j[α −8 q2 + α −7 q1 + α −6 q0 ]

+ h5W exp j[α −7 q2 + α −6 q1 + α −5 q0 ]

+ h4W exp j[α −6 q2 + α −5 q1 + α − 4 q0 ]

+ h3W exp j[α −5 q2 + α − 4 q1 + α −3 q0 ]

+ h2W exp j[α −4 q2 + α −3 q1 + α −2 q0 ] + h1W exp j[α −3 q2 + α − 2 q1 + α −1 q0 ] + h0W exp j[α −2 q2 + α −1 q1 + α 0 q0 ]

Puede verse que el valor de la estimación de la señal depende de los valores α −8 , α −7 , ... α 0 . Una ventana rectangular precisaría de un ecualizador Viterbi con 29-1 = 28 estados. Sin embargo, dado que estamos limitados a 16 estados, sólo podemos elegir un subconjunto de cinco α k consecutivos para generar los valores muestreados de las estimaciones de señal. Por consideraciones de simetría, parece razonable elegir los elementos centrales ( α −2 , α −3 , ... α −6 ) como subconjunto “determinista” y los elementos de los extremos ( α −8 , α −7 , α −1 , α 0 ) como subconjunto “estocástico”. Los elementos del subconjunto “estocástico” tomarán los valores +1 y –1 con igual probabilidad. Una forma de generar el valor muestreado de la estimación de la señal x u , 0 para un conjunto determinista dado es producir valores de estimaciones de señal para todas las posibles combinaciones del conjunto estocástico y posteriormente tomar el valor medio. Es decir, en nuestro ejemplo habría que tener en cuenta las 16 posibles combinaciones de α −8 , α −7 , α −1 , α 0 , para dar 16 posibles valores de x u , 0 . El valor de x u , 0 que se emplearía para la métrica sería la media de esos 16 valores, que denominaremos X u , 0 . Este procedimiento consume tiempo, y es posible obtener el mismo resultado asignándole pesos a las muestras de la respuesta estimada del canal. Consideremos, por ejemplo, el cálculo del último término de x u , 0 en nuestro ejemplo, es decir, h0W exp j[α −2 q2 + α −1 q1 + α 0 q0 ] .

185

Segunda Parte: El Sistema de Telefonía Móvil Celular GSM

Este término tiene dos elementos del subconjunto estocástico ( α −1 ,α 0 ), por lo que su valor medio debe calcularse tomando en consideración las cuatro posibles combinaciones de éstos:  h0W   4

  exp j (α −2 q2 )[exp j ( q0 + q1 ) + exp j ( q0 − q1 ) + exp j ( q1 − q0 ) + exp j ( − q0 − q1 )] 

 hW =  0  4

  exp j (α − 2 q2 )(exp j ( q0 ) + exp j ( − q0 ) )(exp j ( q1 ) + exp j ( − q1 ) ) 

 h0W   exp j (α − 2 q2 )4 cos( q0 ) cos( q1 ) =   4  = h0W w00 exp j (α −2 q2 ) donde el superíndice 0 significa i = 0. Podemos ver que multiplicar h0W por el factor de ponderación (o “peso”) w00 = cos( q0 ) cos( q1 ) equivale a obtener la media sobre todos los posibles valores de α −1 ,α 0 . Este procedimiento debe repetirse para el resto de los sumandos que componen la expresión de x u , 0 que tengan elementos del subconjunto estocástico. Nótese que los cuatro términos que contienen únicamente elementos del subconjunto determinista producirán pesos iguales a 1. Los valores muestreados de las estimaciones de señal se expresarán entonces como: X u ,0 =

 n  W 0 h w exp j ∑  ∑ α p qn − p  −n −n n = −6  p =n − 2  0

donde p toma valores desde –2 a –6, ya que los elementos del subconjunto estocástico ya han sido tenidos en cuenta en los pesos w−0n . Los valores de las estimaciones de señal producidos de esta manera no coincidirán exactamente con ninguna de las posibles señales recibidas, resultando en una peor BER estática. Pero la ventaja de este esquema es que permite conseguir un rendimiento aceptable sobre un rango mucho mayor de retardos de propagación, manteniendo la misma complejidad en el ecualizador Viterbi. En el ejemplo que acabamos de ver, se ha considerado que la tasa de sobremuestreo η R era igual a la unidad. Cuando esta tasa es mayor, se requiere una función de ponderación diferente en cada instante de muestreo i. Esto no resulta práctico, por lo que se toma la media de los factores de ponderación o peso sobre un intervalo de bit: Wn =

1 ηR

η R −1

∑w i =0

i n

186

Segunda Parte: El Sistema de Telefonía Móvil Celular GSM

Entonces, Wn reemplaza a w−0n en las ecuaciones para el cálculo de las muestras de la estimación de la señal. La posición óptima para la ventana se obtiene de manera similar a como se vio para la ventana rectangular. En primer lugar, se calculan los valores de energía para las distintas posiciones de la ventana sobre la estimación del canal, de acuerdo con la siguiente expresión: Ei =

η R ( v −1)

∑ k =0

Wk2 hiW+ k

2

para i = 0 a ηR ( Lp − ( v + 1))

donde Lp es la duración de la respuesta impulsiva estimada del canal en periodos de bit antes del enventanado. La posición que se elegirá para la ventana será aquella en la que el valor de i resulte en el mayor valor de la energía Ei. Consideraciones sobre la ecualización de señales GMSK El uso de esquemas de modulación en frecuencia (como es el caso de GMSK) requiere que el ecualizador Viterbi tenga más estados que los necesarios para un esquema de modulación en fase. Estos estados extra son consecuencia de los p posibles valores del término del estado de fase θ n 6. En el modulador, un esquema de modulación DPM requiere 2L-1 estados, mientras que un esquema DFM requiere p2L-1. El entero p está relacionado con el índice de modulación por la expresión: hf =

2k p

donde k y p son enteros y hf es racional. Los estados de fase tomarán valores: θ n ∈ {0, 2π p , 2·2π p , ..., 2( p − 1)π p} Cada estado del trellis vendrá definido por un estado de fase θ n y una de 2L-1 secuencias posibles de {α n −1 , α n −2 ,..., α n − v +1 }. Para el caso de GMSK, tenemos h f = 0.5 k =1 p=4 con lo que existen 4 posibles estados de fase con valores 0, π /2, π y 3π /2. Consideremos el caso de una modulación GMSK, con L = v = 3, es decir, se considera el canal ideal. En el diagrama de trellis de la figura II.2.69 se muestran los cuatro estados de fase 0, π /2, π y 3π /2, así como los bits que definen el vector de estados correlativos en los instantes n –1 y n. Con la llegada de un nuevo bit α n , el bit 6

Véase apartado II.2.7 (Modulación)

187

Segunda Parte: El Sistema de Telefonía Móvil Celular GSM

α n − 2 deja de pertenecer al vector de estados correlativos y contribuye añadiendo un

valor de π /2 o -π /2 al estado de fase anterior θ n −1 . No se han mostrado todas las transiciones posibles del trellis. Las transiciones correspondientes a la llegada de un 0 se representan con una línea continua, mientras que las correspondientes a un 1 son líneas discontinuas. Consideremos que el estado de fase es π /2 y que el vector de estados correlativos es α n − 1 = -1 y α n − 2 = -1. Si el nuevo bit en llegar es α n = 1, el nuevo vector de estados correlativos será α n = 1, α n − 1 = -1. En cambio, si α n = -1, el vector de estados correlativos será α n = -1, α n − 1 = -1. La nueva fase viene determinada por el valor del bit α n − 2 . Dado que α n − 2 = -1, la contribución a la fase será de -π /2, por lo que el nuevo estado de fase será 0. Estas transiciones están marcadas con un “1” en la figura II.2.69. En el trellis también se han representado (marcadas con “2”) transiciones en las que α n − 2 = 1. En este caso, estas transiciones terminarán en el estado de fase π . Podemos apreciar que la estructura del trellis para GMSK es cuatro veces más compleja que la requerida para DPM con un valor equivalente de L. Para llevar a cabo la ecualización hay que calcular un total de p2v métricas incrementales por cada bit recibido. Una forma de simplificar la ecualización de señales GMSK mediante el algoritmo de Viterbi es eliminar los efectos de los estados adicionales de fase haciendo un seguimiento de los estados de fase en cada nodo del trellis. El ecualizador almacenará el estado de fase actual en cada nodo del trellis, para así permitir que en el siguiente intervalo de bit se pueda elegir la estimación de señal correspondiente al estado de fase apropiado. Tras la actualización de cada nodo del trellis mediante el almacenamiento de la nueva métrica acumulativa y la secuencia de información actualizada, el último estado de fase también es almacenado para utilizarlo en la siguiente recursión. De esta manera, se reduce el número de estados necesarios para el ecualizador al mismo número que se precisaba para DPM, con la única salvedad de que es necesario almacenar el estado de fase en cada nodo del trellis.

188

Segunda Parte: El Sistema de Telefonía Móvil Celular GSM

Estado de fase instantáneo

Vector de estados correlativos

n-1

α n −1 , α n −2

n

α n , α n −2 -1 -1

-1 -1 -1 1 -1 1

0

1

1 -1

1 -1 1 1 1 1

π

π /2

3 π /2

-1 -1

-1 -1

-1 1

-1 1

1 -1

2

1 -1

1 1

1 1

-1 -1

-1 -1

-1 1

-1 1

1 -1

1 -1

1 1

1 1

-1 -1

-1 -1

-1 1

-1 1

1 -1

1 -1

1 1

1 1

Figura II.2.69.- Diagrama de trellis del ejemplo.

En la ecualización Viterbi de señales GMSK no se producen errores “simples” (de un solo bit), sino que siempre aparecen errores dobles (o múltiplos de 2). Podemos ver cómo se producen estos errores dobles considerando el diagrama de trellis de la figura II.2.70, que tiene cuatro estados de fase y un solo bit para representar el estado correlativo. Se muestra (con líneas negras) el camino correspondiente a la transmisión de una secuencia con todos sus elementos iguales a 0, así como un camino erróneo que diverge en el instante i (líneas rojas). Las líneas discontinuas corresponden a unos lógicos, mientras que las líneas continuas corresponden a ceros lógicos. Podemos ver que se generan dos unos erróneos antes de que el camino vuelva a unirse al correcto en el instante i + 3. Se muestra también otro camino, que diverge del correcto en el instante i, y que tiene un único bit erróneo: un 1 entre el instante i y el i + 1. Vemos que el camino correcto y el divergente nunca convergerán, y por tanto no es posible que ocurran errores simples en GMSK.

189

Segunda Parte: El Sistema de Telefonía Móvil Celular GSM

i 0

i+1

i+2

i+3

i+4

i+5

i+6

0 1

π /2

0 1

π

0 1

3 π /2

0 1

Figura II.2.70.- Ejemplo de errores dobles en GMSK

Se puede mejorar la tasa de error si los errores dobles se convierten en simples. Esto se consigue empleando codificación diferencial antes del modulador GMSK, y decodificación diferencial tras el ecualizador. Podemos ver este efecto con el ejemplo que se muestra en la tabla II.2.23, que muestra varias secuencias asociadas con el codificador / decodificador diferencial que se muestra en la figura II.2.71. TX o ErrorTX

Entrada

Salida

+

D

Entrada retrasada

+

Salida retrasada

D

Figura II.2.71.- Codificación y decodificación diferencial

190

Segunda Parte: El Sistema de Telefonía Móvil Celular GSM

Entrada

Entrada retrasada

TX

ErrorTX

1 1 1 0 1 1 1 1 0 0 0

0 1 1 1 0 1 1 1 1 0 0

1 0 0 1 1 0 0 0 1 0 0

1 0 0 1 0* 1* 0 0 1 0 0

Sin errores Salida Salida retrasada 0 1 1 1 1 1 1 0 0 1 1 1 1 1 1 1 1 0 0 0 0 0

Dos errores Salida Salida retrasada 0 1 1 1 1 1 1 0 0 0* 0 1 1 1 1 1 1 0 0 0 0 0

Tabla II.2.23.- Ejemplo de codificación y decodificación diferencial.

La primera columna muestra la secuencia de datos de entrada. La segunda columna es la entrada retrasada. Se supone que el elemento de retardo se inicializa a cero. La salida del codificador diferencial se muestra en la tercera columna. Cuando no hay errores, el flujo de bits decodificados (sexta columna) es idéntico al de entrada (primera columna). Si introducimos dos errores (marcados con * en la cuarta columna) en la secuencia transmitida, y a continuación se produce la decodificación, sólo aparecerá un error en la salida, respecto a la entrada. Ese error está marcado con * en la octava columna. Por consiguiente, errores de bit dobles pasan a ser simples si se utiliza la codificación diferencial de los datos.

II.2.12.- Control del enlace radio El control del subsistema radio en el sistema GSM incluye los procedimientos necesarios para mantener la calidad del enlace radio entre la BTS y la MS, así como para gestionar la distribución del tráfico, el control adaptativo de potencia de RF, los traspasos (“handovers”) y la generación de respuestas ante fallos del enlace. Una estación móvil que esté encendida y cuya tarjeta SIM esté activada puede encontrarse en dos modos: activo (“active”) e inactivo (“idle”). En el modo inactivo, la MS no tiene asignado ningún canal dedicado, y se dedica a “escuchar” los canales BCCH y PCH. En modo activo, la MS tiene una conexión dedicada asignada. El cambio del modo inactivo al modo activo puede ser resultado de una actualización de localización, el establecimiento de una llamada, la transferencia de un mensaje corto o un procedimiento de servicio suplementario. Los procedimientos son diferentes en modo activo y en modo inactivo. Por ejemplo, el cambio de celda de cobertura en modo inactivo se denomina reselección de celda, mientras que en modo activo de conoce como traspaso o handover, y son procedimientos diferentes. MS en modo inactivo El comportamiento de la MS en modo inactivo comprende procedimientos para:

191

Segunda Parte: El Sistema de Telefonía Móvil Celular GSM

-

Selección de PLMN Selección y reselección de celda Actualización de localización

Selección de red En cuanto a la selección de red (PLMN), existen dos modos de llevarla a cabo: manual y automático. Al encender la MS, ésta intenta realizar una actualización de posición en la última PLMN en la que estuvo registrada (en el momento en que fue apagada). La PLMN se identifica mediante la parte del LAI correspondiente a MCC y MNC7, que es almacenada en la tarjeta SIM en la última actualización de posición. En los siguientes casos se realizará una selección de PLMN, de acuerdo al modo (automático o manual): -

Si la última PLMN en la que la MS estuvo registrada antes de ser apagada no está disponible en el momento del encendido. Si el intento de actualización de localización es rechazado por la PLMN. Si no hay datos relativos al LAI de la PLMN almacenados en la SIM.

En el caso de selección automática de red, la MS realiza el proceso de acuerdo con los siguientes principios: -

-

En primer lugar, se intentará seleccionar la PLMN “hogar” (a la que está suscrito el abonado”), en caso de que no fuera la PLMN en la que ya se ha intentado realizar la actualización de posición. En orden de prioridad, cada una de las PLMN almacenadas en la SIM en el campo “PLMN selector”. En orden aleatorio, otras PLMNs de las que se reciba un nivel de señal superior a –85 dBm. El resto de PLMNs, tomadas en orden descendente de nivel de señal.

En ningún caso podrá seleccionarse una PLMN que esté almacenada en la SIM como PLMN “prohibida”. En el modo de selección manual, la MS indica al abonado las redes disponibles, incluyendo redes pertenecientes a la lista de PLMNs “prohibidas”. El usuario podrá seleccionar una red cualquiera. Las redes disponibles se presentan en el mismo orden en el que serían seleccionadas por la MS en el modo automático. Una vez que la PLMN ha sido seleccionada, la MS intentará encontrar una celda apropiada en la que acampar, independientemente del modo de selección, y entonces se intentará la actualización de posición en esa PLMN. Selección de celda En el caso en que no exista en la SIM información relativa a las portadoras de RF que transportan información del canal BCCH, la MS deberá buscar todas las portadoras de RF8, medir la potencia de señal recibida y calcular el nivel medio para 7 8

Véase el apartado I.6, “estructura del localización del sistema GSM”. 124 portadoras para GSM 900, 374 para DCS 1800, 299 para PCS 1900.

192

Segunda Parte: El Sistema de Telefonía Móvil Celular GSM

cada canal de RF. Esta media se basará en cinco muestras para cada canal de RF, distribuidas en un intervalo de entre 3 y 5 segundos. Entonces, la MS sintoniza la portadora de RF con mayor nivel medio y determina si se trata o no de una portadora de BCCH. Para ello, busca una ráfaga de corrección de frecuencia (FCB), que se envía en el intervalo de tiempo 0 de la potadora del BCCH aproximadamente en una de cada 10 tramas TDMA. En caso de que se trate de una portadora de BCCH, la MS intentará sincronizarse a la portadora y leer los datos del canal BCCH (datos de información del sistema). Si es capaz de decodificar esos datos y éstos indican que la celda es apropiada, la MS acampa en la celda. Una celda es apropiada si: -

Pertenece a la PLMN seleccionada No está prohibida o vedada (“barred”) para el acceso El criterio C1 de pérdidas de propagación es mayor que cero. (Hablaremos de esto más adelante en esta misma sección).

Las celdas apropiadas tendrán dos niveles de prioridad: normal o bajo. Durante la selección de celda, una celda con baja prioridad no se seleccionará a no ser que no pueda encontrarse ninguna celda apropiada de prioridad normal. El parámetro CELL_BAR_QUALIFY indicará la prioridad de la celda. La prioridad baja se indica por un “1”, mientras que la normal viene representada por un “0”. En el caso de prioridad normal, el parámetro CELL_BAR_ACCESS indicará si la celda está o no vedada para el acceso, tanto para selección como para reselección de celda. Como la comparación de prioridades es entre celdas apropiadas, la priorización no afecta a la cobertura. Es una forma que tiene el operador de red de asegurar que ciertos tipos de celdas no serán seleccionados a no ser que esa celda sea la única apropiada. Un ejemplo pueden ser las microceldas, en las que no interesa que acampen ciertas MS dado que una MS puede estar viajando a más velocidad de lo que puede ser manejado por una de estas microceldas. La MS puede tener almacenamiento opcional de información acerca de las portadoras de BCCH. Esta información es almacenada cuando la MS se apaga. Puede almacenarse en la SIM o en el propio equipo móvil. La MS puede almacenar una lista de las portadoras de BCCH de la PLMN seleccionada la última vez que la MS estuvo activa en la red GSM, o incluso portadoras de BCCH pertenecientes a diferentes PLMNs. En caso de que la MS tenga almacenada una lista de portadoras de BCCH de la PLMN seleccionada, el procedimiento de selección de celda es igual al descrito anteriormente, con la salvedad de que sólo las portadoras de BCCH tienen que ser escaneadas. La lista de portadoras de BCCH almacenada en la MS para una PLMN dada es actualizada cada vez que la MS recibe nuevos datos de la PLMN a través del canal BCCH. Criterios de selección y reselección de celda Hemos mencionado anteriormente el criterio para selección de celdas. Vamos a describirlo ahora con mayor detalle. 193

Segunda Parte: El Sistema de Telefonía Móvil Celular GSM

El parámetro del criterio de pérdidas de propagación C1 se utiliza para selección y reselección de celdas, y viene definido por: C1 = A – max(B,0) donde: A = RXLEV – RXLEV_ACCESS_MIN B = MS_TXPWR_MAX_CCH – P RXLEV es el nivel recibido medio, RXLEV_ACCESS_MIN es el nivel de potencia mínimo requerido para acceder al sistema, MS_TXPWR_MAX_CCH es la potencia de salida máxima que la MS puede utilizar cuando accede al sistema, a no ser que se le ordene otra cosa, P es la máxima potencia de salida de la MS. MS_TXPWR_MAX_CCH y RXLEV_ACCESS_MIN son parámetros de información del sistema, que se transmiten mediante el canal BCCH. Un valor elevado del parámetro A indica una señal fuerte en el enlace descendente. Un valor elevado del parámetro B indica una MS débil comparada con la potencia permitida en la celda. El criterio de re-selección de celda se denomina C2. Se emplea únicamente para reselección de celdas por MSs de fase 2. El criterio C2 se calcula como: C2 = C1 + CELL_RESELECT_OFFSET – TEMPORARY_OFFSET*H(PENALTY_TIME – T) para PENALTY_TIME ≠ 11111 C2 = C1 - CELL_RESELECT_OFFSET para PENALTY_TIME = 11111 donde 1 para x < 0 H ( x) =  0 para x ≥ 0 El temporizador T comienza desde cero cuando la celda es situada por la MS en la lista de portadoras más fuertes. Cuando la celda es eliminada de la lista, T vuelve a tomar el valor cero. En la figura II.2.72 se ilustra el criterio C2.

194

Segunda Parte: El Sistema de Telefonía Móvil Celular GSM

C2 CELL_RESELECT_OFFSET C1 TEMPORARY_OFFSET

T PENALTY_TIME Figura II.2.72.- Ilustración del criterio C2

Al restar TEMPORARY_OFFSET, se reduce la prioridad de la celda en la lista de adyacencias más fuertes. Al sumar CELL_RESELECT_OFFSET, se aumenta la prioridad de la celda en la lista de adyacencias más fuertes. Este mecanismo puede aplicarse en estructuras jerárquicas de celdas para mantener a las MSs que viajen a mayor velocidad en las “macro celdas” y a las MSs “lentas” en las “micro celdas”. Cuando una MS alcanza el área de cobertura de una determinada “micro celda” adyacente, esta celda queda “penalizada” durante un periodo igual al PENALTY_TIME. Si la MS se mueve con rapidez, habrá salido del área de cobertura de la “micro celda” antes de que expire el PENALTY_TIME, y la celda no será seleccionada. En cambio, si la velocidad de la MS es baja, el PENALTY_TIME transcurrirá antes de que la MS haya salido del área de cobertura de la celda, y al aplicarse CELL_RESELECT_OFFSET, esta celda será seleccionada con mayor preferencia. CELL_RESELECT_OFFSET, PENALTY_TIME y TEMPORARY_OFFSET son parámetros de información del sistema. Si la MS no los encuentra entre la información que le envía la BTS a través del canal BCCH, tomarán el valor 0, y entonces C1 = C2. En este caso, el parámetro CELL_BAR_QUALIFY también se toma como 0. Los parámetros C1 y C2 se utilizan para asegurar que la MS acampa en la celda que le proporciona mayor probabilidad de comunicación exitosa tanto en el enlace ascendente como en el descendente. Reselección de celda La MS permanece en modo “durmiente” (“sleep”) excepto cuando escucha los mensajes de “paging” de su propio grupo de “paging”. Para monitorizar cambios en los parámetros del sistema, deberá decodificar los mensajes de información de sistema al menos una vez cada 30 segundos. La MS toma medidas de celdas vecinas cuando está escuchando su grupo de “paging”. Se calcula una media de los niveles recibidos para cada frecuencia de la lista de vecinos. Las recomendaciones especifican que al menos cinco muestras del nivel recibido son necesarias para el cálculo de cada valor medio. La MS intenta decodificar el bloque del canal BCCH que contiene parámetros que afectan a la reselección de celda para cada una de las 6 celdas vecinas de más 195

Segunda Parte: El Sistema de Telefonía Móvil Celular GSM

potencia al menos una vez cada 5 minutos. Cuando la MS reconoce que una nueva portadora se ha convertido en una de las 6 más potentes, los datos de BCCH de esa portadora deberán ser decodificados en 30 segundos. La información del canal BCCH se emplea para calcular los criterios C1 y C2. Los valores de C1 y C2 se calculan regularmente para la celda en la que la MS está acampada y para las 6 vecinas más potentes. La información de sistema también es empleada para determinar si la celda pertenece a una nueva área de localización. Se emplea un parámetro de histéresis (CELL_RESELECT_HYSTERESIS ) para MS en modo inactivo, de modo que se eviten constantes actualizaciones de posición entre las dos áreas de localización, lo que implicaría una mayor carga de señalización. Si la celda elegida pertenece a un área de localización diferente a aquella en la que la MS ha realizado la actualización de posición y existe una celda apropiada en el área de localización antigua, la nueva celda sólo se seleccionará si su C2 excede al C2 de cualquier celda apropiada del área de localización antigua al menos en el valor CELL_RESELECT_HYSTERESIS. La MS también intentará combrobar el BSIC de cada una de las 6 celdas vecinas de mayor potencia, al menos cada 30 segundos, para confirmar que todavía está monitorizando la misma celda. Si se detecta un cambio en el BSIC, la portadora es tratada como una portadora nueva y es necesario decodificar de nuevo los datos del canal BCCH. La MS intentará cambiar de celda si: -

-

La celda actual queda vedada. La MS ha intentado acceder a la celda el número máximo de veces permitido, sin conseguirlo. La MS detecta un fallo de señalización en el enlace descendente, es decir, no puede decodificar los mensajes de “paging”. La MS escucha los mensajes de su bloque de “paging” e intenta decodificarlos. El contador DCS (“Downlink Signalling failure Counter”) de la MS se pone a 90/(BS_PA_MFRMS) y disminuye en cuatro cada vez que la MS no consigue decodificar uno de estos mensajes, mientras que aumenta en 1 cada vez que lo consigue. Cuando DCS ≤ 0, se indica un fallo de señalización en el enlace descendente. El valor de C1 de la celda actual cae por debajo de cero por un periodo de 5 segundos. El valor de C2 de una celda vecina es mejor que el de la actual, por al menos 5 segundos. Cuando la celda vecina pertenece a una nueva área de localización, es penalizada con el valor CELL_RESELECT_HYSTERESIS, como hemos mencionado más arriba.

MS en modo activo Durante una llamada, la MS envía a la BSC, a través del canal SACCH, el nivel de señal medido en las BTSs vecinas. Las medidas de la potencia de las vecinas se realizan cuando la MS no está haciendo otra cosa, es decir, entre la transmisión y la recepción del intervalo de tiempo asignado. El nivel (RXLEV) y la calidad (RXQUAL) de la señal de la celda que da servicio a la MS se miden durante la recepción del canal asignado a la MS.

196

Segunda Parte: El Sistema de Telefonía Móvil Celular GSM

El nivel de señal (nivel RMS) se codifica con 6 bits, de modo que RXLEV = 0 corresponde con un nivel RMS menor que –110 dBm, RXLEV = 1 se asigna cuando el nivel de señal está entre –110 dBm y –109 dBm, y se continúa así hasta RXLEV = 63, que corresponde con niveles de señal mayores que –48 dBm. La calidad de la señal se computa estimando la tasa de error de bit (BER) antes de la decodificación de canal. Para ello se pueden utilizar las métricas del ecualizador Viterbi, o bien las del decodificador convolucional Viterbi, o incluso la tasa de sobrecarga de código detectada por los códigos bloque externos, para los canales lógicos que incluyan este tipo de codificación (ver apartado II.2.6, Codificación de Canal). La decisión queda en manos del operador de red. Se distinguen 8 posibles niveles de RXQUAL, que se asocian a diferentes intervalos de BER, como se muestra en la tabla II.2.24. RXQUAL 0 RXQUAL 1 RXQUAL 2 RXQUAL 3 RXQUAL 4 RXQUAL 5 RXQUAL 6 RXQUAL 7

BER < 0.2 % 0.2 % < BER < 0.4 % 0.4 % < BER < 0.8 % 0.8 % < BER < 1.6 % 1.6 % < BER < 3.2 % 3.2 % < BER < 6.4 % 6.4 % < BER < 12.8 % BER > 12.8 %

Tabla II.2.24.- Calidad de la señal recibida en función de la BER

Además, a través del SACCH se le envía a la MS información de sistema relativa a las portadoras de BCCH que debe monitorizar, y para asegurar que corresponden a las BTS adecuadas, también se proporciona la identidad de esas BTSs, que viene dada por el BSIC. El BSIC es transmitido por cada BTS en el canal SCH, que se mapea en el intervalo de tiempo 1 de la portadora del BCCH. La MS chequea los BSICs de las celdas adyacentes durante la trama libre (“idle”) del TCH. Sólo se miden los BSICs de las 6 celdas vecinas más potentes. Como se vio en el apartado II.2.3, hay una trama libre en cada multitrama de 26 tramas. La MS mide durante una trama entera para asegurarse de encontrar el intervalo de tiempo 0, aunque esto no asegura que en esa medida se vaya a encontrar el SCH. El hecho de que las multitramas de control sean de 51 tramas y las de tráfico de 26, asegura que la multitrama de tráfico irá “deslizándose” sobre la de control, de manera que se asegura que la trama libre de la multitrama MF26 se “deslizará” sobre todos los canales de control mapeados en el intervalo de tiempo 0 y encontrará el SCH en un periodo igual o menor que 11 multitramas MF26. La MS realiza medidas de nivel de señal en hasta 32 frecuencias de BCCH vecinas. Estas frecuencias vecinas vienen definidas en la información de sistema que se envía a la MS a través del SACCH. La MS tomará como mínimo una medida en el periodo entre el envío y la recepción de ráfagas del canal de tráfico que tiene asignado. El envío del reporte de medidas completo a la BTS precisa de 4 ráfagas de SACCH consecutivas. Es decir: 4· 26· 4.615 = 480 ms. La MS tomará al menos 4· 25 = 100 muestras durante este periodo. Por tanto, si se han definido 10 celdas vecinas, se tomarán 10 muestras por cada una de ellas. El informe de medidas que se envía a la BTS contiene los valores medios de las 6 mejores celdas vecinas. El BSIC de estas celdas debe ser decodificado al menos cada 10 segundos, en otro caso los resultados de las medidas para esa celda son descartados. 197

Segunda Parte: El Sistema de Telefonía Móvil Celular GSM

En el informe de medidas, además del nivel y el BSIC de las 6 mejores celdas vecinas, se envían medidas del nivel y la calidad de la celda que da servicio actualmente a la MS, y se indica además si la MS estaba utilizando DTX en el enlace ascendente durante el anterior periodo de SACCH, lo cual es útil para asignar una determinada fiabilidad a las medidas que toma la BTS. El informe de medidas que la MS reporta a la BTS es completado por ésta con sus propias medidas (nivel y calidad de la señal en el enlace ascendente, potencia de salida de la BTS) e información de capa 1 (“Timing Advance” y potencia de salida utilizada por la MS). Toda esta información se envía hacia el BSC, que es el encargado de tomar las decisiones de “handover” y control de potencia. La BTS medirá además el nivel de interferencia presente en los canales TCH y SDCCH libres. Se tomará la media de esas muestras durante un cierto periodo de tiempo y se englobará en una de las 5 bandas de interferencia posibles. El periodo de tiempo para calcular la media y los límites de las bandas de interferencia son asignados por el operador de red. Para mayor detalle respecto a los aspectos de medidas y reportes de las mismas, remítase el lector a las referencias [18], [19] y [28]. Traspaso (“Handover”) El proceso de traspaso o “handover” involucra el conjunto más complejo de procedimientos en el control del enlace radio. Las decisiones de handover se basan en los resultados de las medidas realizadas tanto por la MS como por la BTS. La BTS mide RXLEV, RXQUAL, y la distancia (DISTANCE, calculada a partir del “Timing Advance”), así como la interferencia en intervalos de tiempo de TCH y SDCCH libres. Por su parte, la MS mide y envía a la BTS los valores RXLEV y RXQUAL de la BTS que le da servicio, así como el RXLEV de las 6 vecinas más potentes. Cuando la MS se aleja de la BTS, el nivel y la calidad de la señal recibida desde esa BTS empeoran, mientras que aumenta el nivel recibido desde alguna de las celdas adyacentes. Los objetivos principales del handover son: -

Mantener la conexión en caso de un cambio de celda, por movimiento de la MS. cambio de canal físico en caso de perturbaciones en la comunicación (debidas a interferencias), diseño de los bordes de las celdas y la estructura de la red de radio.

El proceso completo de handover puede dividirse en varios sub-procesos, llevados a cabo por distintos elementos de red, como se muestra en la tabla II.2.25.

198

Segunda Parte: El Sistema de Telefonía Móvil Celular GSM Nº 1

Sub-proceso Medidas: - Calidad de enlace de la celda actual - Nivel recibido de las celdas vecinas Preprocesado de las medidas Almacenamiento de datos de celdas vecinas Decisión de handover Generación de la lista de celdas “objetivo” Evaluación de las celdas “objetivo” - handover intra BSS - handover inter BSS Selección del nuevo canal Ejecución del handover

2 3 4 5 6

7 8

Elementos de red involucrados MS, BTS MS BTS BTS BTS BTS BSC MSC BSC MS, BTS, BSC, MSC

Tabla II.2.25.- Pasos para la realización del handover

Tipos de “handover” Podemos clasificar los handovers de acuerdo con la región en la que se produce el cambio: una celda, el área de un BSC o el área de un MSC. Si el cambio de canal se produce dentro de una misma celda (debido a interferencias), se habla de “intracell handover”. Si es entre celdas distintas, se habla en general de “intercell handover”, aunque este tipo puede a su vez especificarse aún más. Si se produce el traspaso de la llamada entre dos celdas controladas por el mismo BSC, hablamos de “intra-BSS handover”. Si las celdas involucradas son controladas por distintos BSCs, pero ambos están conectados al mismo MSC, el proceso se denomina “intra-MSC handover”. Y finalmente, si los BSCs que controlan las celdas involucradas están conectados a distintos MSCs, el proceso se conoce como “inter-MSC handover”. Ilustramos estos conceptos en la figura II.2.73. 1. 2. 3. 4.

Intracell handover Intra-BSS handover Intra-MSC handover Inter-MSC handover

BSC 1a 2

BSC 2

4 1

MSC 1

3

MSC 2

BSC 1b

Figura II.2.73.- Tipos de handover

Causas de “handover” Podemos distinguir dos grupos de criterios para las diferentes causas de handover. -

Criterios radio o Calidad recibida (calidad demasiado baja, BER excesivamente alta): handover intracell o intercell 199

Segunda Parte: El Sistema de Telefonía Móvil Celular GSM

-

o Nivel de señal recibida (nivel demasiado bajo): handover intercell o Distancia MS-BTS (distancia demasiado alta): handover intercell o Mejor celda (en cuanto a nivel recibido relativo a la celda actual): handover intercell Criterios de red o Congestión en la celda actual, al intentar establecer una llamada: Se lleva a cabo un proceso de “directed retry” para establecer la llamada en una celda vecina no congestionada: handover intercell. o Distancia MS-BTS excesivamente alta o excesivamente baja en celdas extendidas: handover intracell. o Nivel recibido (demasiado bajo o demasiado alto) o distancia MSBTS (demasiado alta o demasiado baja) en celdas concéntricas: handover intracell.

Las primeras tres causas mencionadas se conocen como causas “imperativas”, es decir, si se da alguna de ellas, es necesario realizar un handover para mantener la llamada. Esto puede ocurrir cuando la MS está abandonando el área de cobertura de la celda que le da servicio (handover intercell) o porque exista una fuerte interferencia proveniente del mismo radiocanal en otra celda (handover intracell). La cuarta causa mencionada (mejor celda, “better cell”) es opcional. La calidad en la celda actual es suficientemente buena, pero existe al menos una celda vecina desde la que la MS recibe mejor nivel de señal. Aunque no es necesario realizar un handover para la llamada en curso, resulta beneficioso para la red el hacerlo, ya que al traspasar la llamada a la mejor celda se produce menos interferencia, especialmente si se lleva a cabo control de potencia, ya que para mantener la misma calidad no será necesario transmitir tanta potencia. En una red bien planificada, la mayoría de los handovers deberán realizarse por causa “mejor celda”. Los lugares en los que se realiza este tipo de handovers determinan los límites de cada celda. La quinta causa provoca un handover forzado por la BSC debido a congestión (todos los canales de tráfico ocupados) en la celda en la que la MS intenta establecer una llamada. Este handover (conocido como “directed retry”, que podríamos traducir como reintento dirigido) se realiza desde un SDCCH en la celda congestionada a un TCH en una celda vecina. Las dos últimas causas son intracell handovers para configuraciones especiales de celdas. Las celdas extendidas son celdas que tienen el doble de radio que el máximo de una celda normal. Se emplean para zonas rurales con poca densidad de tráfico. La duplicación del radio de la celda se consigue mediante intervalos de tiempo del doble de duración (por lo que en una trama TDMA existirán 4 intervalos de tiempo, en lugar de 8), para permitir un mayor tiempo de ida y vuelta de la señal. Estas celdas pueden tener radiocanales en los que se configuren 8 intervalos de tiempo, pero éstos tendrán un alcance máximo estándar. En este tipo de celdas, los canales de control deben definirse en intervalos de tiempo “dobles”, para poder gestionar llamadas en toda el área de cobertura de la celda. Los intracell handovers a causa de la distancia en este tipo de celdas se realizarán entre intervalos de tiempo simples y dobles. En las celdas concéntricas, el radio máximo es el mismo que en una celda normal. Se definen dos áreas: la interna (“inner”) y la completa (“complete”). El radio del área interna será menor que el de la completa. Para ello, los radiocanales 200

Segunda Parte: El Sistema de Telefonía Móvil Celular GSM

correspondientes al área interna se transmitirán con menor potencia que los del área completa, utilizando la reducción estática de potencia, descrita en el apartado I.5. El área completa tiene como objetivo proporcionar cobertura, mientras que la interna proporciona capacidad. Nótese que los canales de control deben mapearse en radiocanales pertenecientes al área completa, para asegurar el control de la comunicación en toda el área de cobertura de la celda. Los intracell handovers causados por nivel o distancia se llevarán a cabo entre el área interna y el área completa. Los distintos tipos de handover, según las causas que los provocan, pueden ser habilitados y deshabilitados a criterio del operador de red. Los mismo ocurre para los umbrales y temporizadores utilizados en los algoritmos de decisión. Existe una prioridad para la ejecución de los handovers, que podemos ver en la siguiente tabla. Prioridad 1 2 3 4 5 6 7 -

Causa Celda extendida Celda concéntrica Intercell Handover por baja calidad Nivel Distancia Mejor celda Intracell Handover por baja calidad Forzado

Tipo intracell intracell intercell

Clase Impertativo Impertativo Impertativo

Evaluado en TCH TCH TCH

intercell intercell intercell intracell

Impertativo Impertativo Normal Impertativo

TCH TCH TCH TCH

intercell

Forzado

SDCCH

Tabla II.2.26.- Prioridades en las causas de handover

Estas prioridades pueden modificarse dinámicamente, en caso de que un handover por causa “celda extendida” o “celda concéntrica” no pueda realizarse por falta de recursos. Entonces, en la siguiente ocasión no se realizará la evaluación de estos criterios, y se procederá a evaluar el siguiente (calidad, nivel, etc.). Para conocer los pormenores de los algoritmos empleados para la decisión y realización del handover, remítase el lector a la referencia [19]. Control de potencia El objetivo del control de potencia es adaptar la potencia transmitida por la MS y por la BTS a las condiciones de recepción. Cuanto más cerca esté una MS de la BTS que le da servicio, menos potencia necesitará transmitir para conseguir un mismo nivel de calidad que una MS que se encuentre más alejada. Esta técnica presenta dos ventajas fundamentales: -

Reducción de la interferencia cocanal Reducción del consumo medio de potencia (especialmente en la MS)

El control de potencia se aplica separadamente para el enlace ascendente y el enlace descendente, y también para cada canal lógico. Debe tenerse en cuenta que el control de potencia en el enlace descendente no es aplicable a ráfagas transmitidas por la BTS en la portadora del BCCH, ya que todos los intervalos de tiempo de esta portadora deben transmitirse continuamente a la misma potencia. 201

Segunda Parte: El Sistema de Telefonía Móvil Celular GSM

Los procedimientos de control de potencia de RF emplean los resultados de las medidas de RXQUAL y RXLEV llevadas a cabo tanto por la MS como por la BTS. En cada “multitrama SACCH” (que son 104 tramas para TCH, es decir 480 ms, y 102 tramas para SDCCH, es decir 471 ms), la BTS compara los valores de RXQUAL y RXLEV con un conjunto de umbrales. La estrategia exacta para el control de potencia es determinada por el operador de red, asignando determinados valores a esos umbrales, con el objetivo de proporcionar una calidad adecuada para los servicios de voz y datos, manteniendo bajos los niveles de interferencia. Para mayor detalle acerca del control de potencia, remítase el lector a las referencias [19] y [28]. Fallo del enlace radio El fallo de enlace radio (RLF, “Radio Link Failure”) se define como la pérdida de los medios adecuados para la comunicación en un canal dedicado. El propósito de la detección de un fallo del enlace radio es asegurar que las conexiones con una calidad inaceptablemente baja de voz o datos, que no pueda ser mejorada por control de potencia o por handover, sean liberadas o reestablecidas. Los criterios para determinar el fallo en el enlace radio se basan en la tasa de éxitos en la decodificación de mensajes de SACCH, realizadas tanto por la MS como por la BTS. La tasa máxima de fallos en la decodificación de estos mensajes es asignada por el operador de red. El resultado de estos procedimientos puede ser el reestablecimiento de la comunicación o bien la terminación de la llamada en curso. Para mayor detalle acerca del fallo del enlace radio, remítase el lector a las referencias [19] y [28].

II.3.- La capa de Enlace El protocolo LAPDm (“Link Access Procedures on the Dm channel”) es el protocolo de capa 2 usado para llevar la información de señalización entre entidades de capa 3 a través el interfaz radio, usando canales Dm. Dm se refiere a los canales de control independientemente del tipo. Esto incluye canales de difusión, comunes o dedicados. A cada canal lógico de control se le asigna un entidad de protocolo separada. El RACH es un caso especial que no usa LAPDm. Para RACH, LAPDm actúa como interfaz entre las entidades de capa 3 y la capa física. LAPDm es un protocolo que opera en la capa de enlace de la estructura OSI. El propósito de esta capa es proporcionar un enlace de señalización fiable. Recibe servicios de la capa física y provee de servicios a la capa 3. La definición del protocolo se encuentra en la especificación GSM 04.06. LAPDm está basado en el protocolo LAPD de RDSI, el cuál es usado en el interfaz A-bis. Algunas modificaciones han sido necesarias para adaptar el protocolo al medio radio y hacerlo más eficiente. Por ejemplo, en LAPDm no se lleva a cabo detección de errores, puesto que estas funciones ya son desempeñadas por la codificación de canal en la capa 1. Otra modificación es que algunas tramas de capa 2, como SABM y UA, pueden llevar información de señalización de nivel 3. Este procedimiento es conocido como “piggybacking”.

202

Segunda Parte: El Sistema de Telefonía Móvil Celular GSM

Un mensaje LAPD puede ser excesivamente largo para ser transmitido por el interfaz radio. El número total de octetos que pueden ser transmitidos en una trama LAPD es de 260. Estos 260 octetos incluyen una cabecera y un mensaje de capa 3, que serán tratados por la BTS. Para un mensaje transparente en sentido descendente (BTSMS), la BTS quitará la cabecera, y los 251 octetos restantes serán enviados como datos hacia la MS. Aún así, 251 octetos es una longitud demasiado grande para una trama en el interfaz aire. Por consiguiente, LAPDm segmentará el mensaje en mensajes más cortos. Los datos intercambiados entre la capa 2 y la capa 1 constarán de 23 octetos para los canales BCCH, CCCH, SDCCH y FACCH, mientras que para el caso de SACCH sólo 21 octetos se envían desde la capa 2 a la capa 1. La figura II.3.1 muestra el tratamiento que sufre un mensaje que “desciende” desde la capa 3 a la capa 1. Algunas funciones realizadas por LAPDm: 1. LAPDm proporciona una o más conexiones de enlace sobre un canal Dm. El identificador de conexión de enlace (DLCI, “Data Link Connection Identifier”) se emplea para distinguir entre las conexiones de enlace. 2. LAPDm permite el reconocimiento de los tipos de tramas. 3. Provee de control de secuencia para mantener el orden secuencial de las tramas a través de las conexiones de enlace. 4. Permite entregar unidades de mensajes de capa 3 de forma transparente entre entidades de capa 3.

203

Segunda Parte: El Sistema de Telefonía Móvil Celular GSM

Capa 3 Los mensajes de capa 3 no pueden tener más de 251 octetos (límite LAPD). Normalmente tendrán menos de 23. Max.251 octetos

Capa 2

Sin asentimiento (BCCH, CCCH)

Con asentimiento (modo multi-trama) o sin asentimiento (SDCCH, FACCH, SACCH)

20 (18)

Buffer para 251 octetos max

22 FACCH SDCCH 22

1

SACCH

20

3

L2 inf o

18

L2 inf o

Capa 1

3 L2 inf o

21 octetos (SACCH) 21+1+1=23 1 octeto de ajuste de temporización (timing advance) 1 octeto para el orden de potencia

23 octetos (184bits)

Codificación de canal

456bits

Entrelazado de 456 bits sobre 4 ráfagas o para FACCH sobre 8 medias ráfagas.

57

57

57

57

57

57

57

57

Al transmisor

Figura II.3.1: Señalización sobre interfaz radio

II.3.1.- Modos de operación de LAPDm LAPDm soporta 2 modos de operación sobre la capa de enlace. Estos son: 1. Modo de operación sin asentimiento. 2. Modo de operación con asentimiento (o multitrama). En el primer modo se envían tramas no numeradas de información (UI). No hay control de flujo o mecanismo de recuperación frente a errores.

204

Segunda Parte: El Sistema de Telefonía Móvil Celular GSM

Cuando se necesita respuesta o aceptación de las tramas, se emplea el segundo modo de operación. Los mensajes de capa 3 son enviados en tramas numeradas de información (I). Puede enviarse cierto número (“ventana”) de tramas I consecutivas antes de que se requiera un asentimiento. Pero en LAPDm el tamaño de la ventana es igual a uno, con lo cual cada trama debe ser asentida antes de enviar la siguiente. El modo de operación multitrama es iniciado con el comando SABM (“Set Asynchronous Balanced Mode”). Ambos modos de operación pueden coexistir sobre un canal de señalización. Esto quiere decir que, aunque los mensajes se estén transmitiendo en modo multitrama, pueden enviarse también mensajes que no necesiten ser asentidos. BCCH, AGCH y PCH sólo soportan el modo de operación sin asentimiento. SDCCH, SACCH y FACCH soportan tanto el modo con asentimiento como sin asentimiento, dependiendo de la información que contengan. Respecto a la segmentación, es diferente dependiendo el modo de operación. En el modo “con asentimiento”, la capa 2 segmenta mensajes mayores de 20 ó 18 octetos en la transmisión. En la recepción los volverá a unir. En el modo “sin asentimiento” la capa de enlace no proporciona la posibilidad de segmentar los mensajes. Ningún mensaje de capa 3 que se envíe en BCCH o CCCH contiene más de 22 octetos de información de capa 3. II.3.2.- Formato de las tramas de LAPDm. LAPDm añade distinta información de cabecera dependiendo del tipo de trama utilizado. Para tramas de información de BCCH y CCCH se añade un campo indicador de longitud de un octeto, con lo cual habrá un máximo de 22 octetos de información de capa 3, dado que el máximo número de bytes de información en el interfaz radio es 23. Este formato de trama se conoce como formato Bbis. Para el tipo de trama usado con canales SACCH, FACCH y SDCCH se incluyen, además del indicador de longitud, un campo de dirección y otro de control, ambos de un octeto. Por consiguiente, los mensajes que sean enviados en FACCH o SDCCH podrán contener un máximo de 20 octetos de información de capa 3. En cambio, para el SACCH sólo se permiten 18 octetos de información de capa 3, puesto que la capa 1 añade dos bytes (ver figura II.3.1), uno para el alineamiento temporal y otro para la clase de potencia. Este formato de trama es conocido como formato B. Para canales dedicados que no transporten información de capa 3 se define otro formato de trama (formato A), que consta de un campo de dirección, un campo de control, un campo de indicación de longitud y 20 bytes de relleno. A continuación puede observarse una representación esquemática de estos tres formatos.

205

Segunda Parte: El Sistema de Telefonía Móvil Celular GSM

Formato A:

8

Bit number 7 6 5 4 3 2 1 Campo de dirección Campo de control Campo de indicador de longitud Relleno

Formato B:

8

Bit number 7 6 5 4 3 2 1 Campo de dirección Campo de control Campo de indicador de Longitud Información Relleno

Formato Bbis:

8

Bit number 7 6 5 4 3 2 1 Campo de indicador de longitud Información Relleno

Figura II.3.2.- Formatos de las tramas LAPDm

La longitud de las tramas LAPDm es fija, a diferencia de las tramas LAPD de RDSI que poseen unas banderas de principio y fin de trama. Las tramas LAPDm van sobre los canales lógicos, que ocupan un lugar en la multitrama de control, MF51, montada sobre los canales físicos correspondientes. Está, por tanto, sincronizada. Por esto no necesita las banderas de principio y fin de trama, ya que se conocen los puntos de comienzo y fin de la trama. El campo de relleno nos servirá para completar la trama hasta su longitud fija. II.3.3.- Descripción de los campos de las tramas LAPDm. Campo de dirección Para aplicaciones de canales de control, el campo de dirección ocupa 1 byte. El campo de dirección identifica el SAP hacia el que va dirigida la trama. A continuación se muestra el formato de este campo, y se describen sus partes.

206

Segunda Parte: El Sistema de Telefonía Móvil Celular GSM

8 SPARE

7 6 LPD

5

4 3 SAPI

2 1 C/R EA=1

Figura II.3.3.- Campo de dirección de LAPDm



• •

LPD (“Link Protocol Discriminator”): Es el discriminador de protocolo de la capa de enlace, que valdrá ‘00’ para LAPDm. Por otra parte, para la información del servicio de mensajes cortos de difusión en celda (SMSCB) el primer octeto de la trama se denomina “tipo de bloque” en lugar de campo de dirección. El bit 8 no se utiliza (es “spare”), LPD vale 1, y los bits del 1 al 5 indican el número de secuencia del bloque SMSCB. En ese caso, quien se ocupará del mensaje son las funciones de difusión en celda (“cell broadcast”), en lugar de LAPDm. EA (“Address field extension bit”): Indica si el campo dirección se extiende a varios octetos. En LAPDm, este bit permanece a ‘1’ ya que el campo dirección ocupa una longitud fija de un byte. C/R (“Command/response field bit”): Identifica la trama como comando o como respuesta. Tipo Dirección Valor de C/R Comando BS hacia MS 1 MS hacia BS 0 Respuesta BS hacia MS 0 MS hacia BS 1

Tabla II.3.1.- Valores de C/R



SAPI (“Service access point identifier”): Es el identificador de acceso al servicio, esto es, el punto en el cual la capa de enlace provee los servicios a la capa de red. Los valores que puede tomar son los siguientes:

Valor SAPI 0

3 Otros

Significado Señalización de control de llamada, señalización de gestión de movilidad y señalización de gestión de recursos radio, de la capa 3. Servicio de mensajes cortos Reservados para una futura estandarización

Tabla II.3.2.- Valores de SAPI

Campo de control El campo de control consta de 1 octeto, e identifica el tipo de trama, que puede ser comando o respuesta. Existen 3 tipos de formatos de campo de control según el tipo de trama: de información numerada (I), de supervisión (S), información no numerada y funciones de control (U). Los formatos para este campo se muestran el la tabla II.3.3.

207

Segunda Parte: El Sistema de Telefonía Móvil Celular GSM

FORMATO Información Supervisión

COMANDO I RR RNR REJ SABM

RESPUESTA RR RNR REJ DM

No numeradas

UI DISC UA

8 7 N(R) N(R) N(R) N(R) 0 0 0 0 0 0 0 1 0 1

6

5 P

4

3 N(S) P/F 0 0 P/F 0 1 P/F 1 0 1 P 1 1 0 F 1 1 0 P 0 0 0 P 0 0 1 F 0 0

2 0 0 0 1 1 1 1 1

1 0 1 1 1 1 1 1 1 1

Tabla II.3.3.- Resumen del campo de control.

Todas las tramas contienen el bit P/F (“poll/final bit”). En tramas de comando, este bit se conoce como P. En tramas de respuesta, se conoce como F. En una trama de comando, P = “1” es usado por la entidad de capa de enlace para forzar (“poll”) una respuesta inmediata de su entidad par. En una trama de respuesta, F = “1” es usado por la entidad de capa de enlace para indicar que esta trama es transmitida como resultado de un comando de “poll”. Para el caso de transferencia de información sin asentimiento, el bit P/F no es usado, y toma el valor “0”. A continuación describiremos los distintos tipos de tramas: Tramas I: Las tramas I son usadas para transferir de forma secuencial tramas numeradas que contienen información procedente de entidades de capa 3. El formato general del campo de control en las tramas I es el siguiente: 8

7 N(R)

6

5 P

4

3 N(S)

2

1 0

Figura II.3.4.- Campo de control de las tramas I

• • •

N(R): Número esperado de la próxima trama I recibida. N(S): Número de trama transmitida. Puede tomar un valor de 0 a 7. P (bit Poll): Si su valor es ‘1’ la entidad de nivel 2 que emite la trama, solicita respuesta a la entidad de nivel 2 con la cuál dialoga.

Tramas S: El formato S es usado por la capa 2 como supervisión y control de funciones tales como asentimiento o petición de retransmisión de tramas I. Las tramas RR (“Receive Ready”) se usan para indicar que este extremo está preparado para recibir. Las tramas RNR (“Receive Not Ready”) significan que no se está listo para recibir y REJ (“REJect”) significa rechazo. El formato general del campo de control de las tramas S es el siguiente:

208

Segunda Parte: El Sistema de Telefonía Móvil Celular GSM

8

7 N(R)

6

5 4 P/F S

3 S

2 1 0 1

Figura II.3.5.- Campo de control de las tramas S

• •



N(R): Número esperado de la próxima trama I recibida. Bit P/F: Como se ha dicho antes, en tramas comando el P/F hace referencia a P, y en tramas de respuesta hace referencia a F. Si P= ‘1’, la entidad de capa 2 crea una trama de respuesta desde la entidad de capa 2 del otro extremo. Si F=‘1’, indica la transmisión de una trama como resultado de la petición de repuesta. S: Bits de función de supervisión. Sirve para distinguir la función de la trama. Véase la tabla II.3.3.

Tramas U: Las tramas U se emplean para proporcionar funciones adicionales de control del enlace de datos y transferencia de información sin asentimiento. Existen los siguientes tipos: SABM: (“Set Asynchronous Balanced Mode”) Es una trama comando que es usada para pedir el establecimiento del modo de operación multitrama. Puede transmitirse información en una trama SABM. A esto se conoce como piggybaking. DISC: (“Disconnect”) Esta trama es usada para terminar el modo de operación multitrama. Es una trama comando. UI: (“Unnumbered Information”) Es usada cuando la entidad de capa 3 pide transferencia de información sin asentimiento. Es una trama comando. UA: (“Unnumberd Acknowledgment”) Es una trama respuesta que se usa para asentir a SABM y a DISC. En la trama UA se permite la existencia de un campo de información. DM: (“Disconnect Mode”) Es usado como respuesta para indicar que el modo multitrama no puede establecerse. A continuación se muestra el formato general del campo de control para las tramas U. 8 U

7 U

6 5 4 U P/F U

3 U

2 1 1 1

Figura II.3.6.- Campo de control de las tramas U

• •

U: Bits de función de trama no numerada. Indican la función de la presente trama, P/F: Mismo significado que para latrama S. 209

Segunda Parte: El Sistema de Telefonía Móvil Celular GSM

Campo de indicador de longitud El formato del campo de indicador de longitud es el siguiente: 8

7

6

5 L

4

3

M EL 1

Figura II.3.7.- Formato del campo de indicadr de longitud







EL: Es el bit indicador de la extensión del campo de longitud. Este bit codificado como “0” indicaría que el campo indicador de longitud se extiende a más de un octeto. En LAPDm estará a “1” indicando que el campo indicador de longitud ocupa un solo byte. M: Indica si el mensaje de capa 3 ha sido segmentado. M = “1” indica que el campo de información contiene sólo una parte del mensaje de capa 3, que continúa en las siguientes tramas. Si M = “0” el mensaje no se extiende a la siguiente trama, el campo de información contiene el último segmento de la unidad de mensaje de capa 3. L: Indica el número de octetos de longitud contenidos en el campo información de la trama UI, SABM, UA o I. Si L=0, la trama no contiene información. Si el indicador de longitud tiene un valor inferior a N201 (parámetro que indica el máximo número permitido de bytes de información), se emplearán octetos de relleno para completar la trama hasta el número de octetos correspondiente.

Campo de información y relleno En el campo información de LAPDm irá el mensaje de señalización de capa tres (capa de red). La longitud de la trama LAPDm es fija. Si el mensaje de información de la capa superior no ocupa toda la longitud de la trama, se introduce relleno hasta completar el tamaño fijo, dado por el parámetro N201, como hemos dicho anteriormente. Los octetos de relleno toman el valor binario “00101011” en el enlace descendente, mientras que en el ascendente deben tomar el valor binario “11111111”. Esto es debido a los esquemas de modulación y entrelazado empleados en GSM. II.3.4.- Puntos de acceso al servicio Los puntos de acceso al servicio (SAP) de una determinada capa son “puertas” a través de las cuales se ofrecen servicios a una capa superior adyacente. Cada SAP se identifica mediante un identificador de punto de acceso al servicio (SAPI). Entre la capa 2 y la capa 3 del interfaz radio existen dos posibles valores de SAPI: § §

SAPI = 0 para señalización CC, SS, MM y RR (ver apartado II.4: La Capa de Red) SAPI = 3 para el servicio de mensajes cortos

Entre la capa física y la capa 2 existen SAPs definidos para cada canal lógico.

210

Segunda Parte: El Sistema de Telefonía Móvil Celular GSM

En GSM, quien controla los SAPs entre la capa 2 y la capa 3 es la subcapa RR de la capa 3. El procedimiento difiere del modelo de referencia OSI, en el que es la capa de enlace quien controla el establecimiento y liberación de canales. El modo de operación usado en determinado canal lógico dependerá del SAPI, como podemos ver en la siguiente tabla. Tipo de canal BCCH CCCH SDCCH

SAPI = 0 Sin asentimiento Sin asentimiento Con asentimiento y sin asentimiento Sin asentimiento Sin asentimiento Con asentimiento y sin asentimiento

SACCH/C SACCH/T FACCH

SAPI = 3 No soportado No soportado Con asentimiento No soportado Con asentimiento No soportado

Tabla II.3.4.- Modos de operación permitidos, dependiendo del canal y del SAPI.

En esta tabla, SACCH/T indica que el canal SACCH va asociado a un canal TCH, mientras que SACCH/C significa que el canal SACCH está asociado a un canal de control. Las conexiones de enlace de datos para todos los canales lógicos tiene puntos de terminación en el SAP identificado con SAPI = 0, pero sólo las conexiones de enlace de datos para SACCH (asociado a tráfico) y SDCCH pueden terminar en el SAP identificado con SAPI = 3. En la figura II.3.8 se muestra el diagrama de bloques de la capa de enlace en la estación móvil. Capa 3

SAPI=0 Proc. Acc. Aleat.

Proc. Enl. Datos (UI)

Proc. Enl. Datos (UI)

Proc. Enl. Datos (MF+ UI)

Proc. Enl. Datos (MF+ UI)

Proc. Enl. Datos (UI)

SAPI=3 Proc. Enl. Datos (UI)

Procedimiento de distribución de enlace de datos

Capa de enlace

Capa física RACH

BCCH

PCH + AGCH

SDCCH

FACCH

SACCH, SDCCH

Figura II.3.8.- Diagrama de bloques de la capa de enlace en la MS

211

Segunda Parte: El Sistema de Telefonía Móvil Celular GSM

Se muestran tres tipos de procedimientos: • • •

Procedimiento de enlace de datos (“data link procedure”) Procedimiento de distribución de enlace de datos (“data link distribution procedure”) Procedimiento de acceso aleatorio (“random access procedure”)

El primero de ellos se lleva a cabo una vez por cada SAPI, en cada canal lógico que puede soportar dicho SAPI. El procedimiento analiza el campo de control y el campo de longitud de la trama recibida. Además, segmenta y vuelve a unir las unidades de mensaje de capa 3. Cuando en un canal hay más de un SAPI, se requiere la existencia de un procedimiento de distribución de enlace de datos. Al recibir una trama, este procedimiento debe analizar el campo de dirección y el tipo de canal para poder distribuir el mensaje al bloque de procedimiento de enlace de datos apropiado. En el caso de la transmisión, el procedimiento enviará la trama al canal requerido. Además, debe proporcionar funciones para resolver conflictos entre varios bloques de procedimiento de enlace de datos sobre el mismo canal. La resolición de conflictos se basará en el SAPI y en la prioridad solicitada por la capa 3. Los procedimientos de acceso aleatorio se emplean para enlaces de datos en el canal RACH. El procedimiento en la MS da formato a las tramas de acceso aleatorio e inicia la transmisión de las mismas. El procedimiento en la BTS recibe las tramas de acceso aleatorio y proporciona la indicación apropiada a la capa 3. La capa de enlace requiere los siguientes servicios de la capa física: - Conexión de capa física donde los bits de una trama y las unidades de mensaje sean entregados a la entidad par en el mismo orden en que fueron entregados a la capa física en el lado de transmisión. - Sincronización de tramas. - Protección contra errores, para asegurar una tasa de error residual baja en la capa de enlace. - Transmisión (en la MS) y recepción (en la BTS) de ráfagas de acceso aleatorio. II.3.5.- Parámetros del sistema Existen varios parámetros de sistema que son usados en diferentes procedimientos del protocolo de capa 2. Se incluyen: • • • •

El temporizador T200 N200: Número máximo de retrasmisiones N201: Número máximo de octetos en un campo de información k: Número máximo de tramas I pendientes de asentimiento.

El temporizador T200 indica el máximo tiempo de espera para el asentimiento de una trama de comando I, SABM o DISC previamente transmitida. El valor de T200 debe elegirse de modo que la retransmisión de una trama pueda tener lugar cuanto antes. No puede expirar antes de que la siguiente trama en la otra dirección sea recibida y procesada. Si el temporizador expira, la trama se reenvía en el siguiente bloque. El valor 212

Segunda Parte: El Sistema de Telefonía Móvil Celular GSM

de T200 dependerá por tanto del canal lógico al que se asocie, ya que, por la estructura de multitrama, los canales lógicos tiene distintos retardos de transmisión. El parámetro N200 indica el máximo número de retransmisiones que se permiten antes de liberar definitivamente el canal. El valor de N200 dependerá del canal usado. Para establecimiento y liberación de enlaces de capa 2, se toma N200=5. Para canales SDCCH, puede tomarse N200=23. Para FACCH/F se toma N200=34, y para SACCH, N200=5. Una regla que puede emplearse para la asignación de valores a T200 y N200 es que tras 5 segundos sin respuesta el canal debe ser liberado (independientemente del tipo de canal), de modo que N200 · T200 debe ser aproximadamente 5 segundos. El parámetro N201 representa el máximo número de octetos en el campo de información de una trama I, UI, SABM o UA. El valor dependerá del canal lógico, siendo: Para SDCCH o FACCH: N201=20 octetos Para SACCH: N201=18 octetos Para BCCH, AGCH o PCH: N201=22 octetos Esto está representado en la figura II.3.1. Por su parte, como ya hemos dicho, el máximo número (k) de tramas de información numeradas (I) que pueden estar pendientes de asentimiento es siempre igual a 1. Es decir, el tamaño de la ventana de LAPDm es igual a 1.

II.4.- La capa de Red La capa 3 proporciona el servicio de señalización de red móvil (MNS, “Mobile Network Signaling”) a la aplicación de usuario. Este servicio incluye: -

-

Funciones para establecer, mantener y terminar conexiones por conmutación de circuitos a través de la red GSM PLMN y otras redes a las que esta esté conectada. Funciones para servicios suplementarios y control del servicio de mensajes cortos (SMS). Funciones para gestión de la movilidad y gestión de los recursos radio.

Para llevar a cabo estas funciones existen entidades de control de protocolo separadas en tres subcapas: -

Gestión de la conexión (CM, “Connection Management”) Gestión de la movilidad (MM, “Mobility Management”) Gestión de los recursos radio (RR, “Radio Resource Management”)

En la estación móvil existen entidades pertenecientes a las tres subcapas. En el lado de la red las funciones de señalización se distribuyen entre distintos elementos. Las funciones de RR residen principalmente en el BSC, aunque algunas de ellas pueden encontrarse en el MSC. Por su parte, en la BTS la mayor parte de los mensajes de RR pasan transparentemente. Sin embargo algunos de ellos son interpretados por la BTS, 213

Segunda Parte: El Sistema de Telefonía Móvil Celular GSM

como por ejemplo los mensajes relativos al “paging”. Las funciones de las subcapas MM y CM en el lado de la red están localizadas en el MSC. En la figura II.4.1 podemos ver un esquema de la distribución de las funciones de las tres subcapas. La definición de los protocolos empleados en las distintas subcapas se encuentra en la especificación GSM 04-08. Um MS

BTS

BSC

MSC

CM

CM

MM

MM

RR

(RR) (RR)

RR

Figura II.4.1.- Distribución de las funciones de señalización de la capa 3 del interfaz Um

II.4.1.- Subcapa CM La subcapa de gestión de la conexión contiene funciones para: -

Control de llamada y de servicios suplementarios relacionados con la llamada (CC, “Call Control”). Servicio de mensajes cortos (SMS, “Short Message Service”). Gestión de servicios suplementarios no relacionados con la llamada (SS, “Supplementary Services”).

Control de llamada (CC) El protocolo CC proporciona funciones y procedimientos para control de llamadas RDSI, aunque modificados para su adaptación al entorno móvil. Incluye también reestablecimiento de llamadas y modificación de los servicios portadores durante una llamada (por ejemplo, para cambiar entre transmisión de voz y de datos). Además, contiene funciones para servicios suplementarios específicos de la llamada, como por ejemplo señalización entre usuarios finales. Es posible tener transacciones CC paralelas. Para ello es necesaria la existencia de más de una entidad CC en la subcapa CM. Las entidades CC son independientes entre sí y se comunican con las correspondientes entidades pares usando conexiones MM separadas. Cada entidad CC tendrá su propio identificador de transacción. Véase el apartado II.4.4, formato de los mensajes de capa 3. En la figura II.4.2 se representan cuatro entidades de subcapa CM: dos entidades CC, una entidad SMS y una entidad SS.

214

Segunda Parte: El Sistema de Telefonía Móvil Celular GSM

Capa 3 MM CC CC

SS

SMS

MM

Funciones de “Cell Broadcast”

RR

Capa 2

BCCH

AGCH PCH

RACH

SDCCH

SACCH

FACCH

CBCH

TCH

Capa 1

Figura II.4.2.- Estructura de protocolos del interfaz radio

En las especificaciones GSM los procedimientos de control de llamada se describen bajo cuatro epígrafes: -

Procedimientos de establecimiento de llamada Procedimientos durante el estado activo Finalización de llamada Otros procedimientos (“Miscellaneous Procedures”)

Procedimientos de establecimiento de llamada En el caso de una llamada originada en el móvil, el usuario teclea un número y presiona el botón “enviar”. Esto se conoce como un procedimiento de la interfaz homber-máquina (MMI, “Man-Machine Interface”). Este tipo de procedimientos se mapean en procedimientos de control de llamada mediante el intercambio de primitivas a través del MNCCSAP (“Mobile Network CC Service Access Point”). En el caso de una llamada con destino en el móvil, la información sobre los procedimientos de establecimiento de llamada se mapeará en procedimientos de CC cuando alcanza el MSC. El “usuario” en este caso puede estar en una red RDSI, por ejemplo. En todos los casos, cuando las capas superiores solicitan el establecimiento de una llamada, se seleccionará una entidad CC libre (en estado “null”) para establecer la conexión CC entre la MS y la red GSM. Esta entidad CC inicia el establecimiento pidiendo a la subcapa MM que se establezca una conexión MM. Cuando la subcapa MM confirma el establecimiento de dicha conexión, la entidad CC envía un mensaje de 215

Segunda Parte: El Sistema de Telefonía Móvil Celular GSM

establecimiento (“setup”) a su entidad par. Después de esto se intercambian otros mensajes CC, tales como “Call Proceeding” o “Alert”. Finalmente, cuando se han intercambiado los mensajes “Connect” y “Connect Acknowledgement”, las entidades CC de ambos extremos pasan al estado activo y la fase de establecimiento de llamada está completa. Procedimientos durante el estado activo Durante el estado activo, una entidad CC puede informar a su entidad par acerca de algún evento relacionado con la llamada o un cambio en los parámetros de la llamada (por ejemplo, un cambio del equipo de usuario conectado a la MS). Esto se realiza con un mensaje de notificación (“Notify”). Existe la posibilidad de cambiar el modo de la llamada, para dar soporte a servicios como voz y datos alternados. Para llevarla a cabo se emplea el mensaje “Modify”. Procedimientos de fin de llamada La entidad CC que solicita el fin de llamada enviará un mensaje de desconexión (“Disconnect”) a su entidad par en el otro extremo. Posteriormente se intercambian los mensajes “Release” y “Release Complete”, tras lo cual la conexión MM es liberada y las entidades CC vuelven al estado libre (“null”). Otros procedimientos Aparte de los procedimientos mencionados anteriormente, se define un cuarto grupo de procedimientos, que abarca, entre otros, el procedimiento para control del protocolo DTMF o procedimientos para conocer el estado de la entidad par. Soporte para servicio de mensajes cortos (SMS) El servicio SMS comprende entidades llamadas Control de Mensajes Cortos (SMC, “Short Message Control”) que transfieren los mensajes cortos entre la estación móvil y el MSC usando el Protocolo de Control de Mensajes Cortos (SMCP, “Short Message Control Protocol”). Las entidades SMC proporcionan el servicio a la aplicación SMS a través del punto de acceso al servicio SMS de la red móvil (MNSMSSAP, “Mobile Network SMS Service Access Point”). En la figura II.4.3 podemos ver la jerarquía de protocolos para SMS.

216

Segunda Parte: El Sistema de Telefonía Móvil Celular GSM

MS

MSC

Aplicación SMS Short Message Transfer Short Message Relay

SMR

RM-RP

SMR

Subcapa CM

SMC

RM-CP

SMC

Subcapa MM Subcapa RR RP: Relay Protocol CP: Control Protocol

Figura II.4.3.- Estructura de capas de SMS punto a punto

Soporte para Servicios Suplementarios (SS) SS gestiona servicios suplementarios no relacionados con una llamada específica. Como ejemplos podemos citar el desvío de llamadas si no contesta o la llamada en espera. Esta información es transferida al HLR. II.4.2.- Subcapa MM La existencia de esta subcapa se justifica por la problemática derivada de la movilidad del usuario. La subcapa de gestión de movilidad lleva a cabo tres tipos de procedimientos, a saber: -

-

-

Procedimientos específicos para dar soporte a la movilidad de las MSs. Se incluyen en este grupo la actualización de posición normal, la actualización de posición de tipo registro periódico, la activación del IMSI (“IMSI attach”) y la desactivación del IMSI (“IMSI detach”). Procedimientos comunes para proporcionar confidencialidad de la identidad del usuario. Estos procedimientos tratan, por ejemplo, la autenticación, la identificación de la MS pidiéndole el IMSI o el IMEI, y la reasignación de TMSI. Procedimientos para ofrecer servicio a las diferentes entidades en la subcapa superior (CM). Proporcionan a la entidad de CM la capacidad de usar una conexión MM para comunicarse con su entidad par en el extremo remoto. Cuando se recibe una petición de una entidad CM para crear una conexión MM, la subcapa MM realiza a su vez una petición a la subcapa inferior (RR) para el establecimiento de una conexión RR. Cuando la conexión RR está establecida, la red puede iniciar procedimientos comunes de la subcapa MM (tales como la autenticación o la reasignación del TMSI), así como solicitar a la subcapa RR el establecimiento del modo cifrado. Una vez completados todos estos procedimientos de RR y MM, el establecimiento de la conexión 217

Segunda Parte: El Sistema de Telefonía Móvil Celular GSM

MM se da por finalizado, y la entidad CM que lo solicitó es informada de ello. II.4.3.- Subcapa RR La subcapa de gestión de los recursos radio recibe servicios de la capa 2 y ofrece servicios a la subcapa MM. Además, se comunica directamente con la capa física para el intercambio de información relativa al control de medidas (llevadas a cabo tanto por la MS como por la BTS) y a la gestión de los canales. El propósito general de esta subcapa es establecer, mantener y liberar una conexión dedicada entre la MS y la red. Esto incluye procedimientos para handover, selección de celda al encender la MS, reselección de celda en modo libre (“idle”) y recuperación de una pérdida de cobertura en modo libre. La selección y reselección de celda se lleva a cabo en estrecha colaboración con la capa 1. Además, en la subcapa RR de la MS existen funciones para la recepción de los canales unidireccionales BCCH y PCH cuando no hay una conexión RR establecida. En el lado de la red, la subcapa RR se encarga de difundir la información de sistema (frecuencia, BSIC, CGI, etc.). El establecimiento de una conexión RR iniciada desde el lado de la estación móvil se hace por una solicitud desde la subcapa MM. Una conexión RR también puede ser iniciada por una entidad RR en el lado de la red, por ejemplo, mediante la transmisión de un mensaje de “paging”. En ambos casos, lo primero que la entidad RR del lado de la MS debe hacer es transmitir un mensaje de petición de canal, pidiendo un canal de señalización. La red asigna un canal dedicado a la MS, enviándole un mensaje de asignación inmediata. Tras el intercambio de las tramas de capa 2 SABM y UA, la conexión RR está establecida, y las entidades de la subcapa MM de la MS y del lado de la red son informadas de que dicha conexión RR existe. Cuando se tiene una conexión RR: -

-

-

En el enlace descendente, la subcapa RR envía información de sistema a la MS ocupada. La MS transmite los informes de medidas por el enlace ascendente. La red puede utilizar el procedimiento para iniciar el modo cifrado. Las entidades en las capas superiores pueden enviar mensajes a sus entidades pares en el otro extremo. Las capas superiores en el lado de la red pueden solicitar a la subcapa RR cambiar el modo de canal. El modo de canal incluye modos de codificación, decodificación y transcodificación. La subcapa RR de la red puede solicitar un cambio de canal entre dos celdas (“inter cell handover”). La MS puede informar de un cambio en su clase de potencia mediante un procedimiento específico para ello. Esto puede darse, por ejemplo, cuando la MS se conecta a una fuente externa de energía en un vehículo. La red puede solicitar información a la MS acerca de cuál es su clase de potencia.

218

Segunda Parte: El Sistema de Telefonía Móvil Celular GSM

La liberación de una conexión RR puede llevarse a cabo por el procedimiento normal de liberación o por el procedimiento de “expiración” del enlace radio (radio link time-out”). Por cada MS sólo puede existir una conexión RR en un determinado momento. II.4.4.- Formato de los mensajes de capa 3 Los mensajes de capa 3 se componen de una secuencia de octetos, que podemos separar en las partes que mostramos en la tabla II.4.1.

8

7

TI flag

Número de bit 6 5 4 3 TI

2

1

PD

Tipo de Mensaje Elementos de información obligatorios Elementos de información opcionales Tabla II.4.1.- Formato general de los mensajes de capa 3

Cada mensaje comienza con una cabecera que contiene los campos PD y TI y el tipo de mensaje: -

El discriminador de protocolo (PD, “Protocol Discriminator”), en los primeros 4 bits del primer octeto. Identifica a qué protocolo de capa 3 corresponde el mensaje, tal como se muestra en la tabla II.4.2. Protocolo RR MM CM Servicio de mensajes cortos Servicios suplementarios Procedimientos de test Otros valores son reservados

PD 0110 0101 0011 1001 1011 1111 - - - -

Tabla II.4.2

-

-

El identificador de transacción (TI, “Transaction Identifier”) ocupa la segunda mitad del primer octeto. Hace posible decidir a cuál de las transacciones paralelas tratadas por la misma entidad CM pertenece el mensaje. Si el mensaje no pertenece a la subcapa CM, sino a RR o MM, este campo toma el valor 0000 y se denomina “skip indicator”. El tipo de mensaje determina cuál es la función de un mensaje dentro de un protocolo y en una determinada dirección. Es decir, el significado de un mensaje dependerá del protocolo y de la dirección en la que se envía el mensaje.

En las subcapas RR y MM se definen funciones relativas al transporte de mensajes. Su tarea consiste en examinar la cabecera del mensaje y “enrutarlo” hacia o desde la entidad de protocolo correcta, de acuerdo con los campos PD y TI. En el caso 219

Segunda Parte: El Sistema de Telefonía Móvil Celular GSM

de transacciones paralelas, son estas funciones las encargadas de llevar a cabo la multiplexión y la separación. En la figura II.4.4 podemos ver un diagrama que explica estos conceptos. Aplicación de usuario Mobile Network Service MMCC-SAP

MMSS-SAP

CC

MMSMS-SAP

SS

SMS

MMSS-SAP MMREG-SAP

MMSMS-SAP

MMCC-SAP

MM

TI

Señalización de capa 3

MM

TI

CC

TI

SS

SMS

PD

RR-SAP

≠RR

RR

RR

SAPI 0 Capa 2

R A C H

B C C H

A G C H + P C H

PD

S D C C H

S A C C H

F A C C H

S D C C H

S A C C H

SAPI 3

Figura II.4.4.- Arquitectura de protocolos en la capa 3, para una MS

220

Segunda Parte: El Sistema de Telefonía Móvil Celular GSM

II.5.- Codificación de la voz II.5.1.- Introducción Existen básicamente tres grupos de codificadores de voz: -

Codificadores de forma de onda Codificadores de fuente (o paramétricos) Y codificadores híbridos.

Los codificadores de forma de onda toman a la entrada señales analógicas continuas y las transforman en señales digitales antes de ser transmitidas. En ausencia de errores de transmisión, la señal recuperada por el decodificador será muy parecida a la original, y la calidad de la voz será excelente. En la práctica, el proceso de codificación introduce ruido de cuantización, pero éste es lo suficientemente pequeño para que la calidad de la voz no se vea afectada. Las ventajas de los codificadores de forma de onda son su baja complejidad, bajo coste, bajo consumo de potencia y bajo retardo de codificación. Su principal desventaja es el ancho de banda necesario para la transmisión. El esquema de codificación de forma de onda más simple es la Modulación por Impulsos Codificados (PCM, “Pulse Code Modulation”), donde la señal analógica es muestreada a la tasa de Nyquist, y cada muestra es cuantizada y representada por un número binario. Otro esquema que se engloba dentro de este primer grupo es el log-PCM, en el que las muestras son comprimidas de acuerdo a una ley logarítmica (o cuasilogarítmica) y codificadas en binario antes de ser transmitidas. En el receptor, se procede a la decodificación y expansión logarítmica para recuperar la señal original. Las vibraciones cuasi-periódicas de las cuerdas vocales y las formas que toma el tracto vocal en la producción de la voz hacen que las muestras de las señales de voz estén altamente correladas. Por el contrario, los tramos sordos tienden a tener muy poca correlación entre sus muestras. En una conversación, un interlocutor típico hablará aproximadamente el 40% del tiempo, y durante ese tiempo, los tramos sordos serán muchos menos que los periodos correspondientes a tramos sonoros. La idea es utilizar la correlación en la señal de voz para realizar una predicción de la misma, formando a continuación una secuencia de error entre la señal de voz real y la obtenida con la predicción, y cuantizar esta secuencia de error antes de su transmisión. Este método es conocido como D*PCM (“Differential-star PCM”). Las muestras de la secuencia de error tienen una varianza significativamente inferior a la de la señal de voz, de manera que se puede reducir el tamaño del escalón de cuantización, disminuyendo sensiblemente el ruido de cuantización. El decodificador empleará el mismo predictor que el codificador. Opera en las muestras decodificadas previamente para realizar la predicción de las siguientes, a las que suma las muestras de la secuencia de error. Tras esto se realiza un filtrado paso bajo, obteniéndose finalmente la señal de voz. Un esquema más eficaz de codificación diferencial es el DPCM (“Differential Pulse Code Modulation”). Al igual que el D*PCM, se cuantiza y codifica la señal de error. Pero la diferencia estriba en que la señal predicha no se forma a partir de la señal de entrada, sino que las predicciones se basan en la secuencia decodificada, que consiste 221

Segunda Parte: El Sistema de Telefonía Móvil Celular GSM

en la señal de voz de entrada contaminada por ruido de cuantización. Como los predictores en el codificador y en el decodificador operan sobre la secuencia recuperada, el desempeño es superior al del esquema D*PCM, cuyos predictores hacían predicciones a partir de secuencias diferentes. Los cuantizadores utilizados para DPCM pueden ser uniformes (con escalón constante), no uniformes (escalones distintos según el nivel de la muestra de entrada), o adaptativos (en los que el tamaño del escalón cambia dependiendo de las muestras anteriores). Los cuantizadores pueden ser escalares o vectoriales, según operen sobre una muestra o un conjunto de muestras a la vez. Los predictores pueden tener coeficientes fijos, coeficientes adaptativos, o coeficientes organizados como vectores. Pueden utilizarse dos predictores en cascada: uno para estimar las variaciones en el tracto vocal, y otro para predecir la excitación asociada con las vibraciones de las cuerdas vocales. El objetivo de la predicción es hacer que disminuya la varianza de la señal de error que es cuantizada y transmitida. Cuando se emplean predictores adaptativos, el proceso se conoce como ADPCM (“Adaptive DPCM”). La tasa binaria puede ser reducida, manteniendo la misma calidad de la voz, si se emplea codificación por transformadas (TC, “Transform Coding”). En este esquema, las muestras de voz se colocan en bloques contiguos y se realiza una transformación al dominio de la frecuencia. De entre las múltiples transformadas que pueden utilizarse, la más popular es la transformada discreta del coseno (DCT, “Discrete Cosine Transform”). Cada coeficiente de la transformada es codificado con un número de bits que depende se su importancia, que se estima a partir de estadísticas de calidad percibida de la señal. Algunos coeficientes serán descartados por su poca significación. Puede hacerse que el número de bits asignados a cada coeficiente y la decisión de descartar o no determinado coeficiente dependan de estadísticas de bloque. Este esquema se conoce entonces como ADCT (“Adaptive DCT”). Un ejemplo de ADCT es la codificación sub-banda (SBC, “Sub-Band Coding”), en la que la señal vocal es filtrada por bandas, y se utiliza un codificador adaptativo (por ejemplo un ADPCM) para codificar cada una de las sub-bandas. Las señales sub-banda codificadas se multiplexan antes de ser transmitidas. En el receptor se demultiplexan estas señales, para a continuación decodificar cada sub-banda, finalizando con la combinación de éstas para dar lugar a la señal de voz recuperada. Los codificadores de fuente pretenden conseguir una importante reducción en la tasa binaria de salida a partir de un análisis de las correlaciones de la señal de voz. En los codificadores de fuente, se modela la voz mediante uno o varios filtros que representan al tracto vocal y una excitación que representa las vibraciones de las cuerdas vocales. Se estiman los parámetros de esos filtros y la frecuencia de la excitación (“pitch”), y esos valores constituyen la señal codificada. En el decodificador se generará una excitación que se hará pasar por los filtros descritos por los coeficientes, recuperándose así la voz. Con este tipo de codificadores se consiguen tasas binarias muy bajas, pero la calidad de la voz recuperada es muy baja. Como ejemplo de codificador de fuente, podemos mencionar el LPC (“Linear Prediction Coding”). La necesidad de conseguir gran calidad con bajas tasas binarias ha llevado al desarrollo de algoritmos más eficientes para la codificación LPC. Se tratas de esquemas híbridos, como explicaremos a continuación. 222

Segunda Parte: El Sistema de Telefonía Móvil Celular GSM

La principal limitación de los codificadores LPC es que asumen que las tramas de voz pueden ser sordas o sonoras, de manera que se representa la excitación como un tren de pulsos (para las tramas sonoras) o como ruido aleatorio (para las tramas sordas). Pero en realidad existen más de dos modos en los que se excita el tracto vocal, y a veces estos modos están mezclados. Para una trama de voz sonora, resulta una simplificación excesiva considerar que existe un solo pulso de excitación por cada periodo de pitch. Por ello, se han propuesto esquemas como la excitación multipulso (MPE, “Multi-Pulse Excitation”) o la excitación por pulsos regulares (RPE, “Regular Pulse Excitation”), en los que no se necesita un conocimiento previo acerca de la naturaleza sorda o sonora de la trama de voz, sino que la excitación se modela como una serie de pulsos cuyas amplitudes y posiciones son determinadas minimizando el error entre la señal original y la sintetizada. Este tipo de codificadores utiliza el mismo filtro de síntesis que se emplea en LPC para modelar el tracto vocal. Sin embargo, la excitación es modelada muy cuidadosamente, y codificada utilizando técnicas de codificación de forma de onda. El hecho de que la excitación sea codificada y transmitida junto con los parámetros del filtro de síntesis hace que se denomine a estos códecs codificadores híbridos. En el codificador se incluye internamente un decodificador, por lo que esta técnica es conocida como codificación predictiva de análisis por síntesis (“Analysis-bysynthesis predictive coding”). En el caso de MPE, se asume que tanto las posiciones de los pulsos como sus amplitudes son inicialmente desconocidas, de manera que deben ser calculadas en el bucle de optimización. Por el contrario, en el caso de RPE se asume que los pulsos están espaciados regularmente, y las amplitudes son calculadas resolviendo un conjunto de M x M ecuaciones, donde M es el número de pulsos. Otro de los esquemas que se incluyen en este grupo es la predicción lineal “excitada por código” (CELP, “Code-Excited Linear Prediction”). En este caso, la señal de excitación es una entrada seleccionada dentro de un “diccionario” de secuencias de excitación. Este modelo requiere mayor esfuerzo computacional debido a que tiene que realizar una búsqueda exhaustiva en un “diccionario” muy amplio (puede contener 1024 entradas) para determinar la secuencia de excitación adecuada. II.5.2.- Codificación de voz en GSM Existen varios tipos de codificadores de voz que pueden emplearse en el sistema GSM. Dependiendo de la tasa binaria de salida del codificador, las señales serán transportadas por canales de tráfico de velocidad total (TCH/FS) o de velocidad mitad (TCH/HS). En el caso de TCH/FS, el codificador de voz entrega 260 bits cada 20 ms, por lo que la tasa binaria es de 13 kbit/s. Tras realizar la codificación de canal, la tasa binaria pasa a ser de 22.8 kbit/s. El codificador de voz empleado es del tipo RPE-LTP. En el caso del TCH/HS, se entregan 112 bits cada 20 ms. La tasa binaria es por tanto 5.6 kbit/s. Tras la codificación de canal, la tasa binaria pasa a ser 11.4 kbit/s. El codificador de voz utilizado es en este caso VSELP (“Vector Sum Excited Linear Prediction coding”). El algoritmo VSELP es una técnica de codificación de análisis por síntesis y pertenece al grupo de algoritmos de codificación conocido como CELP. Existe un codificador de velocidad completa mejorado, que se transmite por el canal TCH/EFS (“Enhanced Full-rate Speech”). Este codificador entrega 244 bits cada 20 ms. La tasa binaria es por tanto de 12.2 kbit/s. Tras la codificación de canal, la tasa 223

Segunda Parte: El Sistema de Telefonía Móvil Celular GSM

binaria pasa a ser de 22.8 kbit/s, con lo que se aumenta la protección del código de canal respecto al caso del TCH/FS. Además de estos tres codificadores de voz, en GSM existe la posibilidad de utilizar codificadores de voz de tasa binaria adaptativa. Se han definido dos tipos de canales lógicos para el transporte de la voz codificada de este modo: el de velocidad completa (TCH/AFS, “Adaptive multi rate Speech at Full rate”) y el de velocidad mitad (TCH/AHS, “Adaptive multi rate Speech at Half rate”). En este tipo de codificadores se emplea transmisión discontinua (DTX, “Discontinuous Transmission”), y se distinguen tramas de voz de distintas velocidades binarias. Tanto la codificación de la voz como la codificación de canal son más complejas en este caso. La codificación de la voz se lleva a cabo tanto en la MS como en el subsistema BSS. En la MS se lleva a cabo el muestreo de la voz y su conversión en señal digital previamente a la codificación propiamente dicha. En el caso de la recepción de voz por parte de la MS, tras la decodificación, la señal es convertida en analógica y se la hace pasar por un filtro paso bajo antes de llegar al auricular del teléfono. Por su parte, en el subsistema BSS, la señal enviada por el móvil debe ser convertida a formato PCM (tasa binaria de 64 kbit/s) con ley A o ley µ , antes de ser enviada al MSC. Inversamente, la señal PCM proveniente del MSC debe ser convertida en una señal PCM uniforme de 16 kbit/s, que a continuación será codificada de acuerdo al canal lógico que se esté empleando en la comunicación con la MS (TCH/FS, TCH/HS, etc.). Estos procesos se conocen como “transcodificación” (“transcoding”) y se describen en las especificaciones GSM 06.10 y 06.20. La conversión entre formatos digitales llevada a cabo en el BSS es realizada por una unidad perteneciente al BSC y denominada usualmente TRAU (“Transcoding And Adaptation Unit”) o simplemente “transcoder”. A pesar de pertenecer al BSC, estas unidades pueden estar situadas en posiciones remotas, junto al MSC. El objetivo es el ahorro en los recursos de transporte, que tiene verdadero sentido si consideramos BSCs que no compartan el mismo emplazamiento que el MSC. En este caso, podemos considerar el “transcodificador” como un elemento aparte del BSC. El interfaz entre ambos suele denominarse “A-sub” o “A-ter”. En la figura II.5.1 podemos observar las configuraciones posibles. 16 kbit/s 64 kbit/s

64 kbit/s

BTS

TRAU

BSC

MSC

BTS

BSC

TRAU

MSC

BTS

BSC

TRAU

MSC

16 kbit/s

Figura II.5.1.- Posiciones de los “transcoders”

224

Segunda Parte: El Sistema de Telefonía Móvil Celular GSM

La razón para el empleo de la “transcodificación” en el BSS es que el MSC realiza la conmutación de circuitos a 64 kbit/s, ya que debe poder interactuar con redes externas (como por ejemplo la RDSI o la PSTN). Dado que no es objetivo del presente proyecto la realización del codificador de voz, no vamos a describir aquí todos los codificadores de voz que pueden emplearse en el sistema. Tan sólo describiremos de modo general el codificador RPE-LTP empleado para la codificación de voz a velocidad completa. También se hablará un poco sobre el proceso de elección de este codificador en las primeras etapas de la definición de las especificaciones del sistema. Para una descripción completa de los distintos codificadores, remítase el lector a las especificaciones de la serie 06 de GSM. Elección del codificador de voz a velocidad completa para GSM La selección inicial del códec vocal más apropiado para el sistema GSM se basó en una serie de pruebas comparativas de los distintos códecs candidatos bajo diversas condiciones de operación. Originalmente se propusieron 6 códecs distintos, con una tasa binaria total (sumando la del codificador de voz y el codificador de canal) de 16 kbps. En primer lugar, los códecs fueron comparados con los existentes para los sistemas analógicos, tras lo que dos de ellos fueron descartados. Los restantes eran dos codificadores sub-banda y dos codificadores por excitación de pulsos (“pulse excited codecs”). A continuación describimos brevemente estos esquemas: SBC-APCM: Codificador sub-banda con PCM adaptativo de bloques. Se separa la señal en 16 sub-bandas de ancho 250 Hz, de las cuales las dos más altas no son transmitidas. Se asigna un número de bits a cada sub-banda de acuerdo a la relación de potencia entre las sub-bandas, información adicional que también debe enviarse al receptor. La tasa de transmisión total de las subbandas es de 10 kbit/s, la información adicional tiene una tasa de 3 kbit/s, y todo ello va protegido mediante codificación de canal (3 kbit/s). SBC-ADPCM: Codificador sub-banda con delta-PCM adaptativo. En este esquema, la señal de entrada se divide en 8 subbandas, de las que sólo 6 son transmitidas. Cada subbanda se codifica con codificación diferencial con estimación hacia atrás (al contrario que en SBC-APCM, en el que la estimación se hacía hacia adelante). El número de bits para cada sub-banda es fijo, por lo que no es necesario transmitir información adicional. El esquema es más resistente al ruido, y no precisa de codificación de canal, con lo que sólo necesita 15 kbit/s. MPE-LTP: Códec lineal con excitación por multi-pulso y predictor de “término largo” (“Multi pulse excited LPC codec with long term predictor”). Se requieren 13.2 kbit/s para la codificación de la voz, y 2.8 para la codificación de canal, cuyo objetivo es proteger los bits más importantes de salida del códec vocal. RPE-LPC: (“Regular pulse excited LPC codec”). Este fue el códec elegido finalmente para el sistema GSM, aunque además se le incluyó LTP. Lo vamos a describir a continuación con más detalle.

225

Segunda Parte: El Sistema de Telefonía Móvil Celular GSM

Estos cuatro códecs fueron comparados en cuanto a la calidad de la conversación, robustez, retardos de procesado y complejidad computacional. Se hicieron pruebas con condiciones de BER = 10-2 y BER = 10-3. Se tomó en cuenta una medida de la calidad subjetiva de la voz, según la cual se puntúa ésta entre 0 y 5, siendo 5 la mejor calidad y 0 la peor. Se obtuvo la media de las puntuaciones asignadas por varios individuos, bajo las distintas condiciones de prueba, obteniéndose lo que se conoce como MOS (“Mean Opinion Scores”) para los distintos códecs propuestos: MOS(RPE-LPC) = 3.54 MOS(MPE-LTP) = 3.27 MOS(SBC-APCM) = 3.14 MOS(SBC-ADPCM) = 2.92 Estas medidas fueron además comparadas con la puntuación obtenida por un sistema analógico tradicional, con modulación FM: MOS(FM) = 1.95 Podemos observar cómo los esquemas de codificación basados en excitación de pulsos son superiores a los de codificación subbanda. Se eligió el codificador RPE-LPC, que fue mejorado incluyendo un predictor de “término largo” LTP (“Long Term Predictor”), con lo que finalmente se consigue una percepción de la calidad de la voz aún mejor, sobre un amplio rango de condiciones de operación: MOS(RPE-LTP) = 4.00. El codificador RPE-LTP La estructura básica del modelo general para la codificación predictiva de análisis por síntesis se muestra en la figura II.5.2. El modelo consta de varias partes. La primera es el filtro de síntesis, que es un filtro todo polo variable con el tiempo para modelar la variación de la envolvente espectral de la voz en periodos cortos de tiempo, por lo que se denomina a menudo “short term correlator”. Sus coeficientes se calculan prediciendo una muestra de voz a partir de unas pocas muestras anteriores. En el caso del codificador empleado para TCH/FS en GSM, el filtro de síntesis incluye también un filtro de correlación de “término largo” (“long term predictor”), que modela más finamente la estructura del espectro de la voz. La segunda parte del modelo es el generador de excitación, encargado de producir la secuencia de excitación que sirve de entrada al filtro de síntesis para producir la señal de voz reconstruida en el receptor. La excitación se optimiza minimizando el error entre la señal original y la sintetizada internamente en el codificador. Dentro del propio codificador existe un decodificador, como vemos en la figura II.5.2. La eficiencia del método de análisis por síntesis reside en el procedimiento de optimización en bucle cerrado, que permite representar el residuo de la predicción utilizando una tasa binaria muy baja, a la vez que se mantiene una alta calidad de la voz. La tercera parte del modelo es el criterio utilizado para la minimización del error. El más común es el que minimiza el error cuadrático medio (MSE, “Mean Squared Error”). En este modelo se emplea un criterio de minimización del error subjetivo, donde la secuencia de error se hace pasar por un filtro de suavizado que hace que el espectro del ruido tome una forma tal que la potencia se concentre en las 226

Segunda Parte: El Sistema de Telefonía Móvil Celular GSM

frecuencias que forman el espectro de voz, de modo que el ruido quede enmascarado por la señal de voz. El proceso de codificación incluye dos pasos. En primero es la determinación de los parámetros del filtro de síntesis a partir de las muestras de voz fuera del bucle de optimización. El segundo es la determinación de la secuencia de excitación para ese filtro, minimizando el criterio de error subjetivo. El intervalo de optimización de la excitación suele ser menor que la trama de actualización de los parámetros LPC, de manera que cada trama es dividida en subbloques, y la excitación se calcula individualmente para cada uno de ellos. Los parámetros del filtro una vez cuantizados son enviados hacia el receptor junto con los pulsos de excitación, cuantizados también. El proceso de decodificación es llevado a cabo haciendo pasar la señal de excitación a través de los filtros de síntesis para obtener así la señal de voz reconstruida. Señal de voz Generador de excitación

Síntesis LTP

Filtro de suavizado

Síntesis STP

Error

Minimización del error

(a) Codificador

Generador de excitación

Síntesis LTP

Síntesis STP

(b) Decodificador Figura II.5.2.- Esquema general del modelo LPC de análisis por síntesis, con LTP

En la figura II.5.3 se muestra un diagrama en más detalle del codificador RPELTP, en el que se distinguen varias partes: -

Preprocesado Filtrado de análisis STP Filtrado de análisis LTP Cálculo del RPE

A continuación se describe cada una de las partes. Preprocesado Se puede llevar a cabo un proceso de pre-énfasis, cuyo objeto es incrementar la precisión numérica en los cálculos subsiguientes enfatizando la parte del espectro de voz correspondiente a las frecuencias más altas, que presenta menor densidad de potencia. Para conseguir esto se utiliza el filtro de un solo polo dado por la función de transferencia 227

Segunda Parte: El Sistema de Telefonía Móvil Celular GSM

H ( z ) = 1 − c1 z −1 , donde c1 ≈ 0.9 es un valor práctico. La señal pre-enfatizada sp(n) se segmentada a continuación en bloques de 160 muestras. Cada bloque es enventanado mediante una ventana Hamming para contrarrestar el fenómeno de Gibbs en el espectro, causado por la truncación de la señal en el tiempo. La expresión de la señal enventanada es: n  s psw ( n ) = s ps ( n ) ⋅ c2 ⋅  0.54 − 0.46 cos 2π  L 

donde sps(n) representa un segmento de voz, spsw(n) es su versión enventanada, y la constante c2 = 1.5863 se determina a partir de la condición de que la señal enventanada debe tener la misma potencia que la señal no enventanada.

228

Segunda Parte: El Sistema de Telefonía Móvil Celular GSM

Preprocesado

Filtro de análisis STP Filtro Análisis STP

spsw(n)

k'(i)

sps(n)

R(k)

Segmentar

LAR'''(i)

k=0...8

k(i)

LAR"(i)

i=1...8 Calcular LARs

Preénfasis

LAR(i)

i=1...8

Cuantiz Inverso LARs

i=1...8

Cuantizar LARs

s(n)

i=1...8

Interpolar LARs

Schur

sp(n)

i=1...8

Convertir LAR''' en k'

Cálc. coef. Autocorrel.

Ventana Hamming

rstp(n)

LAR'(i), i=1...8

Codificación del RPE Filtro de Análisis LTP

+ +

rstp(n) Análisis LTP

rstp'(n)

Filtro de suavizado

rLTP(n)

Selector grid RPE

β(k,i)

-

PCM adaptarivo de bloques

D

G

Cuantiz. LTP

β'(k,i)

D'

D'

Cuantiz. Inverso LTP

U BAPCM Inverso

G''

X

D''=D rstp'(n)

M vmax(k)

G'

G'

Buffer de Búsqueda

k

Retraso z-D

rstp''(n)

x

β"(k,i)

+

+

Posicionamiento en grid RPE

+

rLTP'(n)

LAR'(i), i=0...8

Figura II.5.3.- Esquema del codificador RPE-LTP

229

Segunda Parte: El Sistema de Telefonía Móvil Celular GSM

Filtrado de análisis STP Para cada segmento de 160 muestras se calculan 9 coeficientes de autocorrelación R(k) a partir de spsw(n). R(k ) =

L −1− k

∑s n =0

psw

(k ) s psw (n + k );

k = 0, ... 8

A partir de los coeficientes de autocorrelación R(k), se obtienen 8 coeficientes de reflexión ki utilizando para ello la recursión de Schur, que es un método equivalente al algoritmo de Levinson-Durbin utilizado para resolver las ecuaciones LPC. La principal diferencia es que, mientras que el algoritmo de Levinson-Durbin proporciona los coeficientes ai del filtro STP y los coeficientes de reflexión ki, la recursión de Schur sólo calcula éstos últimos, por lo que es más eficiente computacionalmente. Los coeficientes de reflexión ki son convertidos a coeficientes LAR (“Logarithmic Area Ratios”), dado que éstos tienen mejores propiedades de cuantización que los coeficientes ki. La regla de conversión es la siguiente:  1 + ki LAR(i ) = log10   1 − ki

  . 

Puede también utilizarse una aproximación lineal para simplificar la implementación en tiempo real:  ki ,  LAR(i ) = signo[ki ][2 ki − 0.675], signo[k ][8 k − 6.375], i i 

si ki < 0.675 si 0.675 < ki < 0.975 si 0.975 < ki < 1.0

Los diferentes LAR(i), i = 1, 2, ... 8, tienen diferentes rangos dinámicos y funciones de densidad de probabilidad (PDF, “Probability Density Function”) con formas diferentes, por lo que su cuantización se llevará a cabo de manera diferente. En concreto, se asignan 6, 5, 4 y 3 bits para la codificación del primer, segundo, tercer y cuarto par de LARs, respectivamente. Los coeficientes cuantizados LAR’(i) son enviados al decodificador situado en el receptor, a la vez que son localmente decodificados en el conjunto LAR’’(i). Con objeto de suavizar los cambios abruptos de la envolvente de la señal de voz cerca de los límites de la trama de análisis STP, los parámetros LAR son interpolados linealmente. Los parámetros interpolados, LAR’’’(i), son utilizados en los límites de la trama de análisis. A continuación, se decodifican localmente los coeficientes de reflexión a partir de los LAR’’’(i), obteniéndose los coeficientes ki’, que son utilizados para el cálculo del residuo STP, rSTP(n), mediante una estructura de correlación parcial (PARCOR, “Partial Correlation”). Esta estructura utiliza directamente los coeficientes de reflexión para calcular el residuo STP, y constituye una analogía al modelo de cavidades acústicas de la producción de la voz humana.

230

Segunda Parte: El Sistema de Telefonía Móvil Celular GSM

Filtrado de análisis LTP El error de predicción LTP es minimizado por el retardo D que maximiza la correlación cruzada entre el residuo STP actual, rSTP(n), y el residuo STP previamente recibido y almacenado en un búfer, rSTP(n-D). Más concretamente, el residuo STP, rSTP(n), de 160 muestras, es dividido en cuatro subsegmentos de N = 40 muestras, y para cada uno de ellos se calcula la correlación cruzada entre ese subsegmento y el segmento STP previamente recibido. El máximo de la correlación se encuentra a un determinado retardo D, que es cuando el actual subsegmento es más similar a su historia previa. Esto es cierto con más probabilidad cuando pasa el periodo de pitch o un múltiplo del periodo de pitch. De esta manera se extrae la mayoría de la redundancia que quedaba en el residuo STP, si le restamos este segmento de alta correlación, multiplicado por un factor de ganancia G, que es la correlación cruzada normalizada encontrada en el retardo D. Una vez que se han calculado los parámetros LTP (G y D), son cuantizados, obteniéndose G’ y D’. G’ es cuantizado con dos bits, mientras que para D’ son necesarios 7 bits. Estos parámetros LTP cuantizados son localmente decodificados en el par (G ' ' , D' ' ) para producir el residuo STP decodificado localmente r ' STP ( n ) , que será utilizado para proporcionar la historia previa del residuo STP para los subsiguientes subsegmentos. Dado que D es entero, D = D’ = D’’. Con los parámetros LTP se calcula el residuo LTP, rLTP(n), como la diferencia entre el residuo STP, rSTP(n), y su estimación r’’STP(n), calculada a partir de los parámetros LTP decodificados localmente (G’’ y D). Mostramos las correspondientes expresiones a continuación. rLTP (n ) = rSTP (n ) − r ' ' STP ( n ) r ' ' STP ( n ) = G ' ' r ' STP ( n − D ) Aquí r’STP(n-D) representa un segmento ya conocido de la historia pasada de r’STP(n), almacenado en un búfer. Finalmente, el contenido del búfer es actualizado utilizando el residuo LTP calculado localmente r’LTP(n) y el residuo STP estimado r’’STP(n), para formar r’STP(n) como se muestra en la siguiente expresión. r ' STP ( n ) = r ' LTP (n ) + r ' ' STP ( n ) Cálculo RPE El residuo LTP, rLTP(n), es suavizado mediante un filtro paso bajo con frecuencia de corte de 4/3 khz= 1.33 kHz, de acuerdo con un diezmado por tres que se realiza posteriormente. La respuesta impulsiva de este filtro será una función sinc enventanada mediante una ventana Hamming9: z(n) =

9

D  nπ sin nπ  D

 nπ   0.54 + 0.46 cos  Q

  , − Q < n < Q 

Véase la Ref. [1].

231

Segunda Parte: El Sistema de Telefonía Móvil Celular GSM

donde Q suele ser menor que 10, y representa el punto donde se trunca la respuesta impulsiva. Obsérvese que se trata de una respuesta impulsiva no causal. Si realizamos un desplazamiento temporal de Q posiciones obtendremos un filtro FIR cuya respuesta impulsiva será: f (n ) = z ( n − Q ) El residuo LTP suavizado, rSLTP(n), es entonces descompuesto en tres posibles candidatos a secuencia de excitación. Esto se hace descartando la última muestra del subsegmento de 40 muestras, de modo que cada candidato tendrá 13 muestras del subsegmento original. A continuación se calculan las energías de las tres secuencias, E1, E2, y E3, y el candidato con la mayor energía es elegido como mejor representante del residuo LTP. Tras la elección de la secuencia, los pulsos de la misma son normalizados respecto a la máxima amplitud, vmax(k), en la secuencia de 13 muestras. Después de la normalización, son cuantizados por un cuantizador uniforme de tres bits. Por otra parte, se calcula el logaritmo de la amplitud máxima de la secuencia, vmax(k), que es a cuntinuación cuantizado con 6 bits. Para codificar la posición inicial (k) del subsegmento son necesarios 2 bits, ya que existen tres posiciones iniciales posibles. Las amplitudes de los pulsos β ' ( k , i ) , las posiciones de la “rejilla” (grid) k, y los máximos de cada bloque vmax(k) son decodificados localmente para obtener el residuo LTP, r’LTP(n), donde se rellenan con ceros las posiciones que no corresponden a la secuencia seleccionada como excitación. El decodificador RPE-LTP En la figura II.5.4 se muestra el esquema del decodificador RPE-LTP, que presenta la estructura inversa al codificador, de manera que las funciones que se realizan sobre la señal de entrada son: -

Decodificación RPE Filtrado de síntesis LTP Filtrado de síntesis STP Postprocesado

232

Segunda Parte: El Sistema de Telefonía Móvil Celular GSM

Posicionamiento del grid RPE

r'LTP(n)

+

k

r'STP(n)

Filtro de Síntesis STP

Deénfasis

sˆ( n )

sp(n) r''STP(n)

D vmax(i)

E

x

Cuantizador Inverso BAPCM

G'

β'(k.i)

k'(i)

Z-D'

D' Cuantizador Inverso LTP

M

Convertit LAR''' en k'

LAR'''(i) Interpolar LARs

G'

U D'

LAR"(i) Cuantiz. Inverso de LARs

X LAR'(i)

Decodificación RPE

Filtrado de Síntesis LTP

Filtrado de Síntesis STP

Posprocesado

Figura II.5.4.- Decodificador RPE-LTP

A continuación describimos estos procesos. Decodificación RPE En el decodificador, las posiciones de la “rejilla” k, los máximos de los subsegmentos vmax(k) y las amplitudes de los pulsos de excitación β ' ( k , i ) son cuantizados inversamente, y las amplitudes de los pulsos se calculan multiplicando las amplitudes decodificadas por el máximo del bloque correspondiente. El residuo LTP r’LTP(n), se recupera situando adecuadamente las amplitudes de los pulsos β ' ( k , i ) de acuerdo con el offset inicial k. Filtrado de síntesis LTP En primer lugar, los parámetros del filtro LTP (G’ y D) pasan por un cuantizador inverso para obtener el filtro de síntesis LTP. Entonces el modelo de excitación LTP recuperado, r’LTP(n), se emplea para excitar este filtro de síntesis LTP, para recuperar así un nuevo subsegmento (de longitud N = 40 muestras) del residuo STP estimado, r’STP(n). Para ello, se utiliza la historia pasada del residuo STP recuperado r’STP(n), retrasada D muestras y multiplicada por la ganancia G’. El residuo STP estimado de esta manera es: r ' ' STP ( n ) = G '⋅r ' STP (n − D ) .

233

Segunda Parte: El Sistema de Telefonía Móvil Celular GSM

Este residuo se emplea para calcular el subsegmento más reciente del residuo STP recuperado, como sigue: r ' STP ( n ) = r ' ' STP ( n ) + r ' LTP ( n ) Filtrado de síntesis STP Para calcular la conversación sintetizada sˆ( n ) se utiliza una estructura PARCOR, en la que se requieren los coeficientes de reflexión ki, i = 1, ... 8, como en el caso del análisis STP realizado en el codificador. Los coeficientes LAR’(i) son decodificados utilizando el cuantizador inverso adecuado en cada caso, para obtener LAR’’(i), que son interpolados linealmente en los límites de las tramas de análisis con los coeficientes correspondientes de la trama vecina. Como se dijo anteriormente, esto se hace para suavizar los cambios bruscos en la envolvente espectral de la voz. Finalmente, el conjunto de parámetros es convertido en coeficientes de reflexión. Para asegurar la estabilidad del filtro, los coeficientes de reflexión recuperados que caigan fuera del círculo unidad será sustituidos por sus valores recíprocos (que sí caen dentro del círculo unidad). La fórmula para convertir LAR(i) en ki es: ki =

10 LAR ( i ) − 1 . 10 LAR ( i ) + 1

Postprocesado El postprocesado consiste en aplicar un filtro de de-énfasis, que es el inverso del filtro H(z) utilizado para el preénfasis: 1 1 = . H ( z ) 1 − c1 z −1 II.5.3.- El concepto de transmisión discontinua A continuación vamos a presentar unas ideas generales sobre la transmisión discontinua (DTX, “Discontinuous Transmission”). Nuestro objetivo no es profundizar en el funcionamiento concreto de esta técnica, que diferirá según cuál sea el codificador de voz empleado. La transmisión discontinua se basa en la detección de la actividad vocal (VAD, “Voice Activity Detection”) y se emplea para reducir el consumo de potencia en las estaciones móviles, a la vez que se incrementa la eficiencia espectral, al reducirse la interferencia durante los periodos de silencio. La utilización de DTX, combinada con los saltos de frecuencia para hacer aleatoria la carga de interferencias, proporcionará un aumento considerable en la eficiencia espectral. El principal problema es la diferenciación por parte del VAD de los periodos que corresponden a voz y los periodos de ruido. El VAD debe ser capaz de detectar periodos de voz en los que la potencia de la misma sea muy baja, así como evitar que ruidos de nivel elevado sean considerados como actividad vocal. En MSs montadas en vehículos, el problema se ve agravado por el ruido de fondo producido por el propio vehículo. Para 234

Segunda Parte: El Sistema de Telefonía Móvil Celular GSM

resolver estos problemas se emplea una combinación de comparaciones de umbrales y técnicas en el dominio del espectro. La principal función del VAD, como se ha mencionado, es la diferenciación entre conversación inmersa en ruido y ruido solo, bajo condiciones desfavorables. Además, el VAD debe ser capaz de reconocer la voz y el ruido con mucha rapidez, de manera que se reduzcan los periodos de actividad no deseados y se eviten problemas al inicio y al final de los periodos de voz. El VAD debe ser adecuado al codificador de voz empleado. En GSM, se utiliza en el proceso de decisión una combinación de técnicas espectrales y diferencias de energía. El funcionamiento del transmisor DTX se basa en las decisiones del VAD sobre el carácter de cada trama, es decir, la diferenciación que el VAD hace entre periodos de voz y periodos de ruido. Si el VAD considera que el periodo actual es de voz (VAD=1), el transmisor DTX se encontrará en el estado de transmisión de voz (SPTX). Si el VAD detecta que ha finalizado la actividad vocal (VAD=0), no deshabilita inmediatamente el estado de transmisión de voz, sino que entra en un estado denominado de “hangover” (HGO). La idea es prevenir que periodos de silencio de duración despreciable puedan deshabilitar la transmisión, y evitar que se pierdan tramas en las que sólo una pequeña parte corresponde a voz. La duración del periodo de HGO es de 4 tramas de voz (80 ms). Si el VAD detecta actividad vocal antes de que expire este periodo, se resetea el contador utilizado para recorrer el periodo de HGO (HOCT, “Hangover Counter”). Si se llega al final del periodo de HGO sin que el VAD haya detectado actividad vocal, se habilita un flag de fin de voz (EOS, “End Of Speech”). Las cuatro últimas tramas corresponden entonces a ruido. Entonces sus parámetros, promediados sobre las cuatro tramas, forman una trama de identificador de silencio (SID, “Silence Identifier”), que es enviada al decodificador para que éste se encargue de insertar un ruido denominado “comfort noise”, cuyo objetivo es “rellenar” los periodos de silencio provocados por la deshabilitación de la transmisión. El transmisor entra en un nuevo estado en el que las transmisiones están deshabilitadas. Este estado se conoce como CNU (“Comfort Noise Update”). Las tramas SID se enviarán durante los subsiguientes periodos de silencio en cada multitrama SACCH (es decir, en intervalos de 480 ms), cuando lo pida el subsistema radio mediante el flag NUFT (“Noise Update Flag”). Desde el estado CNU, si el VAD detecta actividad vocal (VAD=1), se pasa directamente al estado SPTX. Por su parte, el receptor DTX funciona en estrecha cooperación con el receptor al completo, ya que utiliza la información del ecualizador Viterbi, del decodificador de canal Viterbi y del detector de errores en el código bloque para generar un flag indicador de trama “mala” (BFI, “Bad Frame Indicator”). Cuando este indicador marca una trama como “mala”, ya sea una trama de voz o una trama SID, entran en juego las funciones de extrapolación de voz o ruido (SE, “Speech/noise Extrapolation”). En caso de que varias tramas consecutivas sean defectuosas, la señal recibida es gradualmente “enmudecida”. El interfuncionamiento de elementos del receptor se completa con el generador de ruido de fondo (“Comfort Noise Generator”), que se activa con la recepción de una trama SID y se encarga de insertar ruido de fondo en los periodos de inactividad vocal. El funcionamiento del receptor DTX está gobernado principalmente por los flags BFI y SID.

235

Segunda Parte: El Sistema de Telefonía Móvil Celular GSM

En primer lugar, en el estado de recepción de voz (SPRX), el detector de tramas SID decide si la trama recibida es una trama de voz o una trama SID y, tras evaluar la calidad de la señal recibida, forma el par (BFI, SID). La detección de las tramas SID depende del tipo de codificador de voz utilizado. Por ejemplo, en el caso del códec utilizado para el canal TCH/FS, las tramas SID tienen los 95 bits de clase C1b iguales a cero tras la codificación de canal. La trama recibida se considera una trama SID si, como máximo, 15 de esos bits son iguales a 1 (se permiten 15 errores). Pero sólo se utilizará para insertar ruido de fondo si hay como máximo un bit corrupto. Si hay más de un bit distinto de cero, se considerará que la trama es “mala” (BFI=1), en cuyo caso se requiere extrapolación del ruido, utilizando tramas SID previas. La operación normal del receptor viene descrita por el par (BFI=0, SID=0). Se reciben entonces tramas de voz no corruptas. En esta situación (estado SPRX) las tramas son decodificadas por el decodificador de voz. Si llega una trama con BFI=1, independientemente de si se considera que está presente voz o ruido, el receptor conmuta al modo de extrapolación de voz o ruido, para mejorar la apreciación subjetiva de la comunicación, en caso de que una única trama se haya corrompido o haya sido “robada” por el canal FACCH. Si aparecen varias tramas consecutivas con BFI=1, el receptor disminuirá gradualmente el nivel de la salida hasta cero. Cuando la calidad del enlace mejora, se encuentra BFI=0, y cuando se vuelve a detectar voz (SID=0) el receptor volverá al estado SPRX. En cambio, si se detecta el par (BFI=0, SID=1), el receptor DTX deberá insertar ruido de fondo basándose en los parámetros de la última trama SID válida. Los parámetros se refrescan con la recepción de nuevos parámetros a través del SACCH, cada 480 ms. Hay que recalcar que tanto la inserción de ruido de fondo como la extrapolación de voz o ruido dependen del codificador utilizado en cada caso, ya que hacen uso de los parámetros trasmitidos por éste para caracterizar la señal vocal (o el ruido). Para una discusión más extensa acerca del VAD, la inserción de ruido de fondo y la extrapolación de voz o ruido, el lector puede remitirse a la referencia [1]. Para tener una visión más completa, recomendamos la consulta de las especificaciones GSM de la serie 06.

236

Tercera Parte Tercera Parte: DESCRIPCIÓN DE LAS FUNCIONES MATLAB®

Tercera Parte: Descripción de las Funciones Matlab

CAPÍTULO I

Capítulo I: Descripción general de la librería I.1.- Introducción 1.2.- Estructura de la librería de funciones

I.1.- Introducción La librería que se ha desarrollado consta de funciones que simulan el funcionamiento de los distintos bloques que componen el sistema transmisor y el sistema receptor estándar utilizados en la interfaz radio (interfaz Um) del sistema GSM, así como el efecto que distintos canales pueden tener sobre la señal de radio que viaja desde el transmisor al receptor. Las rutinas se pueden englobar en distintos niveles, desde las más básicas, que únicamente se basarán en funciones de Matlab® y de sus toolboxes, hasta las más complejas, que harán uso de las rutinas básicas de orden inferior. Se creará así una jerarquía de funciones, de modo que el funcionamiento de las rutinas de más bajo nivel debe ser verificado antes de emplearlas para montar una rutina de un nivel superior. Las funciones de la librería se han desarrollado utilizando la versión 5.1 de Matlab , así como algunas funciones de las librerías de comunicaciones (“Communications Toolbox”, versión 1.2) y procesado de señales (“Signal Processing Toolbox”, versión 4.0.1). Se recomienda utilizar estas versiones o versiones posteriores a la hora de realizar simulaciones empleando la presente librería, ya que de lo contrario podrían aparecer problemas. Por ejemplo, en algunas funciones de la librería se utilizan arrays multidimensionales, cuyo empleo sólo es posible a partir de la versión 5.0 de Matlab®. Otras funciones emplean estructuras de control basadas en SWITCH y CASE, que son posibles a partir de la versión 5.0 de Matlab®. ®

Se eligió Matlab® como lenguaje para desarrollar las funciones por varias razones: -

Es un lenguaje especialmente pensado para la simulación de sistemas, es un lenguaje bastante sencillo, permite trabajar con vectores y matrices de manera muy intuitiva, y existen librerías de funciones específicas para tratamiento de señal, comunicaciones, etc. que serán muy útiles en el desarrollo de la presente librería.

El principal inconveniente de Matlab® es su lentitud, si bien la velocidad no es un aspecto primordial en el desarrollo de las rutinas de esta librería, ya que el objetivo es la simulación de un sistema GSM, y no la programación de rutinas que trabajen en tiempo real.

238

Tercera Parte: Descripción de las Funciones Matlab

En el presente capítulo se va a describir la estructura general de la librería, cuyas funciones se van a agrupar en bloques lógicos con una funcionalidad determinada (modulador, ecualizador, codificación de canal, etc). La descripción detallada de las funciones que componen esta librería se realizará en el capítulo II de esta parte de la memoria. No se ha incluido el código de las funciones, dado que esto supondría un aumento innecesario del tamaño del presente documento. Todas las funciones descritas están incluidas en el CD-ROM que acompaña a la memoria, por lo que es ahí donde debe dirigirse el lector para cualquier consulta acerca del código de las rutinas de la librería.

I.2.- Estructura de la librería de funciones En el siguiente diagrama (figura I.2.1) podemos observar los bloques que describen la transmisión de voz o datos desde su generación en el extremo transmisor hasta su recuperación en el extremo receptor. Este es un diagrama general, en el que hemos representado todos los bloques implicados en el proceso de la transmisión y la recepción. Sin embargo, dadas las características de la presente librería de funciones, no se han realizado funciones pertenecientes a todos estos bloques. TX Datos Codif. Canal

Empaquet. TDMA

Encriptado

Codif. RPE

Modulador GMSK Trx. RF

VAD

Canal Recup. Reloj Generar Ruido

Recup. Portadora Rx. RF

Extrapol. de voz

Decod. RPE

Decod. Canal

Desencript

Desempaq

Ecualiz.

Demod.

RX Datos AGC Figura I.2.1.- Diagrama de bloques de una transmisión de voz o datos.

En concreto, la codificación y decodificación de la señal vocal no pertenecen propiamente a la capa física del interfaz Um, sino a un nivel superior, por lo que no se 239

Tercera Parte: Descripción de las Funciones Matlab

han desarrollado estos bloques, ni los que están directamente relacionados con ellos, tales como la detección de actividad vocal (VAD), la generación de ruido de fondo (“Comfort Noise”) y la extrapolación de segmentos de voz. Asimismo, tampoco se ha desarrollado el encriptado y desencriptado de la señal, ya que estos algoritmos son secretos propiedad de los operadores de red. Tampoco se ha desarrollado la recuperación de la portadora. Se hicieron pruebas con un bucle de enganche en fase (PLL), pero resultaba un proceso muy costoso en términos de tiempo de simulación. Además, aunque las funciones de la librería permiten realizar simulaciones en radiofrecuencia, las simulaciones se harán principalmente con señales en banda base, puesto que las simulaciones en RF son muy costosas tanto computacionalmente como en relación al tiempo que debe emplearse para ellas. Para simular imperfecciones en la recuperación de portadora se podrá introducir un desfase en las sinusoides utilizadas para el paso de RF a frecuencia intermedia y para la demodulación. Al igual que ocurre con la recuperación de portadora, la sincronización de reloj se ha simplificado, utilizando un modelo estadístico, de modo que no es necesario el bucle que aparece en la figura I.2.1. El control automático de ganancia (AGC) se ha incluido en el bloque Receptor de RF, junto con el amplificador de ganancia variable que opera sobre la señal en frecuencia intermedia. De modo que el modelo queda simplificado como se ve en la figura I.2.2.

Codif. Canal

Empaquet. TDMA

Modulador GMSK Trx. RF

Canal Reloj Rx. RF

Decod. Canal

Desempaq

Ecualiz.

Demod.

Figura I.2.2.- Esquema simplificado de una transmisión de voz o datos.

Hay que tener en cuenta que, tras generar cada ráfaga en el bloque de Empaquetado TDMA, los bits pasarán por una codificación diferencial y se pasará la señal de binario a NRZ polar. En el receptor, es el ecualizador el encargado de proporcionar la salida binaria y tras él se realizará la decodificación diferencial.

240

Tercera Parte: Descripción de las Funciones Matlab

Una posible clasificación de las funciones puede establecerse de acuerdo al bloque al que pertenece cada una. En este sentido, existirán funciones de carácter general, que se emplearán en varios bloques o bien en simulaciones globales del sistema.

bingen bin2nrz binadec decabin coddif decoddif diezmar hopping arfcn2f potrafbb

Funciones de carácter general Generación de una matriz de elementos binarios aleatorios. Conversión de formato binario a NRZ. Conversión de binario a decimal. Conversión de decimal a binario. Codificación diferencial. Decodificación diferencial. Diezmado. Cálculo del radiocanal de transmisión o recepción para “frequency hopping”. Conversión de ARFCN a valor de la frecuencia de portadora (en MHz). Cálculo de la potencia de la parte útil de una ráfaga GSM a partir de las componentes en fase y cuadratura.

filgaus gmskmod

Funciones del bloque modulador Diseño del filtro gaussiano. Modulador GMSK.

cuant adc gmskdem

Funciones del bloque demodulador Cuantizador uniforme. Convertidor analógico – digital. Demodulador de cuadratura.

gensec estimsec estimcan ecuvit ecualiz

Funciones del bloque ecualizador Generador de secuencias internas. Generación de secuencias estimadas a partir de la estimación del canal. Estimación del canal y enventanado. Ecualizador Viterbi para señales GMSK. Ecualizador al completo.

codconv pcc codbl tabenths coefcodc codcanal

Funciones del bloque codificador de canal Código convolucional. Código convolucional “pinchado” (“Punctured Convolutional Code”). Código bloque. Define la tabla para el entrelazado del canal TCH/HS. Coeficientes de los polinomios para codificación de canal. Codificación de canal para los distintos canales lógicos de GSM.

genmtcod decovit decodcan

Funciones del bloque decodificador de canal Genera matriz de código para un CC(n,k,K), para utilizarla en el decodificador. Decodificador Viterbi para códigos convolucionales y códigos PCC. Decodificación de canal para los distintos canales lógicos de GSM. 241

Tercera Parte: Descripción de las Funciones Matlab

pathloss matcan canal

burstgen transbts

extraedat

sumperd genruido amplif p12l powramp genmask

convfrec agc

genrel

Funciones del bloque canal de propagación Cálculo de las pérdidas de propagación. Generación de la matriz de coeficientes para los filtros del canal. Canal de propagación dependiente del tiempo, modelo WSSUS. Funciones del bloque Empaquetado TDMA Generación de distintos tipos de ráfagas GSM. Generación de estructuras de multitrama transmitidas por una BTS GSM. Funciones del bloque Desempaquetado TDMA Extracción del campo de datos para ráfagas GSM. Funciones del bloque Transmisor de RF Suma de las pérdidas debidas a cables, filtros, etc. Generación de ruido interno de los elementos del transmisor. Amplificador no lineal tipo “soft limiter”. Cálculo del valor límite de la entrada a partir del punto de compresión de 1 dB para un amplificador no lineal de tipo “soft limiter”. “Power Ramping”. Generación de la máscara para las comprobaciones sobre el “power ramping”. Funciones del bloque Receptor de RF Convertidor de frecuencias (mezclador ideal). Bucle de control automático de ganancia (incluye el amplificador de ganancia variable y el algoritmo de actualización de la ganancia). Funciones del bloque Sincronización Generación de un modelo para la secuencia de reloj.

En el capítulo II se describe cada una de estas funciones.

242

Tercera Parte: Descripción de las Funciones Matlab

CAPÍTULO II

Capítulo II: Descripción de las funciones II.1.- Introducción. Listado alfabético de funciones I1.2.- Funciones del bloque Empaquetado TDMA II.3.- Funciones del bloque Desempaquetado TDMA II.4.- Funciones del bloque Sincronización II.5.- Funciones del bloque Codificador de Canal II.6.- Funciones del bloque Decodificador de Canal II.7.- Funciones del bloque Modulador II.8.- Funciones del bloque Demodulador II.9.- Funciones del bloque Transmisor de RF II.10.- Funciones del bloque Receptor de RF II.11.- Funciones del bloque Canal de Propagación II.12.- Funciones del bloque Ecualizador II.13.- Funciones de carácter general

II.1.- Introducción. Listado alfabético de funciones En el presente capítulo se van a describir las funciones que forman parte de la presente librería. Se presentarán sus parámetros de entrada y salida, se proporcionarán ejemplos de su utilización en el contexto de simulaciones de diversa índole, y, para el caso de funciones de cierta complejidad, se profundizará en su funcionamiento interno. En los siguientes apartados, las distintas funciones se agrupan en bloques lógicos, de acuerdo con lo descrito en el anterior capítulo. El orden en el que se presentarán los distintos bloques será el mismo que se utilizó en el apartado II.2 de la segunda parte de la memoria, al realizar la descripción teórica de la capa física del interfaz radio del sistema GSM. Estos bloques son, como hemos visto: -

Empaquetado TDMA Desempaquetado TDMA Sincronización Codificador de canal Decodificador de canal Modulador Demodulador Trasmisor de RF Receptor de RF Canal de propagación Ecualizador Funciones de carácter general

Con el fin de ofrecer una guía de consulta rápida para un posible lector interesado en una función determinada, ofrecemos a continuación un listado alfabético

243

Tercera Parte: Descripción de las Funciones Matlab

de las funciones de la librería, indicando para cada una de ellas a qué bloque pertenece, de modo que se facilita la búsqueda de la misma en el correspondiente apartado. Función adc agc amplif arfcn2f bin2nrz binadec bingen burstgen canal codbl codcanal codconv coddif coefcodc convfrec cuant decabin decodcan decoddfif decovit diezmar ecualiz ecuvit estimcan estimsec extraedat filgaus genmask genmtcod genrel genruido gensec gmskdem gmskmod hopping matcan

Bloque Demodulador Receptor de RF Transmisor de RF Funciones de Carácter General Funciones de Carácter General Funciones de Carácter General Funciones de Carácter General Empaquetado TDMA Canal de Propagación Codificador de Canal Codificador de Canal Codificador de Canal Funciones de Carácter General Codificador de Canal Receptor de RF Demodulador Funciones de Carácter General Decodificador de Canal Funciones de Carácter General Decodificador de Canal Funciones de Carácter General Ecualizador Ecualizador Ecualizador Ecualizador Desempaquetado TDMA Modulador Transmisor de RF Decodificador de Canal Sincronización Transmisor de RF Ecualizador Demodulador Modulador Funciones de Carácter General Canal de Propagación

Apartado II.8. II.10. II.9. II.13. II.13. II.13. II.13. II.2. II.11. II.5. II.5. II.5. II.13. II.5. II.10. II.8. II.13. II.6. II.13. II.6. II.13. II.12. II.12. II.12. II.12. II.3. II.7. II.9. II.6. II.4. II.9. II.12. II.8. II.7. II.13. II.11. 244

Tercera Parte: Descripción de las Funciones Matlab p12l pathloss pcc potrafbb powramp sumperd tabenths transbts

Transmisor de RF Canal de Propagación Codificador de Canal Funciones de Carácter General Transmisor de RF Transmisor de RF Codificador de Canal Empaquetado TDMA

II.9. II.11. II.5. II.13. II.9. II.9. II.5. II.2.

II.2.- Funciones del bloque Empaquetado TDMA En este bloque se incluyen la función BURSTGEN, encargada de generar las distintas ráfagas de GSM, y la función TRANSBTS, para la generación de estructuras de multitrama de la BTS, incluyendo llamadas al codificador de canal, modulador, etc. burstgen Esta función se encarga de la generación de distintos tipos de ráfagas GSM. Sintaxis Y=burstgen(RAFAGA,ENTRADA1,ENTRADA2)

Dependiendo del tipo de ráfaga a generar, los parámetros de entrada serán unos u otros. Y=burstgen('NB',DATOS,TSC) Y=burstgen('FB') Y=burstgen('SB',SINCROENC) Y=burstgen('AB',DATOS) y=burstgen('DB')

RAFAGA ENTRADA1

ENTRADA2

Y

Parámetros de entrada Indica el tipo de ráfaga que se pretende generar. Dependiendo del tipo de ráfaga, tendrá uno u otro significado. Para ráfagas normales y de acceso, se trata de datos. Para ráfagas de sincronización son los parámetros de sincronización encriptados. En el resto de los casos no se utiliza. Sólo se emplea para el caso de la ráfaga normal. En ENTRADA2 se introduce el TSC (“Training Sequence Code”). Parámetros de salida Ráfaga TDMA de 156 bits generada de acuerdo a los parámetros de entrada. Se da como vector fila.

Los valores que se aceptan para el parámetro RAFAGA son: 'NB': 'FB':

Ráfaga normal (“normal burst”) Ráfaga de corrección de frecuencia (“frequency correction burst”) 245

Tercera Parte: Descripción de las Funciones Matlab 'SB': 'AB': 'DB':

Ráfaga de sincronización (“synchronization burst”) Ráfaga de acceso (“access burst”) Ráfaga de relleno (“dummy burst”)

Dependiendo del tipo de ráfaga, los parámetros que hemos denominado antes ENTRADA1 y ENTRADA2 tendrán diferentes significados, y deberán cumplir distintas condiciones. Describimos a continuación la sintaxis detallada según el tipo de ráfaga. Para el caso de las ráfagas normales, y=burstgen('NB',DATOS,TSC) genera una ráfaga normal a partir de la secuencia binaria de datos encriptados DATOS, cuya longitud es de 116 bits. Esta secuencia de datos encriptrados debe incluir en sus posiciones centrales los “stealing flags” o indicadores de “robo” de la ráfaga, hl y hu. El otro parámetro de entrada corresponde al TSC, que es el código de la secuencia de sondeo, y corresponde a los 3 últimos bits del BSIC de la BTS, expresados en octal. Se emplea para generar la secuencia de sondeo del canal. Para el caso de las ráfagas de corrección de frecuencia, no hay que especificar nada en los parámetros ENTRADA1 y ENTRADA2. El comando y=burstgen('FB') genera una ráfaga de corrección de frecuencia empleando una secuencia fija de 142 bits, todos iguales a cero. En el caso de las ráfagas de sincronización, hay que indicar a BURSTGEN la secuencia de bits de sincronización encriptados. Se hará utilizando el parámetro ENTRADA1. El comando y=burstgen('SB',SINCROENC) genera una ráfaga de sincronización a partir de la secuencia de bits de sincronización encriptados SINCROENC, cuyo tamaño debe ser de 78 bits. La secuencia de sondeo extendida empleada viene definida por la especificación GSM 05.02, y aparece también en el apartado II.2.2. de la segunda parte de la memoria. Para generar una ráfaga de acceso, es necesario introducir una secuencia de datos encriptados de 36 bits. La forma de invocar a la función es entonces y=burstgen('AB',DATOS) donde DATOS es la secuencia de bits encriptados. Se emplea la secuencia de sincronización definida en la recomendación GSM 05.02, que también aparece en el apartado II.2.2. de la segunda parte de la memoria. Por último, la generación de la ráfaga de relleno no precisa el concurso ningún valor para ENTRADA1 ni ENTRADA2. La estructura de la ráfaga generada mediante y=burstgen('DB') es idéntica a la de la ráfaga normal, salvo por el hecho de que los bits que en la ráfaga normal corresponden a datos y secuencia de sondeo, son en este caso generados por BURSTGEN de acuerdo a la recomendación GSM 05.02, tal como se muestra en el apartado II.2.2. de la segunda parte de la memoria. En todos los casos, la salida se dará como vector fila. Funciones relacionadas EXTRAEDAT, POWRAMP, GENMASK,

del bloque Desempaquetado TDMA del bloque Transmisor de RF del bloque Transmisor de RF 246

Tercera Parte: Descripción de las Funciones Matlab

transbts Esta función se encarga de la generación de las estructuras de multitrama transmitidas por una BTS GSM en los distintos intervalos de tiempo de una portadora de radiofrecuencia. Proporciona a la salida las distintas ráfagas moduladas. El objetivo principal de TRANSBTS es servir de apoyo para la simulación 1, que presentamos en el capítulo II de la cuarta parte. Las posibles correspondencias entre canales lógicos y canales físicos que lleva a cabo TRANSBTS son las identificadas como 1, 2, 3, 4 y 5 en el apartado II.2.3 de la segunda parte de la memoria, es decir: 1 2 3 4 5

Un canal TCH/F y su señalización asociada (SACCH) en una multitrama de 26 tramas (MF26). Dos canales TCH/H y su señalización asociada (SACCH) en una multitrama de 26 tramas (MF26). BCCH, FCCH, SCH y 9 bloques de CCCH (AGCH y PCH) en una multitrama de 51 tramas (MF 51). 8 bloques de SDCCH con su señalización asociada (SACCH) en una multitrama de 51 tramas (MF 51). BCCH, FCCH, SCH, 3 bloques de CCCH (AGCH y PCH) y 4 bloques de SDCCH con su señalización asociada (SACCH) en una multitrama de 51 tramas (MF 51).

Sintaxis SALIDA_MOD=transbts(NUM_TRAMAS_TOT,Fc,Fs,BSIC,POTENCIA,CONF,... ...ASIG_FULL,ASIG_HALF,IMPED,DATOS_BCCH,DATOS_CCCH,... ...DATOS_SDCCH8,DATOS_SACCHC8,DATOS_SDCCH4,DATOS_SACCHC4,... ...DATOS_TCHF,DATOS_SACCHF,DATOS_TCHH,DATOS_SACCHH) [SALIDA_MOD,RAFAGADIF]=transbts(...)

NUM_TRAMAS_TOT Fc Fs BSIC POTENCIA CONF

ASIG_TCHFULL

ASIG_TCHHALF

Parámetros de entrada Número total de tramas. Cada trama corresponde a 8 intervalos de tiempo. Frecuencia de la portadora, en Hz. Frecuencia de muestreo, en Hz. “Base Station Identity Code”. Es un vector de dos elementos octales que representan el BSIC de la BTS. Potencia del transmisor, en dBm. Configuración de los intervalos de tiempo de la trama. Es un vector de 8 elementos que indica cuál es la estructura de multitrama soportada por cada intervalo de tiempo de la trama. Vector de 8 elementos que indica si un determinado intervalo de tiempo está asignado (ASIG_TCHFULL = 1) o no (ASIG_TCHFULL = 0) a una comunicación en “full rate” con una estación móvil. Vector de 8 elementos que indica la asignación de los subintervalos de un determinado intervalo de tiempo comunicaciones en “half rate” con estaciones móviles. ASIG_TCHHALF = 0, ningún subintervalo asignado. ASIG_TCHHALF = 1, el primer subintervalo está asignado. 247

Tercera Parte: Descripción de las Funciones Matlab

= 2, el segundo subintervalo está asignado. = 3, ambos subintervalos están asignados. Impedancia, en Ω . Datos codificados del canal BCCH. Datos codificados de los canales CCCH (AGCH y PCH). Datos codificados de los canales SDCCH de una multitrama tipo IV. Datos codificados de los canales SACCH de una multitrama tipo IV. Datos codificados de los canales SDCCH de una multitrama tipo V. Datos codificados de los canales SACCH de una multitrama tipo V. Datos codificados de los canales TCH/F que estén asignados. Datos codificados de los canales SACCH asociados a los TCH/F que estén asignados. Datos codificados de los canales TCH/H que estén asignados. Datos codificados de los canales SACCH asociados a los TCH/H que estén asignados. Parámetros de salida Matriz en la que cada fila corresponde a una ráfaga modulada de salida del transmisor. Matriz en la que cada fila corresponde a los valores binarios de cada ráfaga codificados diferencialmente. Es útil para el cálculo de errores a la salida del ecualizador. Frecuencia de muestreo recalculada, de modo que sea múltiplo entero de 1/T, siendo T el periodo de bit (3.69 µ s). ASIG_TCHHALF ASIG_TCHHALF

IMPED DATOS_BCCH DATOS_CCCH DATOS_SDCCH8 DATOS_SACCHC8 DATOS_SDCCH4 DATOS_SACCHC4 DATOS_TCHF DATOS_SACCHF DATOS_TCHH DATOS_SACCHH

SALIDA_MOD RAFAGADIF

Fs

El parámetro de entrada CONF es un vector de 8 elementos que se utiliza para especificar cuál es la configuración de cada intervalo de tiempo de la trama transmitida por la BTS. Los valores admitidos para cada elemento de CONF son: 1: Sobre el correspondiente intervalo se mapea una multitrama tipo I (TCH/F + SACCH) 2: Se mapea una multitrama tipo II (2 TCH/H + 2 SACCH) 3: Se mapea una multitrama tipo III (BCCH + FCCH + SCH + 9 bloques de CCCH) 4: Se mapea una multitrama tipo IV (8 bloques de SDCCH + 8 SACCH) 5: Se mapea una multitrama tipo V (BCCH + FCCH + SCH + 3 bloques de CCCH + 4 SDCCH + 4 SACCH) Por ejemplo, si se quiere simular el radiocanal baliza de una BTS, el primer intervalo de tiempo (intervalo de tiempo 0) deberá transportar una multitrama MF51 en la que esté “mapeado” el canal BCCH. Por tanto, el primer elemento de CONF deberá ser 3 ó 5. Es más, es obligatorio que en el radiocanal baliza existan también canales SDCCH. Por tanto, si el primer intervalo de tiempo soporta una estructura de multitrama de tipo 3, el segundo intervalo (intervalo de tiempo 1) deberá transportar una estructura de tipo 4, para dar cabida a los canales SDCCH. En cambio, si el primer intervalo transporta una estructura de tipo 5, en la que existen canales SDCCH junto con el BCCH, no es necesaria la configuración tipo 4 para el segundo intervalo, aunque podría asignarse dependiendo de las necesidades del tráfico en la celda en cuestión. El resto de intervalos de tiempo se dedicarán a tráfico (configuraciones 1 ó 2, según si se trata de tráfico a velocidad completa o a velocidad mitad). Presentamos algunos ejemplos de configuración de radiocanales: 248

Tercera Parte: Descripción de las Funciones Matlab

a) Radiocanal baliza con BCCH y SDCCH combinados en el primer intervalo de tiempo y tráfico a velocidad completa en el resto de intervalos: CONF=[5 1 1 1 1 1 1 1];

b) Radiocanal baliza con BCCH y SDCCH en distintos intervalos de tiempo, y tráfico a velocidad completa en el resto de los intervalos: CONF=[3 4 1 1 1 1 1 1];

c) Radiocanal que sólo contiene intervalos de tiempo para tráfico a velocidad completa: CONF=[1 1 1 1 1 1 1 1]; Para identificar qué canales de tráfico están asignados a comunicaciones de tráfico a velocidad completa con estaciones móviles se emplea el vector ASIG_FULL. Por ejemplo, si están asignados los intervalos de tiempo 0 y 3 de una trama cuyos 8 intervalos de tiempo soporten tráfico a velocidad completa (CONF=[1 1 1 1 1 1 1 1]) a sendas comunicaciones con estaciones móviles, deberá especificarse mediante: ASIG_FULL=[1 0 0 1 0 0 0 0];

Para el caso de la identificación de los intervalos de tiempo asignados a comunicaciones de tráfico a velocidad mitad se utilizará el vector ASIG_HALF. Por ejemplo, si el vector ASIG_HALF toma el valor: ASIG_HALF=[1 0 1 3 2 0 0 0];

las tramas pares de los intervalos primero, tercero y cuarto transportarán información de 3 usuarios diferentes, y las tramas impares de los intervalos cuarto y quinto harán lo propio con otros dos usuarios más. Los datos de los distintos canales lógicos implicados deberán ser codificados mediante CODCANAL antes de ser introducidos en TRANSBTS. El formato de los datos codificados dependerá del canal lógico del que se trate. Para datos de BCCH, se introducirán como una matriz (parámetro de entrada DATOS_BCCH), donde cada fila corresponderá a una ráfaga de BCCH y contendrá los 114 bits de datos codificados del canal BCCH para esa ráfaga. La matriz DATOS_BCCH puede obtenerse como salida de la función CODCANAL. Si no existen intervalos de tiempo con configuración 3 ó 5 en la trama, DATOS_BCCH puede ser una matriz vacía. El parámetro DATOS_CCCH será una matriz tridimensional, en la que cada plano corresponderá a los datos codificados de una canal CCCH. Cada fila de un determinado plano contendrá una ráfaga de 114 bits de datos codificados del correspondiente canal CCCH. Cada uno de esos planos puede obtenerse mediante la función CODCANAL. Si la configuración del primer intervalo de tiempo de la trama es de tipo 3, existen 9 bloques de CCCH, por lo que DATOS_CCCH deberá tener 9 planos. Si la configuración de dicho intervalo es de tipo 5, DATOS_CCCH deberá tener 3 planos, ya que sólo existen 3 bloques de CCCH en ese caso. Si el primer intervalo de tiempo no está configurado como tipo 3 ni tipo 5, DATOS_CCCH puede ser un elemento vacío. Si los canales CCCH son AGCH o PCH es transparente para la función TRANSBTS. Esto debería controlarse externamente, en caso de que interese.

249

Tercera Parte: Descripción de las Funciones Matlab

Si algún intervalo de tiempo de la trama sigue la configuración tipo 4, es necesario proporcionar los datos de los 8 canales SDCCH y los 8 SACCH asociados. Esto se hace, respectivamente, mediante los parámetros de entrada DATOS_SDCCH8 y DATOS_SACCHC8. Se trata en ambos casos de matrices tridimensionales, con 8 planos cada una, en las que cada plano puede obtenerse mediante la función CODCANAL aplicada sobre los datos originales del canal lógico en cuestión. Cada fila de un determinado plano de DATOS_SDCCH8 contiene los 114 bits de datos codificados de la correspondiente ráfaga del canal SDCCH en cuestión. Lo mismo puede decirse de DATOS_SACCHC8. Si no existe ningún intervalo de tiempo con configuración tipo 4, ambos parámetros pueden ser vectores vacíos. Si el intervalo de tiempo 0 transporta una multitrama MF51 en la que el BCCH está combinado con SDCCH (configuración tipo 5), se emplearán los parámetros de entrada DATOS_SDCCH4 y DATOS_SACCHC4. En ambos casos se trata de matrices tridimensionales con 4 planos cada una. Los datos codificados contenidos en cada plano tienen idéntico significado al del caso de los parámetros DATOS_SDCCH8 y DATOS_SACCHC8 descritos anteriormente. Si el intervalo de tiempo 0 no está configurado de este modo, los parámetros DATOS_SDCCH4 y DATOS_SACCHC4 pueden ser vectores vacíos. La matriz tridimensional DATOS_TCHF contendrá tantos planos como canales de tráfico de velocidad completa estén asignados a comunicaciones con estaciones móviles (es decir, tantos como “unos” existan en el vector ASIG_FULL). Cada plano contendrá los datos codificados del canal de tráfico TCH/F asignado al móvil en cuestión. Cada plano puede obtenerse codificando los datos originales mediante la función CODCANAL. La codificación dependerá del tipo de canal de velocidad completa utilizado (voz, datos a 14.4 Kbit/s, datos a 9.6 Kbit/s, datos a 4.8 Kbit/s ó datos a 2.4 Kbit/s). Si no hay intervalos de tráfico asignados a estaciones móviles a velocidad completa, la matriz puede estar vacía. Por su parte, cada plano de la matriz tridimensional DATOS_SACCHF contendrá los datos codificados del canal SACCH asociado al TCH/F correspondiente. Tendrá tantos planos como intervalos de tráfico a velocidad completa estén asignados a comunicaciones con estaciones móviles. Cada plano puede obtenerse como salida de la función CODCANAL aplicada sobre los datos originales del canal SACCH en cuestión. Si no hay intervalos de tráfico asignados a estaciones móviles a velocidad completa, la matriz puede estar vacía. La matriz tridimensional DATOS_TCHH contendrá tantos planos como canales de tráfico de velocidad mitad estén asignados a comunicaciones con estaciones móviles, es decir, el número de “1” que existan en el vector ASIG_HALF, más el número de “2” existentes en dicho vector, más dos veces el número de “3” en el mismo, ya que un “3” en ASIG_HALF implica que están asignados los dos “subintervalos”. Cada plano contendrá los datos codificados del canal de tráfico TCH/H asignado al móvil en cuestión. Cada plano puede obtenerse codificando los datos originales mediante la función CODCANAL. La codificación dependerá del tipo de canal de velocidad mitad utilizado (voz, datos a 4.8 Kbit/s ó datos a 2.4 Kbit/s). Si no hay intervalos de tráfico asignados a estaciones móviles a velocidad mitad, la matriz puede estar vacía. 250

Tercera Parte: Descripción de las Funciones Matlab

Por su parte, cada plano de la matriz tridimensional DATOS_SACCHH contendrá los datos codificados del canal SACCH asociado al TCH/H correspondiente. Tendrá tantos planos como intervalos de tráfico a velocidad mitad estén asignados a comunicaciones con estaciones móviles. Cada plano puede obtenerse como salida de la función CODCANAL aplicada sobre los datos originales del canal SACCH en cuestión. Si no hay intervalos de tráfico asignados a estaciones móviles a velocidad mitad, la matriz puede estar vacía. La función TRANSBTS toma los datos codificados de los distintos canales lógicos que intervengan en la configuración del radiocanal (definida mediante la variable de entrada CONF), y los hace corresponder con la ráfaga adecuada de acuerdo a las reglas de “mapeo” que se describieron en el apartado II.2.3 de la segunda parte de la memoria. Las ráfagas se generan realizando una llamada a la función BURSTGEN. A continuación cada ráfaga es sometida a la codificación diferencial y la conversión a formato NRZ. Para ello, TRANSBTS invocará a las funciones CODDIF y BIN2NRZ, respectivamente. Una vez están en formato NRZ, las ráfagas son sometidas a la modulación GMSK definida para GSM. La función TRANSBTS utilizará FILGAUS para la generación de los coeficientes de la respuesta impulsiva del filtro gaussiano, con ancho de banda normalizado 0.3. Se calculará la integral de la respuesta impulsiva del filtro gaussiano, mediante la función CUMSUM de Matlab®, y finalmente se empleará GMSKMOD para modular cada una de las ráfagas. Funciones relacionadas CODCANAL, BURSTGEN, CODDIF, BIN2NRZ, FILGAUS, GMSKMOD,

del bloque Codificación de Canal del bloque Empaquetado TDMA del bloque de Funciones de Carácter General del bloque de Funciones de Carácter General del bloque Modulador del bloque Modulador

Pruebas Las pruebas sobre la función han consistido básicamente en comprobar que las ráfagas se situaban en las posiciones adecuadas a la salida. No tiene sentido reproducir aquí dichas pruebas, ya que no aportan nada a la memoria del Proyecto. El objeto de esta función es servir de apoyo a las simulaciones que se presentarán en la cuarta parte de la memoria. Para obtener un ejemplo de su utilización refiérase el lector a la simulación 1 en el capítulo II de la cuarta parte.

II.3.- Funciones del bloque Desempaquetado TDMA En este bloque solamente se incluye la función EXTRAEDAT, encargada de extraer el campo de datos que se incluye en algunas de las ráfagas de GSM.

251

Tercera Parte: Descripción de las Funciones Matlab

extraedat Esta función se ocupa de la extracción del campo de datos contenido en una ráfaga GSM. Es aplicable a ráfagas que contengan un campo de datos, es decir, a las ráfagas normales, las de sincronización y las de acceso. Sintaxis DATOS=extraedat(RAFAGA_BIN,TIPO_RAFAGA)

RAFAGA_BIN TIPO_RAFAGA DATOS

Parámetros de entrada Vector que representa a la ráfaga. Sus elementos son binarios. Indica el tipo de ráfaga. Parámetros de salida Datos binarios contenidos en la ráfaga de entrada. Se da como vector fila.

Los valores que se aceptan para el parámetro TIPO_RAFAGA son los correspondientes a las ráfagas que contienen un campo de datos: 'NB': 'SB': 'AB':

Ráfaga normal (“normal burst”) Ráfaga de sincronización (“synchronization burst”) Ráfaga de acceso (“access burst”)

El tamaño mínimo de RAFAGA_BIN será de 145 elementos para el caso de ráfagas 'NB' y 'SB', y de 85 elementos para el caso de ráfagas 'AB'. Estos tamaños mínimos aseguran que se puedan extraer todos los bits de datos de la ráfaga. Para las ráfagas que no contienen campo de datos ('DB': ráfaga de relleno y 'FB': ráfaga de corrección de frecuencia), la salida de EXTRAEDAT será un vector vacío. Para las ráfagas normales ('NB') el vector de datos de salida (DATOS) contendrá en sus posiciones centrales (elementos 58 y 59) los “stealing flags” o indicadores de “robo” de la ráfaga (hl y hu, respectivamente). Funciones relacionadas BURSTGEN,

del bloque Empaquetado TDMA.

II.4.- Funciones del bloque Sincronización En un receptor coherente, el demodulador necesita una referencia local de portadora cuya fase sea lo más parecida posible a la de la portadora recibida. Además, si la información transmitida es de naturaleza digital el receptor necesita generar una señal de reloj para controlar en qué instante se muestrea la salida del filtro adaptado. El proceso de generación de las referencias de portadora y de reloj se conoce como sincronización, o recuperación de portadora y de reloj, respectivamente.

252

Tercera Parte: Descripción de las Funciones Matlab

Existen niveles superiores de sincronización, como la sincronización de tramas, multitramas, etc. Estos se consiguen normalmente insertando secuencias de símbolos en la secuencia de información, y no son objeto de las funciones de este bloque. Los esquemas que se emplean para la recuperación de la portadora suelen basarse en bucles cerrados, como el PLL (“Phase Locked Loop”, o “bucle de enganche en fase”), o el bucle de Costas. La simulación de un bucle de enganche en fase mediante Matlab, teniendo en cuenta las frecuencias de portadora con las que trabaja el sistema GSM, es muy costosa en tiempo, y no es un objetivo primordial del presente Proyecto. Además, pueden conseguirse buenos resultados simulando simplemente el desfase de la portadora recuperada y el error en la frecuencia de salida del PLL, empleando posteriormente dichas magnitudes en el proceso de demodulación. De hecho, la función GMSKDEM, perteneciente al bloque Demodulador, está pensada para que sea posible incluir el desfase y el error de frecuencia que simulan las imperfecciones en la recuperación de la portadora como parámetro de entrada. Remítase el lector al apartado II.2.8 para más información acerca de GMSKDEM. Algo similar ocurre con los esquemas habitualmente empleados para la recuperación de la señal de reloj. En este caso, se ha generado una función (GENREL) capaz de simular las posibles imperfecciones en el proceso de recuperación de reloj, generando a su salida una señal de reloj que puede ser utilizada por la señal GMSKDEM para el muestreo de las señales banda base. A continuación describimos la función GENREL. genrel La función GENREL se encarga de la generación de un modelo operacional que simule las posibles imperfecciones en la recuperación del reloj a partir de la señal NRZ. Esas imperfecciones vienen determinadas por los retardos de los pulsos de reloj respecto a los pulsos de un reloj ideal, y pueden describirse a partir de la media (sesgo o “bias”) y la desviación típica del retardo (valor “RMS jitter”). En la figura II.4.1 se compara una señal de reloj imperfecta con un reloj ideal.

Reloj ideal T

∆τ 1

2T

∆τ 2

3T

4T

∆τ i

Figura II.4.1.- Imperfecciones de una señal de reloj respecto a un reloj ideal.

El sesgo o “bias” corresponde al valor medio del retardo de cada pulso respecto a su posición “ideal”.

253

Tercera Parte: Descripción de las Funciones Matlab

Bias = b =

1 N

N

∑ ∆τ i =1

i

El la desviación típica del retardo viene dada por: RMS jitter =

1 N

N

∑ (∆τ i =1

− b)

2

i

La señal de reloj será de más calidad cuanto menor sea el valor “RMS jitter”. Sintaxis [Y,T,TAU]=genrel(Tb,Nb,BIAS,POTJITTER,L)

Parámetros de entrada Tb Periodo de reloj, en s. Nb Número de muestras por periodo de reloj. BIAS Sesgo, valor medio del retardo de los pulsos respecto a la posición “ideal”, en s. POTJITTER Valor cuadrático medio (“potencia”) del retardo de los pulsos respecto a la posición ideal. Corresponde al cuadrado del valor “RMS jitter” definido anteriormente. Vendrá expresado por tanto en s2. L Número de periodos de bit para los que se van a generar pulsos de reloj. Parámetros de salida Y Secuencia de reloj. Su tamaño será de Nb· L elementos. T Eje de tiempos de la secuencia de salida Y. Esta salida es opcional. TAU Posición relativa de los pulsos de la secuencia de reloj Y respecto a su posición “ideal”. Se dará en s. Esta salida es opcional. Se puede solicitar a GENREL que proporcione a su salida, junto con la secuencia de reloj, el eje de tiempos e incluso la posición relativa de los pulsos de la secuencia de reloj respecto al lugar que ocuparían en una secuencia de reloj ideal. Esto último es interesante para utilizarlo con las funciones ADC y GMSKDEM de esta librería. Los impulsos unitarios en la secuencia Y se situarán en posiciones separadas TAU segundos del inicio de cada periodo de bit. TAU se calcula como: TAU

= BIAS + JITTER

donde BIAS es el término de sesgo, y JITTER es una señal aleatoria de media cero calculada internamente, cuya potencia es POTJITTER. Funciones relacionadas ADC, GMSKDEM,

del bloque Demodulador del bloque Demodulador

254

Tercera Parte: Descripción de las Funciones Matlab

Pruebas Se procederá a generar una señal de reloj para un periodo de bit de 3.69 µ s, con una tasa de muestreo de 10 muestras por periodo de bit. El sesgo para la posición de los pulsos será de 2 muestras (lo que equivale a 0.738 µ s), y la desviación estándar de la posición de los pulsos en la secuencia de reloj será de 0.3 µ s, lo que corresponde a un valor cuadrático medio POTJITTER = 9e-14. Se generarán un total de 10000 pulsos de reloj. [y,t,tau]=genrel(3.69e-6,10,0.738e-6,9e-14,10000);

Comprobamos la media de tau, que deberá aproximarse a 0.738 µ s. Se obtiene un valor de 7.3946e-007 s, como vemos bastante aproximado al especificado al llamar a GENREL. Por su parte, la desviación típica que se obtiene es 3.0215e-007 s. En la figura II.4.2 se muestra un “zoom” realizado al principio de la secuencia de reloj. Podemos ver cómo los pulsos de reloj suelen estar separados 2 muestras (el valor de la media o sesgo) respecto al principio de cada bloque de 10 muestras (que corresponde a un periodo de bit).

Figura II.4.2.- Ejemplo de secuencia de reloj.

II.5.- Funciones del bloque Codificador de Canal Las funciones de este bloque se encargan de realizar la codificación de canal para los distintos canales lógicos de GSM. Se han desarrollado funciones para la generación de códigos convolucionales, códigos PCC (“Punctured Convolutional 255

Tercera Parte: Descripción de las Funciones Matlab

Codes”) y los códigos bloque empleados por los canales lógicos de GSM. Existirá además una función de orden superior (CODCANAL) encargada de realizar la codificación completa de los datos para cada canal lógico, incluyendo el entrelazado, tal como se ha descrito en el apartado II.2.6 de la segunda parte de la memoria. A continuación se presentan las distintas funciones de este bloque, describiendo su sintaxis y algunas de las pruebas realizadas para comprobar su correcto funcionamiento. codconv Con CODCONV se realiza la codificación mediante código convolucional. La función aceptará los parámetros necesarios para generar cualquier código convolucional. Sintaxis Hay dos formas de utilizar esta función. Con la primera de ellas se supone que el estado inicial del codificador es nulo y no se proporciona el estado final. Con la segunda, se puede proporcionar un valor inicial al estado del codificador y obtener, además de la secuencia de datos codificados, el estado final del codificador. La posibilidad de definir el estado inicial es muy útil para la decodificación del código convolucional. Cuando tratemos ese tema, veremos que el algoritmo de Viterbi va a necesitar conocer la respuesta del codificador ante una entrada, cuando el codificador se encuentra en cierto estado inicial. SALIDA=codconv(MENS,n,k,K,POLI) [SALIDA,ESTADO_FINAL]=codconv(MENS,n,k,K,POLI,ESTADO_INICIAL)

Parámetros de entrada Secuencia binaria de entrada (“mensaje”). Longitud de cada símbolo de salida. Longitud de cada símbolo de entrada. Longitud obligada del código (“constraint length”). Representa la memoria del codificador, el número de símbolos de entrada que se tienen en cuenta para calcular el siguiente símbolo de salida. POLI Matriz en la que cada fila es un polinomio generador, encargado de generar el correspondiente bit en cada palabra código. Los elementos de cada polinomio deben ser binarios. ESTADO_INICIAL Estado inicial del codificador. Debe ser un vector de (K-1)*k elementos binarios. Es un parámetro opcional. Por defecto, es nulo. Parámetros de salida SALIDA Secuencia binaria codificada. Se dará como vector fila. ESTADO_FINAL Estado final del codificador. Es opcional. Se dará como vector fila. MENS n k K

Los elementos de cada fila de la matriz POLI deben darse en orden ascendente de potencias de z (o D). La primera fila de POLI será el polinomio generador para el bit más significativo de la palabra codificada, mientras que el polinomio representado por la última fila de POLI generará el bit menos significativo de la palabra codificada. La razón para que esto

256

Tercera Parte: Descripción de las Funciones Matlab

sea así es para ser congruentes con la forma en que se definen los polinomios para la codificación de canal en la especificación GSM 05.03. Funciones relacionadas DECOVIT, PCC, GENMTCOD,

perteneciente al bloque Decodificador de Canal perteneciente al bloque Codificador de canal perteneciente al bloque Decodificador de Canal

Pruebas Para comprobar el correcto funcionamiento de CODCONV se realizaron comparaciones con cálculos manuales sobre distintos códigos. Describiremos aquí solamente una de las múltiples pruebas realizadas. En concreto, se trata del ejemplo de la figura II.2.13 del apartado II.2.6 de la segunda parte. Recordemos que se trataba de un código convolucional CC(2,1,3). Los polinomios generadores vienen dados por: g1 ( z ) = 1 + z 2 g2 ( z) = 1 + z + z 2 Hay que tener en cuenta que en este ejemplo, g1(z) se emplea para obtener el bit menos significativo de cada palabra código, mientras que g2(z) sirve para calcular el bit más significativo. Sin embargo, en la matriz POLI que sirve de entrada a CODCONV, la primera fila debe contener el polinomio que genera el bit más significativo de cada palabra código, y así ir descendiendo hasta la última fila, en la que está almacenado el polinomio generador para el bit menos significativo. Por tanto, para generar este código cíclico con la función CODCONV debemos dar los siguientes valores a los parámetros: poli=[1 1 1; 1 0 1]; n=2; k=1; K=3;

El vector de entrada será: mensaje=[1 0 1 0 0 0];

Al realizar la llamada al codificador convolucional: salida=codconv(mensaje,n,k,K,poli);

se obtiene como resultado: salida = 1

1

1

0

0

0

1

0

1

1

0

0

Podemos comprobar que esto coincide con lo que se calculó en el ejemplo de la segunda parte de la memoria. 257

Tercera Parte: Descripción de las Funciones Matlab

Si en lugar de ese vector MENSAJE introducimos: mensaje=[1 0 0 0 0 0];

obtendremos, como en el ejemplo de la segunda parte, la palabra codificada: salida = 1

1

1

0

1

1

0

0

0

0

0

0

pcc Con la función PCC se lleva a cabo la codificación mediante código convolucional “pinchado” (“Punctured Convolutional Code”). Internamente, la función PCC realizará una llamada a CODCONV, con los parámetros adecuados, y a continuación llevará a cabo el “pinchado” de la salida de CODCONV. Sintaxis Al igual que en el caso de CODCONV, hay dos formas de emplear esta función: bien suponiendo un estado inicial nulo del codificador o bien asignando un valor distinto al estado inicial y solicitando a la salida el estado final. SALIDA=pcc(MENS,n,k,K,POLI,PUNCT) [SALIDA,ESTADO_FINAL]=pcc(MENS,n,k,K,POLI,PUNCT,ESTADO_INICIAL)

Parámetros de entrada Secuencia binaria de entrada (“mensaje”). Longitud de cada símbolo de salida. Longitud de cada símbolo de entrada. Longitud obligada del código (“constraint length”). Representa la memoria del codificador, el número de símbolos de entrada que se tienen en cuenta para calcular el siguiente símbolo de salida. POLI Matriz en la que cada fila es un polinomio generador, encargado de generar el correspondiente bit en cada palabra código. Los elementos de cada polinomio deben ser binarios. PUNCT Matriz de “pinchazo” o “puncturing”. Se empleará para eliminar ciertos símbolos de la palabra código (aquellos cuyas posiciones coincidan con ceros de la matriz PUNCT). Los elementos de PUNCT deben ser binarios. ESTADO_INICIAL Estado inicial del codificador. Debe ser un vector de (K-1)*k elementos binarios. Es un parámetro opcional. Parámetros de salida SALIDA Secuencia binaria codificada. Se dará como vector fila. ESTADO_FINAL Estado final del codificador. Es opcional. Se dará como vector fila. MENS n k K

La matriz PUNCT toma la forma descrita en el apartado II.2.6 de la segunda parte. Cada columna tendrá n elementos, tantos como bits tiene cada símbolo de salida. Los 258

Tercera Parte: Descripción de las Funciones Matlab

bits codificados cuya posición coincida con un “1” de la matriz PUNCT pasarán a la salida, mientras que los que coincidan con un “0” serán eliminados. También puede darse como vector. En cualquier caso, los elementos de PUNCT se leerán por columnas para la eliminación de los correspondientes bits de la salida. Funciones relacionadas CODCONV, DECOVIT,

perteneciente al bloque Codificador de Canal perteneciente al bloque Decodificador de Canal

Pruebas Dado que PCC realiza internamente una llamada a la función CODCONV, y se ha comprobado que ésta funciona, las pruebas sobre PCC se limitan a verificar que efectivamente se eliminan los elementos cuyas posiciones correspondan con ceros de la matriz PUNCT. A modo de ejemplo, podemos utilizar el PCC del ejemplo de la figura II.2.26 del apartado II.2.6 de la segunda parte de la memoria. Recordemos que se trataba de un código PCC(2,1,3) con los mismos polinomios generadores empleados para el CC(2,1,3) del ejemplo anterior y con matriz de “puncturing”: 1 1    1 0  Supongamos que el mensaje de entrada es: mensaje=[1 0 0 0 0 0];

Para generar el código, empleamos las siguientes instrucciones: poli=[1 1 1; 1 0 1]; n=2; k=1; K=3; punct=[1 1; 1 0]; salpcc= pcc(mensaje,n,k,K,poli,punct)

Obtenemos: salpcc = 1

1

1

1

1

0

0

0

0

Si comparamos este código con el obtenido por el CC(2,1,3) del ejemplo anterior, vemos que, en efecto, de cada grupo de cuatro bits de ha suprimido el cuarto de ellos, que corresponde con el cero de la matriz PUNCT. salida = 1

1

1

0

1

1

0

0

0

0

0

0

259

Tercera Parte: Descripción de las Funciones Matlab

codbl La función CODBL lleva a cabo la codificación mediante código bloque sistemático binario. Realiza internamente llamadas a las funciones GFDECONV y GFADD de la librería de Comunicaciones de Matlab®. Sintaxis CODIGO=codbl(MENS,N,K,POLIN)

MENS N K POLIN

CODIGO

Parámetros de entrada Secuencia binaria de entrada (“mensaje”). Longitud de la palabra código. Longitud de la palabra mensaje. Polinomio de grado N-K que representa los coeficientes del registro de desplazamiento empleado para generar la palabra código. Los elementos de POLIN deben ser binarios. Parámetros de salida Secuencia binaria codificada.

A diferencia de lo que ocurre con las funciones CODCONV y PCC, los elementos de deben darse en orden decreciente de potencias de D. La razón para esto no es más que el hecho de que, al realizar las funciones, se ha seguido la nomenclatura empleada en la Ref. [1]. POLIN

La codificación se realiza de acuerdo con los pasos descritos en el apartado II.2.6 de la segunda parte, al hablar de códigos cíclicos sistemáticos. Además, se invierten los bits de paridad, tal como se describe en la especificación GSM 05.03 Es decir, los pasos que se siguen son: 1. Realizar un desplazamiento de n-k posiciones sobre la palabra mensaje MENS. 2. Dividir el resultado del primer paso por el polinomio generador POLIN, obteniendo el resto (bits de paridad). Para ello, se realiza una llamada a la función GFDECONV. 3. Sumar el resto de la anterior división al resultado del primer paso, obteniendo el polinomio de palabra código CODIGO. Se utiliza para ello la función GFADD. 4. Invertir los bits de paridad, tal como se especifica en la recomendación GSM 05.03. Funciones relacionadas CODCANAL,

perteneciente al bloque Codificador de Canal

Pruebas Se realizaron diversas pruebas utilizando los códigos empleados por los distintos canales lógicos de GSM. La comprobación consiste en todos los casos en verificar que:

260

Tercera Parte: Descripción de las Funciones Matlab

1. 2.

los primeros k bits de la palabra codificada CODIGO coinciden con los de la palabra mensaje MENS, y el resto de la división de la palabra código entre el polinomio generador debe ser un vector de n-k elementos, todos ellos iguales a 1. Para realizar la división puede emplearse la función GFDECONV de la librería de Comunicaciones de Matlab®, teniendo en cuenta que hay que invertir el orden de los elementos de los vectores que se pasan como entrada a GFDECONV.

Mostraremos aquí la prueba realizada utilizando el código bloque del canal SACCH en el que se incluyen 40 bits de paridad a una palabra de 184 bits, obteniendo una palabra código de 224 bits. El polinomio generador G5bc puede obtenerse como: a=[1 zeros(1,22) 1]; b=[1 zeros(1,16) 1]; b(15)=1; G5bc=fliplr(gfconv(fliplr(a),fliplr(b)));

La codificación se llevará a cabo como sigue: n=224; k=184; datos_sacch=bingen(k); codigo=codbl(mens,n,k,G5bc);

La secuencia mensaje (datos_sacch) se ha generado como un vector binario de elementos aleatorios, utilizando para ello la función BINGEN, que se describe en el apartado II.13. Para realizar las comprobaciones, basta con verificar que los primeros k bits de la palabra codificada codigo coinciden con los de la palabra mensaje datos_sacch, y en segundo lugar, obtener el resto de la división de codigo con el polinomio binario G5bc y comprobar que es un vector de 40 elementos iguales a 1. Para ello, podemos emplear, como dijimos antes, la función GFDECONV. codigo_sacch(1:k)-datos_sacch [qsacch,rsacch]=gfdeconv(fliplr(codigo_sacch),fliplr(G5bc))

Se comprueba que funciona correctamente. El mismo proceso se siguió para el resto de los canales lógicos de GSM que utilizan códigos bloque, obteniéndose siempre resultados satisfactorios. tabenths no es propiamente una función, sino un “script” en el que se ha definido la matriz para el entrelazado del canal TCH/HS. Recordemos que el entrelazado para este caanl lógico se realiza de acuerdo con la siguiente expresión: TABENTHS

i ( B, j ) = c ( n, k )

261

Tercera Parte: Descripción de las Funciones Matlab

donde k = 0, 1, ... 227 es el índice de bit en la n-ésima trama codificada, n = 0, 1, 2 ... es el índice de la trama y B = B0 + 2n + b es el índice del subbloque con un valor inicial de B0. Los parámetros k, j y k se definen mediante TABENTHS. Sintaxis tabenths;

Al tratarse de un “script”, no tiene parámetros de entrada ni de salida. Simplemente define la matriz matriz_entrel_2, en la que la primera columna representa la variable k, la segunda columna la variable j y la tercera columna la b. coefcodc Al igual que TABENTHS, COEFCODC no es una función, sino un “script”. Se emplea para generar los distintos polinomios para la codificación de los distintos canales lógicos, ya sean los utilizados para los códigos bloque o los utilizados para los códigos convolucionales, todos ellos definidos en la especificación GSM 05.03. Internamente, COEFCODC realiza una llamada a la función GFCONV de la librería de Comunicaciones de Matlab®. Sintaxis coefcodc;

Al tratarse de un “script”, no tiene parámetros de entrada ni de salida. Simplemente genera los polinomios para los distintos códigos. Los coeficientes de todos los polinomios así generados van en orden descendente de potencias de la variable D (o z). Nótese que las funciones CODCONV y PCC emplean polinomios cuyos coeficientes vienen dados en orden ascendente de potencias de z, por lo que, para emplear los vectores generados por COEFCODC en CODCONV o en PCC hay que invertir el orden de los elementos de cada polinomio (para ello puede utilizarse la función FLIPLR de Matlab®). Los vectores generados por COEFCODC son los siguientes:

G4bc G5bc G6bc G7bc G0cc G1cc

G2cc

Para códigos bloque Para los canales TCH/FS (bits clase A) y TCH/HS (bits clase A). Para los canales SACCH, FACCH/F, FACCH/H, BCCH, PCH, AGCH, SDCCH, CBCH. Para el canal RACH. Para el canal SCH. Para códigos convolucionales Para los canales TCH/FS, TCH/F14.4, TCH/F9.6, TCH/H4.8, SDCCH, BCCH, PCH, SACCH, FACCH, AGCH, RACH, SCH. Para los canales TCH/FS, TCH/F14.4, TCH/F9.6, TCH/H4.8, SACCH, FACCH, SDCCH, BCCH, PCH, AGCH, RACH, SCH, TCH/F4.8, TCH/F2.4, TCH/H2.4. Para los canales TCH/F4.8, TCH/F2.4, TCH/H2.4. 262

Tercera Parte: Descripción de las Funciones Matlab G3cc G4cc G5cc G6cc

Para los canales TCH/F4.8, TCH/F2.4, TCH/H2.4. Para el canal TCH/HS. Para el canal TCH/HS. Para el canal TCH/HS.

codcanal Esta función se encarga de realizar la codificación de canal para los distintos canales lógicos de GSM. En general, la codificación de canal incluye un código bloque externo para detección de errores, un código convolucional interno para detección y corrección de errores, y técnicas de entrelazado, para hacer que los efectos de los posibles desvanecimientos profundos en el canal de propagación se dispersen sobre varias ráfagas, como se explicó en el apartado II.2.6 de la segunda parte de la memoria. Hay algunos canales lógicos que no utilizan el código bloque externo. Sintaxis CODIGO=codcanal(MENSAJE,CANAL) CODIGO=codcanal(MENSAJE,CANAL,OPT)

MENSAJE

CANAL OPT

CODIGO

Parámetros de entrada Matriz en la que cada fila corresponde a un bloque de longitud adecuada según el canal lógico. Para canales RACH y SCH, MENSAJE será un vector. Canal lógico. Parámetros opcionales. Para el caso del canal RACH, es necesario proporcionar el BSIC, que se incluye en OPT como vector de 6 bits. Parámetros de salida Matriz en la que en cada fila se almacena el resultado de la codificación de canal y entrelazado de la correspondiente fila de MENSAJE.

El canal lógico se especifica mediante la variable de entrada CANAL, que puede tomar los valores: 'tch/fs' 'tch/hs' 'tch/f96' 'tch/f48' 'tch/f24' 'tch/h48' 'tch/h24' 'tch/f144' 'sch' 'rach' 'facch/f' 'facch/h' 'sacch' 'sdcch' 'bcch'

Canal TCH/FS Cada bloque de datos tiene 260 bits. Canal TCH/HS Cada bloque tiene 112 bits. Canal TCH/F9.6 Cada bloque de datos tiene 240 bits. Canal TCH/F4.8 Cada bloque tiene 60 bits. Canal TCH/F2.4 Cada bloque tiene 36 bits. Canal TCH/H4.8 Cada bloque tiene 60 bits. Canal TCH/H2.4 Cada bloque tiene 36 bits. Canal TCH/F14.4 Cada bloque de datos tiene 290 bits. Canal SCH Un solo bloque de 25 bits. Canal RACH Un solo bloque de 8 bits. Canal FACCH/F Cada bloque de datos tiene 184 bits. Canal FACCH/H Cada bloque de datos tiene 184 bits. Canal SACCH Cada b loque de datos tiene 184 bits. Canal SDCCH Codificación idéntica a la del SACCH Canal BCCH Codificación idéntica a la del SACCH 263

Tercera Parte: Descripción de las Funciones Matlab

'agch' 'pch' 'cbch'

Canal AGCH Codificación idéntica a la del SACCH Canal PCH Codificaci ón idéntica a la del SACCH Canal CBCH Codificación idéntica a la del SACCH

Como se ve, dependiendo del valor del parámetro CANAL, los bloques de datos de entrada (columnas de MENSAJE) deberán ser de un tamaño u otro. El canal RACH necesita el BSIC para realizar la codificación de canal. El BSIC se introducirá en CODCANAL mediante el parámetro de entrada OPT. El BSIC se tiene que proporcionar como vector de 6 bits, empezando por el bit más significativo del ”PLNM colour code” y terminando por el bit menos significativo del ”base station colour code”. Funciones relacionadas CODBL, CODCONV, PCC, COEFCODC, TABENTHS, DECODCAN,

perteneciente al bloque Codificador de Canal perteneciente al bloque Codificador de Canal perteneciente al bloque Codificador de Canal perteneciente al bloque Codificador de Canal perteneciente al bloque Codificador de Canal perteneciente al bloque Decodificador de Canal

Pruebas Una vez comprobado que las funciones CODCONV, PCC y CODBL funcionan correctamente, la verificación de CODCANAL queda muy simplificada, limitándose a comprobar que el entrelazado es correcto para cada uno de los canales, y que el tamaño de cada fila de la matriz de salida CODIGO es el que corresponde al tamaño de cada fila de la matriz MENSAJE tras realizar el proceso de codificación adecuado según el canal lógico. Ambas comprobaciones resultan triviales, por lo que no consideramos de interés mostrarlas aquí.

II.6.- Funciones del bloque Decodificador de Canal Las funciones de este bloque se encargan de realizar la decodificación de canal para los distintos canales lógicos de GSM. Se ha desarrollado una función genérica para llevar a cabo la decodificación de códigos convolucionales mediante el algoritmo de Viterbi. Como veremos a continuación, DECOVIT es una función muy versátil, que permite realizar decodificación mediante “hard decision decoding” o “soft decision decoding”, a elección del usuario, así como decodificar códigos convolucionales y códigos PCC. Una función de orden superior (DECODCAN) se encargará de diferenciar la decodificación para los distintos canales lógicos de GSM, llevando a cabo el desentrelazado de la información de las distintas ráfagas, la decodificación del código convolucional interno (mediante una llamada a DECOVIT) y el cálculo del síndrome del código bloque externo, en caso de que el canal lógico incluya este tipo de codificación.

264

Tercera Parte: Descripción de las Funciones Matlab

A continuación, describiremos con más detalle las funciones pertenecientes a este bloque. genmtcod Genera la matriz de código correspondiente a un codificador convolucional CC(n,k,K). La matriz de código es una matriz tridimensional, en la que la primera dimensión recorre los estados posibles de codificador convolucional, la segunda dimensión recorre los posibles símbolos de entrada y en la tercera dimensión se representan los bits de la palabra codificada correspondiente a cada combinación de estado y entrada. La matriz así generada se empleará para la decodificación del CC(n,k,K) mediante el algoritmo de Viterbi (función DECOVIT). GENMTCOD realiza internamente una llamada a la función DECABIN (función de carácter general de la presente librería, descrita en el apartado II.13). Sintaxis MATRIZ=GENMTCOD(n,k,K,POLI)

n k K

POLI

MATRIZ

Parámetros de entrada Longitud de cada símbolo de salida. Longitud de cada símbolo de entrada. Longitud obligada del código (“constraint length”). Representa la memoria del codificador, el número de símbolos de entrada que se tienen en cuenta para calcular el siguiente símbolo de salida. Matriz en la que cada fila es un polinomio generador, encargado de generar el correspondiente bit en cada palabra código. Parámetros de salida Matriz de código.

Funciones relacionadas CODCONV, DECOVIT, DECABIN,

perteneciente al bloque Codificador de Canal perteneciente al bloque Decodificador de Canal función de carácter general

Ejemplo Para el código CC(2,1,3) presentado al describir la función CODCONV, cuyos polinomios venían dados en la matriz poli=[1 1 1; 1 0 1];

la matriz de código se obtendría como: mat_codigo=genmtcod(2,1,3,poli)

obteniéndose:

265

Tercera Parte: Descripción de las Funciones Matlab mat_codigo(:,:,1) = 0 1 1 0

1 0 0 1

mat_codigo(:,:,2) = 0 0 1 1

1 1 0 0

La primera “fila” corresponde al estado 00, la segunda al estado 01, etc. La primera “columna” corresponde a la entrada 0 y la segunda a la entrada 1. Los datos codificados se leerán en la tercera dimensión. Así, para el estado 01 y la entrada 1, hay que seleccionar los elementos de la segunda “fila” y la segunda “columna”: mat_codigo(2,2,:)

y obtendremos ans(:,:,1) = 0

ans(:,:,2) = 1

Esto corresponde al símbolo codificado 01, que es en efecto el que se obtiene como respuesta del codificador del ejemplo ante una entrada 1 cuando su estado inicial es 01, como podemos comprobar utilizando CODCONV, o bien con un sencillo cálculo manual. En efecto, al encontrarse el codificador en el estado 01 y entrar un 1, los elementos sobre los que aplicar los polinomios generadores son 011. El polinomio generador del bit más significativo de la palabra código es [1 1 1], con lo que el bit más significativo resulta del cálculo 1· 0 + 1· 1 + 1· 1 = 0 (puesto que se trata de sumas módulo 2). Por otro lado, el polinomio generador del bit menos significativo es [1 0 1], con lo que el bit menos significativo se calcula como: 1· 0 + 0· 1 + 1· 1 = 1. De este modo tenemos que la palabra código correspondiente es 01. decovit En la función DECOVIT se ha desarrollado el decodificador para códigos convolucionales, basado en el algoritmo de Viterbi, descrito en el apartado II.2.6 de la segunda parte de la memoria. Para desarrollar esta función nos hemos basado en ® CONVDECO de la librería de Comunicaciones de Matlab , incluyendo las modificaciones necesarias para que sea posible decodificar códigos PCC y la inclusión de dos

266

Tercera Parte: Descripción de las Funciones Matlab

modalidades de “soft decision decoding”, una basada en probabilidades de transición y otra en una función de “verosimilitud” (“likelihood”). Sintaxis Existen distintas posibilidades para realizar la llamada a DECOVIT, según si se quiere realizar la decodificación sobre una secuencia binaria (“hard decision decoding”) o sobre una secuencia en la que cada elemento represente un nivel de señal (“soft decision decoding”), si se quiere decodificar un código convolucional o un PCC, si se desea o no una representación del diagrama de Trellis, o si se requiere como salida solamente el mensaje decodificado o también el superviviente o la métrica entre el mensaje original y el superviviente del algoritmo para cada paso del mismo. MENS=decovit(CODIGO,MATRIZ) MENS=decovit(CODIGO,MATRIZ,SOFT,PROB) [MENS,MEDIDA]=decovit(CODIGO,MATRIZ) [MENS,MEDIDA]=decovit(CODIGO,MATRIZ,SOFT,PROB) [MENS,MEDIDA,SUPERVIVIENTE]=decovit(...) [...]=decovit(CODIGO,MATRIZ,SOFT,PROB,PINTAR) [...]=decovit(CODIGO,MATRIZ,SOFT,PROB,PINTAR,PUNCT)

CODIGO MATRIZ SOFT PROB

PINTAR PUNCT

MENS MEDIDA

SUPERVIVIENTE

Parámetros de entrada Mensaje de entrada. Matriz de código (obtenida por GENMTCOD). Indica si la decodificación se realiza utilizando “soft decision”. Si SOFT = 0, el valor de PROB es indiferente. Si SOFT = 1, PROB es la matriz de probabilidades de transición. Si SOFT = 2, PROB indica los valores de “verosimilitud”. Flag para indicar si se realiza la representación del Trellis para la decodificación. Matriz de “pinchazo” o “puncturing” para la decodificación del PCC(n,k,K). Sus elementos deben ser binarios. Parámetros de salida Secuencia binaria que representa el mensaje decodificado. Será un vector columna. Si se emplea “hard decision decoding”, MEDIDA representa la distancia Hamming entre CODIGO y el superviviente final, para cada paso del algoritmo. Si se emplea “soft decision decoding”, MEDIDA representa la verosimilitud para cada paso del algoritmo. En cualquier caso, se trata de un vector columna. Superviviente. Es una matriz en la que cada fila contiene un símbolo codificado, salvo en el caso en que se decodifique un código PCC, en el que se dará como vector fila.

El algoritmo necesita saber qué respuesta se obtiene del codificador para cada estado y cada entrada. Para ello se utiliza la matriz de código (parámetro de entrada MATRIZ) generada por la función GENMTCOD que hemos descrito anteriormente. El vector de entrada CODIGO debe tener un número de elementos acorde con los parámetros del código convolucional representado por MATRIZ. 267

Tercera Parte: Descripción de las Funciones Matlab

La decodificación se hace por defecto usando la técnica conocida como “hard decision decoding”, es decir: basándose en la distancia Hamming como criterio de verosimilitud. Esto implica la asunción de un canal binario simétrico (BSC) entre codificador y decodificador. En este caso, la llamada a la función será: MENS=decovit(CODIGO,MATRIZ)

Si por el contrario se pretende realizar una decodificación basada en “soft decision”, hay que especificar los parámetros de entrada SOFT y PROB. Los elementos del vector CODIGO no son binarios en este caso, sino que representan valores cuantizados a la salida del ecualizador (si el ecualizador ofrece esta posibilidad). La sintaxis a utilizar es entonces: MENS=decovit(CODIGO,MATRIZ,SOFT,PROB)

Se distinguen dos casos para este método: - Si SOFT=1, la matriz PROB especificará las probabilidades de transición. La primera fila expresa los rangos de valores recibidos, la segunda la probabilidad de que un “cero” pase a estar en cada rango, y la tercera la probabilidad de que un “uno” caiga en cada uno de los rangos. PROB tendrá la forma, por ejemplo: PROB = [

-Inf 1/2 1/16

1/5 1/4 2/8

1/2 3/16 5/16

8/10; 1/16; 6/16]

Esto significa que un "cero" tiene una probabilidad de 1/2 de aparecer como una muestra en el rango (-Inf,1/5], 1/4 en el rango (1/5,1/2], 3/16 en (1/2,8/10] y 1/16 en (8/16,+Inf). La interpretación es análoga para el caso del "uno". Internamente, se tomará el logaritmo decimal de estas probabilidades para los cálculos. - Si SOFT=2, la matriz PROB especificará los valores de “confianza” o “verosimilitud”. Al igual que en el caso anterior, la primera fila representa los rangos recibidos. Sin embargo, la segunda fila es el valor de la “verosimilitud” de cada rango respecto al “cero”, y la tercera, la “verosimilitud” de cada rango respecto al “uno”. PROB tendrá la forma, por ejemplo: PROB = [

-Inf 2 -2

-1 1 -1

0 -1 1

1; -2; 2]

Esto significa que una muestra que caiga en el intervalo (-Inf,-1] tiene para nosotros una “verosimilitud” de valor 2 respecto al “cero” y de valor -2 respecto al “uno”, etc. En este caso, se utilizarán estos valores directamente en los cálculos (no se calculará el logaritmo decimal como en el caso anterior). Si SOFT toma cualquier otro valor distinto de 1 ó 2, se empleará “hard decision decoding” y no se tendrá en cuenta la matriz PROB. Además de obtener el mensaje decodificado, DECOVIT puede devolver otros parámetros, en concreto el superviviente del algoritmo y la métrica entre el mensaje de 268

Tercera Parte: Descripción de las Funciones Matlab

entrada y el superviviente, para cada paso del algoritmo. Esta métrica será la distancia Hamming para el caso de “hard decision decoding”, mientras que para “soft decision decoding” será una función de “verosimilitud”. La sintaxis es la siguiente: [MENS,MEDIDA]=decovit(CODIGO,MATRIZ) devuelve la variable de entrada CODIGO y el superviviente final, para

distancia Hamming entre la cada paso de la recuperación

del mensaje. [MENS,MEDIDA]=decovit(CODIGO,MATRIZ,SOFT,PROB) verosimilitud entre CODIGO y el superviviente final, para

devuelve la función de cada paso de la recuperación

del mensaje. devuelve el superviviente del código. Los puntos suspensivos indican que se puede solicitar cualquiera de las posibilidades para los parámetros de entrada. [MENS,MEDIDA,SUPERVIVIENTE]=decovit(...)

Existe además la opción de realizar una representación del diagrama de Trellis para la decodificación. Para ello, debe darse un valor entero positivo al parámetro de entrada PINTAR. En caso contrario, no se dibujará el Trellis. PINTAR representa el número de la figura en la que se realizará la representación del Trellis. En el diagrama de Trellis, los caminos posibles se representan en color amarillo, mientras que los supervivientes se pintan en rojo. En cada nodo del Trellis, se representa en color celeste la métrica acumulada en el camino superviviente que llega al nodo. Hay que resaltar que el cómputo se ralentiza bastante al elegir dibujar el Trellis, por lo que no es adecuado seleccionar esta opción si se pretende decodificar una secuencia muy larga, o realizar decodificación de un gran número de secuencias. La sintaxis para este caso es (los puntos suspensivos indican que se puede solicitar cualquiera de las posibilidades para los parámetros de salida): [...]=decovit(CODIGO,MATRIZ,SOFT,PROB,PINTAR)

Por último, la función DECOVIT permite la decodificación de códigos PCC (“Punctured Convolutional Codes”), empleados en algunos canales lógicos de GSM. Para que DECOVIT lleve a cabo este tipo de decodificación, es necesario darle como parámetro de entrada la matriz de “pinchazo” (“puncturing”) del código PCC (véase la descripción de la función PCC del bloque Codificador de Canal), en la variable PUNCT. La sintaxis es la siguiente (los puntos suspensivos indican que se puede solicitar cualquiera de las posibilidades para los parámetros de salida): [...]=decovit(CODIGO,MATRIZ,SOFT,PROB,PINTAR,PUNCT)

Funciones relacionadas CODCONV, PCC, GENMTCOD,

perteneciente al bloque Codificador de Canal perteneciente al bloque Codificador de Canal perteneciente al bloque Decodificador de Canal

269

Tercera Parte: Descripción de las Funciones Matlab

Funcionamiento interno Dada la complejidad de la función que implementa el algoritmo de Viterbi, hemos creído oportuno ofrecer algunas notas sobre su funcionamiento interno, describiendo las variables más importantes que intervienen en el desarrollo del algoritmo. Estas notas, junto con la descripción del algoritmo que se hizo en el apartado II.2.6 de la segunda parte de la memoria, pueden ayudar a comprender con bastante exactitud los procesos que se llevan a cabo en la función DECOVIT. Para más detalles, lo más indicado es recurrir al código Matlab® de la función. 1) Primero: Se definen tres matrices fundamentales para el desarrollo del algoritmo: §

§

§

TRAZA:

Traza. Cada fila representa un paso de la iteración. Cada columna hace referencia a un estado del código. Cada elemento representa el estado desde el que se llega al estado actual en la presente iteración. Los caminos que se interrumpan en algún paso, se eliminarán de la traza. P_ACUM: Peso Acumulado. La primera fila se refiere a los pesos acumulados, en cada estado, en el paso anterior. Es el peso acumulado del camino superviviente que llega a cada estado desde el inicio del Trellis. La segunda fila, a los pesos del paso actual. Son las métricas de las ramas que llegan desde los estados del paso anterior. Para cada estado se asignará la métrica óptima. En caso de “Hard Decision Decoding” será la mínima distancia Hamming, y en caso de “Soft Decoding” la máxima verosimilitud. SOLUCION: Solución. En la i-ésima fila se almacenan los mensajes decodificados (en decimal) que hacen que se pase de la i-ésima fila de traza a la (i+1)-ésima fila de traza. Inicialmente, la matriz estará vacía, y se irán añadiendo filas conforme se vaya ejecutando cada paso.

2) A continuación, se toma la palabra codificada (variable de entrada CODIGO) y se colocan los elementos por filas de n elementos (siendo n la longitud de una palabra código para el código CC(n,k,K)). El resultado se almacena con el nombre CODIGO. 3) La función entra en el bucle principal: Para cada fila de CODIGO (símbolo de n bits): § §

PRIMERO: Se añade una fila a TRAZA y una fila vacía a SOLUCION. Se incrementa la variable NUM_TRAZA, que indica la fila de TRAZA. SEGUNDO: Se calcula la métrica respecto a todas las ramas que salen de cada estado del trellis, y se almacena. Esto se hace así: • Para cada estado que “estuviera presente” en el trellis en el instante anterior (estos estados están representados en la variable EST_PREVIO) o Para cada una de las 2k entradas posibles: § A: Calcular la palabra codificada para ese “estado” y esa “entrada”. Para ello se utiliza la matriz de código MATRIZ generada por GENMTCOD, que se proporciona como parámetro de entrada al algoritmo. § B: Calcular la métrica (distancia Hamming para “hard decision decoding”, o “verosimilitud” para “soft decision decoding”) entre el símbolo de n bits de entrada (fila de CODIGO) y la palabra 270

Tercera Parte: Descripción de las Funciones Matlab

§

§ §

§

§

codificada de n bits recién obtenida, que representa una rama del trellis. C: Actualizar en caso necesario las matrices TRAZA, SOLUCION y P_ACUM. La condición para la actualización cambia según si se trata de “soft decision decoding” (maximizar la verosimilitud) o “hard decision decoding” (minimizar distancia Hamming).

o Fin • Fin TERCERO: Se eliminan de la traza los estados “que no hayan sobrevivido” (“que no hayan sido continuados”). De este modo aseguramos que en la traza se guardan los supervivientes. CUARTO: Arreglar la primera fila de P_ACUM (en la que se guarda el peso total acumulado en el camino superviviente que llega hasta el estado correspondiente a la columna). Para cada estado (j) que se alcance en la iteración actual, hay que sumar la métrica que lleva del estado de la iteración anterior hasta él (métrica de la rama “seleccionada” para cada estado, que está guardada en la segunda fila de P_ACUM) más el peso acumulado hasta la iteración anterior en el estado desde el que llega el camino. El estado anterior se obtiene como TRAZA(NUM_TRAZA+1,j). Para convertirlo en un índice válido para hacer referencia a columnas se le suma un 1. QUINTO: Comprobar si los supervivientes de la actual iteración tienen en común ramas al principio del trellis, en cuyo caso esas ramas pasarán a la solución definitiva, y podremos reducir el tamaño de las matrices TRAZA y SOLUCION. Para hacer esto, al finalizar cada iteración del bucle principal, comprobamos si en la segunda línea de TRAZA hay como máximo un elemento de valor mayor o igual que 0. Eso significa que todos los supervivientes comparten una misma rama hacia un cierto estado en “t=1”. Entonces, eso ya forma parte de la solución final. • Se calcula cuál es la entrada que provocó esa transición y se incluye en la “siguiente” línea del mensaje decodificado (solución final del algoritmo), que se almacena en la variable de salida MENS. • Si se solicitan como variables de salida los pesos en cada paso de la solución y la palabra codificada superviviente (no la entrada, sino la palabra “válida” más “cercana” en términos de la métrica que se esté utilizando), se calculan también y se almacenan en las correspondientes variables de salida. • Se reduce en 1 fila el tamaño de las matrices TRAZA y SOLUCION (eliminando la primera fila de ambas) y se hace decrecer en 1 la variable NUM_TRAZA ya que ha decrecido el número de filas de TRAZA. • Como puede que converjan más ramas además de la primera, se hace un bucle WHILE y se vuelve a comprobar que en la línea 2 de la TRAZA no exista más de 1 elemento de valor mayor o igual que 0. FIN DEL BUCLE PRINCIPAL

4) Finalmente, se selecciona el camino que tenga menor distancia Hamming o mayor “verosimilitud”. Se recorren las matrices “hacia atrás” para obtener el resultado final. En caso de que al final del algoritmo existan dos caminos con la misma métrica y esa métrica sea la óptima, la función elegirá aleatoriamente uno de los dos.

271

Tercera Parte: Descripción de las Funciones Matlab

Pruebas y ejemplos Una función de tanta complejidad como DECOVIT requiere una batería de pruebas extensa para su verificación, ya que hay que probar la correcta decodificación de secuencias pertenecientes a códigos convolucionales y códigos PCC, utilizando criterios de “soft decision decoding” y de “hard decision decoding”. Además, hay que comprobar las posibilidades de corrección de errores del algoritmo, introduciendo elementos erróneos en la secuencia de entrada. Presentaremos aquí algunas de las comprobaciones más significativas realizadas sobre la función, junto con ejemplos de su funcionamiento y empleo. Decodificación de un código convolucional utilizando “hard decision decoding” De nuevo, tomemos el código CC(2,1,3) que se empleó en el ejemplo de la figura II.12.13 del apartado II.6 de la segunda parte. En el apartado II.5 se utilizó este código para la verificación de la función CODCONV. Recordemos brevemente los comandos utilizados para codificar la secuencia binaria {1 0 1 0 0 0} mediante este código: mensaje=[1 0 1 0 0 0]; poli=[1 1 1; 1 0 1]; codigo=codconv(mensaje,2,1,3,poli);

Se obtuvo así el vector codificado: codigo = 1

1

1

0

0

0

1

0

1

1

0

0

Procedemos a decodificar este vector mediante la función DECOVIT, empleando la técnica de “hard decision decoding”, es decir, introduciendo en DECOVIT el mensaje codificado en binario (no con niveles cuantizados de señal o de verosimilitud). Para llevar a cabo la decodificación, es preciso obtener en primer lugar la matriz de código, mediante GENMTCOD. matriz=genmtcod(2,1,3,poli);

Supongamos que no se introducen errores en la variable codigo (que representa, como hemos visto, el mensaje codificado). Entonces, para realizar la decodificación en los términos propuestos, hay que hacer que el parámetro SOFT valga 0, siendo indiferente en este caso el valor que tome el parámetro PROB. [salida,medida,super]=decovit(codigo,matriz)

Se obtiene entonces:

272

Tercera Parte: Descripción de las Funciones Matlab

salida = 1 0 1 0 0 0

medida = 0 0 0 0 0 0

super = 1 1 0 1 1 0

1 0 0 0 1 0

Como vemos, los bits decodificados por DECOVIT coinciden con los del mensaje original (salvo por la representación en forma de vector columna, que no tiene la menor importancia). En la variable de salida medida, se observa que la distancia Hamming en cada paso del algoritmo ha resultado ser cero, lo cual es lo esperado ya que no se han introducido errores en el mensaje codificado antes de pasarlo a DECOVIT. Finalmente, cada fila de la salida super corresponde con una palabra código del superviviente. Dado que todos los elementos de medida son nulos, es de esperar que los elementos de super coincidan con los de codigo, como en efecto ocurre (se ve claramente colocando las filas de super una tras otra para formar un vector fila). Supongamos que se introduce en el codificador la secuencia mensaje utilizada en el ejemplo que empleamos para ilustrar el algoritmo de Viterbi en el apartado II.2.6 de la segunda parte (figuras II.2.19 a II.2.23). m=[1 0 0 1 1]; x=codconv(m,2,1,3,poli);

La palabra codificada será x = 1

1

1

0

1

1

1

1

0

1

Si introducimos un error en el tercer bit, la palabra código que servirá de entrada a DECOVIT será: 273

Tercera Parte: Descripción de las Funciones Matlab

y = 1

1

1

1

1

1

1

1

0

1

Vamos a solicitar a DECOVIT que represente el diagrama de Trellis del proceso de decodificación. [salida,medida,super]=decovit(y,matriz,0,[],1)

Obtenemos: salida = 1 0 0 1 1

medida = 0 1 0 0 0

super = 1 1 1 1 0

1 0 1 1 1

Como vemos, se ha decodificado correctamente la secuencia original. El vector medida presenta un 1 en su segundo elemento, lo cual es de esperar ya que el bit erróneo en y pertenece al segundo símbolo codificado. El superviviente super coincide con el vector de código original, y por tanto difiere de y en el tercer bit. El diagrama de Trellis se representa en la figura II.6.1. Podemos comprobar que se trata del mismo Trellis de la figura II.2.23 de la segunda parte, salvo por la diferente colocación de los estados en el eje vertical, que están invertidos.

274

Tercera Parte: Descripción de las Funciones Matlab

Est. 1 1

1

2

3

1

Est. 1 0

1

2

3

3

Est. 0 1

0

2

3

1

3

Est. 0 0 0

2

4

1

2

3

Tiempo

Figura II.6.1.- Diagrama de Trellis de la decodificación

Si el número de errores introducidos en la secuencia es 2, la decodificación también se hará correctamente. Mostremos ahora un ejemplo de decodificación incorrecta. Supongamos que se introducen errores en los bits primero, cuarto y octavo de la secuencia codificada. Entonces, la secuencia a la entrada de DECOVIT será: y = 0

1

1

1

1

1

1

0

0

1

Y el resultado que se obtiene de la decodificación: salida = 0 1 1 1 0

medida = 1 0 1 0 0

275

Tercera Parte: Descripción de las Funciones Matlab

super = 0 1 0 1 0

0 1 1 0 1

Observamos que la secuencia obtenida es errónea. Esto es debido a que se ha sobrepasado la capacidad del código para corregir errores. Se han generado demasiados errores en pocos bits, de manera que el decodificador es incapaz de obtener la secuencia correcta. En el diagrama de trellis de la figura II.6.2 se observa que la distancia Hamming del camino elegido es 2, mientras que la del camino “correcto” sería 3.

Est. 1 1

2

2

2

3

Est. 1 0

2

2

3

2

Est. 0 1

1

1

3

3

4

Est. 0 0 0

1

3

2

3

4

Tiempo Figura II.6.2.- Decodificación errónea

Decodificación de un código convolucional utilizando “soft decision decoding” Para el mismo código CC(2,1,3) de los ejemplos anteriores, supongamos como en el primer caso que la entrada al codificador es la secuencia binaria {1 0 1 0 0 0}. La secuencia codificada es, como se ha dicho: codigo = 1

1

1

0

0

0

1

0

1

1

0

0

276

Tercera Parte: Descripción de las Funciones Matlab

Supongamos que el canal introduce una serie de errores, y que el ecualizador es capaz de proporcionar a su salida niveles cuantizados de señal, en lugar de bits. Sean los niveles de cuantización los que mostramos en la figura II.6.3. Niveles de cuantización

Umbrales de decisión

-4

-3 -3.9

-2 -2.9

-1 -1.9

1 -0.9

2 1.1

3 2.1

4 3.1

Figura II.6.3.- Ejemplo para los niveles de cuantización

Si no se dispone de una caracterización precisa de las probabilidades de transición en el canal, se puede elegir realizar la decodificación empleando una medida de la verosimilitud basada en estos umbrales. Para ello, se define una matriz que servirá como parámetro de entrada PROB a DECOVIT. Definimos la matriz como: prob = Columns 1 through 7 -Inf 4.0000 -4.0000

-3.9000 3.0000 -3.0000

-2.9000 2.0000 -2.0000

-1.9000 1.0000 -1.0000

-0.9000 -1.0000 1.0000

1.1000 -2.0000 2.0000

2.1000 -3.0000 3.0000

Column 8 3.1000 -4.0000 4.0000

Como ya se ha dicho anteriormente, la primera fila de la matriz expresa los límites de los intervalos. La segunda fila se interpreta como la “verosimilitud” de que un bit 0 provoque un nivel de señal en un determinado intervalo, y la tercera tiene el mismo significado para el bit 1. Es decir, un 0 tiene una “verosimilitud” igual a 4 de provocar una señal con un nivel entre - ∞ y –3.9, esta medida es 3 si se trata del intervalo comprendido entre –3.9 y –2.9, etc. Supongamos que el ecualizador proporciona a su salida los siguientes valores: codigo_sof=[2 3 1 -3 -4 -3 -4 -2 3 2 -1 -3];

Entonces, la decodificación debe hacerse utilizando SOFT = 2 y la matriz prob anterior. [salida,medida,super]=decovit(codigo_sof,matriz,2,prob,1)

En este caso, se obtiene:

277

Tercera Parte: Descripción de las Funciones Matlab salida = 1 0 1 0 0 0

medida = 5 4 7 -2 5 4

super = 1 1 0 1 1 0

1 0 0 0 1 0

Como se ve, se decodifica correctamente la secuencia original, y los elementos de medida corresponden a la “verosimilitud” de cada palabra decodificada (fila de super). Por ejemplo, al comparar el primer símbolo codificado, {1 1}, con los dos primeros elementos de codigo_sof (señal cuantizada de entrada al decodificador), {2, 3} se comprueba que, de acuerdo con los niveles definidos en prob, la verosimilitud de que el primer 1 proporcione el nivel 2 (que está entre 1.1 y 2.1) es 2, mientras que para el segundo 1, el nivel es 3, que está entre 2.1 y 3.1, por lo que la verosimilitud es 3. La suma de ambas cantidades es la verosimilitud del símbolo {1 1} frente a la entrada cuantizada {2 3}, y el valor es 5. Se puede comprobar que esto se cumple para todos los elementos de las variables de salida. El diagrama de Trellis se representa en la figura II.6.4. Podemos ver cómo el criterio para elegir el camino superviviente es en este caso maximizar la métrica de verosimilitud, en lugar de minimizar la distancia Hamming, como se hacía en el caso de “soft decision decoding”.

278

Tercera Parte: Descripción de las Funciones Matlab

Est. 1 1

1

0

18

19

21

Est. 1 0

9

2

14

17

17

Est. 0 1

5

-7

16

8

15

21

Est. 0 0 0

-5

-3

4

10

19

23

Tiempo Figura II.6.4.- Diagrama de Trellis para “soft decision decoding”.

Decodificación de un código PCC utilizando “hard decision decoding” Para mostrar el funcionamiento de DECOVIT con códigos PCC, tomaremos el PCC(2,13) que presentábamos en la figura II.2.26 del apartado II.2.6 de la segunda parte, y que también se ha utilizado para ilustrar las pruebas de la función PCC de esta librería, en el apartado II.5. Supongamos que la entrada al codificador es : mensaje=[1 0 1 0 0 0];

La salida codificada se obtiene como: poli=[1 1 1; 1 0 1]; punct=[1 1; 1 0]; salpcc= pcc(mensaje,2,1,3,poli,punct)

y es: salpcc = 1

1

1

0

0

1

1

1

0

Para decodificar esta secuencia hay que indicarle a DECOVIT la matriz de “pinchazo” (punct) como parámetro de entrada, así como generar la matriz de código (mediante la función GENMTCOD). 279

Tercera Parte: Descripción de las Funciones Matlab

matriz=genmtcod(2,1,3,poli); [salida,medida,super]=decovit(salpcc,matriz,0,[],1,punct)

Se obtienen los siguientes valores para los parámetros de salida de DECOVIT: salida = 1 0 1 0 0 0

medida = 0 0 0 0 0 0

super = 1

1

1

0

0

1

1

1

0

En el caso de códigos PCC, se ha optado por proporcionar el superviviente como vector fila, ya que no es posible generar una matriz en la que existan filas de distintas longitudes (que corresponden a distintos símbolos codificados, cuya longitud dependerá del número de elementos que se eliminen de cada símbolo por la matriz de “pinchazo”). Se observa que super coincide con salpcc, se recupera el mensaje original y las métricas son cero en cada rama del Trellis. En la siguiente figura se muestra el diagrama de Trellis de la decodificación.

280

Tercera Parte: Descripción de las Funciones Matlab

Est. 1 1

1

2

1

2

2

Est. 1 0

0

2

0

2

2

Est. 0 1

0

2

0

2

2

1

Est. 0 0 0

2

3

2

2

0

0

Tiempo Figura II.6.5.- Diagrama de Trellis para PCC(2,1,3) con “hard decision decoding”

Si introducimos errores en los bits 2º y 5º de salpcc e introducimos esa secuencia en el decodificador, comprobamos que la salida será errónea, mientras que en el caso del CC(2,1,3) eran necesarios 3 errores en la secuencia para que la recuperación no fuera correcta. Esto es debido a que, como se explicó en el apartado II.2.6 de la segunda parte, la distancia del código es menor para un código PCC que para el código convolucional a partir del que éste se genera. salpcc_err = 1

0

1

0

1

1

1

1

0

[salida,medida,super]=decovit(salpcc_err,matriz,0,[],2,punct) salida = 0 1 1 1 1 0

281

Tercera Parte: Descripción de las Funciones Matlab medida = 1 0 0 0 1 0

super = 0

0

1

0

1

1

1

0

0

En el diagrama de Trellis representado en la figura II.6.6, podemos ver cómo todos los nodos en el último paso tienen la misma métrica acumulada. El algoritmo toma aleatoriamente uno de ellos, por lo que la probabilidad de decodificar correctamente esta secuencia es en este caso del 25%.

Est. 1 1

2

1

1

2

2

Est. 1 0

1

2

2

2

2

Est. 0 1

1

1

2

2

2

2

Est. 0 0 0

1

2

2

2

2

2

Tiempo Figura II.6.6.- Diagrama de Trellis del ejemplo

Decodificación de un código PCC utilizando “soft decision decoding” Se va a emplear la misma matriz prob que se ha utilizado para el ejemplo de “soft decision decoding” de códigos convolucionales. Supongamos que a la salida del ecualizador tenemos una señal con los siguientes niveles:

282

Tercera Parte: Descripción de las Funciones Matlab salpcc_soft = 3

4

-2

-3

-4

3

2

4

-1

Si la comparamos con salpcc, podemos comprobar que es más “verosímil” que el tercer elemento de salpcc_soft sea provocado por un 0 que por un 1. En caso de que el ecualizador entregara a su salida una secuencia binaria, probablemente ese bit fuese erróneo, pues en salpcc corresponde a un 1 y no a un 0. Decodifiquemos la señal: [salida,medida,super]=decovit(salpcc_soft,matriz,2,prob,1,punct)

Se obtiene: salida = 1 0 1 0 0 0

medida = 7 -2 7 3 6 1

super = 1

1

1

0

0

1

1

1

0

En el diagrama de Trellis de la figura II.6.7 se observa que la métrica del camino elegido es tan sólo 2 unidades superior a la del segundo camino con mayor métrica acumulada.

283

Tercera Parte: Descripción de las Funciones Matlab

Est. 1 1

9

10

13

11

18

Est. 1 0

5

8

15

15

16

Est. 0 1

7

-9

12

5

17

20

Est. 0 0 0

-7

-5

2

11

21

22

Tiempo

Figura II.6.7.- Diagrama de Trellis de la decodificación de un PCC mediante “soft decision”

Una pequeña variación en los elementos de salpcc_soft podría hacer que la salida fuera errónea. Si, por ejemplo, el tercer elemento de este vector fuese –4, existirían dos caminos al final del algoritmo cuya métrica sería óptima, y el algoritmo elegiría aleatoriamente uno de ellos, de modo que la probabilidad de que la decodificación sea errónea es del 50%. Mostramos este ejemplo a continuación, incluyendo el diagrama de Trellis en la figura II.6.8, para el caso en que la decisión aleatoria hace que la secuencia elegida no sea la correcta. salpcc_soft = 3

4

-4

-3

-4

3

2

4

-1

[salida,medida,super]=decovit(salpcc_soft,matriz,2,prob,2,punct) salida = 1 1 0 0 1 1

284

Tercera Parte: Descripción de las Funciones Matlab medida = 7 4 -1 3 6 1

super = 1

1

0

0

1

1

1

1

0

Est. 1 1

11

12

15

13

20

Est. 1 0

3

10

13

17

18

Est. 0 1

7

-11

10

7

19

18

Est. 0 0 0

-7

-3

4

13

19

20

Tiempo Figura II.6.8.- Decodificación errónea.

decodcan La función DECODCAN se encarga de realizar la decodificación de canal y el desentrelazado para los mensajes de los distintos canales lógicos de GSM. Para ello, es necesario indicar a la función a qué canal lógico pertenece el mensaje a decodificar. DECODCAN identificará entonces el proceso a seguir para realizar la decodificación. En primer lugar generará la matriz de código del correspondiente código convolucional, mediante una llamada a GENMTCOD. A continuación llevará a cabo el desentrelazado, obteniendo palabras código que procederá a decodificar una a una. Realizará una llamada a DECOVIT para la decodificación del código convolucional. Si el canal lógico incluye codificación por código bloque, DECODCAN obtendrá el síndrome del código. Finalmente, proporcionará a la salida el mensaje decodificado. 285

Tercera Parte: Descripción de las Funciones Matlab

Sintaxis [MENSAJE,METRICA,SINDR]=decodcan(CODIGO,CANAL) [MENSAJE,METRICA,SINDR]=decodcan(CODIGO,CANAL,SOFT,PROB) [MENSAJE,METRICA,SINDR]=decodcan(CODIGO,CANAL,SOFT,PROB,OPT)

CODIGO CANAL SOFT PROB

OPT

MENSAJE METRICA SINDR

Parámetros de entrada Matriz de mensajes de entrada. Cada fila corresponde a un bloque codificado. Canal lógico. Indica si la decodificación se realiza utilizando “soft decision”. Si SOFT = 0, el valor de PROB es indiferente. Si SOFT = 1, PROB es la matriz de probabilidades de transición. Si SOFT = 2, PROB indica los valores de “verosimilitud”. Parámetros opcionales para la decodificación. En el caso del canal RACH, en OPT se proporcionará el BSIC como vector de 6 elementos binarios. Parámetros de salida Matriz con los mensajes decodificados. Cada fila corresponde a un mensaje. Métrica calculada por el algoritmo de Viterbi para el código convolucional. Síndrome del código bloque, en caso de que el canal lógico incluya un código bloque en su codificación.

En el parámetro de entrada CODIGO, cada fila corresponde a un bloque codificado. Debido al entrelazado (que se realiza en todos los canales lógicos salvo el RACH y el SCH), cada uno de estos bloques contendrá bits correspondientes a distintos mensajes codificados. La longitud de cada bloque dependerá del canal lógico al que pertenezca. El parámetro de entrada CANAL puede tomar los siguientes valores: 'tch/fs' 'tch/hs' 'tch/f96' 'tch/f48' 'tch/f24' 'tch/h48' 'tch/h24' 'tch/f144' 'sch' 'rach' 'facch/f' 'facch/h' 'sacch' 'sdcch' 'bcch' 'agch'

Canal TCH/FS Cada bloque de código tiene 114 bits. Canal TCH/HS Cada blo que tiene 114 bits. Canal TCH/F9.6 Cada bloque de código tiene 114 bits. Canal TCH/F4.8 Cada bloque tiene 114 bits. Canal TCH/F2.4 Cada bloque tiene 114 bits. Canal TCH/H4.8 Cada bloqu e tiene 114 bits. Canal TCH/H2.4 Cada bloque tiene 114 bits. Canal TCH/F14.4 Cada bloque de código tiene 114 bits. Canal SCH Un solo bloque de 78 bits. Canal RACH Un solo bloque de 36 bits. Canal FACCH/F Cada bloque de código tiene 114 bits. Canal FACCH/H Cada bloque de código tiene 114 bits. Canal SACCH Cada bloque de código tiene 114 bits. Canal SDCCH Decodificación idéntica a la del SACCH Canal BCCH Decodificación idéntica a la del SACCH Canal AGCH Decodificación idéntica a la del SACCH 286

Tercera Parte: Descripción de las Funciones Matlab

'pch' 'cbch'

Canal PCH Decodificación idéntica a la del SACCH Canal CBCH Decodificación idénti ca a la del SACCH

Mediante el parámetro SOFT se indica la técnica que se empleará para la decodificación convolucional, que puede ser “hard decision decoding” o “soft decision decoding”. Los valores que puede tomar SOFT son: - SOFT=0 : En este caso se asume “hard decision decoding”. El criterio para la decodificación será la distancia Hamming. Se asume un canal binario simétrico entre codificador y decodificador. Los elementos de CODIGO deberán ser binarios. En este caso, el valor de PROB es indiferente. - SOFT=1 : Se emplea “soft decidsion decoding”. Los elementos del vector CODIGO son valores cuantizados que nos ofrece el ecualizador a su salida (en el caso de que el ecualizador lo permita). En este caso, la matriz PROB especificará las probabilidades de transición. La primera fila expresa los rangos de valores recibidos, la segunda la probabilidad de que un “cero” pase a estar en cada rango, y la tercera la probabilidad de que un “uno” caiga en cada uno de los rangos, tal como se ha explicado al describir la función DECOVIT. Internamente, DECOVIT tomará el logaritmo decimal de estas probabilidades para los cálculos. - SOFT=2 : Se emplea “soft decidsion decoding”. Los elementos del vector son valores cuantizados que nos ofrece el ecualizador a su salida (en caso de que el ecualizador lo permita). En este caso, la matriz PROB especificará los valores de “confianza” o “verosimilitud”. Tal como se menciona en la descripción de la sintaxis de DECOVIT, la primera fila representa los rangos recibidos, la segunda fila es el valor de la “confianza” de cada rango respecto al “cero”, y la tercera, la “confianza” de cada rango respecto al “uno”. En este caso, se utilizarán estos valores directamente en los cálculos (no se calculará el logaritmo decimal como en el caso anterior). CODIGO

Por defecto se tomará SOFT=0. El canal RACH necesita el BSIC para realizar la codificación de canal. En OPT se introducirá el BSIC como vector de 6 bits, empezando por el bit más significativo del “PLNM colour code” y terminando por el bit menos significativo del “base station colour code”. Además de decodificar la matriz de datos codificados CODIGO, obteniendo la matriz MENSAJE, esta función obtiene la métrica calculada por el algoritmo de Viterbi, en la variable METRICA, así como el síndrome (variable SINDR) obtenido a partir de los bits de paridad (en caso de que la codificación del canal lógico incluya un código bloque). Cada elemento de la variable de salida METRICA contiene el valor de la métrica total (distancia Hamming o medida de “verosimilitud”, según si se emplea “hard decision decoding” o “soft decision decoding”, respectivamente) entre el vector de entrada a DECOVIT y el vector superviviente del algoritmo de Viterbi, correspondiente al mensaje decodificado para esa fila. Esta métrica total es la suma de las métricas obtenidas por DECOVIT para cada paso del algoritmo. Cada fila de la matriz de salida SINDR contiene el síndrome del código bloque para la correspondiente fila de la matriz de mensajes decodificados MENS. DECODCAN 287

Tercera Parte: Descripción de las Funciones Matlab

invierte internamente los bits del síndrome, de modo que un vector síndrome con todos sus elementos iguales a 0 indica que no se han detectado errores por parte del código bloque. Al tratarse de códigos bloque detectores de errores, no se ha programado ninguna función para corregir los errores detectados al calcular el síndrome. Funciones relacionadas CODCANAL, COEFCODC, TABENTHS, DECOVIT

perteneciente al bloque Codificador de Canal perteneciente al bloque Codificador de Canal perteneciente al bloque Codificador de Canal perteneciente al bloque Decodificador de Canal

Pruebas La comprobación del correcto funcionamiento de DECODCAN pasa por verificar que todos los procesos que se llevan a cabo internamente lo hacen correctamente. Anteriormente se ha verificado el correcto funcionamiento de DECOVIT, tanto para códigos convolucionales como para códigos PCC. La comprobación de que el proceso de desentrelazado es correcto es trivial, ya que las propias expresiones matemáticas empleadas para llevarlo a cabo son las contrarias que las empleadas para el entrelazado en el extremo del codificador. Por otro lado, la verificación del cálculo del síndrome tampoco plantea grandes problemas, ya que se trata solamente de emplear la función GFADD de la librería de Comunicaciones tal como se describió en la comprobación del funcionamiento de la función CODBL del bloque Codificador de Canal, si bien en DECODCAN se invierten los bits del síndrome de modo que un vector de síndrome con todos los elementos a cero indique que no se han detectado errores. La verificación global del funcionamiento de DECODCAN debe hacerse en conjunción con CODCANAL, ya que ambas funciones llevan a cabo procedimientos inversos. Se realizaron pruebas sobre los distintos canales lógicos, generando una secuencia binaria pseudoaleatoria a la entrada de CODCANAL, para a continuación hacer pasar la salida de esta función por DECODCAN y comprobar que la secuencia decodificada coincidía con la original. Para no sobrecargar demasiado el texto, mostraremos tan sólo unos ejemplos. En primer lugar se probará la decodificación de un mensaje codificado sin errores, verificando que se obtiene el mensaje original a partir del cual se generó el mensaje codificado, y que las métricas y los síndromes son cero para cada ráfaga del mensaje. Se hará esto para el canal TCH/FS. La comprobación para el resto de los canales es análoga, por lo que no va a ser incluida en la presente memoria. Supongamos que el codificador de voz de velocidad completa entrega al codificador de canal 50 bloques de 260 bits de voz codificada. Dado que la velocidad de este codificador es de 13 kbit/s, esos 50 bloques corresponden a 1 s de conversación. Como esta librería no incluye un codificador de voz, se generarán los bloques como una matriz de 50 filas por 260 columnas de elementos binarios aleatorios utilizando la función BINGEN, perteneciente al grupo de funciones de carácter general.

288

Tercera Parte: Descripción de las Funciones Matlab

A continuación, se emplea CODCANAL para codificar y entrelazar las muestras de “voz”. Hay que indicar a CODCANAL que se trata de bloques pertenecientes al canal lógico TCH/FS. La decodificación se hace en primer lugar suponiendo que no hay errores de transmisión. Vamos a emplear “hard decision decoding”. mensaje=bingen(50,260); codigo=codcanal(mensaje,’tch/fs’); [salida,metrica,sindr]=decodcan(codigo,’tch/fs’);

Debido a que se trata de un gran número de bloques de voz, el proceso de decodificación resulta muy lento1. Se comprueba que la matriz salida coincide elemento por elemento con mensaje, las métricas (variable metrica) son cero, y el síndrome (sindr) es cero para todos los bloques.

II.7.- Funciones del bloque Modulador El esquema lógico que se ha seguido para la realización del modulador GMSK se presenta en la figura II.7.1, que es la misma que la figura II.2.51 del apartado II.2.7 de la segunda parte. cos ω0t cos Integrador

Filtro Gaussiano

I

Señal GMSK

x

+

Señal NRZ

sen Filtro q(t)

x

2πhF

Q

x -sen ω0t

Figura II.7.1.- Esquema del modulador GMSK

Se ha programado una función que calcula la respuesta impulsiva del filtro gaussiano. La integral de esta respuesta impulsiva será uno de los parámetros de entrada para el modulador propiamente dicho. De este modo, el filtro gaussiano y su integral necesitan ser calculados sólo una vez en todo el proceso de simulación. A continuación se describen las funciones diseñadas para llevar a cabo la modulación. filgaus Mediante la función FILGAUS se generan las muestras de la respuesta impulsiva del filtro gaussiano que se aplica a la señal NRZ antes de realizar la modulación MSK. En el diseño del filtro gaussiano se ha empleado la restricción de que su integral debe 1

Para hacernos una idea, en un PC con procesador Pentium® III a 833 MHZ, con 256 Mbytes de RAM y sistema operativo Windows® 98, el proceso de decodificación tardó 638.56 s, es decir más de 10 minutos y medio.

289

Tercera Parte: Descripción de las Funciones Matlab

valer 0.5, como comentábamos al describir la modulación GMSK en el apartado II.2.7 de la segunda parte. Sintaxis Existen dos posibilidades para realizar llamadas a esta función. La diferencia estriba solamente en que con la segunda posibilidad se genera, además de los elementos de la respuesta impulsiva del filtro gaussiano, el eje de tiempo. g=filgaus(Bn,N,L) [g,t]=filgaus(Bn,N,L,T)

Bn N L T g t

Parámetros de entrada Ancho de banda normalizado. Tasa de sobremuestreo (número de muestras por periodo de símbolo). Longitud de la respuesta impulsiva del filtro, en periodos de símbolo. Periodo de bit. Por defecto, será 1. Parámetros de salida Vector con los elementos de la respuesta impulsiva del filtro. Vector con los elementos del eje de tiempo. Si no se especifica un valor para T, t representará periodos de símbolo.

La función FILGAUS permite elegir el ancho de banda normalizado del filtro, así como la tasa de sobremuestreo (número de muestras por periodo de símbolo). La tasa de sobremuestreo N debe ser acorde con la frecuencia de muestreo Fs que se emplee para la generación de la señal modulada (mediante la función GMSKMOD). La relación entre ambas debe ser: Fs =

N T

donde T es el periodo de símbolo. La respuesta impulsiva del filtro gaussiano es truncada, teniendo una longitud total de L intervalos de símbolo. Además, existe la opción de que FILGAUS proporcione también un vector que representa el eje de tiempo. Para ello hay que indicar como parámetro de entrada el periodo de símbolo T. En caso de no indicarse, se tomaría T = 1. Funciones relacionadas GMSKMOD

del bloque Modulador

Pruebas A continuación se incluyen unas representaciones gráficas del filtro gaussiano para distintos valores de Bn (0.2, 0.3, 0.5 e infinito). Las gráficas se han normalizado de modo que, para el caso de Bn = ∞ , la amplitud sea la unidad. Los valores de los otros parámetros utilizados son:

290

Tercera Parte: Descripción de las Funciones Matlab T=1; N=10; L=5; Respuesta impulsiva del filtro gaussiano para distintos valores de Bn 1 Bn=Inf 0.9 Bn=0.5 0.8 0.7

g(t) normalizado

Bn=0.3 0.6 0.5

Bn=0.2

0.4 0.3 0.2 0.1 0 0

1

2 3 Periodos de bit

4

5

Figura II.7.2.- Respuesta impulsiva del filtro gaussiano para distintos valores del ancho de banda normalizado.

gmskmod Con GMSKMOD se realiza propiamente la modulación GMSK. Esta función permite obtener a la salida la señal GMSK, o bien su envolvente compleja (componentes en fase y cuadratura).

Sintaxis [y,Fs]=gmskmod(x,FILTROQ,T,Fs,Eb,FLAG,Fc) [y,Fs,t]=gmskmod(x,FILTROQ,T,Fs,Eb,FLAG,Fc) [y,Fs,t]=gmskmod(x,FILTROQ,T,Fs,Eb,FLAG,Fc,COLA,IMPED)

x FILTROQ T Fs

Eb

Parámetros de entrada Señal NRZ de entrada. Filtro de suavizado de fase (integral del filtro gaussiano calculado con FILGAUS). Periodo de bit (en s). Frecuencia de muestreo (en Hz). La tasa de sobremuestreo utilizada para generar el filtro gaussiano debe ser acorde con la frecuencia de muestreo que se le pasa a GMSKMOD. Y por su parte, la frecuencia de muestreo Fs debe ser acorde con el valor de FLAG. Energía de bit, expresada en mJ (mW· s). 291

Tercera Parte: Descripción de las Funciones Matlab FLAG

Fc COLA

IMPED y

Fs t

Sirve para elegir el tipo de salida de la función. Si FLAG = 1, la salida se dará en RF. Si FLAG = 2, la salida será la envolvente compleja de la señal modulada. Por defecto, se tomará FLAG = 2. Frecuencia de la portadora (en Hz). Este parámetro es opcional para FLAG = 2, pero obligatorio para FLAG = 1. Flag para indicar si hay que incluir al final las muestras correspondientes a los 0.25 últimos bits de cola para obtener la longitud correcta de las tramas TDMA. Si COLA = 0, no se incluirán. Si COLA = 1, se incluirán. Por defecto, COLA = 1. Impedancia, expresada en Ω . Su valor por defecto es 1. Parámetros de salida Si FLAG = 1, y será la señal modulada, en RF. Si FLAG = 2, y representa la envolvente compleja de la señal modulada. Los valores de y se proporcionan en mV. Frecuencia de muestreo recalculada por GMSKMOD, en Hz. Eje de tiempo, en s. Es un parámetro opcional.

Para seleccionar qué tipo de salida se quiere se empleará la variable de entrada Si no se da ningún valor a este parámetro, se tomará por defecto la opción de calcular la envolvente compleja (que es la opción que menos recursos consume). - Si FLAG = 1, la salida será la señal GMSK en RF. Para este valor de FLAG se recomienda un valor de la frecuencia de muestreo Fs que sea, como mínimo, dos veces el valor máximo de la banda de frecuencias que ocupará la señal GMSK. En caso de que FLAG = 1, hay que proporcionar obligatoriamente un valor para la frecuencia de la portadora, Fc. - Si FLAG = 2, la salida será la envolvente compleja de la señal modulada GMSK. Su parte real será la componente en fase y su parte imaginaria, la componente en cuadratura. Para este valor de FLAG se aconseja un valor de Fs que sea, por ejemplo, 40 veces el valor de 1/T, siendo T el periodo de bit. Un valor menor que 37 no proporciona suficiente resolución para los modelos de canal de propagación de la norma GSM 05.05, que precisan una resolución temporal de 1 µ s. Con FLAG = 2 no es necesario proporcionar un valor para la frecuencia de portadora Fc. FLAG.

El valor de la frecuencia de muestreo Fs debe ser un número entero de veces la frecuencia de símbolo (1/T). En caso contrario, la propia función GMSKMOD se encargará de corregir el valor de Fs al siguiente valor que cumpla la condición, y devolverá a la salida el nuevo valor de la frecuencia de muestreo, con el objeto de que sea utilizado en el resto de la simulación. Como se ha dicho anteriormente, el valor de la frecuencia de muestreo deberá elegirse de modo que sea acorde tanto con el valor de FLAG como con el valor de la tasa de sobremuestreo empleada para la generación del filtro gaussiano. La función GMSKMOD precisa como parámetro de entrada la respuesta impulsiva del filtro de suavizado de fase (FILTROQ). Este filtro se calcula como la integral del filtro gaussiano obtenido mediante la función FILGAUS.

292

Tercera Parte: Descripción de las Funciones Matlab

En el apartado II.2.2 de la segunda parte se han descrito las distintas ráfagas empleadas por GSM. La longitud de la ráfaga corresponde a 156.25 periodos de bit. La señal NRZ que se proporciona como entrada para GMSKMOD tiene un elemento por cada periodo de bit, por lo que es necesario que sea GMSKMOD quien introduzca el cuarto de bit que falta para completar la longitud de la ráfaga. Sin embargo, puede que en determinadas simulaciones no interese la inclusión de esas muestras adicionales. La inclusión o no de estas muestras se indica mediante el flag COLA. Un valor 0 indica que no hay que incluirlas. Con cualquier otro valor, se incluirán las muestras correspondientes al cuarto de bit. El valor por defecto es 1. Funciones relacionadas FILGAUS,

del bloque Modulador

Pruebas En la figura II.7.3 se muestran las estimaciones de la densidad espectral de potencia para distintas señales GMSK, y de una MSK. Para generar estas señales se ha empleado la función GMSKMOD con los siguientes parámetros: Fc=914.8e6; %Hz T=3.69e-6; %1 bit -> 3.69 microsegundos Eb=3.0750e-007; Fs=8/T; Bn Inf 0.5 0.3 0.2 0.16

L 1 4 6 8 10

El caso Bn=Inf corresponde a la señal MSK. La señal de entrada es una NRZ polar de elementos aleatorios. Se ha tomado la misma señal de entrada para todos los casos. Se ha generado en todos los casos la envolvente compleja de la señal modulada. Las estimaciones de la densidad espectral de potencia han sido obtenidas mediante la función PSD de Matlab®, que emplea para el cálculo un periodograma promediado con solape. Se han tomado secciones de 1024 muestras, con un solape del 50%, y una ventana Hanning de 1024 muestras. Si se cambia la tasa de sobremuestreo (Fs*T), hay que cambiar el tamaño de las secciones para el cálculo del periodograma (parámetro NFFT de la función PSD). En la figura se observa claramente cómo al disminuir el valor de Bn los lóbulos secundarios sufren una mayor atenuación, con lo cual habrá menos interferencia con los canales adyacentes. Pero esto se hace a expensas de una mayor interferencia entre símbolos conforme disminuye el valor de Bn, lo que hace necesario un mayor número de estados en el ecualizador del receptor para combatir dicha ISI.

293

Tercera Parte: Descripción de las Funciones Matlab

Espectro de potencia de distintas modulaciones GMSK 20 0

Espectro de potencia (dB)

-20

Bn=Inf (MSK)

-40 -60

Bn=0.5

-80 -100

Bn=0.3 Bn=0.2

-120

Bn=0.16

-140 -160 0

0.5 1 1.5 2 D iferencia de frecuencia normalizada (f-fc)*T

2.5

Figura II.7.3.- Espectro de potencia de distintas señales GMSK

A continuación se incluyen dos figuras en las que se ha representado el espectro de potencia en RF de una señal MSK y una señal GMSK con Bn=3. Para la MSK se ha utilizado L=1, mientras que para la GMSK L=3. La frecuencia de la portadora es de 914.8 MHz, y la frecuencia de muestreo elegida corresponde a 2.88 GHz. El valor de la energía de bit se ha elegido de manera que corresponda con una potencia de 50 W. Las gráficas han sido obtenidas con la función SPECTRUM de Matlab®, que calcula el periodograma promediado con solape, de manera similar a como lo hace PSD. Las secciones de señal RF para el cálculo del periodograma se tomaron con tamaño NFFT=2^20 muestras, y se eligió un solape del 50%. Si comparamos las figuras que hemos obtenido a partir de las señales generadas con GMSKMOD, con las figuras 6.17 y 6.18 de la referencia [1], vemos la gran similitud entre ellas.

294

Tercera Parte: Descripción de las Funciones Matlab

Espectro de potencia de una señal MSK 60 50 40 30

dB

20 10 0 -10 -20 -30 913.5

914

914.5 915 Frecuencia (MHz)

915.5

916

Figura II.7.4.- Espectro de potencia de una señal MSK

Espectro de potencia de una señal GMSK con Bn=0.3 60 50 40 30

dB

20 10 0 -10 -20 -30 913.5

914

914.5 915 Frecuencia (MHz)

915.5

916

Figura II.7.5.- Espectro de potencia de una señal GMSK con ancho de banda normalizado igual a 0.3

295

Tercera Parte: Descripción de las Funciones Matlab

II.8.- Funciones del bloque Demodulador Para demodular señales GMSK se puede emplear un demodulador de cuadratura. El demodulador de cuadratura se describió en el apartado II.2.8 de la segunda parte de la memoria. A la hora de la realización, se ha decidido no incluir el filtro de frecuencia intermedia (FI) en el bloque Demodulador, sino en el bloque Receptor de RF, de manera que el esquema del demodulador queda simplificado como se muestra en las figuras II.8.1 y II.8.2.

Demodulador de cuadratura

ADC

I Reloj

RF ó FI

ADC

Q

Control VCO Figura II.8.1.- Esquema del demodulador

LPF

x

I

RF ó FI

90º Voltaje de Control

VCO Sen(ωot+φo)

x

LPF

Q

Figura II.8.2.- Demodulador de cuadratura

El demodulador obtendrá las componentes en fase y cuadratura de la señal GMSK, las hará pasar por un filtro paso bajo (LPF, “Low Pass Filter”) y realizará finalmente la conversión de la señal analógica a formato digital. Esto último consiste en un muestreo de la señal analógica y la posterior cuantización de las muestras obtenidas, y se ha desarrollado en la función ADC, que a su vez realiza una llamada a la función CUANT, encargada de la cuantización de las muestras. Como se sabe, la simulación de señales paso banda es muy costosa computacionalmente, por lo que normalmente se aplica el modelo paso bajo de las señales y sistemas implicados en la simulación. Para ello se emplean las componentes

296

Tercera Parte: Descripción de las Funciones Matlab

en fase y cuadratura de las señales y de las respuestas de los distintos elementos que forman el sistema a simular. Con el fin de permitir la simulación tanto de señales en RF o FI como de sus componentes en fase y cuadratura, la función GMSKDEM, encargada de modelar el demodulador, ofrecerá la posibilidad de que se le indique si la señal de entrada es una señal en RF ó FI, o bien se trata de la envolvente compleja de dicha señal. En el segundo caso, el esquema global del demodulador se ve muy simplificado, como se muestra en la figura II.8.3. Simplemente, se calculará el efecto del filtrado paso bajo y de la conversión a formato digital sobre las componentes en fase y cuadratura de la señal.

xI

LPF

yI

ADC

Reloj

LPF

xQ

ADC

yQ

Figura II.8.3.- Efecto del demodulador sobre las componentes en fase y cuadratura

En cualquier caso, la tasa de muestreo empleada para la conversión de las componentes en fase y cuadratura a formato digital debe ser acorde con la tasa empleada en el ecualizador subsiguiente a la demodulación. Se ofrecerá además la posibilidad de tener en cuenta las imperfecciones en la portadora y el reloj recuperados por el receptor. cuant La función CUANT realiza la cuantización uniforme, necesaria para la conversión de señales analógicas a formato digital llevada a cabo por ADC. Sintaxis Y=cuant(X,NBITS,VSAT,TIPO)

Parámetros de entrada X NBITS VSAT TIPO

Y

Señal de entrada. Número de bits para cuantizar cada muestra de X. Valor de sobrecarga del cuantizador. Tipo de cuantizador: Si TIPO = ‘rise’, el cuantizador será “mid-rise”. Si TIPO = ‘step’, el cuantizador será “mid-step”. Por defecto, se utilizará un cuantizador tipo “mid-rise”. Parámetros de salida Señal cuantizada.

297

Tercera Parte: Descripción de las Funciones Matlab

Funciones relacionadas ADC,

del bloque Demodulador

Pruebas Vamos a presentar un par de ejemplos de la característica entrada – salida del cuantizador, que servirán de demostración de su correcto funcionamiento. En primer lugar, comparemos la característica entrada – salida para un cuantizador de tipo “mid-step” y otro de tipo “mid-rise” que tengan el resto de sus parámetros iguales. Asignemos a esos parámetros los siguientes valores: -

Número de bits por muestra: 3 Valor de sobrecarga: 1

Representaremos los valores de las salidas correspondientes al rango de entradas [-2,2]. Para obtener las señales cuantizadas por el cuantizador “mid-rise” y por el “midstep” las instrucciones son: x=-2:0.005:2; y1=cuant(x,3,1); y2=cuant(x,3,1,'step');

Representamos a continuación las características entrada – salida para ambos casos. Como vemos en la gráfica de la izquierda, correspondiente al “mid-rise”, la “subida” se produce a la mitad de cada uno de los 23 = 8 intervalos en que se divide la entrada, mientras que en la figura de la derecha, que corresponde al “mid-step”, las transiciones se producen en el límite de cada uno de esos intervalos (-0.75, -0.5, -0.25, 0, etc). C uantizador "mid-step" 1

0.8

0.8

0.6

0.6

0.4

0.4

0.2

0.2

Salida

Salida

C uantizador "mid-rise" 1

0

0

-0.2

-0.2

-0.4

-0.4

-0.6

-0.6

-0.8

-0.8

-1 -2

-1.5

-1

-0.5

0 Entrada

0.5

1

1.5

2

-1 -2

-1.5

-1

-0.5

0 Entrada

0.5

1

1.5

2

Figura II.8.4.- Cuantizador “mid-rise” y cuantizador “mid-step”.

En la siguiente figura se ha representado el error de cuantización para ambos casos. El error de cuantización se dispara una vez sobrepasado el valor de sobrecarga de la entrada.

298

Tercera Parte: Descripción de las Funciones Matlab

Error para 3 bits, vsat=1

Error para "mid-rise"

1.5 1 0.5 0 -0.5 -1 -2

-1.5

-1

-0.5

0 Entrada

0.5

1

1.5

2

-1.5

-1

-0.5

0 Entrada

0.5

1

1.5

2

Error para "mid-step"

2 1 0 -1 -2 -2

Figura II.8.5.- Errores de cuantización.

En la zona entre –VSAT y VSAT, el máximo error causado por la cuantización es ± ∆ / 2 , donde ∆ es el tamaño del escalón de cuantización (también conocido como “bit menos significativo”, LSB, “Least Significant Bit”), y está relacionado con VSAT y NBITS mediante la expresión: ∆=

VSAT

2NBITS−1

El ruido de cuantización sigue una distribución normal y puede asumirse que es blanco. adc El convertidor analógico-digital se ha desarrollado en la función ADC. Su objetivo es tomar un vector que representa una señal analógica, muestrear esta señal y finalmente cuantizar las muestras utilizando un determinado número de bits por muestra, para lo que debe hacer uso de la función CUANT. El cuantizador empleado será de tipo “mid-rise”. La función ADC permite además incluir los efectos del desplazamiento (“offset”) de la señal de reloj utilizada para el muestreo. Esto puede resultar interesante si se pretenden simular los efectos de las posibles imperfecciones en la recuperación del reloj por parte del receptor.

299

Tercera Parte: Descripción de las Funciones Matlab

Sintaxis Existen varias posibilidades para realizar la llamada a ADC, según lo que se pretenda simular. Y=adc(X,Rx,Ry,NBITS,VSAT) Y=adc(X,Rx,Ry,NBITS,VSAT,OFFSET) [Y,T]=adc(X,Rx,Ry,NBITS,VSAT,...)

X Rx Ry NBITS VSAT OFFSET

Y T

Parámetros de entrada Señal analógica de entrada. Tasa de muestreo de la señal de entrada. Tasa de muestreo para la señal de salida. Número de bits por muestra para la cuantización. Valor de saturación para el cuantizador. Desplazamiento en el muestreo de la señal analógica, en número de muestras. Parámetro opcional. Parámetros de salida Señal digital de salida. Eje de tiempos. Parámetro opcional.

Y=adc(X,Rx,Ry,NBITS,VSAT) toma la señal "analógica" muestreo es Rx, la muestrea con una tasa Ry y la cuantiza VSAT es el valor de saturación del cuantizador.

de entrada X, cuya tasa de con NBITS bits por muestra.

La tasa de muestreo de la señal de entrada (Rx) debe ser múltiplo de la tasa de muestreo de la señal de salida (Ry), de lo contrario se obtendrá un mensaje de error. Y=adc(X,Rx,Ry,NBITS,VSAT,OFFSET) realiza el mismo proceso desplazamiento de OFFSET muestras al muestrear el vector que

pero incluyendo un representa la señal analógica. Ese desplazamiento se mide en muestras respecto a la primera muestra de cada conjunto de Rx/Ry muestras de la secuencia X. En general, OFFSET es un vector en el que cada elemento representa el desplazamiento de la muestra que se tomará para Y respecto a la primera muestra del correspondiente subconjunto de Rx/Ry muestras de la señal de entrada. Por tanto, la longitud de OFFSET debe ser igual a la de la señal de salida Y. OFFSET puede tomar valores positivos y negativos, salvo en su primer elemento, que no puede ser negativo. Si OFFSET es un vector de un solo elemento, se tomará un offset fijo. Por defecto, OFFSET = 0. [Y,T]=adc(X,Rx,Ry,NBITS,VSAT,...)

proporciona además el vector T, que

representa el eje de tiempos. Funciones relacionadas CUANT, GMSKDEM,

del bloque Demodulador del bloque Demodulador

Pruebas Se mostrarán un par de ejemplos gráficos de la conversión de una señal analógica (una sinusoide) a formato digital mediante ADC. La señal “analógica” 300

Tercera Parte: Descripción de las Funciones Matlab

corresponderá a dos periodos de un seno de amplitud unitaria y frecuencia 1 Hz, con frecuencia de muestreo de 2 KHz. En la figura II.8.6 se muestra la señal “analógica” junto con los valores de la señal digitalizada con 8 bits y 40 muestras por segundo. En la figura II.8.7 se ha reducido la tasa de muestreo hasta 10 Hz, mientras que en la figura II.8.8 se mantiene la tasa de muestreo de 40 Hz, pero el número de bits empleados para la cuantización es 3.

S e ñal analógica y señal discretizada, 8 bits, 40 muestras/seg 1 0.8 0.6 0.4 0.2 0 -0.2 -0.4 -0.6 -0.8 -1 0

0.2

0.4

0.6

0.8

1

Tiempo

Figura II.8.6 Señal analógica y señal discretizada, 8 bits, 10 muestras/seg 1 0.8 0.6 0.4 0.2 0 -0.2 -0.4 -0.6 -0.8 -1 0

0.2

0.4

0.6

0.8

1

Tiempo

Figura II.8.7

301

Tercera Parte: Descripción de las Funciones Matlab

Señal analógica y señal discretizada con 3 bits, 40 muestras/seg 1 0.8 0.6 0.4 0.2 0 -0.2 -0.4 -0.6 -0.8 -1 0

0.2

0.4

0.6

0.8

1

Tiempo

Figura II.8.8

En las gráficas anteriores se ha empleado un reloj ideal. Para mostrar posibles imperfecciones del reloj se emplea el parámetro de entrada OFFSET. La siguiente figura muestra la salida de ADC si se emplea OFFSET constante igual a 49 muestras. Los instantes de muestreo están desplazados respecto a los del ejemplo de la figura II.8.6, si bien se mantiene un espacio regular entre los mismos. Señal analógica y señal discretizada con 8 bits, 40 muestras/seg y offset=49 1 0.8 0.6 0.4 0.2 0 -0.2 -0.4 -0.6 -0.8 -1 0

0.5

1

1.5

2

Figura II.8.9

Si se emplea un OFFSET muy variable se obtiene una salida como la de la figura II.8.10, en la que podemos observar cómo el espacio entre las muestras no es en absoluto constante.

302

Tercera Parte: Descripción de las Funciones Matlab

Señal analógica y señal discretizada con 8 bits, 40 muestras/seg y offset muy variable 1

0.6 0.4

0 -0.2

-0.6 -0.8

0

0.5

1.5

2

Tiempo

Figura II.8.10

No hay mucho más que comentar acerca de la función ADC. gmskdem En GMSKDEM se ha desarrollado un demodulador de cuadratura, incluyendo la posterior digitalización de las componentes en fase y cuadratura mediante la función ADC. La función permitirá demodular una señal de RF o FI, permitiendo además la “demodulación” de señales que vengan representadas por su envolvente compleja (componentes en fase y cuadratura). En este último caso, la función simulará los efectos del filtro paso bajo y el convertidor analógico – digital sobre las componentes en fase y cuadratura de la señal recibida. Esta función permite asimismo simular imperfecciones en la recuperación de la portadora, mediante la inclusión de un parámetro de desfase, así como en la recuperación de reloj, mediante la inclusión de un vector que representa los “offsets” de los pulsos de reloj respecto a sus posiciones en una secuencia de reloj ideal. Este vector puede obtenerse mediante la función GENREL del bloque Sincronización. Sintaxis La siguiente es la expresión más general de la llamada a GMSKDEM. Muchos de los parámetros son opcionales, como se comenta en la tabla subsiguiente. [I,Q]=gmskdem(X,Fs,T,B,A,NR,NBITS,VSAT,OFFSET_REL,DESFASE,ERR_FREC,FLA G,Fsint)

303

Tercera Parte: Descripción de las Funciones Matlab

X

Fs T B

A

NR NBITS VSAT OFFSET_REL

DESFASE

ERR_FREC FLAG

Fsint

I Q

Parámetros de entrada Señal modulada de entrada. Puede ser una señal real modulada en RF o en FI, o bien la envolvente compleja de una señal modulada. Para indicarlo se puede emplear el parámetro FLAG. Los valores de X vendrán dados en mV. Frecuencia de muestreo de la señal de entrada, en Hz. Periodo de bit, en s. Coeficientes del numerador de la función de transferencia del filtro paso de baja del demodulador. Se deben proporcionar en orden decreciente de potencias de z. Coeficientes del denominador de la función de transferencia del filtro paso de baja del demodulador. Se deben proporcionar en orden decreciente de potencias de z. Tasa de muestreo para el convertidor analógico – digital, expresada en número de muestras por periodo de bit. Número de bits por muestra para la cuantización en el convertidor analógico – digital. Valor de saturación del cuantizador del convertidor analógico – digital, en mV. Contiene las posiciones relativas (“offsets”) de los pulsos de la secuencia de reloj respecto al lugar que deberían ocupar en un reloj ideal. Estas posiciones relativas se expresan en s. Si OFFSET_REL es un escalar, se tomará el mismo valor para todos los periodos de bit. Es un parámetro opcional. Por defecto, OFFSET_REL = 0. Simula el desfase en la recuperación de la portadora. Se expresa en radianes. Si DESFASE es un vector de 2 elementos, el primero de ellos afectará a la recuperación de la componente en fase y el segundo para la de la componente en cuadratura. Si es un escalar se utilizará el mismo valor de desfase para ambas componentes. Es un parámetro opcional. Por defecto, DESFASE = 0. Error en frecuencia de la portadora local del demodulador respecto a la frecuencia de la portadora utilizada por el modulador. Se expresa en Hz. Indica si la entrada X corresponde a una señal real en RF ó FI, o bien a la envolvente compleja de una señal modulada. Si FLAG = ‘rf’, X será una señal en RF (o en FI) Si FLAG = ‘bb’, X representará la envolvente compleja de una señal modulada. Por defecto, FLAG = ‘bb’. Frecuencia de portadora con la que debe sintonizarse el demodulador. Este parámetro sólo es útil cuando FLAG = ‘rf’, siendo obligatorio en este caso. Parámetros de salida Canal en fase digitalizado (muestreado y cuantizado). Canal en cuadratura digitalizado (muestreado y cuantizado).

304

Tercera Parte: Descripción de las Funciones Matlab

Si X contiene la representación en banda base (envolvente compleja) de una señal modulada, la función GMSKDEM simula el efecto que tienen los posibles errores en la recuperación de la portadora (en términos de desfase y error en frecuencia), el filtrado paso bajo y la conversión analógico - digital sobre la componente en fase (parte real de X) y la componente en cuadratura (parte imaginaria de X) por separado. El filtro paso bajo definido por los vectores de coeficientes B y A deberá ser diseñado externamente por el usuario de la función, y su ancho de banda deberá permitir recuperar las componentes banda base de la señal, eliminando la componente en 2· Fsint que aparece como consecuencia de la multiplicación de la señal recibida por una portadora de frecuencia Fsint. Como hemos dicho, NR representa el número de muestras por periodo de bit empleado por el convertidor analógico - digital para realizar el muestreo, y corresponderá al número de muestras por periodo de bit para cada canal de salida (I y Q). La tasa de muestreo de la señal de entrada X (Fs) deberá ser múltiplo de NR/T, para un correcto funcionamiento del convertidor analógico - digital. Por su parte, los valores NBITS y VSAT para el convertidor analógico – digital deberán elegirse de acuerdo al máximo y mínimo nivel de señal deseados a la entrada del convertidor. En concreto, puede escogerse VSAT de modo que sea igual al máximo nivel esperado para la señal de entrada (en mV), y NBITS para asegurar un tamaño de escalón de cuantización que permita detectar niveles de señal tan pequeños como el mínimo nivel esperado (en mV). Si se aumenta el valor de NBITS se consigue un escalón menor y, por tanto, mejor sensibilidad y un aumento en la relación señal a ruido. Puede demostrarse que la SNR aumenta aproximadamente 6 dB cuando el número de bits para el cuantizador se incrementa en 1. En cuanto a la simulación de las imperfecciones en la recuperación de la portadora, hemos visto que se lleva a cabo mediante los parámetros DESFASE y ERR_FREC, que representan, respectivamente, el desfase y la diferencia en frecuencia entre las portadoras del modulador y del demodulador. La portadora local generada en el receptor (mediante un proceso de recuperación de portadora a partir de la señal recibida) puede expresarse en general como: Cˆ (t ) = 2 cos(2πfˆc t + φˆ) donde fˆc y φˆ son las estimaciones de la frecuencia de la portadora y del desfase, respectivamente. Los parámetros que hay que proporcionar a GMSKDEM para la simulación de estas imperfecciones se relacionan con los de la anterior ecuación como sigue: DESFASE = φˆ ERR_FREC = Fsint −

fˆc

La función permite además simular un posible desfase interno entre la sinusoide empleada para el canal en fase y la empleada para el canal en cuadratura. Para ello, como hemos dicho, basta con proporcionar DESFASE como un vector de dos elementos. 305

Tercera Parte: Descripción de las Funciones Matlab

En el caso de las componentes en fase y cuadratura, puede demostrarse2 que la forma en que el error en la frecuencia las afecta viene dada por las expresiones:

[ [ (t ) = X (t ) cos[2π ( f + X (t ) sin[2π ( f

] ] − fˆ )t + φˆ ] − fˆ )t + φˆ ]

Xˆ I (t ) = X I (t ) cos 2π ( f c − fˆc )t + φˆI − X (t ) sin 2π ( f − fˆ )t + φˆ Q

Xˆ Q

c

Q

c

I

c

c

I

c

Q

c

Q

donde X I (t ) y X Q (t ) son, respectivamente, la componentes en fase y cuadratura de la señal recibida (parte real y parte imaginaria de X, si X viene dado como envolvente compleja), fc corresponde a Fsint y los subíndices I y Q para el desfase indican la posibilidad de que existan diferentes desfases para la obtención de los canales en fase y cuadratura. A la salida se obtienen los canales en fase (I) y cuadratura (Q) digitalizados, que posteriormente deberán pasar al ecualizador. La tasa de muestreo de la salida debe ser acorde con la empleada para el ecualizador. Funciones relacionadas GMSKMOD, ADC, CUANT, GENREL, ECUALIZ,

del bloque Modulador del bloque Demodulador del bloque Demodulador del bloque Sincronización del bloque Ecualizador.

Pruebas Generaremos una ráfaga normal que modularemos mediante GMSKMOD, obteniendo la señal en RF por un lado y las componentes en fase y cuadratura por otro. Procederemos a la demodulación mediante GMSKDEM. Se comparará la demodulación de la señal de RF con la simulación del efecto del demodulador sobre las componentes en fase y cuadratura de la señal obtenidas mediante GMSKMOD. Para la utilización de la función GMSKDEM es preciso diseñar el filtro paso bajo y proporcionar los valores de NR, NBITS y VSAT para el convertidor analógico – digital. Supongamos que el bloque receptor de RF está diseñado de modo que los niveles máximo y mínimo de señal entregados al demodulador sean, respectivamente, 6 dBm y –19 dBm. Admitiendo la impedancia por defecto (1 Ω ), estos niveles corresponden a tensiones de pico de 89.2308 mV y 5.0178 mV, respectivamente. Si asignamos como valor de sobrecarga del cuantizador el primero de estos valores, y hacemos que el escalón de cuantización sea igual al segundo valor, obtenemos:

2

Véase la Ref. [4].

306

Tercera Parte: Descripción de las Funciones Matlab VSAT = 89.2308 NBITS = 6

Si aumentamos el valor de NBITS obtendremos una mejor relación señal a ruido a la salida del ADC. Tomemos por ejemplo NBITS = 8. Teniendo en cuenta el valor de VSAT, esto se corresponde con una sensibilidad de –36.1442 dBm. Si la potencia de la señal de entrada es inferior a este valor de sensibilidad, la salida cuantizada será cero y no será posible la ecualización. Por otra parte, tomaremos NR = 2 muestras por periodo de bit, tasa de muestreo que coincidirá con la usada por el ecualizador subsiguiente al demodulador. En este ejemplo, diseñaremos un filtro paso bajo que proporcione una amplitud de la respuesta máximamente plana en la banda de paso. Por tanto, podemos tomar un filtro Butterworth o bien un filtro Chebyshev de tipo II. El ancho de banda del filtro debe escogerse de modo que deje pasar toda la información contenida en la banda base y elimine el segundo armónico de Fsint. Para el diseño del filtro y su posterior discretización se emplearán las funciones que proporciona la librería de Procesado de Señal de Matlab®, como BUTTER, CHEBY2 o BILINEAR. Si suponemos que la frecuencia a sintonizar por el demodulador es directamente la frecuencia de RF (no existe por tanto frecuencia intermedia), podemos diseñar el filtro paso bajo con una banda pasante bastante ancha. Consideremos en primer lugar que el filtro paso bajo es un Butterworth de orden 5 con frecuencia de corte de 20 MHz. Se empleará la transformación bilineal para la discretización del filtro. N=5; %Orden del filtro w1=20e6*2*pi; %BW= 20 MHz [b1a,a1a]=butter(N,w1,'s');

En la figura II.8.11 se representa la respuesta en frecuencia del filtro paso bajo analógico. La figura ha sido obtenida mediante la función FREQS de Matlab®.

307

Tercera Parte: Descripción de las Funciones Matlab

Respuesta en frecuencia del filtro paso bajo Butterworth

0

Magnitude

10

10

-5

10

7

8

10 Frequency (radians)

Phase (degrees)

200 100 0 -100 -200 10

7

8

10 Frequency (radians)

Figura II.8.11.- Respuesta en frecuencia del filtro paso bajo analógico Butterworth de orden 5.

Generaremos la señal modulada de modo que su potencia pertenezca al intervalo comprendido entre la máxima y la mínima esperadas a la entrada del demodulador. En primer lugar, generamos la señal utilizando la opción que proporciona para obtener a su salida la señal de RF, para una portadora de frecuencia 914.8 MHz. La potencia de la señal será de 6 dBm, que corresponde con la máxima potencia esperada a la entrada del demodulador, y que ha sido elegida como valor de sobrecarga para el ADC. Este valor de la potencia debe transformarse en energía de bit para ser entregado a GMSKMOD en el parámetro de entrada Eb. GMSKMOD

%Datos originales x=bingen(1,116); tsc=2; xraf=burstgen('nb',x,tsc); %TSC=2 xdif=coddif(xraf); xnrz=bin2nrz(xdif); %Señal modulada Fc=914.8e6 %Hz Fs=3*960e6 %Hz T=3.69e-6 %1 bit -> 3.69 microsegundos pott=10^(6/10); Eb=pott*T N=ceil(Fs*T); L=3;

308

Tercera Parte: Descripción de las Funciones Matlab filtrog=filgaus(0.3,N,L); filtroq=cumsum(filtrog); [y,Fs]=gmskmod(xnrz,filtroq,T,Fs,Eb,1,Fc); %Esa Fs es ahora múltiplo de 1/T

A continuación, obtenemos separadamente la envolvente compleja de la señal modulada, utilizando la opción que para ello nos da GMSKMOD. En este caso, se emplea una frecuencia de muestreo inferior, correspondiente a 8 muestras por periodo de bit, puesto que no es necesario generar una portadora de RF. Es necesario recalcular el filtro gaussiano, debido a la nueva tasa de muestreo. g=filgaus(0.3,8,L); q=cumsum(g); [yiq,Fs2]=gmskmod(xnrz,q,T,8/T,Eb,2);

En la figura II.8.12 se muestran las componentes en fase y cuadratura de la señal modulada (parte real e imaginaria de yiq, respectivamente). Componente I de la señal modulada original

Amplitud (mV)

100 50 0 -50 -100 0

1

2

3

4

5

6 x 10

Componente Q de la señal modulada original

-4

Amplitud (mV)

100 50 0 -50 -100 0

1

2

3 Tiempo (s)

4

5

6 x 10

-4

Figura II.8.12.- Componentes en fase y cuadratura de la señal modulada.

Demodulamos por una parte la señal de RF y por otra la envolvente compleja, utilizando las opciones que proporciona GMSKDEM. Como en ambos casos se han empleado frecuencias de muestreo diferentes, la discretización del filtro paso bajo deberá llevarse a cabo dos veces, una para cada frecuencia de muestreo. Para el caso de la demodulación de la señal generada en RF, la frecuencia de muestreo empleada es Fs. Fp=20e6; %Prewarping [b1,a1]=bilinear(b1a,a1a,Fs,Fp); %Discretización

309

Tercera Parte: Descripción de las Funciones Matlab

Para el caso de la simulación del efecto del demodulador sobre la envolvente compleja de la señal GMSK, la frecuencia de muestreo empleada es Fs2. Fp=20e6; %Prewarping [b2,a2]=bilinear(b1a,a1a,Fs2,Fp);

%Discretización

En ambos casos se ha llevado a cabo la discretización mediante la transformación bilineal (función BILINEAR de la librería de Procesado de Señal de Matlab®), utilizando una frecuencia de “prewarping” de 20 MHz. Para realizar la llamada al demodulador se emplean los siguientes comandos, según se pretenda demodular la señal de RF o simular el efecto del filtrado y el ADC sobre la envolvente compleja. %Demodulación "en RF" [I1,Q1]=gmskdem(y,Fs,T,b1,a1,nr,nbits,vsat,offset_reloj,desfase,err_fr ec,'rf',Fsint); %Demodulación "en BB" [I2,Q2]=gmskdem(yiq,Fs2,T,b2,a2,nr,nbits,vsat,offset_reloj,desfase,err _frec,'bb',Fsint);

Se comprueba que las componentes en fase y cuadratura obtenidas por ambos métodos son prácticamente coincidentes, si bien existe un pequeño error debido a que la diferencia en las tasas de muestreo afecta tanto a la generación del filtro gaussiano del modulador como a la discretización del filtro paso bajo del demodulador. Este pequeño error puede controlarse mediante el orden y el ancho de banda del filtro paso bajo del demodulador. En la figura II.8.13 se muestra una comparativa de las componentes en fase y cuadratura de la señal demodulada por ambos métodos. Las líneas azules corresponden a las secuencias I1 y Q1 (resultado de la demodulación sobre la señal de RF), mientras que las líneas rojas representan las señales I2 y Q2 (resultado de simular el efecto del demodulador sobre la envolvente compleja de la señal modulada). Si bien las señales no son exactamente coincidentes, podemos apreciar que la forma de la onda es muy similar en ambos casos. Si comparamos esta figura con la representación de las componentes IQ de la figura II.8.12, podemos observar que las componentes IQ originales tienen una amplitud igual al doble de la amplitud de las componentes IQ de salida del demodulador. Esto es debido al efecto de la multiplicación por la portadora que se lleva a cabo en el demodulador, efecto que es tenido en cuenta también si se lleva a cabo la simulación del efecto del demodulador sobre la envolvente compleja de la señal modulada.

310

Tercera Parte: Descripción de las Funciones Matlab

Comparación de las componentes I

Amplitud (mV)

100

50

0

-50 0

1

2

3

4

5

6 x 10

Comparación de las componentes Q

-4

Amplitud (mV)

50

0

-50 0

1

2

3 Tiempo (s)

4

5

6 x 10

-4

Figura II.8.13.- Comparación de las componentes I-Q demoduladas por ambos métodos.

Finalmente, hacemos uso de la función ECUALIZ, del bloque Ecualizador, para realizar la ecualización de ambas salidas. Comparando la salida del ecualizador con los valores binarios de la ráfaga codificada diferencialmente que es la entrada al modulador (xdif), se observa que se ha recuperado la secuencia original perfectamente. %Ecualización de la obtenida demodulando RF iq1=I1+sqrt(-1)*Q1; [yecual1,metric1]=ecualiz(5,2,iq1,'nb',tsc); %Ecualización de la obtenida demodulando BB iq2=I2+sqrt(-1)*Q2; [yecual2,metric2]=ecualiz(5,2,iq2,'nb',tsc);

Si repetimos el experimento para una señal de entrada al demodulador cuya potencia sea inferior al la sensibilidad del ADC (que es –36.1442 dBm, como se ha mencionado anteriormente), observamos que en efecto las componentes en fase y cuadratura recuperadas por GMSKDEM son cero, y por tanto la ecualización de la señal no es posible, obteniéndose a la salida una secuencia errónea. Repetimos el experimento con un filtro Chebyshev de tipo II, utilizando la misma señal modulada original de potencia 6 dBm. El valor del rizado (“ripple”) en la banda de rechazo será de 20 dB, el orden del filtro será 5 y se utilizará la misma frecuencia de corte que se empleó para el filtro Butterworth.

311

Tercera Parte: Descripción de las Funciones Matlab N=5; %Orden del filtro aten=20; w1=20e6*2*pi; %BW= 20 MHz [b3a,a3a]=cheby2(N,aten,w1,'s');

En la figura II.8.14 se muestra la respuesta en frecuencia del filtro paso bajo, obtenida mediante la función FREQS.

Magnitude

10

10

10

Respuesta en frecuencia del filtro paso bajo C hebyshev tipo II

0

-2

-4

10

7

8

10 Frequency (radians)

Phase (degrees)

200 100 0 -100 -200 10

7

8

10 Frequency (radians)

Figura II.8.14.- Respuesta en frecuencia de un filtro paso bajo Chebyshev tipo II de orden 5 y con un rizado en la banda de rechazo de 20 dB.

La discretización del filtro se lleva a cabo utilizando la transformación bilineal (función BILINEAR). En la figura II.8.15 se muestra la comparativa entre las componentes IQ obtenidas al demodular la señal en RF (línea azul) y las obtenidas al simular el efecto del demodulador sobre la envolvente compleja de la señal modulada (línea roja).

312

Tercera Parte: Descripción de las Funciones Matlab

Comparación de las componentes I

Amplitud (mV)

100

50

0

-50 0

1

2

3

4

5

6 x 10

Comparación de las componentes Q

-4

Amplitud (mV)

50

0

-50 0

1

2

3 Tiempo (s)

4

5

6 x 10

-4

Figura II.8.15.- Comparativa de las componentes IQ para ambos métodos, utilizando un filtro paso bajo Chebyshev tipo II.

De nuevo, se realiza la ecualización utilizando la función ECUALIZ y se comprueba que el resultado es correcto. Si ahora tenemos en cuenta la posible existencia de desfases y errores en frecuencia en la portadora generada localmente en el receptor, y además existen imperfecciones en la recuperación de reloj, podemos comprobar cómo las componentes IQ recuperadas ven distorsionada su amplitud de diferentes formas, si bien el ecualizador es capaz de recuperar la secuencia original. En la figura II.8.16 se muestra el efecto de las imperfecciones del reloj en la recuperación de las componentes IQ. El reloj ha sido generado mediante la función GENREL del bloque Sincronización, utilizando una media para el retardo de los pulsos de 0.7 µ s y una desviación típica del retardo igual a 2· 10-12 s. En la figura queda patente que se trata de un reloj de poca calidad, ya que las componentes IQ recuperadas tienen una forma de onda bastante irregular, máxime cuando la comparamos con las componentes IQ de la señal original. A la salida del ecualizador se producen algunos errores. En cambio, para un reloj con una desviación típica del retardo de 2· 10-14 s, se obtienen resultados mucho más satisfactorios.

313

Tercera Parte: Descripción de las Funciones Matlab

Comparación de las componentes I

Amplitud (mV)

50

0

-50 0

1

2

3

4

5

6 x 10

Comparación de las componentes Q

-4

Amplitud (mV)

50

0

-50 0

1

2

3 Tiempo (s)

4

5

6 x 10

-4

Figura II.8.16.- Componentes IQ recuperadas con un reloj de mala calidad.

En la figura II.8.17 se muestran las componentes IQ recuperadas para el caso de un desfase de la portadora generada localmente igual a 5º para la componente en fase y 4º para la componente en cuadratura. El ecualizador recupera correctamente la secuencia de entrada.

314

Tercera Parte: Descripción de las Funciones Matlab

Comparación de las componentes I

Amplitud (mV)

100

50

0

-50 0

1

2

3

4

5

6 x 10

Comparación de las componentes Q

-4

Amplitud (mV)

50

0

-50 0

1

2

3 Tiempo (s)

4

5

6 x 10

-4

Figura II.8.17.- Efecto del desfase en la portadora local sobre las componentes IQ recuperadas.

Finalmente, en la figura II.8.18 se observa el efecto de un error en la recuperación de la portadora que hace que la portadora local esté 250 Hz por debajo de la utilizada en el modulador. Se observa que la amplitud de las componentes IQ está distorsionada. No obstante, el ecualizador es capaz de recuperar la secuencia original. Cuanto mayor sea el error en frecuencia, mayor será la distorsión y más difícil resultará para el ecualizador obtener la secuencia original, llegando un momento en que resultará totalmente imposible.

315

Tercera Parte: Descripción de las Funciones Matlab

Comparación de las componentes I

Amplitud (mV)

100

50

0

-50 0

1

2

3

4

5

6 x 10

Comparación de las componentes Q

-4

Amplitud (mV)

50

0

-50 0

1

2

3 Tiempo (s)

4

5

6 x 10

-4

Figura II.8.18.- Efecto del error en frecuencia sobre las componentes IQ recuperadas.

II.9.- Funciones del bloque Transmisor de RF Para el transmisor de radiofrecuencia se va generar un conjunto de funciones simples, que podrán combinarse de acuerdo con la configuración del transmisor que se pretenda simular. El modelado de una determinada configuración del transmisor de RF estará basado en cinco puntos principales: -

-

Las pérdidas debidas a conectores, cables, etc. El ruido introducido por los diferentes elementos. El efecto global de filtrado, que combina los efectos de los distintos elementos de la cadena de transmisión desde la salida del modulador hasta la entrada a la antena (combinador, filtros, acoplo a la antena, cables, etc). El efecto no lineal del amplificador de transmisión. El modelado de la antena.

Estos valores serán diferentes para la estación móvil y la BTS. Más aún, variarán según el tipo de BTS o de MS, ya que los equipos son físicamente diferentes según la aplicación a que estén destinados, y distintos fabricantes pueden ofrecer equipos de características ligeramente distintas para una misma aplicación. Por tanto, el usuario de las funciones de este bloque deberá determinar la configuración del transmisor de RF, así como conocer las características básicas de los equipos que pretende incluir para la simulación, tales como las pérdidas de los cables que transportan la señal desde la salida del combinador hasta las antenas situadas en la torre, por ejemplo, o el punto de compresión de 1 dB del amplificador de potencia. 316

Tercera Parte: Descripción de las Funciones Matlab

De todos modos, se ofrecerán unos valores orientativos, obtenidos de catálogos de distintos fabricantes. Se han programado funciones para el modelado del amplificador como elemento no lineal, la inclusión de las pérdidas debidas a distintos elementos del sistema y la generación del ruido aditivo a la salida de los diferentes elementos o subbloques. En cuanto al efecto de filtrado de los distintos elementos que componen el Transmisor de RF, se empleará la función FILTER de Matlab®. Los coeficientes del numerador y el denominador de la función de transferencia dependerán del elemento a simular. Para generarlos pueden utilizarse diferentes métodos, empleando funciones de la Librería de Procesado de Señal de Matlab®, como REMEZ, FIR1, FIR2, BUTTER, CHEBY1, CHEBY2, etc. En esta librería no se presenta ninguna rutina que modele el comportamiento de la antena. Queda en manos del usuario de las funciones elegir el nivel de precisión que desea para el modelado de las antenas. Para modelos simples bastará con incluir la ganancia de transmisión de la antena. Modelos más elaborados requerirán la definición del patrón de radiación de la antena, tanto en el plano horizontal como en el plano vertical, la relación de onda estacionaria, el punto de intercepto del tercer orden, etc. En este bloque deberá tenerse en cuenta también la técnica de “power ramping”, utilizada para reducir la potencia en los transitorios de conmutación entre ráfagas. Esta técnica fue descrita en el apartado II.2.9 de la segunda parte de la memoria. sumperd Mediante la función SUMPERD se aglutinan las pérdidas debidas a los cables, conectores y el combinador, y se obtiene el coeficiente por el que hay que multiplicar las muestras de la señal para aplicarles estas pérdidas. El coeficiente obtenido representa una ganancia (menor que la unidad, pues se trata de pérdidas) en unidades naturales. Esta función será válida tanto para el transmisor como para el receptor, con las modificaciones adecuadas en los valores de los parámetros de entrada. Es muy importante tener en cuenta que esta función puede emplearse siempre y cuando no existan elementos no lineales intercalados entre los que provocan cada término de pérdidas. Sintaxis [COEF,PERD_DB]=sumperd(LCABLES,LCONEC,LCOMB,LOTROS)

LCABLES LCONEC LCOMB LOTROS COEF PERD_DB

Parámetros de entrada Matriz en la que se almacenan pérdidas en los cables (en dB/100m) y longitud de los mismos (en m). Pérdidas en conectores, en dB. Pérdidas en el combinador, en dB. Otros factores de pérdidas, en dB. Por defecto LOTROS = 0 dB. Parámetros de salida Coeficiente de ganancia, en unidades naturales. Pérdidas totales, en dB. Parámetro opcional. 317

Tercera Parte: Descripción de las Funciones Matlab

La relación entre COEF y PERD_DB es la siguiente: COEF

= 10

− PERD_DB 20

LCABLES es una matriz de dos columnas, en la que la primera columna incluye las pérdidas de cada tipo de cable utilizado expresadas en dB/100m, mientras que la segunda columna incluye la longitud utilizada para cada tipo de cable, expresada en m.

En el parámetro LOTROS se pueden incluir pérdidas debidas a otros elementos que pudieran aparecer en la cadena de transmisión o recepción. Se expresará en dB. Funciones relacionadas GENRUIDO,

del bloque Transmisor de RF

Ejemplo Se va a presentar un pequeño ejemplo que además va a ser útil para mostrar algunos valores usuales de las pérdidas en los conectores, el combinador y algunos tipos de cables utilizados en una BTS. Supongamos la siguiente cadena de transmisión entre la salida del modulador (TX) y la entrada a la antena. Antena

Amplificador RF

Combinador

TX

1.20 m

50 m

0.70 m

Figura II.9.1.- Ejemplo de transmisor de RF.

El amplificador de RF estará montado en la torre, junto a la antena. Habrá una tirada de cable de 50 m entre la salida del combinador y el amplificador. En total, existen tres cables que, en general, serán diferentes. El cable correspondiente a la tirada de 50 m deberá tener pérdidas muy bajas en comparación con los otros cables. Además, hay un total de 6 conectores (un conector en cada extremo de cada cable). Si admitimos un modelo lineal para el amplificador, se podrán incluir las pérdidas del cable que va entre el amplificador y la antena en el cálculo de las pérdidas totales mediante SUMPERD. Pero, por lo general, el modelo del amplificador incluye los efectos no lineales de éste, de modo que las pérdidas debidas al tramo de cable en cuestión deberán tenerse en cuenta aparte del resto. Por consiguiente, en este ejemplo hay que calcular por separado las pérdidas antes y después del amplificador. Antes del amplificador tenemos 2 tramos de cable, un combinador y cuatro conectores. Tras el amplificador, un único tramo de cable y dos conectores. 318

Tercera Parte: Descripción de las Funciones Matlab

Precisemos algunos valores usuales para las pérdidas en estos elementos. Las pérdidas en el combinador, según el modelo y el fabricante, pueden oscilar entre 2 y 6 dB, aproximadamente. En la siguiente tabla se presentan algunos ejemplos de combinadores de Ericsson® y Siemens®. Modelo de combinador Ericsson® CDU-A Ericsson® CDU-C+ Ericsson® CDU-D Siemens® DUCOM 2:1 Siemens® DUCOM 4:1 Siemens® FICOM

Pérdidas (dB) 2 5.5 4.5 2.1 5.2 4.9

Los combinadores de menores pérdidas, como el Siemens® DUCOM 2:1, son los que combinan señales procedentes de 2 TRX en una sola antena, mientras que los de mayores pérdidas combinan señales de más de 2 TRX. Por ejemplo, el Siemens® DUCOM 4:1 es capaz de combinar señales procedentes de hasta 4 TRX en una única antena. Dependiendo de la capacidad requerida en cada celda, se precisarán más o menos portadoras (TRX) en ella, lo que nos llevará a elegir uno u otro tipo de combinador. En general, las pérdidas en los conectores varían según el modelo de conector, que difiere para cada tipo de cable. Si suponemos que en cada conector las pérdidas son de 0.15 dB, las pérdidas totales debidas a los 4 conectores del primer tramo lineal serán 0.6 dB. Los dos conectores existentes entre el amplificador y la antena tendrían entonces unas pérdidas de 0.3 dB. Las pérdidas de los cables dependerán de la distancia y de la frecuencia de transmisión. En la siguiente tabla se presentan ejemplos de las pérdidas en función de la frecuencia para varios modelos de cables coaxiales empleados para RF. Estos valores se han tomado de cables de la marca Heliax®, fabricada por Andrew®. En el campo “tipo de cable” se ha especificado el código con el que aparecen estos cables en el catálogo del fabricante.

Tipo de cable LDF7-50A

LDF5-50A

LDF4-50A

Frecuencia (MHz) 894 960 1700 2000 894 960 1700 2000 894 960 1700 2000

Atenuación (dB/100m) 2.52 2.62 3.72 4.10 4.03 4.20 5.87 6.46 7.22 7.51 10.30 11.30 319

Tercera Parte: Descripción de las Funciones Matlab

FSJ4-50B

894 960 1700 2000

11.20 11.60 16.10 17.70

Para una determinada frecuencia dentro del rango del sistema que se esté simulando, se pueden calcular las pérdidas mediante interpolación, empleando los valores de la tabla anterior. Como hemos dicho anteriormente, dependiendo de la longitud de la tirada de cable, se empleará uno u otro tipo de coaxial. En la siguiente tabla se muestran unos valores orientativos. Tipo de cable LDF7-50A LDF5-50A LDF4-50A

Rango de distancias (m) 40 – 60 20 – 40 < 20

Por su parte, el FSJ4-50B está pensado para distancias muy cortas. Suele utilizarse para conectar las antenas a un amplificador situado junto a ellas, o para conectar el TRX con el combinador. Supongamos entonces que en el ejemplo de la figura II.9.1 el combinador tiene unas pérdidas de 2.1 dB, el cable entre la salida del TRX y el combinador es un FSJ450B, al igual que el cable entre el amplificador y la antena, mientras que el cable entre el combinador y el amplificador es LDF7-50A. Supongamos además que las pérdidas en cada conector son de 0.15 dB, como hemos dicho anteriormente. Sea la frecuencia de transmisión 960 MHz. Entonces, para el primer tramo lineal (entre la salida del TRX y la entrada del amplificador), tendremos: lcables1=[11.60 1.2; 2.62 50]; lconec1=0.6; lcomb1=2.1; lotros1=0;

Utilizamos SUMPERD para obtener las pérdidas totales. [coef1,perd1]=sumperd(lcables1,lconec1,lcomb1,lotros1);

Obtenemos así que las pérdidas totales que sufre la señal en ese tramo son: perd1 = 4.1492

y el coeficiente por el que se deberá multiplicar la señal modulada de salida del TRX es: coef1 = 0.6202

Para el segundo tramo, entre la salida del amplificador y la entrada de la antena, tenemos:

320

Tercera Parte: Descripción de las Funciones Matlab lcables2=[11.60 0.7]; lconec2=0.3; lcomb2=0; lotros2=0;

Las pérdidas se pueden calcular de nuevo mediante SUMPERD. [coef2,perd2]=sumperd(lcables2,lconec2,lcomb2);

Obtenemos: coef2 = 0.9571 perd2 = 0.3812

La señal de salida del amplificador deberá multiplicarse por coef2 para obtener la señal de entrada a la antena. Se ha mostrado tan sólo un ejemplo de una posible configuración del trayecto entre la salida del modulador y la antena. Para otras configuraciones, hay que tener siempre presente que SUMPERD sólo debe emplearse para el cálculo de las pérdidas en los tramos compuestos por elementos lineales, ya que es importante conocer lo mejor posible la amplitud de la señal a la entrada de los elementos no lineales, pues la característica entrada – salida de éstos depende de ella. genruido Mediante esta función se puede generar un conjunto de muestras de ruido a partir de la figura de ruido3 de un elemento o sistema, teniendo en cuenta también el ancho de banda de ruido, la ganancia y la impedancia. Esta función resulta útil para incluir los efectos del ruido interno de los equipos de transmisión y recepción de RF sobre las señales que los atraviesan. Para ello, basta sumar el ruido generado por esta función a la señal de salida del elemento objeto de estudio. Sintaxis RUIDO=genruido(B,F,TAMA,OPC,IMPED)

B F G TAMA OPC

IMPED

3

Parámetros de entrada Ancho de banda de ruido, en Hz. Figura de ruido, en dB. Ganancia del elemento o sistema, en dB. Tamaño de la matriz de salida. Indica si el ruido generado debe ser real o imaginario. En el segundo caso la parte real de la salida es el ruido aditivo del canal I (“en fase”) y la parte imaginaria, el ruido del canal Q (“cuadratura”). OPC = ‘iq’ generará un ruido de acuerdo a la segunda opción. Cualquier otro valor generará ruido real. Por defecto, se genera ruido real. Impedancia, en Ω . Por defecto, valdrá 1.

La figura de ruido corresponde al valor del factor de ruido expresado en dB.

321

Tercera Parte: Descripción de las Funciones Matlab

RUIDO

Parámetros de salida Matriz de salida con las muestras de ruido.

El parámetro TAMA indicará el tamaño de la matriz a generar. El primer elemento indica el número de filas y el segundo el número de columnas. Si TAMA tiene más de 2 elementos, la matriz de salida será multidimensional. Si TAMA es un escalar, RUIDO será una matriz de TAMA filas por TAMA columnas. Funciones relacionadas AMPLIF, SUMPERD,

del bloque Transmisor de RF del bloque Transmisor de RF

Pruebas Dada su simplicidad, no consideramos comprobaciones del funcionamiento de GENRUIDO.

relevante

proporcionar

aquí

amplif Esta función calcula el efecto del amplificador de RF sobre la amplitud de la señal de entrada al mismo. El amplificador tendrá una característica entrada – salida de tipo “soft limiter”, descrita por las siguientes expresiones: 2  L L  −1  L  1−    sin   + X X  X    f ( X ) / X = Lo / L

2L f (X )/ X = o πL

si X ≥ L si X < L

donde X es la amplitud de la envolvente compleja de la señal de entrada, f(X) es la amplitud de la envolvente compleja de la señal de salida, L es el valor límite de la amplitud de la señal de entrada, a partir del cual la característica del amplificador deja de ser lineal, y Lo es el valor de la amplitud de salida correspondiente a la amplitud de entrada L. La fase de la señal no se verá modificada por AMPLIF. La ganancia del amplificador en la zona lineal es claramente: G=

Lo . L

El valor límite de la entrada estará relacionado con el punto de compresión de 1 dB. Esta relación se calcula mediante la función P12L de esta misma librería. La función AMPLIF ofrecerá la posibilidad de realizar la simulación del efecto del amplificador sobre una señal de RF ó FI, o sobre la envolvente compleja de la misma. En el primer caso, AMPLIF calculará la envolvente compleja de la señal de entrada, y modificará su amplitud de acuerdo a las anteriores ecuaciones para la no

322

Tercera Parte: Descripción de las Funciones Matlab

linealidad, para finalmente calcular la señal de salida a partir de f(X), de la fase de X y de la frecuencia de portadora de la señal de RF ó FI. Además, la función AMPLIF incluirá los efectos de filtrado del amplificador, para lo que empleará internamente una llamada a la función FILTER de Matlab®. Los efectos del ruido interno generado por el amplificador deberán considerarse externamente, utilizando la función GENRUIDO para generar las muestras de ruido, que luego se sumarán a las de la señal de salida de AMPLIF. Sintaxis Y=amplif(X,G,B,A,L) Y=amplif(X,G,B,A,L,2,Fc,Fs)

X G B A L OPC

Fc Fs

Y

Parámetros de entrada Señal de entrada al amplificador. Los valores vendrán dados en mV. Si es una matriz, se considerará cada fila como una señal independiente. Ganancia del amplificador, expresada en dB. Coeficientes del numerador de la función de transferencia de la parte lineal del amplificador, en orden decreciente de potencias de z. Coeficientes del denominador de la función de transferencia de la parte lineal del amplificador, en orden decreciente de potencias de z. Nivel límite de la entrada al amplificador a partir del cual la característica entrada – salida deja de ser lineal. Se expresa en mV. Indica si la señal de entrada X viene dada en forma de envolvente compleja (OPC = 1) o como señal real (OPC = 2). Por defecto, se toma OPC = 1. Frecuencia de la portadora. Sólo es necesaria para OPC = 2. Frecuencia de muestreo de la señal. Sólo es necesaria para OPC = 2. Por defecto se tomará Fs = 2.5· Fc Parámetros de salida Señal de salida del amplificador. Los valores vendrán dados en mV.

Y=amplif(X,G,B,A,L) ó Y=amplif(X,G,B,A,L,1) devuelve la respuesta Y de un amplificador ante una entrada X. Se emplea el equivalente paso bajo del amplificador. La entrada X será la envolvente compleja de una señal paso banda. La salida Y se dará también como envolvente compleja. El amplificador tiene un efecto de filtrado lineal descrito por los vectores B y A (coeficientes del numerador y el denominador de la función de transferencia de la parte lineal, en orden decreciente de z). La ganancia en la zona lineal es G. La no linealidad del amplificador se describe mediante el valor límite de entrada L, a partir del cual la característica se vuelve no lineal. El valor de L puede calcularse a partir de punto de compresión de 1 dB empleando la función P12L. Y=amplif(X,G,B,A,L,2,Fc,Fs) devuelve la respuesta Y de un amplificador paso banda ante una entrada X. Es necesario indicar la frecuencia central de la entrada (Fc) y la tasa de muestreo (Fs). Si no se indica Fs, se tomará Fs = 2.5*Fc. El efecto de filtrado lineal descrito por B y A deberá ser paso banda en este caso.

323

Tercera Parte: Descripción de las Funciones Matlab

Funciones relacionadas P12L, GENRUIDO,

del bloque Transmisor de RF del bloque Transmisor de RF

Pruebas En primer lugar, vamos a mostrar la característica de transferencia, suponiendo que el efecto del filtrado es ideal. Se generará una sinusoide de amplitud superior al punto de compresión de 1 dB y se calculará su envolvente compleja (para lo cual nos apoyaremos en la función HILBERT de Matlab®), y se hará pasar ésta por la función AMPLIF, obteniendo de este modo la envolvente compleja de la señal de salida. Se representará la amplitud de la salida frente a la de la entrada y se comparará con la que se tendría si el amplificador fuera lineal. Para que el filtrado sea ideal, debemos tomar: b=1; a=1;

Supongamos que el punto de compresión de 1 dB (P1) corresponde a una amplitud de la entrada de 60 mV. A partir de ese valor, podemos calcular el valor límite de la entrada (L) haciendo uso de la función P12L. P1=60; L=p12l(P1);

Se obtiene así un valor límite de la amplitud de la envolvente compleja de la entrada de L = 47.6364

La ganancia del amplificador en la zona lineal será de 10 dB. G=10; g=10^(G/20);

Generemos la señal de entrada como una sinusoide de frecuencia 100 Hz con una tasa de muestreo de 100 KHz. Fc=100; Fs=100e3; x=60*sin(2*pi*Fc/Fs*(0:6000));

Calculemos su envolvente compleja. Para ello se calcula la preenvolvente mediante la función HILBERT y posteriormente se realiza la traslación en frecuencia. preenvx=hilbert(x); envcomplx=preenvx.*exp(-j*2*pi*Fc/Fs*(0:6000)); Ax=abs(envcomplx);

324

Tercera Parte: Descripción de las Funciones Matlab

Si hacemos pasar la envolvente compleja de x por el amplificador obtenemos la envolvente compleja de la salida. envcomply1=amplif(envcomplx,G,b,a,L);

La señal de salida en RF puede calcularse como sigue: y=real(envcomply1.*exp(j*2*pi*Fc/Fs*(0:length(y)-1)));

En la figura II.9.2 se ha representado la señal de entrada x, la señal de salida y, y la salida que se obtendría con un amplificador lineal con la misma ganancia G. Puede observarse cómo al ser la amplitud de la envolvente de x superior al valor límite L se produce distorsión en la salida del amplificador. original(magenta), amplificada con distorsión(azul), y amplif sin dist(verde) 200

150

100

50

0

-50

-100

-150

-200 0

1000

2000

3000 tiempo

4000

5000

6000

Figura II.9.2.- Ejemplo de amplificación con y sin distorsión

En la figura II.9.3 se representa, en dB, la amplitud de la salida frente a la amplitud de la entrada y se compara con la que se obtendría con un amplificador lineal. Se puede observar cómo el comportamiento no lineal comienza a mostrarse aproximadamente a partir de una amplitud de la entrada de 33.56 dB, que corresponde con el valor de L. La curva no lineal se separa 1 dB de la lineal cuando el valor de la amplitud de entrada es aproximadamente de 35.563 dB, lo que corresponde con una amplitud de 60, valor que se le dio originalmente al punto de compresión de 1 db, P1.

325

Tercera Parte: Descripción de las Funciones Matlab

De este modo, no sólo se ha ilustrado el efecto de la no linealidad del amplificador, sino que también se ha comprobado el correcto funcionamiento de la función P12L. Característica amplitud salida-ampl entrada, comp con y sin distorsión 47

46

45

dB

44

43

42

41

40

39 29

30

31

32

33 34 Entrada (dB)

35

36

37

Figura II.9.3.- Característica entrada – salida del amplificador no lineal

p12l Obtiene el parámetro L del modelo de un amplificador de tipo “soft limiter” a partir del punto de compresión de 1 dB. Sintaxis L=p12l(P1,OPC,IMPED)

P1 OPC IMPED L

Parámetros de entrada Punto de compresión de 1 dB, referido a la entrada. Indica si P1 se proporciona en mV (OPC = ‘n’) o en dBm (OPC = ‘d’). Por defecto, OPC = ‘n’. Impedancia, expresada en Ω . Por defecto, valdrá 1. Parámetros de salida Nivel límite de la entrada al amplificador a partir del cual la característica entrada – salida deja de ser lineal. Se expresa en mV.

326

Tercera Parte: Descripción de las Funciones Matlab

El modelo de la no linealidad del amplificador es del tipo “soft limiter”, el mismo utilizado para la función AMPLIF, es decir: 2  L  L   −1  L  1 −    si X ≥ L sin   +  X   X X  f ( X ) / X = Lo / L si X < L

2L f (X ) / X = o πL

El funcionamiento de P12L se basa en hallar el valor de L para el que ambas curvas se separan 1 dB. Si no existe tal valor, se interpola entre los dos más próximos. Funciones relacionadas: AMPLIF,

del bloque Transmisor de RF

Pruebas Como comprobación del correcto funcionamiento de P12L, remítase el lector a las pruebas del funcionamiento de la función AMPLIF. powramp La función POWRAMP se encargará de la realización del “power ramping”. Se podrá elegir entre la utilización de esta técnica al principio de la ráfaga, al final de la ráfaga, o en ambos casos. Generalmente se utilizará el “power ramping” tanto al principio como al final de cada ráfaga. La excepción la conforman las ráfagas que se transmiten de forma consecutiva utilizando la misma frecuencia (es decir, sin “frequency hopping”). Entonces no se requiere “power ramping” entre los intervalos y la señal transmitida en los periodos de guarda puede ser cualquier señal modulada. En este caso, el “power ramping” será aplicable únicamente al principio y final del conjunto de ráfagas consecutivas.

Sintaxis Y=powramp(X,Fs,Tb,TIPO_RAF,OPC)

X Fs Tb TIPO_RAF OPC

Parámetros de entrada Matriz en la que cada fila corresponde a una ráfaga de entrada. Frecuencia de muestreo, en Hz. Periodo de bit, en s. Tipo de ráfaga. Vector de “flags” que indican, para cada ráfaga, en qué punto de la misma se realiza “power ramping”. OPC(i) = 1: Sólo al principio de la i-ésima ráfaga OPC(i) = 2: Sólo al final de la i-ésima ráfaga OPC(i) = 3: Tanto al principio como al final de la i-ésima ráfaga. Si el valor de OPC(i) no es ninguno de los anteriores, no se realizará “power ramping” en la i-ésima ráfaga. 327

Tercera Parte: Descripción de las Funciones Matlab

Parámetros de salida Matriz en la que cada fila corresponde a una ráfaga de salida.

Y

La matriz X contendrá en cada fila una ráfaga GSM modulada. Puede proporcionarse en RF o bien como envolvente compleja. La función precisa que se especifique el tipo de ráfagas contenidas en X mediante variable de entrada TIPO_RAF, ya que la duración de la parte útil de la ráfaga es diferente para las ráfagas de acceso que para el resto. Los valores que puede tomar TIPO_RAF son: 'NB': 'FB': 'SB': 'AB': 'DB':

Ráfaga normal (“normal burst”) Ráfaga de corrección de frecuencia (“frequency correction burst”) Ráfaga de sincronización (“synchronization burst”) Ráfaga de acceso (“access burst”) Ráfaga de relleno (“dummy burst”)

Dado que la duración de la parte útil de las ráfagas de acceso es diferente a la del resto de los tipos, en la matriz X podrán mezclarse distintos tipos de ráfagas, siempre que no sean de acceso. Basta con indicar en TIPO_RAF uno cualquiera de los tipos de ráfaga incluidos en X, ya que para todos ellos el “power ramping” se realiza de la misma manera. Las ráfagas de acceso deben tratarse por separado. El parámetro OPC es un vector que debe tener tantos elementos como filas tenga X, ya que cada elemento de OPT indica si a la correspondiente ráfaga de X se le aplica “power ramping” antes de la parte útil, después, en ambos extremos o en ninguno de ellos. Esto proporciona flexibilidad a la hora de simular casos en los que se transmitan varias ráfagas consecutivas usando la misma frecuencia, caso en el que sólo se aplica “power ramping” al principio de la primera ráfaga y al final de la última. Funciones relacionadas BURSTGEN, GENMASK,

del bloque Empaquetado TDMA del bloque Transmisor de RF

Pruebas Se va a generar una serie de ráfagas GMSK y se les va a aplicar la técnica de “power ramping”. Se comparará la potencia de una cualquiera de las ráfagas así generadas con la máscara potencia – tiempo generada mediante la función GENMASK, que describiremos más adelante. Se comprobará que la potencia de la ráfaga permanece en los límites especificados por la máscara. Se generarán ráfagas dentro de una trama TDMA. Una de cada 8 tramas irá ocupada, el resto irán vacías. No reproduciremos aquí la secuencia de comandos necesarios para la generación de las ráfagas para no sobrecargar el texto.

328

Tercera Parte: Descripción de las Funciones Matlab

Supongamos que el intervalo de tiempo asignado dentro de la trama TDMA es el segundo. Si almacenamos en las filas de una matriz (llamémosla xx) las ráfagas pertenecientes a varias tramas completas, haremos el “power ramping” como sigue: f_mues=N/3.69e-6; tipo_raf='nb'; opc=zeros(1,8*LONGSIMUL); for i=1:LONGSIMUL opc(2+(i-1)*8)=3; end y=powramp(xx,f_mues,3.69e-6,tipo_raf,opc);

Donde LONGSIMUL especifica el número de tramas TDMA de la simulación, y se observa que opc es un vector en el que los elementos que corresponden a los intervalos de tiempo ocupados por las ráfagas GMSK tienen valor 3 (se realiza “power ramping” tanto al principio como al final de la ráfaga), mientras que el resto de los elementos tienen valor cero (no se realiza “power ramping” porque no se está transmitiendo ninguna ráfaga). Para calcular la máscara potencia – tiempo emplearemos, como se ha dicho, la función GENMASK, perteneciente a este mismo bloque. [mask1,mask2]=genmask(xx,f_mues,3.69e-6,tipo_raf,opc);

Calculando la potencia de cada fila de y, y sumando la potencia máxima a las máscaras mask1 (límite superior de la potencia para toda la duración de cada ráfaga) y mask2 (límite inferior de la potencia en la parte útil), estamos en disposición de comprobar que la potencia de las ráfagas cumple con las especificaciones impuestas por el perfil potencia – tiempo. La siguiente gráfica corresponde a un “zoom” realizado sobre una ráfaga activa dentro de una trama TDMA del ejemplo. La línea de color azul corresponde a la potencia de la ráfaga, mientras que la línea verde y la roja corresponden, respectivamente, al límite superior y al límite inferior definidos por la máscara potencia – tiempo.

329

Tercera Parte: Descripción de las Funciones Matlab

50

40

Potencia (dBm)

30

20

10

0

-10

-20 0.0098

0.0099

0.01 0.0101 Tiempo (s)

0.0102

0.0103

0.0104

Figura II.9.4.- Perfil potencia – tiempo de una ráfaga GMSK a la que se ha aplicado “power ramping”.

En las siguientes figuras se muestra un “zoom” de la parte inicial y final de la ráfaga, para una mejor comprobación.

50

40

Potencia (dBm)

30

20

10

0

-10

-20 9.775

9.78

9.785

9.79 9.795 Tiempo (s)

9.8

9.805

9.81 x 10

-3

Figura II.9.5.- Parte inicial de la ráfaga.

330

Tercera Parte: Descripción de las Funciones Matlab

50

40

Potencia (dBm)

30

20

10

0

-10

-20 1.11

1.115

1.12

1.125 1.13 Tiempo (s)

1.135

1.14

1.145 x 10

-3

Figura II.9.6.- Parte final de la ráfaga.

genmask Genera la máscara potencia – tiempo para realizar las comprobaciones oportunas sobre el “power ramping”. Sintaxis [MASK1,MASK2]=genmask(X,Fs,Tb,TIPO_RAF,OPC)

X Fs Tb TIPO_RAF OPC

MASK1 MASK2

Parámetros de entrada Matriz en la que cada fila corresponde a una ráfaga de entrada. Frecuencia de muestreo, en Hz. Periodo de bit, en s. Tipo de ráfaga. Vector de “flags” que indican, para cada ráfaga, en qué punto de la misma se realiza “power ramping”. OPC(i) = 1: Sólo al principio de la i-ésima ráfaga OPC(i) = 2: Sólo al final de la i-ésima ráfaga OPC(i) = 3: Tanto al principio como al final de la i-ésima ráfaga. Si el valor de OPC(i) no es ninguno de los anteriores, no se realizará “power ramping” en la i-ésima ráfaga. Parámetros de salida Matriz en la que cada fila corresponde a la máscara para la máxima potencia relativa de cada ráfaga. Matriz en la que cada fila corresponde a la máscara para la mínima potencia relativa de cada ráfaga.

331

Tercera Parte: Descripción de las Funciones Matlab

Los valores de MASK1 y MASK2 vienen expresados en dBc, por tanto son potencias relativas a la potencia de la portadora. Respecto a los parámetros TIPO_RAF y OPC, es aplicable todo lo que se ha comentado anteriormente al describir la función POWRAMP. Para llevar a cabo la comparación de la potencia de la ráfaga respecto al tiempo con la máscara obtenida mediante GENMASK, hay que calcular la potencia instantánea de la ráfaga en dB, y sumar a MASK1 y MASK2 la potencia de la portadora. Las comparaciones pueden realizarse muy bien mediante gráficos. Funciones relacionadas: POWRAMP,

del bloque Transmisor de RF

Pruebas Dada su sencillez, no consideramos relevante presentar aquí comprobaciones del funcionamiento de esta función.

II.10.- Funciones del bloque Receptor de RF Al igual que ocurre con el bloque Transmisor de RF, existen múltiples configuraciones para diseñar el bloque Receptor de RF. Se describirán aquí las funciones básicas a partir de las cuales se podrán simular distintas configuraciones del receptor. Muchas de las funciones del bloque Transmisor de RF serán útiles para el bloque Receptor de RF, modificando los parámetros adecuados (pérdidas, ganancias, puntos de compresión, figuras de ruido, etc.). En concreto, se trata de las funciones SUMPERD, GENRUIDO, AMPLIF y P12L, que ya han sido descritas en el apartado II.9, correspondiente al Transmisor de RF. Al igual que ocurría en el caso del Transmisor de RF, en el Receptor de RF los efectos de filtrado de los distintos elementos sobre la señal recibida se calcularán utilizando la función FILTER de Matlab®. Los elementos del numerador y el denominador de la función de transferencia, necesarios para el empleo de FILTER, dependerán del elemento concreto que se pretenda simular, y podrán obtenerse con la ayuda de algunas funciones de la Librería de Procesado de Señal de Matlab®, como REMEZ, FIR1, FIR2, BUTTER, CHEBY1, CHEBY2, etc. Por otra parte, como se dijo en el apartado II.9, correspondiente al Transmisor de RF, en la presente librería no se incluyen rutinas para modelar las antenas. Será el usuario de esta librería quien elija y modele las antenas según su interés. Lo más simple es considerar únicamente la ganancia de la antena. Un modelo más completo debería incluir el patrón de radiación, tanto en el plano horizontal como en el vertical, y otros parámetros, como la relación de onda estacionaria, punto de intercepto de tercer orden, etc. Las funciones adicionales para este bloque vendrán referidas a dos puntos principales: -

La conversión de frecuencias desde la RF a la frecuencia intermedia (FI) 332

Tercera Parte: Descripción de las Funciones Matlab

-

El control automático de ganancia, necesario para ofrecer al demodulador señales cuya amplitud se mantenga en unos rangos determinados.

La conversión de frecuencias ha sido programada en la rutina CONVFREC, cuya misión consiste en multiplicar la señal de entrada por una portadora, generando así dos copias del espectro de la señal de entrada desplazadas en la frecuencia. El posterior filtrado, necesario para seleccionar sólo una de esas copias, deberá ser diseñado por el usuario de la función. Por su parte, el control automático de ganancia se ha desarrollado en la función AGC, que simula un bucle en el que se incluye un amplificador de ganancia variable y el algoritmo de actualización de la ganancia. Se tienen también en cuenta los efectos del ruido generado por el amplificador. convfrec La función CONVFREC hace las veces de mezclador ideal, y puede utilizarse para realizar un convertidor de frecuencia realizando el filtrado adecuado a su salida. Será útil únicamente en simulaciones que se realicen sobre señales de RF. En la mayoría de los casos, las simulaciones se harán sobre las componentes en fase y cuadratura de las señales, por lo que no será necesario emplear esta función, aunque sí habría que tener en cuenta los efectos del filtrado posterior sobre la envolvente compleja de la señal. Sintaxis y=convfrec(x,Fcx,Fcy,Fs)

x Fcx Fcy Fs y

Parámetros de entrada Señal de entrada. Frecuencia central de la banda de entrada. Frecuencia central de la banda de salida. Frecuencia de muestreo. Parámetros de salida Señal de salida.

La función CONVFREC toma la diferencia entre las frecuencias Fcx y Fcy y genera con ella una portadora que multiplica a la señal de entrada x, obteniéndose así la salida y. El espectro de la señal de salida contendrá dos réplicas del espectro de la señal de entrada, una centrada en la frecuencia Fcy y otra en 2· Fcx – Fcy. Para emplear esta función para realizar un convertidor de frecuencia hay que realizar un filtrado sobre la señal de salida, de manera que se seleccione solamente una de las réplicas del espectro de x. En caso de que la conversión de frecuencias sea “a la baja”, podrá resultar de interés realizar un diezmado sobre la señal filtrada, empleando para ello la función DIEZMAR de esta misma librería. Funciones relacionadas DIEZMAR,

del bloque de funciones de carácter general.

333

Tercera Parte: Descripción de las Funciones Matlab

Ejemplo Veamos el efecto de la función CONVFREC sobre una señal GMSK obtenida mediante la función GMSKMOD. Con objeto de ahorrar tiempo de computación, utilizaremos una frecuencia de portadora muy baja y una frecuencia de muestreo también muy baja. Esto es en realidad irrelevante, puesto que lo que pretendemos mostrar es la forma de la salida de la función CONVFREC. Utilizaremos una frecuencia de portadora Fc = 914.8 KHz, una frecuencia intermedia FI = 250 KHz y una frecuencia de muestreo Fs = 3.3 MHz. Sea x la señal GMSK generada con la frecuencia de portadora y la frecuencia de muestreo que acabamos de definir. El mezclador ideal encargado de realizar el paso a la frecuencia intermedia se simula mediante CONVFREC: y=convfrec(x,Fc,FI,Fs);

En la figura II.10.1 se muestran los espectros de las señales de entrada y salida de la función CONVFREC. Puede observarse cómo el espectro de la señal de entrada está centrado en Fc, mientras que a la salida tenemos réplicas de ese espectro en FI y 2· Fc FI.

2000

X(f)

1500 1000 500 0 0

0.5

1

1.5

2 frecuencia f

2.5

2 frecuencia f

2.5

3

3.5

4 x 10

6

1000 800

Y(f)

600 400 200 0 0

0.5

1

1.5

3

3.5

4 x 10

6

Figura II.10.1.- Espectros de las señales de entrada y salida de CONVFREC.

Para seleccionar la señal de frecuencia intermedia se deberá generar un filtro paso banda adecuado y filtrar con él la señal de salida de CONVFREC, para finalmente hacer uso de la función DIEZMAR para ajustar la tasa de muestreo al ancho de banda de la señal de frecuencia intermedia.

334

Tercera Parte: Descripción de las Funciones Matlab

agc Esta función simula un bucle formado por un amplificador de ganancia variable y un control automático de ganancia. En la siguiente figura se muestra un esquema del bucle implementado por la función AGC.

Amplificador de ganancia variable

x

y

g Actualización de la ganancia

Nivel de salida deseado Figura II.10.2 .- Esquema de la función AGC.

La ganancia tendrá un límite superior y un límite inferior que no podrá sobrepasar. El algoritmo intentará actualizar la ganancia para conseguir el nivel deseado para la señal de salida. Se incluirán los efectos del ruido interno generado por el amplificador. Sintaxis Podemos realizar la llamada a AGC de diferentes formas, según si la señal de entrada viene dada como envolvente compleja o como señal real paso banda, y según las señales de salida requeridas: Y=agc(X,Fs,Tb,G,Gmin,Gmax,P1,F,BW_R,NIVEL_DES,MU,NUMBITS) Y=agc(X,Fs,Tb,G,Gmin,Gmax,P1,F,BW_R,NIVEL_DES,MU,NUMBITS,OPC,Fc,IMPED) [Y,Y_SINRUIDO,NOISE,GANANCIA]=agc(...)

X Fs Tb B

A

G Gmin Gmax

Parámetros de entrada Señal de entrada. Los valores se proporcionarán en mV. Frecuencia de muestreo de la señal de entrada, en Hz. Periodo de bit, en s. Coeficientes del numerador de la función de transferencia que representa el efecto de filtrado del amplificador, en orden decreciente de potencias de z. Coeficientes del denominador de la función de transferencia que representa el efecto de filtrado del amplificador, en orden decreciente de potencias de z. Ganancia inicial del amplificador en la zona lineal, en dB. Ganancia mínima del amplificador en la zona lineal, en dB. Ganancia máxima del amplificador en la zona lineal, en dB. 335

Tercera Parte: Descripción de las Funciones Matlab P1 F BW_R NIVEL_DES MU NUMBITS OPC

Fc IMPED Y Y_SINRUIDO NOISE GANANCIA

Punto de compresión de 1 dB del amplificador, en dBm. Se supone válido para todo el rango de ganancias del amplificador. Figura de ruido del amplificador, en dB. Se supone válido para todo el rango de ganancias del amplificador. Ancho de banda de ruido, en Hz. Nivel de señal deseado a la salida del amplificador, en dBm. Paso de adaptación del algoritmo de control automático de ganancia, en unidades naturales. Periodo de actualización de la ganancia del amplificador, expresado en número de bits. Indica si la señal de entrada X viene dada en forma de envolvente compleja (OPC = 1) o como señal real (OPC = 2). Por defecto, se toma OPC = 1. Frecuencia de la portadora. Sólo es necesaria para OPC = 2. Impedancia, expresada en Ω . Por defecto, vale 1. Parámetros de salida Señal de salida. Los valores se proporcionarán en mV. Señal de salida sin incluir el ruido generado por el amplificador. Esta salida es opcional. Los valores se proporcionarán en mV. Ruido generado por el amplificador. Esta salida es opcional. Los valores se proporcionarán en mV. Vector que contiene la evolución de los valores de la ganancia, en dB. Esta salida es opcional.

Funciones relacionadas AMPLIF, GENRUIDO, P12L,

del bloque Transmisor de RF del bloque Transmisor de RF del bloque Transmisor de RF

Funcionamiento Como hemos dicho, el efecto de filtrado lineal (descrito por los vectores de coeficientes B y A), la figura de ruido (F) y el punto de compresión de 1 dB (P1) se consideran independientes del valor de la ganancia, son constantes en todo el rango de ganancias del amplificador. En primer lugar se tiene en cuenta el efecto del filtrado lineal sobre la señal de entrada X, que una vez filtrada es segmentada en tramos cuya duración, en periodos de bit, viene determinada por el parámetro NUMBITS. Se emplean N muestras por periodo de bit. El valor de N se calcula a partir de la frecuencia de muestreo Fs y el periodo de bit Tb. Si el número de elementos de X no es múltiplo de N· NUMBITS se rellenará con ceros hasta conseguirlo. Es a partir de entonces cuando se entra en el bucle de actualización de la ganancia. Para cada tramo se calcula la salida del amplificador (utilizando la función AMPLIF), así como el ruido generado por éste (mediante la función GENRUIDO). Se calcula la potencia a la salida del amplificador, teniendo en cuenta la señal y el ruido. A partir de esta potencia se obtiene el nivel de señal, que es comparado con el nivel deseado, definido por el parámetro NIVEL_DES. Se genera así un valor del error, que es

336

Tercera Parte: Descripción de las Funciones Matlab

empleado para la actualización de la ganancia para el siguiente tramo de la señal de entrada. La expresión matemática empleada para la actualización de la ganancia es: g (n ) = g (n − 1) + µ ·e(n − 1) donde g(n) es la ganancia que afectará al n-ésimo tramo de N· NUMBITS muestras de la señal de entrada, e(n-1) es el error o diferencia entre el nivel deseado y el nivel de señal del (n-1)-ésimo tramo de X, y µ es el paso de adaptación del algoritmo de control de ganancia, que corresponde al parámetro de entrada MU. Téngase en cuenta que en la expresión anterior las ganancias y el error vienen expresados en unidades naturales. La ganancia así calculada es comparada con los límites superior e inferior de ganancia, definidos por los parámetros de entrada Gmax y Gmin, respectivamente. Los valores de la ganancia que sean superiores al máximo se redefinirán de modo que sean iguales al máximo. El mismo proceso se aplica a los valores de ganancia que sean inferiores al mínimo. Como se ve, el algoritmo empleado para la actualización del valor de la ganancia está inspirado en el algoritmo LMS (“Least Mean Square”), con la salvedad de que en nuestro caso se actualiza un valor de ganancia y la comparación es simplemente entre niveles, mientras que en el algoritmo original se actualizan los coeficientes de un filtro FIR y la comparación se establece entre la señal de salida del filtro y la señal deseada. Cuanto mayor sea el valor de MU, más rápidas serán las variaciones en el valor de la ganancia. Si el nivel de señal de entrada no presenta variaciones bruscas, un valor de MU alto hará que se alcance rápidamente la ganancia idónea para conseguir el nivel de salida deseado NIVEL_DES. En cambio, si la señal presenta variaciones muy bruscas puede ocurrir que la ganancia oscile mucho más notoriamente si el valor de MU es elevado. Un valor pequeño de NUMBITS (por ejemplo 0.25) puede provocar que la ganancia oscile alrededor de un determinado valor. Un valor de NUMBITS mayor (1 ó 2, por ejemplo) hará que se promedie la potencia durante más muestras, de modo que si el nivel de la señal de entrada es más o menos estable, el valor de la ganancia no oscilará tanto como ocurre si el valor de NUMBITS es bajo. Valores más elevados de NUMBITS pueden ocasionar que el algoritmo no detecte algunos cambios bruscos en el nivel de señal, lo que se vería traducido en un nivel de señal de salida de carácter “inestable”. Valores bajos de NUMBITS harán que la ganancia se actualice más rápidamente, por lo que serán necesarias más iteraciones del algoritmo, y por tanto, más tiempo de computación. Por tanto, a la hora de trabajar con esta función hay que llegar a un compromiso tanto para el valor de MU como para el de NUMBITS. Pruebas Mostraremos varias pruebas realizadas sobre una ráfaga normal GMSK generada mediante la función GMSKMOD del bloque Modulador GMSK, que atraviesa un canal con unas determinadas pérdidas, modelado mediante la función CANAL del bloque Canal de Propagación. No se muestran los comandos utilizados para no hacer demasiado pesado el texto.

337

Tercera Parte: Descripción de las Funciones Matlab

En primer lugar, se mostrarán los niveles de señal de entrada, señal de salida y ruido generado por un amplificador con las siguientes características: Ganancia inicial del amplificador (dB): G=10; Ganancia mínima del amplificador (dB): Gmin=-12; Ganancia máxima del amplificador (dB): Gmax=38; Punto de compresión de 1dB, expresado en dBm: P1=20; Figura de ruido del amplificador (dB): F=12; Ancho de banda de ruido del amplificador, en Hz: BW_R=230e6; Paso de adaptación del algoritmo: mu=100; Nivel deseado a la salida del amplificador, en dBm: NIVEL_DES=-40; Periodo de actualización de la ganancia, en intervalos de bit: NUMBITS=1; Supondremos que la característica de transferencia del amplificador es pasa todo (b = 1, a = 1), puesto que lo que vamos a probar es la capacidad del algoritmo para adaptar los valores de la ganancia para obtener el nivel de señal de salida deseado. En la figura II.10.3 se observan los niveles de potencia de señal calculados por el algoritmo para cada tramo de N· NUMBITS muestras. Se comparan los valores de potencia de la señal de entrada con los del ruido y los de la señal de salida (con y sin ruido). Se observa cómo el nivel de señal de salida alcanza rápidamente el valor deseado (NIVEL_DES = -40 dBm), siguiendo las oscilaciones de la señal de entrada. El ruido se mantiene a unos niveles suficientemente bajos en comparación con la señal amplificada. Potencia de la señal original(rojo), el ruido(magenta), y la salida (con y sin ruido:verde y azul) -35 -40 -45

Potencia (dBm)

-50 -55 -60 -65 -70 -75 -80 0

1

2

3 Tiempo (s)

4

5

6 x 10

-4

Figura II.10.3.- Niveles de potencia de señal

En la figura II.10.4 podemos ver la evolución de los valores de la ganancia con el tiempo. Podemos observar cómo el algoritmo consigue ajustar rápidamente el valor de la ganancia a las exigencias que se le imponen, partiendo del valor inicial de 10 dB, gracias al valor elegido para el paso de adaptación (mu). Llega un momento en que los valores de la ganancia oscilan ligeramente alrededor del valor del “permanente”. 338

Tercera Parte: Descripción de las Funciones Matlab

Ganancia(dB ) 24

22

20

18

16

14

12

10 0

20

40

60

80

100

120

140

160

Figura II.10.4.- Evolución de la ganancia

En la figura II.10.5 se muestra la variación temporal de la relación señal a ruido (SNR) a la salida del amplificador. La relación señal a ruido aumenta rápidamente al principio para quedar finalmente estable alrededor de los 29 dB. Relación señal a ruido a la salida del amplificador 34 32 30

SNR (dB)

28 26 24 22 20 18 16 0

1

2

3 Tiempo (s)

4

5

6 x 10

-4

Figura II.10.5.- Relación señal a ruido a la salida del amplificador.

339

Tercera Parte: Descripción de las Funciones Matlab

A continuación, mostraremos cómo cambia la variación temporal de la ganancia al modificar los valores de NUMBITS y MU, dejando el resto de parámetros iguales a los utilizados en el anterior ejemplo. En primer lugar modificaremos el valor de MU dejando NUMBITS constante e igual a 1. En la figura II.10.6 podemos ver cómo valores bajos de MU hacen que el algoritmo no sea capaz de alcanzar la ganancia requerida para obtener a la salida el nivel de señal deseado. Al aumentar el valor de MU se consigue una respuesta más rápida del algoritmo, alcanzándose antes el valor adecuado a las exigencias de nivel de salida deseado. Podemos observar también que al aumentar el valor de MU las oscilaciones de la ganancia alrededor en el “permanente” son más bruscas. Variación de la ganacia para NUMBITS=1 y distintos valores de MU 24

MU=200

22

20

Ganancia (dB)

MU=100 18 MU=10 16

14

12 MU=1 10 0

1

2

3 Tiempo (s)

4

5

6 x 10

-4

Figura II.10.6.- Variación de la ganancia respecto al valor del paso de adaptación.

En la figura II.10.7 observamos cómo cambia la variación temporal de la ganancia al modificar el valor de NUMBITS, permaneciendo MU constante e igual a 100. En la siguiente tabla se muestra la correspondencia entre los valores de NUMBITS y los colores empleados en la representación gráfica. NUMBITS

0.25 0.5 1 1.5 2 4

Color utilizado para la gráfica Rojo Magenta Amarillo Verde Azul Negro

Como se aprecia en la figura, los valores bajos de NUMBITS provocan que la ganancia oscile más con el tiempo, mientras que valores grandes de NUMBITS hacen que el transitorio inicial se alargue. 340

Tercera Parte: Descripción de las Funciones Matlab

Variación de la ganacia para MU=100 y distintos valores de NUMBITS 26

24

22

Ganancia (dB)

20

18

16

14

12

10 0

1

2

3 Tiempo (s)

4

5

6 x 10

-4

Figura II.10.7.- Variación de la ganancia respecto al parámetro NUMBITS.

Puede ocurrir que el nivel de la señal de entrada sea tan bajo que, aunque el amplificador funcione con la ganancia máxima, no se alcance el nivel deseado a la salida. En la figura II.10.8 podemos ver un ejemplo de los niveles de señal de entrada, ruido y salida (con y sin ruido). Para esta simulación se ha tomado MU = 100, NUMBITS = 1 y NIVEL_DES = -40 dBm. Potencia de la señal original(rojo), el ruido(magenta), y la salida (con y sin ruido:verde y azul) -40 -50 -60

Potencia (dBm)

-70 -80 -90 -100 -110 -120 -130 0

1

2

3 Tiempo (s)

4

5

6 x 10

-4

Figura II.10.8.- Ejemplo en el que el nivel de la señal de entrada es muy bajo

341

Tercera Parte: Descripción de las Funciones Matlab

La figura II.10.9 muestra la evolución de la ganancia en este caso. Se observa cómo llega un momento en que se alcanza la máxima ganancia del amplificador (Gmax = 38 dB), de modo que no se llegará a alcanzar el nivel deseado para la salida (NIVEL_DES = -40 dBm), como hemos visto en la figura II.10.8). Ganancia(dB ) 40

35

30

25

20

15

10 0

20

40

60

80

100

120

140

160

Figura II.10.9.- Evolución de la ganancia para el caso de una señal de entrada con nivel muy bajo.

En la figura II.10.10 se muestra la relación señal a ruido a la salida. Se observa que la SNR alcanza valores alrededor de los 11 dB, bastante menos que los 29 dB que se alcanzaban en el primer ejemplo. Si la figura de ruido del amplificador fuera menor, aumentaría la relación señal – ruido.

342

Tercera Parte: Descripción de las Funciones Matlab

Relación señal a ruido a la salida del amplificador 15

10

5

SNR (dB)

0

-5

-10

-15

-20

-25 0

1

2

3 Tiempo (s)

4

5

6 x 10

-4

Figura II.10.10.- SNR

II.11.- Funciones del bloque Canal de Propagación Como decíamos en el apartado II.2.10 de la segunda parte, para el modelado del canal de propagación hay que tener en cuenta tres elementos fundamentales: -

La pérdida de propagación, el desvanecimiento lento, y el desvanecimiento rápido.

Se ha desarrollado una función (PATHLOSS) encargada del cálculo de las pérdidas de propagación. Permite la elección de distintos métodos de cálculo y diversos escenarios. La pérdida así calculada será empleada por la función CANAL en la generación de la respuesta del canal ante cada ráfaga TDMA, conjuntamente con el desvanecimiento lento y el desvanecimiento rápido. El desvanecimiento lento se ha modelado mediante una variable pseudoaleatoria con distribución log-normal. No se ha programado ninguna función específica para la generación de los términos de desvanecimiento lento. Se encargará de ello la función CANAL directamente. Para el modelado del desvanecimiento rápido se genera, para cada ráfaga, un modelo de canal que representa el multitrayecto. La variación temporal de la atenuación relativa de cada uno de los ecos de este multitrayecto se modelará mediante un filtrado que represente el efecto Doppler (y por tanto, dependerá de la velocidad del móvil y de la frecuencia de la portadora). Los valores de las atenuaciones relativas de cada uno de los ecos para cada instante de tiempo se calcularán mediante la función MATCAN, mientras que el retardo de cada uno de los ecos se aplicará en la función CANAL para obtener el filtro que represente el multitrayecto en cada instante de tiempo. La actualización de los coeficientes del filtro se hace una vez para cada ráfaga TDMA. 343

Tercera Parte: Descripción de las Funciones Matlab

Para cada ráfaga TDMA, la función CANAL tomará la pérdida de propagación calculada por PATHLOSS, le sumará el término de desvanecimiento lento calculado internamente y generará los coeficientes del filtro que representa el desvanecimiento rápido realizando una llamada a la función MATCAN. Finalmente, calculará la salida del canal así modelado para cada ráfaga. A continuación se describen en más detalle las funciones mencionadas, su funcionamiento y parámetros de entrada y salida, y se muestran algunos ejemplos de su empleo. pathloss Mediante la función PATHLOSS se lleva a cabo el cálculo de las pérdidas de propagación. La función ofrece tres posibles métodos para el cálculo, todos ellos descritos en el apartado II.2.10 de la segunda parte de la memoria: -

-

Pérdidas en espacio libre, dependientes únicamente de la frecuencia de transmisión y la distancia entre el transmisor y el receptor, Método de Okumura-Hata, que incluye fórmulas para el cálculo de la pérdida de propagación en medios urbanos, suburbanos, rurales y montañosos, con un rango de frecuencias válidas que incluye la banda de GSM 900, pero no la de DCS 1800 ni PCS 1900, Método COST 231, que incluye expresiones para el cálculo de la pérdida de propagación en medios urbanos y suburbanos, con un rango de validez de frecuencias que incluye todas las bandas definidas para el sistema GSM.

La pérdida de propagación calculada con la función PATHLOSS servirá como parámetro de entrada a la función CANAL, que incluirá los efectos del desvanecimiento lento y el desvanecimiento rápido y calculará la respuesta del canal para cada ráfaga TDMA de entrada. Sintaxis L=pathloss(NOMBRE_MODELO,F,D,OPC1,OPC2,OPC3)

Dependiendo del modelo que se quiera utilizar para calcular las pérdidas, los parámetros de entrada a la función serán unos u otros. L=pathloss('hata',F,D,HBS,HMS,TERRENO) L=pathloss('cost',F,D,HBS,HMS,PARAMCOST) L=pathloss('free',F,D)

NOMBRE_MODELO

F D

Parámetros de entrada Nombre del modelo para el cálculo de las pérdidas. Puede ser: ‘free’: Pérdidas en espacio libre ‘hata’: Método de Okumura-Hata ‘cost’: Método COST 231 Frecuencia de transmisión (en MHz) Distancia entre transmisor y receptor (en Km). 344

Tercera Parte: Descripción de las Funciones Matlab OPC1

Para los modelos COST 231 y Okumura-Hata, en este parámetro se introduce la altura de la BTS, en m. Para los modelos COST 231 y Okumura-Hata, en este parámetro se introduce la altura de la estación móvil, en m. Para el método de Okumura-Hata, este parámetro indica el tipo de terreno. Para el método COST 231, OPC3 es un vector que incluye los restantes parámetros para el modelo. Parámetros de salida Pérdida de propagación (en dB).

OPC2 OPC3

L

L=pathloss('hata',F,D,HBS,HMS,TERRENO) calcula las pérdidas de propagación (en dB) empleando el método de Okumura-Hata. Como se ha dicho, F es la frecuencia de trabajo (en MHz), D es la distancia entre la estación base y el móvil (en km), HBS es la altura de la estación base (en m), y HMS es la altura del móvil (en m). El parámetro TERRENO indica el tipo de terreno. Puede tomar los valores: TERRENO TERRENO TERRENO TERRENO

= 1: Ciudad pequeña o mediana = 2: Ciudad grande = 3: Área suburbana = 4: Zona rural

L=pathloss('cost',F,D,HBS,HMS,PARAMCOST) calcula las pérdidas de propagación (en dB) utilizando el método COST 231. Los parámetros F, D, HBS y HMS tienen el mismo significado que en el caso del método de Okumura-Hata. Sin embargo, el último parámetro de entrada no representa ahora el tipo de terreno (ya que el método COST 231 sólo es válido para terrreno urbano), sino que es un vector de 5 elementos que representan 4 parámetros específicos del método COST 231 y un flag que indica el tipo de ciudad. Este método tiene en cuenta la geometría del entorno en el que se desarrolla la comunicación, que se mostró en las figuras II.2.0 y II.2.61 del apartado II.2.10 de la segunda parte de la memoria. Los parámetros incluidos en PARAMCOST serán parámetros relativos a este entorno. PARAMCOST toma la forma: PARAMCOST=[hr w b fi flag]

Los parámetros que se incluyen en el vector PARAMCOST son:

hr w b fi flag

Elementos de PARAMCOST Altura media de los edificios (en m) Anchura de la calle donde está el móvil (en m) Anchura entre centros de edificios (en m) Ángulo del rayo con el eje de la calle (en grados) Indica el tipo de entorno. Tiene dos posibles valores: - flag = 1: Para ciudades de tamaño medio y zonas suburbanas con densidad de vegetación moderada - flag = 2: Para grandes centros metropolitanos Por defecto, su valor será 2.

345

Tercera Parte: Descripción de las Funciones Matlab

calcula las pérdidas por propagación en espacio libre. D es la distancia entre transmisor y receptor expresada en Km. F es la frecuencia de trabajo en MHz. L=pathloss('free',F,D)

Funciones relacionadas: CANAL, del bloque Canal de Propagación

Ejemplos A continuación, presentamos varias figuras en las que se ve la variación de la pérdida de propagación con la distancia y la altura de la BTS para distintos escenarios y distintos modelos. En primer lugar, se muestran gráficas de pérdidas de propagación frente a la distancia, correspondientes al modelo de Okumura-Hata para GSM 900 y DCS 1800 (aunque el modelo de Okumura-Hata no es válido para frecuencias superiores a los 1500 MHz), para los distintos tipos de terreno definidos en el modelo y para distintas alturas de la BTS. En cada figura se representan con diferentes colores las curvas correspondientes a las distintas alturas de la BTS, de acuerdo con la siguiente tabla: Color de la curva Magenta Celeste Amarillo Rojo Verde Azul Negro

HBS:

Altura BTS (m) 6.4 8.9 11.4 14 17.1 22.1 42

La mayoría de estas alturas de BTS no pertenecen al rango de validez del modelo de Okumura-Hata (todas salvo HBS = 42 m). En todos los casos se ha supuesto que la altura de la estación móvil es HMS = 1.8 m. Pérdidas calculadas por el modelo de Hata, f=1800 MHz, ciudad mediana 200

160

180

140

160

Pérdidas (dB)

Pérdidas (dB)

Pérdidas calculadas por el modelo de Hata, f=900 MHz, ciudad mediana 180

120

100

140

120

80

100

60

80

40

60 1

1.5

2 2.5 3 Logaritmo de la Distancia (m)

3.5

4

1

1.5

2 2.5 3 Logaritmo de la Distancia (m)

3.5

4

Figura II.11.1

346

Tercera Parte: Descripción de las Funciones Matlab Pérdidas calculadas por el modelo de Hata, f=1800 MHz, ciudad grande 200

160

180

140

160

Pérdidas (dB)

Pérdidas (dB)

Pérdidas calculadas por el modelo de Hata, f=900 MHz, ciudad grande 180

120

100

140

120

80

100

60

80

40 1

1.5

2

2.5

3

3.5

60

4

1

1.5

Logaritmo de la Distancia (m)

2

2.5

3

3.5

4

Logaritmo de la Distancia (m)

Figura II.11.2 Pérdidas calculadas por el modelo de Hata, f=900 MHz, área suburbana 180

160

160

140

140

Pérdidas (dB)

Pérdidas (dB)

Pérdidas calculadas por el modelo de Hata, f=900 MHz, área suburbana 180

120

100

120

100

80

80

60

60

40

40 1

1.5

2 2.5 3 Logaritmo de la Distancia (m)

3.5

1

4

1.5

2 2.5 3 Logaritmo de la Distancia (m)

3.5

4

Figura II.11.3 Pérdidas calculadas por el modelo de Hata, f=1800 MHz, área rural 160

140

140

120

120

Pérdidas (dB)

Pérdidas (dB)

Pérdidas calculadas por el modelo de Hata, f=900 MHz, área rural 160

100

80

100

80

60

60

40

40

20

20 1

1.5

2 2.5 3 Logaritmo de la Distancia (m)

3.5

4

1

1.5

2 2.5 3 Logaritmo de la Distancia (m)

3.5

4

Figura II.11.4

Como puede verse en las anteriores figuras, las pérdidas de propagación son menores en un medio rural que en grandes núcleos urbanos. Se observa también que al aumentar la altura de la estación base las pérdidas de propagación se reducen, si bien las alturas de BTS utilizadas no pertenecen al rango de validez del modelo, salvo la de 42 m, correspondiente a la curva pintada en negro. Si comparamos los resultados obtenidos de aplicar el método de Okumura-Hata para alturas de las antenas que caigan fuera de su rango de validez con resultados experimentales4, podemos ver que el modelo de Okumura-Hata predice unas pérdidas

4

Véase el apartado 2.7.1.1 de la referencia [1].

347

Tercera Parte: Descripción de las Funciones Matlab

mayores que las existentes realmente, por lo que deben aplicarse factores de corrección si se desea utilizar este método con valores de los parámetros fuera del rango. En las siguientes figuras se muestran las pérdidas de propagación (calculadas mediante el método COST 231) frente a la distancia entre el móvil y la BTS, para distintas alturas de la antena de la BTS y los distintos medios de propagación incluidos en el modelo. Se representan gráficas tanto para GSM 900 como para DCS 1800. En cada gráfica se muestran de distinto color las curvas correspondientes a las distintas alturas de la BTS. El significado de cada color es el mismo que el empleado anteriormente en las figuras del método de Okumura-Hata. La altura de la estación móvil se ha supuesto igual a 1.8 m. El resto de parámetros del modelo toman los siguientes valores: Altura media de los edificios: hr = 9m Anchura de la calle: w = 16 m Distancia entre centros de edificios: b = 42 m Ángulo del rayo con el eje de la calle: fi = 30º

Pérdidas calculadas por el modelo COST 231, f=1800 MHz, ciudad mediana o zona suburbana 220

180

200

160

180

140

160

Pérdidas (dB)

Pérdidas (dB)

Pérdidas calculadas por el modelo COST 231, f=900 MHz, ciudad mediana o zona suburbana 200

120 100

140 120

80

100

60

80

40

60

20 1

1.5

2 2.5 3 Logaritmo de la Distancia (m)

3.5

40

4

1

1.5

2 2.5 3 Logaritmo de la Distancia (m)

3.5

4

Figura II.11.5 Pérdidas calculadas por el modelo COST 231, f=1800 MHz, ciudad grande 220

180

200

160

180

140

160

Pérdidas (dB)

Pérdidas (dB)

Pérdidas calculadas por el modelo COST 231, f=900 MHz, ciudad grande 200

120 100

140 120

80

100

60

80

40

60

20 1

1.5

2 2.5 3 Logaritmo de la Distancia (m)

3.5

4

40 1

1.5

2

2.5

3

3.5

4

Logaritmo de la Distancia (m)

Figura II.11.6

Los rangos de validez de los parámetros para el método COST 231 son diferentes que los empleados por Okumura-Hata. En el caso del COST 231, el modelo es válido tanto las frecuencias de la banda de GSM 900 como las de DCS 1800 y PCS 1900. En cuanto a las alturas de las antenas de la BTS, todas las que se han representado en las gráficas anteriores pertenecen al rango de validez del modelo.

348

Tercera Parte: Descripción de las Funciones Matlab

Por tanto, podemos hacer una comparativa entre ambos métodos en los escenarios comunes, que son ciudades medianas o áreas suburbanas, y ciudades grandes. En primer lugar, podemos ver que el gradiente (expresado en dB/década) es más acusado en las curvas calculadas mediante el método COST 231, especialmente para valores pequeños de HBS, en los que se observa un comportamiento bastante diferente al de las curvas del método de Okumura-Hata. Para distancias menores de 300 m, aproximadamente, las pérdidas son menores cuanto menor es la altura de la BTS (para las curvas correspondientes a 6.4, 8.9 y 11.4 m). Este comportamiento se invierte cuando la distancia es mayor de 300 m. Con ello, se consigue modelar la pérdida de señal en entornos urbanos con BTSs situadas a poca altura cuyo objetivo es proporcionar cobertura a áreas pequeñas, o incluso a tramos de calles. Además, se observa que las pérdidas para la banda de 1800 MHz calculadas por el método COST 231 son mayores que las calculadas utilizando Okumura-Hata. Por tanto, habrá que utilizar uno u otro modelo dependiendo del entorno que se pretenda simular. matcan La función MATCAN es la encargada de la generación de la matriz de coeficientes para los filtros que representan el canal multitrayecto en cada instante de tiempo. Los coeficientes serán en general complejos. Para cada coeficiente, la parte real y la parte imaginaria se generarán independientemente. La variación temporal de los coeficientes dependerá de la velocidad del móvil y de la frecuencia de propagación, por la aparición del efecto Doppler. El modelado del efecto Doppler se realizará mediante la inclusión de un filtro con determinado espectro para cada coeficiente. Cada filtro Doppler se aplicará a una secuencia de ruido gaussiano blanco (AWGN) para obtener la variación temporal de las componentes en banda base de cada coeficiente del filtro que representa el canal multitrayecto. Estas secuencias de ruido blanco serán independientes entre sí. El efecto del filtrado es introducir correlación temporal entre las muestras del ruido, de manera que a la salida de cada filtro Doppler tendremos ruido “coloreado”. Sin embargo, la función de densidad de probabilidad no se ve afectada por el filtrado Doppler. Al ser las componentes en fase y cuadratura de cada coeficiente funciones aleatorias gaussianas, la función de densidad de probabilidad del módulo de cada coeficiente será Rayleigh, mientras que la densidad de probabilidad de la fase de cada coeficiente será uniforme. La potencia media de cada coeficiente del filtro se verá afectada por una atenuación, que representa la atenuación que sufre la señal en el trayecto correspondiente a ese coeficiente. Hay que dejar claro que MATCAN no genera el filtro que representa el multitrayecto, sino sólo sus coeficientes. La ubicación temporal de estos coeficientes será realizada por la función que realice la llamada a MATCAN, que es la función CANAL, como se ha dicho antes.

349

Tercera Parte: Descripción de las Funciones Matlab

Sintaxis MATRIZ=matcan(POT_REL,TIPO_DOPPLER,FC,V,N,DURACION,A)

POT_REL TIPO_DOPPLER

FC V N DURACION A

MATRIZ

Parámetros de entrada Vector en el que se indica la potencia relativa de cada pulso o “tap” del modelo, en dB. Vector en el que se especifica el tipo de modelo para el efecto Doppler de los distintos valores temporales de cada pulso o “tap” del modelo del canal. Se han definido dos modelos: TIPO_DOPPLER = 0 para el modelo RICE TIPO_DOPPLER = 1 para el modelo CLASS Frecuencia de la portadora de la señal que se transmite por el canal (en Hz) Velocidad del móvil (en m/s) Número de muestras empleadas para generar el espectro Doppler. Duración de la simulación. Este parámetro nos dará el número de columnas de la salida MATRIZ. Parámetro de amplitud para el modelo de espectro Doppler tipo CLASS. Es opcional. Si no se da, se calculará a partir de N. Parámetros de salida Matriz en la que cada columna contiene los elementos del filtro que modela el multitrayecto, válido para un determinado periodo de tiempo (que haremos coincidir con la duración de una ráfaga). Son elementos complejos, ya que son una representación banda base (componentes en fase y cuadratura) del filtro.

Los posibles tipos de espectro Doppler que se pueden emplear en MATCAN son los modelos CLASS y RICE que aparecen en el apartado II.2.10 de la segunda parte, y que también pueden encontrarse en el anexo C de la especificación GSM 05.05. El modelo CLASS asume que al receptor llegan rayos desde todos los ángulos posibles y, por tanto, con todas las posibles frecuencias Doppler entre fc - fd y fc + fd, siendo fc la frecuencia de la portadora y fd máxima frecuencia Doppler fd = v λ =

v ⋅ fc , c

con c la velocidad de la luz y v la velocidad del móvil. La representación que llevamos a cabo es en banda base, por lo que se elimina la frecuencia de la portadora fc. Recordemos la expresión para el espectro Doppler tipo CLASS que presentábamos en el apartado II.2.10 de la segunda parte de la memoria:

[

S (τ i , f ) = A 1 − ( f f d )

]

2 −1 2

f ≤ fd

El valor del parámetro A tiene importancia cuando en un mismo perfil potencia – retardo se incluyen componentes que tengan un espectro tipo CLASS y componentes con espectro tipo RICE. En este caso, el valor de A dependerá del número de muestras empleadas para generar el filtro Doppler (N), así como de las potencias medias relativas (POT_REL) que se quieran obtener. Este parámetro puede ser asignado por el usuario de 350

Tercera Parte: Descripción de las Funciones Matlab

la función. En su defecto, será la propia función MATCAN la encargada de obtener un valor para A, interpolando a partir de una tabla de valores experimentales de A en función de N, que presentamos a continuación. N 16 32 40 50 64 100 128 256

A 0.1214 0.0822 0.0681 0.0587 0.0509 0.0392 0.0337 0.0313

El modelo RICE representa la superposición de un espectro tipo CLASS con una delta situada en 0.7· fd, que representa un trayecto directo. La contribución total del multitrayecto es igual a la del trayecto directo. Se emplea para el modelado de la propagación en zonas rurales. En concreto, en los perfiles definidos en el anexo C de la especificación GSM 05.05 sólo se emplea un espectro Doppler tipo RICE para modelar el primer rayo de los modelos RA (“Rural Area”). En el resto de los casos se emplea un espectro tipo CLASS. Se asume que el modelo del canal es válido durante la duración de una ráfaga GSM, por lo que serán necesarias tantas columnas de MATRIZ como ráfagas tenga la simulación. Por consiguiente, DURACION debe ser como mínimo igual al número de ráfagas GSM de la simulación. Cada columna de MATRIZ contiene, como hemos dicho, las componentes en fase y cuadratura de los distintos pulsos o “taps” del filtro que representa el multitrayecto, y que son válidos solamente durante un corto periodo de tiempo, ya que se está representando el desvanecimiento rápido (“fast fading”). Las columnas de MATRIZ serán empleadas por la función CANAL para generar el filtro, teniendo en cuenta los diferentes retardos que deben existir entre los pulsos del modelo del filtro. Se tomará una columna por cada ráfaga TDMA, es decir, el modelo para el desvanecimiento rápido se actualiza una vez por cada ráfaga TDMA. Además, CANAL tendrá en cuenta el desvanecimiento lento y la pérdida de propagación. Funciones relacionadas CANAL, PATHLOSS,

del bloque Canal de Propagación del bloque Canal de Propagación

Pruebas Tomemos por ejemplo el modelo de área rural de 4 coeficientes que se define en el anexo C de la especificación GSM 05.05. Podemos ver los parámetros para su definición en la siguiente tabla.

351

Tercera Parte: Descripción de las Funciones Matlab RAx - 4 “taps” Potencia media Número de “tap” Tiempo relativo (ìs) relativa (dB) 1 0 0 2 0,2 -2 3 0,4 -10 4 0,6 -20

Espectro Doppler RICE CLASS CLASS CLASS

La función MATCAN no hará uso de la información acerca del “tiempo relativo” de cada uno de los pulsos. Esa tarea corresponde a la función CANAL. MATCAN se ocupará de generar los coeficientes de acuerdo con la potencia relativa media y el tipo de espectro Doppler de cada uno de ellos. Por tanto, los parámetros de entrada POT_REL y TIPO_DOPPLER serán: POT_REL=[0 –2 –10 –20]; TIPO_DOPPLER=[0 1 1 1];

Supongamos que el móvil se desplaza a 100 Km/h y que la frecuencia de la portadora es de 900 MHz. A MATCAN hay que entregarle estos parámetros en m/s y Hz, respectivamente: V=100/3.6; FC=900e6;

Tomemos N = 64 muestras para generar cada filtro Doppler, y generemos los coeficientes para un total de DURACION = 10000 ráfagas. Para N = 64, un valor adecuado del parámetro A es 0.0509. MATRIZ=matcan(POT_REL,TIPO_DOPPLER,FC,V,N,DURACION,A)

Realizaremos un pequeño estudio estadístico sobre los elementos de MATRIZ. En cada columna de MATRIZ de almacenan las componentes en fase y cuadratura de los 4 coeficientes del filtro que representa el efecto del multitrayecto para un determinado instante de tiempo. El filtro se actualizará una vez para cada ráfaga, por lo que el número de columnas de MATRIZ será igual a DURACION. Cada fila de MATRIZ representa los distintos valores que toman las componentes I-Q del correspondiente coeficiente con el tiempo. Las componentes en fase y cuadratura por separado presentarán una distribución normal, mientras que el valor absoluto de cada coeficiente debe seguir una distribución Rayleigh, y la fase debe ser uniforme. Debe comprobarse además que la potencia media relativa de cada coeficiente del filtro es acorde con la definida en el parámetro de entrada POT_REL. En las figuras II.11.7 a II.11.14 se representan los histogramas normalizados de los distintos valores que toma cada coeficiente a lo largo del tiempo. Para cada uno de los cuatro coeficientes del filtro que representa al canal variable con el tiempo se ha representado el histograma de sus componentes en fase (I) y cuadratura (Q), así como el histograma del módulo y la fase. Como hemos dicho con anterioridad, las componentes en fase y cuadratura de cada coeficiente siguen una distribución normal de media cero. La desviación típica es menor cuanto menor es la potencia media relativa de cada coeficiente respecto al máximo. 352

Tercera Parte: Descripción de las Funciones Matlab

Por su parte, el histograma normalizado del módulo de cada coeficiente muestra que éste sigue una distribución Rayleigh, cuya desviación típica es menor cuanto menor es la potencia media relativa del coeficiente en cuestión. La fase de todos los coeficientes es uniformemente distribuida entre –π y π .

Histograma normalizado de la componente I del primer coeficiente

Frecuencia relativa

0.04 0.03 0.02 0.01 0 -3

-2

-1

0 1 2 Amplitud Histograma normalizado de la componente Q del primer coeficiente

-2

-1

3

Frecuencia relativa

0.04 0.03 0.02 0.01 0 -3

0 Amplitud

1

2

3

Figura II.11.7

353

Tercera Parte: Descripción de las Funciones Matlab

Histograma normalizado del valor absoluto del primer coeficiente

Frecuencia relativa

0.03

0.02

0.01

0 0

0.5

1

1.5 2 2.5 Amplitud Histograma normalizado de la fase del primer coeficiente

3

Frecuencia relativa

0.015

0.01

0.005

0 -4

-3

-2

-1

0 Fase

1

2

3

4

Figura II.11.8

Histograma normalizado de la componente I del segundo coeficiente

Frecuencia relativa

0.04 0.03 0.02 0.01 0 -3

-2

-1

0 1 2 Amplitud Histograma normalizado de la componente Q del segundo coeficiente

-2

-1

3

Frecuencia relativa

0.04 0.03 0.02 0.01 0 -3

0 Amplitud

1

2

3

Figura II.11.9

354

Tercera Parte: Descripción de las Funciones Matlab

Histograma normalizado del valor absoluto del segundo coeficiente

Frecuencia relativa

0.03

0.02

0.01

0 0

0.5

1

1.5 2 2.5 Amplitud Histograma normalizado de la fase del segundo coeficiente

3

-3

4

Frecuencia relativa

0.015

0.01

0.005

0 -4

-2

-1

0 Fase

1

2

3

Figura II.11.10

Histograma normalizado de la componente I del tercer coeficiente

Frecuencia relativa

0.04 0.03 0.02 0.01 0 -1

-0.5

0 0.5 Amplitud Histograma normalizado de la componente Q del tercer coeficiente

1

Frecuencia relativa

0.04 0.03 0.02 0.01 0 -1

-0.5

0 Amplitud

0.5

1

Figura II.11.11

355

Tercera Parte: Descripción de las Funciones Matlab

Histograma normalizado del valor absoluto del tercer coeficiente

Frecuencia relativa

0.03

0.02

0.01

0 0

0.2

0.4

0.6 0.8 1 1.2 Amplitud Histograma normalizado de la fase del tercer coeficiente

1.4

Frecuencia relativa

0.015

0.01

0.005

0 -4

-3

-2

-1

0 Fase

1

2

3

4

Figura II.11.12

Histograma normalizado de la componente I del cuarto coeficiente

Frecuencia relativa

0.04 0.03 0.02 0.01 0 -0.4

-0.3

-0.2

-0.1 0 0.1 0.2 Amplitud Histograma normalizado de la componente Q del cuarto coeficiente

-0.3

-0.2

0.3

Frecuencia relativa

0.03

0.02

0.01

0 -0.4

-0.1 0 Amplitud

0.1

0.2

0.3

Figura II.11.13

356

Tercera Parte: Descripción de las Funciones Matlab

Histograma normalizado del valor absoluto del cuarto coeficiente

Frecuencia relativa

0.03

0.02

0.01

0 0

0.05

0.1

0.15 0.2 0.25 0.3 Amplitud Histograma normalizado de la fase del cuarto coeficiente

0.35

Frecuencia relativa

0.015

0.01

0.005

0 -4

-3

-2

-1

0 Fase

1

2

3

4

Figura II.11.14

En la siguiente tabla se muestran los valores de las desviaciones típicas para las componentes en fase y cuadratura y para el módulo de los cuatro coeficientes del modelo del ejemplo. Puede observarse que la desviación típica del módulo no coincide exactamente con la potencia media. Esto es debido a que la media de cada coeficiente no es idénticamente cero, al haber sido generados de manera pseudoaleatoria. En la tabla puede observarse también cómo la potencia media relativa de cada coeficiente se aproxima bastante a la teórica (especificada mediante el parámetro de entrada POT_REL). Coeficiente Potencia media Desviación típica de Desviación típica de Desviación relativa teórica la componente I la componente Q típica del (dB) (dB) (dB) módulo (dB) 1 0 -1.5860 -1.4268 0.0002 2 -2 -2.4066 -2.4214 -0.9088 3 -10 -6.5106 -6.4121 -4.9556 4 -20 -11.4366 -11.4263 -9.9263

Potencia media relativa (dB) 0.0000 -1.8181 -9.9116 -19.8530

En las siguientes figuras se representa el espectro de la variación temporal de cada uno de los coeficientes. Puede observarse cómo el espectro correspondiente al primer coeficiente tiene una delta correspondiente a la frecuencia 0.7fd, dado que el modelo para el filtro Doppler es RICE, mientras que el resto de los coeficientes tienen un espectro en forma de “U”, de acuerdo al filtro CLASS empleado para generarlos. También puede observarse que la amplitud de las componentes espectrales disminuye conforme la potencia relativa asociada a cada coeficiente se va haciendo menor.

357

Tercera Parte: Descripción de las Funciones Matlab

Espectro del primer coeficiente 200

Amplitud

150 100 50 0 -100

-50

0 Frecuencia (Hz)

50

100

-50

0 Frecuencia (Hz)

50

100

Fase (radianes)

4 2 0 -2 -4 -100

Figura II.11.15

Espectro del segundo coeficiente 80

Amplitud

60 40 20 0 -100

-50

0 Frecuencia (Hz)

50

100

-50

0 Frecuencia (Hz)

50

100

Fase (radianes)

4 2 0 -2 -4 -100

Figura II.11.16

358

Tercera Parte: Descripción de las Funciones Matlab

Espectro del tercer coeficiente 40

Amplitud

30 20 10 0 -100

-50

0 Frecuencia (Hz)

50

100

-50

0 Frecuencia (Hz)

50

100

Fase (radianes)

4 2 0 -2 -4 -100

Figura II.11.17

Espectro del cuarto coeficiente 10

Amplitud

8 6 4 2 0 -100

-50

0 Frecuencia (Hz)

50

100

-50

0 Frecuencia (Hz)

50

100

Fase (radianes)

4 2 0 -2 -4 -100

Figura II.11.18

359

Tercera Parte: Descripción de las Funciones Matlab

canal Con esta función se modela un canal de propagación dependiente del tiempo. La función CANAL proporciona la respuesta del canal de propagación frente a un conjunto de ráfagas de entrada. El modelado del canal se realiza superponiendo los efectos de las pérdidas de propagación (que dependen principalmente de la distancia entre la BTS y el móvil), el desvanecimiento lento (provocado por ensombrecimientos prolongados de la señal, debidos por ejemplo a la presencia de edificios entre la BTS y el móvil) y el desvanecimiento rápido (provocado por variaciones puntuales de la señal debidas a los efectos del multitrayecto). Estos conceptos fueron explicados en el apartado II.2.10 de la segunda parte. Para el cálculo de las pérdidas de propagación se emplea la función PATHLOSS, descrita anteriormente. Para el modelado del desvanecimiento lento, se generan muestras pseudoaleatorias con una función de densidad de probabilidad log-normal. De acuerdo con lo que se dice en el apartado II.2.10 de la segunda parte, la función de densidad de probabilidad para el desvanecimiento lento es una log-normal si el desvanecimiento se expresa en unidades naturales. Si se expresa en dB, su función de densidad de probabilidad será una normal. El periodo de actualización de los valores del desvanecimiento lento es definido por el usuario. Para el modelado del desvanecimiento rápido se asume un canal WSSUS (“Wide Sense Stationary with Uncorrelated Scattering”). Esto implica, como se menciona en el apartado II.2.10 de la segunda parte, que las señales que llegan con distinta frecuencia Doppler están incorreladas y lo mismo ocurre para las señales que llegan con distintos retardos. Se asume que el modelo es válido durante toda una ráfaga TDMA. Así, se genera el perfil potencia – retardo del canal, y se actualiza para cada ráfaga. Si s(t) representa la envolvente compleja de la señal de entrada al canal, sus componentes en fase y cuadratura serán sI(t) y sQ(t), respectivamente. La envolvente compleja de la respuesta impulsiva del filtro empleado para modelar el multitrayecto es: h (t ) = hI (t ) + j·hQ (t ) La envolvente compleja de la señal de salida del filtro es: r (t ) = ( s I (t ) + j·sQ (t )) ∗ ( hI (t ) + j·hQ (t ))

= {s I (t ) ∗ hI (t ) − sQ (t ) ∗ hQ (t )}+ j·{s I (t ) ∗ hQ (t ) + sQ (t ) ∗ hI (t )} = rI (t ) + j·rQ (t )

Podemos ver una representación de este modelo del canal de propagación en banda base en la figura II.11.19.

360

Tercera Parte: Descripción de las Funciones Matlab

hI(t)

sI(t)*hI(t)

-

rI(t)

+

rQ(t)

sI(t) hQ(t)

sI(t)*hQ(t)

hQ(t) sQ(t)*hQ(t) sQ(t)

hI(t) sQ(t)*hI(t)

Figura II.11.19 .- Representación en banda base del canal de propagación.

Los coeficientes del filtro deben actualizarse para cada ráfaga TDMA. Debido a la asunción del modelo WSSUS, los coeficientes variarán de forma independiente unos de otros. Además, la movilidad del terminal hace que se produzca efecto Doppler. Para el modelado del efecto Doppler se genera un filtro cuyos coeficientes dependerán de la velocidad del móvil y de la frecuencia de transmisión. Como se ha comentado al describir la función MATCAN, en esta librería se emplean dos posibles modelos para el filtro Doppler: el modelo CLASS y el modelo RICE, especificados asimismo en el anexo C de la norma GSM 05.05, y en el apartado II.2.10 de la segunda parte de la memoria. Las componentes en fase y cuadratura de los coeficientes del filtro para cada ráfaga son generadas mediante la función MATCAN, como se ha dicho anteriormente. La ubicación temporal de los coeficientes para generar el filtro es llevada a cabo por la función CANAL. En la figura II.11.20 se muestra el paso de la componente en fase de la señal (sI(t)) por filtro que representa el canal. Para la componente en cuadratura (sQ(t)) el proceso es análogo. Los coeficientes de h(t) son válidos durante una ráfaga. Con la llegada de una nueva ráfaga, estos coeficientes se actualizarán tomando la siguiente muestra de la salida de cada filtro Doppler.

361

Tercera Parte: Descripción de las Funciones Matlab

sI(t)

AWGN

Doppler

hI,1

X

X

hQ,1

Doppler

AWGN

Doppler

AWGN

Doppler

AWGN

D AWGN

AWGN

. . .

Doppler

Doppler

hI,2

hI,3

X

X D

X

X

hQ,2

hQ,3

. . .

. . .

. . .

. . .

D AWGN

Doppler

hI,L

X

X

hQ,L

Doppler

AWGN

sI(t)*hI(t) sI(t)*hQ(t) Figura II.11.20.- Generación de la respuesta en banda base del canal ante sI(t).

La función CANAL permite utilizar los distintos perfiles potencia – retardo que aparecen en el anexo C de la especificación GSM 05.05, así como otros perfiles que pueda definir el usuario. A continuación describiremos la sintaxis de la función CANAL, donde vamos a aclarar la forma de elegir el perfil potencia – retardo del canal. Sintaxis Y=canal(X,FC,F_MUES,MODELO,V,PERDIDA,SIGMA_SLOW,ACT_SLOW) [Y,CANALPROP]=canal(X,FC,F_MUES,MODELO,V,PERDIDA,SIGMA_SLOW,ACT_SLOW)

x FC F_MUES MODELO V PERDIDA SIGMA_SLOW ACT_SLOW

Parámetros de entrada Matriz en la que cada fila contiene las componentes en fase y cuadratura de una ráfaga de entrada al canal. Frecuencia de la portadora (en Hz). Frecuencia de muestreo de las componentes IQ de la entrada X. En Hz. Especifica los parámetros del perfil potencia-retardo del canal. Velocidad del móvil (en Km/h). Pérdidas de propagación calculadas por PATHLOSS, en dB. Desviación estándar de la distribución normal utilizada para modelar el desvanecimiento lento, en dB. Periodo de actualización del valor del desvanecimiento lento, en s. 362

Tercera Parte: Descripción de las Funciones Matlab

Y CANALPROP

Parámetros de salida Matriz en la que cada fila corresponde a las componentes en fase y cuadratura de una ráfaga de la señal de salida del canal. Matriz en la que cada fila contiene las amplitudes de los pulsos del canal de propagación para la ráfaga correspondiente. Es opcional.

Se aconseja que F_MUES sea como mínimo 37/Tb (siendo Tb el periodo de bit, 3.69 µ s) para poder mantener la resolución mínima necesaria en la representación de los distintos perfiles potencia-retardo definidos en la especificación GSM 05.05 (0.1 µ s). La variable de entrada MODELO especifica los parámetros del perfil potenciaretardo del canal. Puede tener dos formas diferentes: 1) Puede ser una matriz en la que: - la primera fila representa los retardos en los que colocar los coeficientes o “taps” del filtro que representa al canal, dados en microsegundos, - la segunda fila contiene la potencia media relativa de cada uno de los elementos del perfil, - y la tercera fila especifica el tipo de espectro Doppler asociado a cada uno de los pulsos (“taps”) de la respuesta impulsiva del canal. Un “0” representa un espectro Doppler de tipo RICE y un “1”, un espectro de tipo CLASS, de acuerdo a la especificación GSM 05.05. 2) O puede ser una cadena de texto que identifique uno de los modelos que se definen en el anexo C de la especificación GSM 05.05. Estos modelos también han sido representados en forma de tablas en el apartado II.2.10 de la segunda parte de la memoria. Los valores que puede tomar MODELO en este caso son: - 'ra1': - 'ra2': - 'ht121': - 'ht122': - 'ht61': - 'ht62': - 'tu121': - 'tu122': - 'tu61': - 'tu62': - 'eq': - 'ti':

“Rural Area”, modelo de 6 “taps” “Rural Area”, modelo de 4 “taps” “Hilly Terrain”, modelo de 12 “taps”, caso 1 “Hilly Terrain”, modelo de 12 “taps”, caso 2 “Hilly Terrain”, modelo de 6 “taps”, caso 1 “Hilly Terrain”, modelo de 6 “taps”, caso 2 “Typical Urban area”, modelo de 12 “taps”, caso 1 “Typical Urban area”, modelo de 12 “taps”, caso 2 “Typical Urban area”, modelo de 6 “taps”, caso 1 “Typical Urban area”, modelo de 6 “taps”, caso 2 “Equalization Test”, 6 “taps” equiespaciados y con igual potencia media relativa. “Typical Case for Small Cells”, 2 “taps” con igual potencia media relativa.

Esto permite realizar simulaciones con los canales definidos en la norma GSM, así como con otros canales que pudiera definir el usuario. PERDIDA PATHLOSS, para

representa la pérdida de propagación (en dB) calculada por la función cada ráfaga de la simulación. En general será un vector. Si PERDIDA 363

Tercera Parte: Descripción de las Funciones Matlab

sólo tiene un elemento, se considerará válido para todas las ráfagas de la simulación (filas de la matriz de entrada X). Si el número de elementos de perdida es menor que el número de ráfagas de la simulación, se rellenará repitiendo el último elemento del vector hasta alcanzar el tamaño adecuado. Finalmente, SIGMA_SLOW es la desviación estándar de la distribución normal utilizada para modelar el desvanecimiento lento en dB. La media de esa distribución coincidirá con el valor de PERDIDA para cada ráfaga. SIGMA_SLOW debe darse en dB. La función CANAL genera internamente muestras de una variable aleatoria con distribución normal con media 0 y desviación típica SIGMA_SLOW, que representa el desvanecimiento lento expresado en dB. Estas muestras se suman al valor de la pérdida de propagación, en dB, y a continuación se procede a su transformación en unidades naturales, obteniendo así la distribución log-normal que representa el desvanecimiento lento en unidades naturales. El periodo de actualización del valor del desvanecimiento lento será de ACT_SLOW segundos. Este periodo será “traducido” internamente al número de ráfagas durante el cual es válido un determinado valor de desvanecimiento lento, de manera que se generan únicamente los valores necesarios para cubrir el número de ráfagas que se pretenden simular (filas de X). El parámetro SIGMA_SLOW toma generalmente valores comprendidos entre los 4 y los 12 dB. En la referencia [1] se muestran algunos valores orientativos, en función de la altura de las antenas de la BTS. Hemos copiado esos valores en la siguiente tabla. Altura de la antena de la BTS (m) 6.4 8.9 11.4 14

SIGMA_SLOW: Desviación estándar (dB)

6.5 6.8 7.3 7.8

[Y,CANALPROP]=canal(X,FC,F_MUES,MODELO,V,PERDIDA,SIGMA_SLOW,ACT_SLOW)

proporciona además el canal de propagación para cada ráfaga. Cada fila de la matriz CANALPROP contiene las amplitudes de los pulsos del canal de propagación para la ráfaga correspondiente. Esas amplitudes se calculan de acuerdo al modelo especificado en la variable MODELO y están afectadas también por las correspondientes pérdidas de propagación, que se dan en la variable de entrada PERDIDA, y por el desvanecimiento lento, calculado a partir de SIGMA_SLOW y ACT_SLOW. Funciones relacionadas PATHLOSS, MATCAN, GMSKMOD,

del bloque Canal de Propagación del bloque Canal de Propagación del bloque Modulador

Pruebas y ejemplos En primer lugar, vamos a mostrar el histograma normalizado para el desvanecimiento lento, suponiendo unas pérdidas de propagación L = 90 dB y una desviación típica SIGMA_SLOW = 6.5 dB. En la gráfica de la izquierda se muestra el histograma normalizado del desvanecimiento lento expresado en dB, que corresponde a una distribución normal. En la gráfica de la derecha se muestra el histograma 364

Tercera Parte: Descripción de las Funciones Matlab

normalizado para la atenuación debida al desvanecimiento lento, expresada en unidades naturales. Como se puede ver, se trata de una distribución log-normal. Histograma normalizado de una variable aleatoria normal.

Histograma normalizado de una variable aleatoria log-normal.

4

12

3.5 10 3

Frecuencia relativa

Frecuencia relativa

8 2.5

2

1.5

6

4

1 2 0.5

0 60

0 70

80

90

100

110

Desvaneciemiento lento (dB)

120

0

1

2

3

4

5

Atenuación por desvaneciemiento lento (unidades naturales)

6 x 10

5

Figura II.11.21.- Histogramas normalizados para el desvanecimiento lento, en dB y en unidades naturales.

A continuación se muestra un pequeño ejemplo en el que se transmiten 100 ráfagas normales consecutivas a través de un canal. Se obtendrá una gráfica con la potencia recibida en la parte útil de cada ráfaga (calculada mediante la función POTRAFBB). En este ejemplo, se va a suponer que el móvil se desplaza a una velocidad v = 30 Km/h, por un entorno correspondiente a una ciudad mediana, la altura de la BTS es de HBS = 45 m, la altura del móvil es de HMS = 1.4 m, la distancia entre ambos D = 330 m, la frecuencia de transmisión es FC = 1800 MHz, y la BTS transmite con una potencia de 30 W, medida en el conector de antena. Si suponemos que la BTS se encuentra en el suelo, mientras que las antenas están montadas en una torre de 45 m de altura, tendremos además en cuenta las pérdidas debidas al cable que sube a la torre. Las pérdidas típicas de un cable para esta aplicación y en la banda de frecuencias de 1800 MHz son de 3.9 dB/100m, por lo que en 45 m las pérdidas serán de 1.755 dB. A estas pérdidas, añadiremos las debidas a los latiguillos. Supongamos que hay un total de 1.5 m de latiguillos y la pérdida en éstos es de 17.7 dB/100m en la banda de 1800 MHz. Las pérdidas totales debidas a los latiguillos son entonces 0.2655 dB. Hay que tener en cuenta también las pérdidas debidas al combinador, que supondremos de 2.1 dB. Las pérdidas en conectores pueden suponerse de 4 dB. La ganancia del amplificador de potencia será de 10 dB, y la ganancia de la antena transmisora de la BTS 15 dBi. En primer lugar, se generan las ráfagas normales suponiendo un valor del TSC de 1 y se modulan mediante GMSKMOD. La frecuencia de muestreo será de 40 muestras por periodo de bit. La potencia de transmisión de la BTS medida en el conector de antena (30 W) servirá para calcular la energía de bit (Eb). Por simplicidad, en esta simulación vamos a generar una única ráfaga y la vamos a repetir 100 veces. f_mues=40/3.69e-6; fc=1800e6; datos=bingen(1,116); raf=burstgen('nb',datos,1); raf=coddif(raf); raf_nrz=bin2nrz(raf);

365

Tercera Parte: Descripción de las Funciones Matlab filtrog=filgaus(0.3,3,40); filtroq=cumsum(filtrog); Eb=30e3*3.69e-6; [x_1,f_mues]=gmskmod(raf_nrz,filtroq,3.69e-6,40/3.69e-6,Eb,2,fc,0); x=repmat(x_1,100,1);

A continuación, se realiza el cálculo de las pérdidas de propagación, empleando el método de Okumura-Hata. Para ello se utiliza la función PATHLOSS. perdida_prop=pathloss('hata',1800,.33,45,1.4,1);

Con esto, tenemos una pérdida de propagación de 115.7007 dB. En el balance de potencia debemos tener en cuenta, como hemos dicho antes, las pérdidas en el combinador y en los cables, latiguillos y conectores, y la ganancia del amplificador de potencia y de la antena. El total de las pérdidas (incluyendo las de propagación) es entonces perdida = 98.8212 dB. Suponemos además que la desviación típica del desvanecimiento lento es = 6 dB. El desvanecimiento lento modela variaciones en el nivel de señal en un entorno de 20 ó 30 m, y un móvil que se desplace a 30 Km/h (como es el caso) tarda 2.4 s en recorrer esa distancia. Este sería el valor del periodo de actualización act_slow. En nuestra simulación hemos tomado 100 ráfagas, lo que equivale a 0.0577 s, que es mucho menor que act_slow, por lo cual el valor del desvanecimiento lento será único para toda la simulación. sigma_slow

Si además suponemos que a pesar de tratarse de un entorno suburbano, existe un trayecto directo entre la antena de la BTS y el móvil, podemos suponer que un perfil para el desvanecimiento rápido similar al de un área rural. Tomemos por ejemplo modelo=‘ra1’. Con estos datos, ya estamos en disposición de utilizar la función CANAL para obtener la respuesta del mismo frente a cada ráfaga. [y,canalprop]=canal(x,fc,f_mues,modelo,v,perdida,sigma_slow,act_slow);

La potencia de la parte útil de cada ráfaga de salida del canal se calculará mediante la función POTRAFBB. En la figura II.11.22 podemos ver el resultado. Se observa que la potencia recibida se mantiene en niveles entre –60 y –65 dBm, apareciendo a veces desvanecimientos profundos que llegan hasta los –84 dBm, aproximadamente. El valor medio de la potencia recibida es de –61.93 dBm. Si se repite el experimento, dado el carácter aleatorio del valor del desvanecimiento lento y de la caracterización del perfil potencia-retardo del canal, aparecerán niveles diferentes de señal recibida. En las medidas de campo realizadas en el Polígono Industrial Carretera Amarilla (Sevilla), utilizando el software de ingeniería del terminal móvil Motorola® CD930, se obtuvieron valores de la potencia recibida entre –63 y –69 dBm.

366

Tercera Parte: Descripción de las Funciones Matlab

-50

-55

-60

-65

-70

-75

-80

-85 0

20

40

60

80

100

Figura II.11.22.- Potencia de la parte útil de las ráfagas recibidas en el ejemplo

II.12.- Funciones del bloque Ecualizador El ecualizador que hemos desarrollado para la presente librería de funciones se corresponde a la estructura básica presentada en el apartado II.2.11 de la segunda parte de la memoria. Su funcionamiento se basa el cálculo de una estimación del canal de propagación a partir de la parte de la ráfaga recibida correspondiente a la secuencia de sondeo, la estimación de la respuesta de ese canal estimado ante el conjunto de todas las posibles señales moduladas con determinada longitud (normalmente en el rango de 5 a 9 bits), y la aplicación del algoritmo de Viterbi a la ráfaga recibida, comparándola con las posibles respuestas estimadas, para obtener finalmente una secuencia binaria cuyos elementos deben corresponderse con los de la ráfaga original sin modular. Nótese que la salida del ecualizador será una secuencia de bits, es decir, se trata de un ecualizador que toma “decisiones duras” (“hard decisions”), lo cual deberá ser tenido en cuenta en la subsiguiente decodificación del código de canal. El esquema del ecualizador se presentó en la figura II.2.64, en el apartado II.2.11 de la segunda parte de la memoria. gensec Con esta función se lleva a cabo la generación de secuencias internas para el ecualizador GMSK. La función tomará todas las secuencias binarias posibles con determinada longitud y obtendrá las componentes en fase y cuadratura de las correspondientes señales GMSK. Las señales así generadas serán empleadas por el ecualizador para obtener las posibles respuestas del filtro que representa la estimación del canal ante distintas

367

Tercera Parte: Descripción de las Funciones Matlab

excitaciones, para a continuación compararlas con la señal recibida en cada iteración del algoritmo de Viterbi. Sintaxis Se presentan dos posibilidades para realizar la llamada a GENSEC. Y=gensec(V,N) [Y,FILTROQ]=gensec(V,N)

V N Y

FILTROQ

Parámetros de entrada Número de bits de cada secuencia. Tasa de sobremuestreo (Número de muestras por periodo de bit). Parámetros de salida V Matriz de 2 filas con N·V elementos cada una. Cada fila representa la envolvente compleja de la señal modulada GMSK correspondiente a la secuencia binaria asociada a esa fila. Integral del filtro gaussiano empleado para la modulación GMSK. esta salida es opcional.

La función modula todas las secuencias binarias posibles de V bits mediante un modulador GMSK con filtro gaussiano de ancho de banda normalizado Bn = 0.3, longitud L = 3 periodos de bit y N muestras por periodo de bit. Para la modulación se asume un periodo de bit de 3.69 µ s y la energía de bit correspondiente al mínimo nivel de sensibilidad de referencia (-104 dBm) que aparece en la especificación GSM 05.05. Se realiza una llamada a GMSKMOD, y se le especifica que no es necesario incluir las muestras del cuarto de bit adicional (véase la descripción de GMSKMOD) Previamente a la modulación, se realiza la conversión a formato NRZ de cada secuencia binaria. No se realiza codificación diferencial. Por tanto, a la salida del ecualizador deberá aplicarse un decodificador diferencial para obtener la secuencia binaria correcta. La salida de GENSEC será una matriz en la que cada fila corresponde a las componentes en fase (parte real) y cuadratura (parte imaginaria) de la señal modulada en banda base para la correspondiente secuencia binaria (número de fila menos 1, en binario). En total, habrá 2V filas de N·V elementos cada una. Como opción, puede solicitarse como parámetro de salida la integral del filtro gaussiano empleado para la modulación local (FILTROQ). Funciones relacionadas ECUALIZ, GMSKMOD, FILGAUS, BIN2NRZ,

del bloque Ecualizador del bloque Modulador del bloque Modulador función de carácter general

368

Tercera Parte: Descripción de las Funciones Matlab

Pruebas La función GENSEC se basa completamente en FILGAUS, GMSKMOD y BIN2NRZ. Al estar verificado el funcionamiento de éstas, tan sólo resta comprobar que el número de secuencias generadas por GENSEC es el correcto, y que su longitud también es la deseada. Esta comprobación resulta trivial, por lo que no consideramos necesario mostrarla aquí. estimcan Con ESTIMCAN se realiza la estimación de canal y el posterior enventanado de ésta. La estimación se realiza a partir de la envolvente compleja de la secuencia de sondeo extraída de la señal recibida. Se empleará además un filtro adaptado a la envolvente compleja de la secuencia de sondeo utilizada para la transmisión de la ráfaga. La secuencia de sondeo recibida se hará pasar por ese filtro adaptado. Con ello se consigue una estimación del canal de propagación. La ventana se sitúa en una posición tal que se maximice la energía de las muestras de la estimación de canal contenidas en ella. Esta función es empleada por el ecualizador para cada ráfaga recibida. El filtro obtenido será empleado por ESTIMSEC para obtener la respuesta del mismo ante las distintas señales generadas por GENSEC. Sintaxis [HW,POSICION]=estimcan(SONDEOREC,SONDEOIQ,W) [HW,POSICION,H]=estimcan(SONDEOREC,SONDEOIQ,W)

SONDEOREC SONDEOIQ W HW POSICION H

Parámetros de entrada Envolvente compleja de la secuencia de sondeo recibida desde el canal de propagación. Envolvente compleja de la secuencia de sondeo empleada en el extremo del transmisor. Coeficientes de la ventana. Parámetros de salida Coeficientes del filtro FIR que representa la estimación enventanada del canal. Posición de la ventana. Coeficientes del filtro FIR que representa la estimación del canal, sin enventanar. Es opcional.

La función ESTIMCAN obtiene un filtro HW que representa la estimación de los efectos del canal de propagación a partir de la secuencia de sondeo recibida (SONDEOREC) y de las componentes IQ de la secuencia de sondeo que se empleó en el extremo transmisor (SONDEOIQ). Internamente se generará un filtro adaptado a SONDEOIQ, para a continuación filtrar SONDEOREC con dicho filtro adaptado. Tanto SONDEOREC como SONDEOIQ serán, en general, vectores complejos. La estimación de canal obtenida es posteriormente enventanada utilizando la ventana dada por el vector W. La posición de la ventana será aquella en la que la secuencia enventanada tenga un máximo de energía. Esta posición

369

Tercera Parte: Descripción de las Funciones Matlab

se dará también como parámetro de salida, en la variable POSICION, ya que será empleada en ECUALIZ para el enventanado de la función de ambigüedad. El filtro finalmente obtenido será empleado por la función ESTIMSEC para obtener la estimación de todas las posibles señales recibidas en un cierto número de periodos de bit. Opcionalmente, se puede solicitar la respuesta del canal sin enventanar. Esto puede ser útil para la realización de pruebas. Funciones relacionadas ECUALIZ, ESTIMSEC, GENSEC,

del bloque Ecualizador del bloque Ecualizador del bloque Ecualizador

Pruebas El funcionamiento interno de ESTIMCAN es muy simple. Se trata únicamente de obtener el filtro adaptado a SONDEOIQ (mediante la función de Matlab® CONJ), realizar la convolución de SONDEOREC con el filtro adaptado, mediante CONV, obteniendo así la estimación del canal. Finalmente se recorre esta estimación con la ventana W, calculando la energía en cada posición de la ventana y tomando como posición aquella en la que la energía es máxima. Generemos una ráfaga normal con TSC = 2. Supongamos que el número de muestras por periodo de bit para la obtención de las componentes en fase y cuadratura de la señal modulada es N = 40, que la frecuencia de la portadora es fc = 1800 Mhz y la potencia de transmisión es de 30 W. Las instrucciones para generar la envolvente compleja de la señal modulada son las expuestas a continuación. tipo_raf='nb'; datos=bingen(1,116); tsc=2; rafaga_nomod=burstgen(tipo_raf,datos,tsc); rafaga_nomod_dif=coddif(rafaga_nomod); rafaga_nomod_nrz=bin2nrz(rafaga_nomod_dif); T=3.69e-6; Eb_orig=30*3.69e-6; %Energía de bit para una BTS de 30 W de potencia fc=1800e6; N=40; f_mues=N/T; filtrog=filgaus(0.3,N,3); filtroq_orig=cumsum(filtrog); x=gmskmod(rafaga_nomod_nrz,filtroq_orig,T,N/T,Eb_orig,2,fc,0);

Hagamos pasar esta señal por una canal de propagación cuyo perfil corresponda a un modelo de terreno montañoso de 12 ecos. Modelaremos el desvanecimiento lento con una desviación típica de 6 dB. Supongamos que la velocidad del móvil es veloc = 30 Km/h y que las pérdidas debidas a la propagación, los cables, conectores, etc son de 89.3023 dB. Para obtener la salida del canal, ejecutamos los siguientes comandos. modelo='ht121'; perdida=89.3023; veloc=30;

370

Tercera Parte: Descripción de las Funciones Matlab sigslow=6; act_slow=2.4; [y,canprop]=canal(x,fc,f_mues,modelo,veloc,perdida,sigslow,act_slow);

En el receptor se utilizarán los siguientes parámetros: v=7; %Longitud de las secuencias a generar internamente, en bits. nr=40; %Muestras por periodo de bit. Lt=v-3; %Longitud de la ventana empleada para la estimación de canal. w=ones(1,nr*Lt+1); %Ventana rectangular.

Como vemos, se va a emplear una ventana rectangular de 161 elementos. En caso necesario, se realiza un diezmado: rafaga=diezmar(y,N/nr);

Ahora estamos en condiciones de extraer la secuencia de sondeo de la ráfaga y. Para ello hay que tener en cuenta que se trata de una ráfaga normal, lo que influye en las posiciones de los bits pertenecientes a la secuencia de sondeo dentro de la ráfaga. sondeorec=rafaga(62*nr-(nr-1):87*nr);

Por otro lado, dado el valor de TSC = 2, la secuencia de sondeo esperada es: sondeo=[0,1,0,0,0,0,1,1,1,0,1,1,1,0,1,0,0,1,0,0,0,0,1,1,1,0];

Hay que modular esta secuencia de sondeo, seleccionando la opción de obtención de las componentes banda base en GMSKMOD, para obtener sondeoiq. Se empleará la energía de bit correspondiente a una potencia igual al mínimo nivel de sensibilidad de referencia (-104 dBm). Además, hay que tener en cuenta que la posición de la secuencia de sondeo dentro de la ráfaga recibida hace que ésta se vea afectada por la fase acumulada de los periodos de bit anteriores, que resulta ser π /2. sondeodif=coddif(sondeo); sondeonrz=bin2nrz(sondeodif); Eb=10^(-104/10)*1e3*3.69e-6; sondeoiq=gmskmod(sondeonrz,filtroq,T,nr/T,Eb,2,10,0); %Componentes IQ. faseac=pi/2; sondeoiq=sondeoiq*exp(sqrt(-1)*faseac);

Con esto, ya podemos realizar la llamada a ESTIMCAN. [hw,posicion,h]=estimcan(sondeorec,sondeoiq,w);

Debemos comprobar que h coincide (salvo un factor de escala) con el resultado de hacer pasar por el canal de propagación (variable canprop) la autocorrelación de las componentes banda base de la secuencia de sondeo esperada modulada. El factor de escala es debido a que la energía de bit con la que se genera sondeoiq no tiene por qué coincidir con la energía de bit utilizada para generar la ráfaga que se transmite por el canal de propagación. Si escalamos tanto h como la respuesta de canprop frente a la autocorrelación de sondeoiq respecto a sus correspondientes máximos, podemos realizar la comparación con mayor facilidad. 371

Tercera Parte: Descripción de las Funciones Matlab

La autocorrelación de sondeoiq se calcula como: func_amb=conv(sondeoiq,conj(fliplr(sondeoiq)));

La respuesta del canal ante func_amb: salida=filter(canalprop,1,func_amb);

Haremos el escalado respecto al valor absoluto del máximo de cada variable: salida_escal=salida/abs(max(salida)); h_escal=h/abs(max(h));

En la siguiente figura se observa en azul la respuesta del canal ante la autocorrelación de sondeoiq, convenientemente escalada, y en rojo la estimación de canal escalada. Las pequeñas diferencias que se observan son debidas a que los primeros periodos de bit de la secuencia de sondeo que viene incluida en la ráfaga se ven afectados por los bits anteriores de la ráfaga, mientras que no ocurre lo mismo con sondeoiq.

Parte real

1

0.5

0

-0.5 0

500

1000 1500 Número de muestras

2000

2500

0

500

1000 1500 Número de muestras

2000

2500

Parte imaginaria

0.4 0.2 0 -0.2 -0.4

Figura II.12.1.- Repuesta del canal frente a la autocorrelación de la secuencia de muestreo (en azul), y estimación de canal escalada (rojo)

En la figura II.12.2 se representa la energía contenida en la ventana conforme ésta se va deslizando a través de h. Podemos observar que el máximo de energía se da en la posición 979, que coincide con el valor calculado para el parámetro de salida posicion.

372

Tercera Parte: Descripción de las Funciones Matlab

x 10

-6

E nergía según la posición de la ventana

6

Energía en la ventana

5

4

3

2

1

0 0

500

1000

1500

2000

Posición de la ventana

Figura II.12.2.- Energía contenida en la ventana para distintas posiciones de la misma

En la figura II.12.3 se ha representado por un lado la parte real de h y la de hw, en azul y rojo, respectivamente, y por otro la parte imaginaria de ambos filtros. Vemos que hw se sitúa coincidiendo con la parte de h donde las muestras tienen mayor amplitud.

3

x 10

-4

Parte real

2 1 0 -1 -2 0

Parte imaginaria

1

x 10

500

1000 1500 Número de muestras

2000

2500

500

1000 1500 Número de muestras

2000

2500

-4

0.5 0 -0.5 -1 0

Figura II.12.3.- Parte real e imaginaria de h y hw.

estimsec La función ESTIMSEC se encarga de la generación de las secuencias estimadas para el ecualizador, haciendo pasar todas las secuencias generadas por GENSEC a través del filtro que representa la estimación del canal calculado por ESTIMCAN. 373

Tercera Parte: Descripción de las Funciones Matlab

Sintaxis Y=estimsec(X,FILTRO)

X FILTRO

Y

Parámetros de entrada Matriz en la que cada fila representa la envolvente compleja de una señal modulada GMSK. Coeficientes del filtro FIR que representa la estimación del canal enventanada. Parámetros de salida Resultado de filtrar todas las filas de X con FILTRO.

Proporciona el resultado de filtrar todas las filas de X con el filtro FIR dado en la variable FILTRO. Las filas de X representan posibles secuencias binarias moduladas en banda base por el modulador local del ecualizador. La matriz X debe generarse mediante la función GENSEC. El filtro FIR dado en FILTRO es el resultado de enventanar la estimación del efecto del canal de propagación. FILTRO debe generarse mediante la función ESTIMCAN. Funciones relacionadas GENSEC, ESTIMCAN, ECUALIZ,

del bloque Ecualizador del bloque Ecualizador del bloque Ecualizador

Pruebas La función ESTIMSEC basa todo su funcionamiento en una llamada a la función de Matlab®, por lo que no se precisa verificación de su correcto funcionamiento.

FILTER

ecuvit El ecualizador Viterbi para señales GMSK se ha realizado mediante la función ECUVIT. Su estructura es similar al de la función DECOVIT del bloque Decodificador de Canal. Las principales diferencias estriban en las métricas utilizadas en el desarrollo del algoritmo5, y en el hecho de que ECUVIT debe ir almacenando la fase acumulada de los símbolos previos, para lo que se hacen necesarios nuevos cálculos y nuevas variables.

Sintaxis MENS=ecuvit(X_AMB,EST) [MENS,MEDIDA]=ecuvit(X_AMB,EST) [MENS,MEDIDA,SUPERVIVIENTE]=ecuvit(X_AMB,EST) [MENS,MEDIDA,SUPERVIVIENTE]=ecuvit(X_AMB,EST,PINTAR)

5

En el caso de ECUVIT las métricas se basan en la distancia euclídea mientras que en DECOVIT se emplea la distancia Hamming o la “verosimilitud”, según se trate de “hard decision decoding” o de “soft decision decoding”.

374

Tercera Parte: Descripción de las Funciones Matlab

Parámetros de entrada Envolvente compleja de la señal a ecualizar. Matriz en la que cada fila representa la envolvente compleja de una posible señal recibida. PINTAR Flag que indica si se tiene que dibujar o no el diagrama de Trellis. Parámetros de salida MENS Vector con los elementos de la respuesta impulsiva del filtro. MEDIDA Distancia euclídea entre X_AMB y el superviviente final, para cada periodo de bit. SUPERVIVIENTE Camino superviviente del proceso de ecualización. X_AMB EST

La función ECUVIT ecualiza la señal X_AMB utilizando el algoritmo de Viterbi de acuerdo a una librería de posibles secuencias recibidas dada por la matriz EST, en la que cada fila es una posible señal recibida. Tanto X_AMB como EST representan envolventes complejas de señales. La matriz EST se obtiene como salida de la función ESTIMSEC de esta librería. Cada fila representa una posible señal. La ecualización se realiza utilizando “hard decision”. De este modo, la salida MENS es un vector columna compuesto por elementos binarios. [MENS,MEDIDA]=ecuvit(X_AMB,EST) proporciona además (MEDIDA) entre la variable de entrada X_AMB y el superviviente

la distancia euclídea final, para cada periodo

de bit. [MENS,MEDIDA,SUPERVIVIENTE]=ecuvit(X_AMB,EST)

devuelve

también

el

superviviente del proceso de ecualización. Existe además la posibilidad de pedir a ECUVIT la representación del diagrama de Trellis. Para ello, se utilizará el parámetro de entrada PINTAR. En el diagrama de trellis, los caminos posibles se representan en color amarillo, mientras que los supervivientes se pintan en rojo. En cada nodo del trellis, se representa en color celeste la métrica acumulada en el camino superviviente que llega al nodo. PINTAR debe ser entero positivo, en caso contrario no se dibujará el trellis. PINTAR es el número de la figura que se empleará para dibujar el trellis. Si PINTAR = 0, no se dibujará el Trellis. Téngase en cuenta que el cómputo se ralentiza al elegir dibujar el trellis. La llamada a la función tendrá la forma: [MENS,MEDIDA,SUPERVIVIENTE]=ecuvit(X_AMB,EST,PINTAR)

Funciones relacionadas ECUALIZ, GENSEC, ESTIMCAN, ESTIMSEC,

del bloque Ecualizador del bloque Ecualizador del bloque Ecualizador del bloque Ecualizador

Funcionamiento interno Se presentan a continuación unas breves notas acerca del funcionamiento de ECUVIT. Estas notas, junto con la descripción del algoritmo que se facilitó en el apartado II.2.11 de la segunda parte de la memoria, pueden ser de gran ayuda para comprender 375

Tercera Parte: Descripción de las Funciones Matlab

cómo funciona ECUVIT. De cualquier manera, para mayor detalle lo mejor es acudir directamente al código Matlab® de la función. Hay que comentar en primer lugar que en EST, cada fila representa las componentes en fase y cuadratura de una señal de salida del canal estimado. Cada una de esas señales corresponde a una posible secuencia de V bits, y la tasa de muestreo es de nr muestras por periodo de bit. El número de filas de EST será de 2V. El número de estados del ecualizador Viterbi será 2V-1. Dicho esto, comenzamos con la descripción del funcionamiento de ECUVIT. 1) Primero: Se definen cuatro matrices que fundamentales para el desarrollo del algoritmo: § TRAZA: Traza. Cada fila representa un paso de la iteración. Cada columna hace referencia a un estado del ecualizador. Cada elemento representa el estado desde el que se llega al estado actual en la presente iteración. Los caminos que se interrumpan en algún paso, se eliminarán de la traza. § P_ACUM: Peso Acumulado. La primera fila se refiere a los pesos acumulados, en cada estado, en el paso anterior. Es el peso acumulado del camino superviviente que llega a cada estado desde el inicio del Trellis. La segunda fila, a los pesos del paso actual. Son las métricas de las ramas que llegan desde los estados del paso anterior. Para cada estado se asignará la métrica óptima. La métrica se calculará basándose en el concepto de distancia euclídea. § FASE_ACUM: Fase acumulada. Al tratarse de una modulación GMSK, hay que tener en cuenta la fase acumulada debida a los bits anteriores del camino. En cada fila se almacenará la fase acumulada debida a los bits anteriores en V periodos de bit al actual para cada estado, siendo V, como se ha dicho, el número de bits empleados para la generación de las secuencias contenidas en X_EST. § SOLUCION: Solución. En la i-ésima fila se almacenan las secuencias ecualizadas (en decimal) que hacen que se pase de la i-ésima fila de traza a la (i+1)-ésima fila de traza. Inicialmente, la matriz estará vacía, y se irán añadiendo filas conforme se vaya ejecutando cada paso. 2) A continuación, se toma la secuencia modulada (variable de entrada X_AMB) y se colocan los elementos por filas de nr elementos (siendo nr el número de muestras por periodo de bit empleado tanto para X_AMB como para EST). Es decir, en cada fila se almacena un periodo de bit. El resultado se almacena con el nombre X_AMB. 3) La función entra en el bucle principal: Para cada fila de X_AMB (periodo de bit, con nr muestras): § PRIMERO: Se añade una fila a TRAZA, una fila vacía a SOLUCION y una fila vacía a FASE_ACUM. Se incrementa la variable NUM_TRAZA, que indica la fila de TRAZA. § SEGUNDO: Se calcula la métrica respecto a todas las ramas que salen de cada estado del trellis, y se almacena. Esto se hace así: • Para cada estado que “estuviera presente” en el trellis en el instante anterior (estos estados están representados en la variable EST_PREVIO) o Para cada una de las 2 entradas posibles (0 y 1, pues se trata de una modulación binaria): 376

Tercera Parte: Descripción de las Funciones Matlab

§

§ §

§ §

§

A: Calcular la secuencia modulada para ese “estado” y esa “entrada”. Para ello se utilizan las secuencias contenidas en EST, con la particularidad de que para los primeros V bits de X_AMB se tomarán los correspondientes periodos de bit de EST y se asignará un valor 0 a la fase acumulada, mientras que a partir del (V+1)– ésimo periodo de bit (fila de X_AMB) se tomarán siempre los elementos de EST correspondientes al último periodo de bit y se tendrá en cuenta la fase acumulada en los periodos de bit previos (los situados V periodos de bit antes que el actual). La columna de EST elegida (según en qué periodo de bit de X_AMB se encuentre la iteración) se almacena en la variable X_EST. A partir de los elementos elegidos (almacenados en X_EST) y de la fase acumulada se determina la secuencia estimada (correspondiente a un periodo de bit, nr muestras, una fila de X_EST) que corresponde al “estado” y la “entrada” actuales, así como cuál sería el nuevo valor de la fase acumulada si ese “bit” entrase a formar parte del camino. B: Calcular la métrica (distancia euclídea) entre el bit de entrada (fila de X_AMB) y la secuencia estimada de nr muestras recién obtenida, que representa una rama del trellis. C: Actualizar en caso necesario las matrices TRAZA, SOLUCION P_ACUM y FASE_ACUM. La condición para la actualización es minimizar la distancia euclídea.

o Fin • Fin TERCERO: Se eliminan de la traza los estados “que no hayan sobrevivido” (“que no hayan sido continuados”). De este modo aseguramos que en la traza se guardan los supervivientes. CUARTO: Arreglar la primera fila de P_ACUM (en la que se guarda el peso total acumulado en el camino superviviente que llega hasta el estado correspondiente a la columna). Para cada estado (j) que se alcance en la iteración actual, hay que sumar la métrica que lleva del estado de la iteración anterior hasta él (métrica de la rama “seleccionada” para cada estado, que está guardada en la segunda fila de P_ACUM) más el peso acumulado hasta la iteración anterior en el estado desde el que llega el camino. El estado anterior se obtiene como TRAZA(NUM_TRAZA+1,j). Para convertirlo en un índice válido para hacer referencia a columnas se le suma un 1. FIN DEL BUCLE PRINCIPAL

4) Finalmente, se selecciona el camino que tenga menor distancia euclídea. Se recorren las matrices “hacia atrás” para obtener el resultado final. Hay que tener en cuenta la fase acumulada para el cálculo de la métrica y del camino superviviente. En caso de que al final del algoritmo existan dos caminos con la misma métrica y esa métrica sea la óptima, la función elegirá aleatoriamente uno de los dos. Pruebas En primer lugar se va a mostrar el resultado de utilizar ECUVIT sobre una señal GMSK que ha atravesado una canal ideal (una “delta” unitaria), empleando como secuencias estimadas las secuencias calculadas por GENSEC directamente, sin aplicar 377

Tercera Parte: Descripción de las Funciones Matlab

estimación de canal. Supongamos que la potencia de la señal GMSK recibida es igual al nivel de sensibilidad de referencia utilizado por GENSEC (-104 dBm). En estas condiciones, es de esperar que la secuencia recuperada por ECUVIT coincida con la secuencia original utilizada para generar la señal GMSK, y que la métrica del camino superviviente sea cero, como en efecto ocurre. Veámoslo. Supongamos que se utilizan los siguientes parámetros en la simulación: v=5; %Longitud de las secuencias a generar internamente, en bits. nr=2; %Muestras por periodo de bit. T=3.69e-6; %Periodo de bit Eb=10^(-104/10)*1e3*3.69e-6; %Energía de bit correspondiente a una %potencia de –104 dBm.

Generamos a continuación todas las posibles secuencias de v bits y las modulamos mediante el modulador GMSK, utilizando la función GENSEC. Aprovecharemos la segunda salida de esta función para almacenar la integral del filtro gaussiano (filtroq), que será útil para generar la señal GMSK que vamos a ecualizar. [est,filtroq]=gensec(v,nr);

Definimos una secuencia de datos binarios, a la que haremos pasar por la codificación diferencial y la conversión a formato NRZ antes de calcular las componentes IQ de la señal modulada correspondiente. La secuencia de datos deberá contener v –1 = 4 bits de cabecera al principio, puesto que el estado inicial del ecualizador es 0 0 0 0. Elegimos los bits de cabecera de modo que sean todos ceros. La secuencia de datos que vamos a utilizar para esta prueba será una secuencia corta (9 bits), de modo que se puedan apreciar mejor las transiciones en el diagrama de Trellis. datos=[0 0 0 0 1 0 0 1 1]; difdatos=coddif(datos); nrzdatos=bin2nrz(difdatos); x_amb=gmskmod(nrzdatos,filtroq,T,nr/T,Eb,2,10,0);

Ya estamos en condiciones de realizar la llamada a ECUVIT: pintar=1; [y,medida,superviviente]=ecuvit(x_amb,est,pintar)

Se obtienen las siguientes salidas: y = 0 0 0 0 1 1 0 1 0

378

Tercera Parte: Descripción de las Funciones Matlab medida = 1.0e-037 * 0.1131 0.1572 0.2894 0.1322 0 0.1570 0.8155 0.0735 0.2351

superviviente = 1.0e-003 * 0.2820 0.1928 -0.1984 -0.2006 0.1838 0.1846 -0.1838 -0.1992 -0.1999

+ + + -

0.0099i 0.2061i 0.2006i 0.1984i 0.2141i 0.2134i 0.2141i 0.1999i 0.1992i

0.2729 0.0010 -0.2822 -0.0021 0.2445 0.0000 -0.2445 -0.1391 -0.2455

+ + + -

0.0719i 0.2822i 0.0021i 0.2822i 0.1409i 0.2822i 0.1409i 0.2455i 0.1391i

La secuencia y corresponde a los datos binarios que entran al modulador. Esos datos sufrieron previamente un proceso de codificación diferencial, por lo que hay que utilizar la función DECODDIF sobre la salida y para poder obtener la secuencia de datos originales. También debe tenerse en cuenta el hecho de que DECODDIF realiza la decodificación diferencial sobre vectores fila, por lo que hay que transponer el vector y. Entonces, para comparar con los datos originales, basta hacer: decoddif(y')-datos

y comprobar que se obtiene un vector con todos los elementos iguales a cero, como en efecto ocurre. En segundo lugar, observamos que las métricas para cada periodo de bit (almacenadas en el vector medida) son del orden de 10-37, lo cual es un error totalmente despreciable, debido a la precisión finita de la máquina. Finalmente, si comparamos la salida superviviente con el vector x_amb (colocando los elementos de x_amb correspondientes a un mismo periodo de bit en una misma fila, mediante la función RESHAPE), vemos que son prácticamente iguales. Si calculamos la distancia euclídea para cada periodo de bit vemos que se corresponde con la obtenida en la salida medida, como debe ser. fil=length(x_amb)/nr; x_amb2=conj((reshape(x_amb,nr,fil))')

379

Tercera Parte: Descripción de las Funciones Matlab x_amb2 = 1.0e-003 * 0.2820 0.1928 -0.1984 -0.2006 0.1838 0.1846 -0.1838 -0.1992 -0.1999

+ + + -

0.0099i 0.2061i 0.2006i 0.1984i 0.2141i 0.2134i 0.2141i 0.1999i 0.1992i

0.2729 0.0010 -0.2822 -0.0021 0.2445 0.0000 -0.2445 -0.1391 -0.2455

+ + + -

0.0719i 0.2822i 0.0021i 0.2822i 0.1409i 0.2822i 0.1409i 0.2455i 0.1391i

sum(abs(x_amb2-superviviente).^2,2) ans = 1.0e-037 * 0.1131 0.1572 0.2894 0.1322 0 0.1570 0.8155 0.0735 0.2351

En la figura II.12.4 se ha representado el diagrama de Trellis. El número de estados del ecualizador, como se ve, es 2V-1 = 16.

380

Tercera Parte: Descripción de las Funciones Matlab

Est. 1 1 1 1

1.8211e-007 3.7616e-007 2.1561e-007 2.3668e-007 4.7694e-007 1.0938e-006

Est. 1 1 1 0

1.8211e-007 4.4479e-007 2.3813e-007 2.1561e-007 4.0867e-007 1.1134e-006

Est. 1 1 0 1

2.1512e-007 4.8879e-007 7.5257e-007 6.2572e-007 1.7379e-037 6.4467e-007

Est. 1 1 0 0

2.1512e-007 5.1132e-007 7.8437e-007 6.94e-007 2.1074e-008 5.7683e-007

Est. 1 0 1 1

6.3794e-007 6.3697e-007 4.8879e-007 5.7876e-007 5.7683e-007 2.1074e-008

Est. 1 0 1 0

6.3794e-007 6.0272e-007 5.0987e-007 5.5624e-007 6.4467e-007 1.973e-037

Est. 1 0 0 1

6.5756e-007 2.1512e-007 8.1614e-007 8.9824e-007 1.1134e-006 4.0867e-007

Est. 1 0 0 0

6.5756e-007 2.362e-007 7.837e-007 9.6688e-007 1.0938e-006 4.7694e-007

Est. 0 1 1 1

2.1074e-008 4.8831e-007 2.1512e-007 6.3746e-007 2.1074e-008 1.0346e-006 5.9693e-007

Est. 0 1 1 0

2.1074e-008 4.8831e-007 2.8376e-007 6.5998e-007 1.6644e-037 9.6635e-007 5.7731e-007

Est. 0 1 0 1

2.1074e-008 4.5587e-007 6.3842e-007 5.5575e-007 4.0867e-007 5.5624e-007 1.0456e-006

Est. 0 1 0 0

2.1074e-008 4.5587e-007 6.3504e-007 5.2395e-007 4.7694e-007 5.7731e-007 1.1135e-006

Est. 0 0 1 1

2.1515e-038 8.0749e-038 2.1074e-008 4.5587e-007 8.4889e-038 8.3915e-007 1.0664e-006 7.2499e-007

Est. 0 0 1 0

2.4709e-038 1.4112e-037 2.1074e-008 3.8759e-007 2.1074e-008 8.1663e-007 1.1342e-006 7.0392e-007

Est. 0 0 0 1

2.0781e-038 6.5034e-038 2.7023e-038 6.9187e-038 6.9187e-038 4.7694e-007 7.7207e-007 7.0392e-007 1.1111e-006

Est. 0 0 0 0

1.1307e-038 2.7023e-038 5.5962e-038 6.9187e-038 2.1074e-008 5.0938e-007 7.0343e-007 7.2354e-007 1.1794e-006 Tiempo

Figura II.12.4.- Diagrama de Trellis.

Si hacemos un zoom a la imagen, podemos observar cómo se toma efectivamente el camino con menor distancia euclídea, y que ésta es del orden de 10-37, es decir, que podemos concluir que es cero. ecualiz El ecualizador para ráfagas GSM basado en el ecualizador Viterbi se ha desarrollado en la función ECUALIZ. Sintaxis Existen varias opciones para realizar la llamada a la función, como mostramos seguidamente. Y=ecualiz(V,NR,RAFAGA,TIPO_RAF,TSC) Y=ecualiz(V,NR,RAFAGA,TIPO_RAF,TSC,PINTAR) Y=ecualiz(V,NR,RAFAGA,TIPO_RAF,TSC,PINTAR,S) Y=ecualiz(V,NR,RAFAGA,TIPO_RAF,TSC,PINTAR,S,FILTROQ) [Y,METRIC_CAMINO]=ecualiz(V,NR,RAFAGA,TIPO_RAF,TSC,PINTAR,S,FILTROQ)

381

Tercera Parte: Descripción de las Funciones Matlab

Parámetros de entrada Número de bits para generar las posibles secuencias con las que comparar los elementos de RAFAGA. NR Número de muestras por bit. RAFAGA Envolvente compleja de la ráfaga GMSK recibida, una vez ha salido del demodulador. TIPO_RAF Tipo de ráfaga. TSC Valor del “Training Sequence Code”. Sólo es necesario para ráfagas de tipo normal. PINTAR Flag que indica si se tiene que dibujar o no el diagrama de Trellis. Por defecto, no se dibujará el Trellis. S Matriz de 2V filas con N·V elementos cada una. Cada fila representa la envolvente compleja de la señal modulada GMSK correspondiente a la secuencia binaria asociada a la fila. Opcional. Si no se proporciona S, se generará internamente mediante una llamada a GENSEC. FILTROQ Integral del filtro gaussiano. Opcional. Si no se proporciona FILTROQ, se generará internamente mediante una llamada a GENSEC. Parámetros de salida Y Secuencia ecualizada. Los elementos serán binarios. METRIC_CAMINO Métrica total del camino superviviente. V

La función ECUALIZ ecualiza la señal GSM dada en la variable de entrada utilizando V bits y NR muestras por bit para generar (mediante GENSEC) las posibles señales banda base GMSK para ir comparando con la entrada RAFAGA. El proceso de ecualización dependerá del tipo de ráfaga, ya que la posición de la secuencia de sondeo difiere según éste. El tipo de ráfaga se indica en la variable de entrada TIPO_RAF, y puede ser:

RAFAGA,

'NB': Ráfaga normal 'SB': Ráfaga de sincronización 'AB': Ráfaga de acceso 'FB': Ráfaga de corrección de frecuencia 'DB': Ráfaga de relleno (“Dummy Burst”)

Para las ráfagas de tipo 'FB' y 'DB' no se lleva a cabo ecualización, por lo que la salida de la función estará vacía. En el caso de ráfagas 'NB' es necesario proporcionar, mediante el parámetro de entrada TSC, el valor del TSC (“Training Sequence Code”), que es un entero entre 0 y 7 y coincide con el segundo dígito del BSIC de la BTS. Para ráfagas 'SB' y 'AB' puede omitirse el parámetro TSC en la llamada a la función. Es muy importante tener en cuenta que el parámetro NR hace referencia al número de muestras por periodo de bit que se emplea para la generación de la matriz S por parte de GENSEC, y también al número de muestras por periodo de bit con que está muestreada la variable de entrada RAFAGA. Por tanto, es importante que exista coherencia a la hora de diezmar los valores de RAFAGA (esto se hace en el demodulador), al generar la matriz S y al realizar la llamada a ECUALIZ. 382

Tercera Parte: Descripción de las Funciones Matlab

Existe la posibilidad de representar el diagrama de Trellis. En el diagrama de trellis, los caminos posibles se representan en color amarillo, mientras que los supervivientes se pintan en rojo. En cada nodo del trellis, se representa en color celeste la métrica acumulada en el camino superviviente que llega al nodo. PINTAR debe ser entero positivo, en caso contrario no se dibujará el trellis. PINTAR es el número de la figura que se empleará para dibujar el trellis. Téngase en cuenta que el cómputo se ralentiza al elegir dibujar el trellis. Si PINTAR = 0, no se dibujará el Trellis. La llamada a la función es en este caso: Y=ecualiz(V,NR,RAFAGA,TIPO_RAF,TSC,PINTAR)

Podemos proporcionar como entrada la matriz S, en la que cada fila es una de las 2 posibles señales banda base GMSK, con NR muestras por periodo de bit. La matriz S debe generarse externamente mediante la función GENSEC. De este modo, se produce un ahorro computacional, al no ser necesario invocar a GENSEC en cada llamada a ECUALIZ. Hay que ser muy cuidadoso, de manera que V y NR tomen los mismos valores en la llamada a ECUALIZ que en la llamada a GENSEC. La forma de invocar a ECUALIZ es entonces: V

Y=ecualiz(V,NR,RAFAGA,TIPO_RAF,TSC,PINTAR,S)

Si proporcionamos la integral del filtro gaussiano utilizada por GENSEC para la generación de las señales banda base GMSK, se producirá aún más ahorro computacional. Podemos tomar para FILTROQ el segundo parámetro de salida de GENSEC (lo que nos asegurará la coherencia en todo momento). En este caso, la llamada toma la forma: Y=ecualiz(V,NR,RAFAGA,TIPO_RAF,TSC,PINTAR,S,FILTROQ)

Para obtener además la métrica total del camino superviviente, la llamada a la función será de la forma: [Y,METRIC_CAMINO]=ecualiz(V,NR,RAFAGA,TIPO_RAF,TSC,PINTAR,S,FILTROQ)

Funciones relacionadas ECUVIT, GENSEC, ESTIMCAN, ESTIMSEC, GMSKMOD, BURSTGEN,

del bloque Ecualizador del bloque Ecualizador del bloque Ecualizador del bloque Ecualizador del bloque Modulador del bloque Empaquetado TDMA

Funcionamiento interno de ECUALIZ Como se aprecia en el esquema de la figura II.12.5, el proceso de ecualización consta de varios pasos, realizados por otras funciones. En primer lugar, se extrae la secuencia de sondeo (sondeorec) que viene incluida en la ráfaga recibida (RAFAGA). A partir de ella, se realiza una estimación del canal y se aplica una ventana rectangular de 383

Tercera Parte: Descripción de las Funciones Matlab

duración Lt = v - 3 periodos de bit (esto se hace con la función ESTIMCAN). Para realizar la estimación de canal, ESTIMCAN precisa conocer la forma original de las componentes en fase y cuadratura de la secuencia de sondeo. Esos valores son generados internamente por ECUALIZ (dependiendo del tipo de ráfaga TIPO_RAF y, en caso de ráfagas normales, del valor de TSC), y almacenados en la variable sondeoiq. Se tiene en cuenta que la secuencia de sondeo es pasada por el codificador diferencial antes de ser modulada. El filtro que representa la estimación de canal enventanada se almacena en la variable hw. Las señales GMSK generadas mediante GENSEC (almacenadas en la matriz S) se hacen pasar por la estimación del canal, mediante la función ESTIMSEC, obteniendo así las posibles respuestas del canal ante todas las señales GMSK que pueden generarse con V bits y NR muestras por periodo de bit. Estas posibles respuestas se almacenan por filas en la matriz est. Como se comentó en el apartado II.2.11 de la segunda parte de la memoria, para poder realizar las comparaciones entre la señal recibida y las secuencias estimadas por el ecualizador hay que tener en cuenta que la estimación de canal se ve afectada por una función de ambigüedad, y hay que aplicar ésta a la señal recibida. En ECUALIZ se calcula la función de ambigüedad como la autocorrelación de las componentes en fase y cuadratura de la secuencia de sondeo generada internamente (sondeoiq). El resultado es enventanado utilizando la misma ventana empleada para la estimación de canal. La posición de la ventana con respecto al principio de la autocorrelación de la secuencia de sondeo será la misma que se empleó para el cálculo de la estimación de canal enventanada, y que se da como variable de salida de la función ESTIMCAN en el parámetro posicion. A continuación se calcula la convolución de la señal recibida (RAFAGA) con esta función de ambigüedad enventanada (variable func_amb_w). El resultado se almacena en la variable x_amb y se pasa, junto con las secuencias estimadas por ESTIMSEC (variable est), al ecualizador Viterbi (función ECUVIT) para que éste obtenga la secuencia binaria ecualizada. La función ECUALIZ dará como salida esta secuencia binaria, en forma de vector fila, además de la métrica total del camino superviviente, calculada como la suma de las métricas de cada uno de las ramas del diagrama de Trellis, que son almacenadas por ECUVIT en la variable de salida medida. Debido a que la secuencia de sondeo que se extrae de la señal recibida nunca será idéntica a la secuencia de sondeo original (sondeoiq), no se obtendrá una métrica total igual a cero. Ni tan siquiera en el caso de que el canal de propagación fuera ideal (una “delta”) se conseguiría una métrica cero, ya que el propio modulador introduce interferencia entre símbolos al aplicar el filtro gaussiano a los elementos de la ráfaga, por lo que los elementos correspondientes a la secuencia de sondeo se ven afectados por los valores de los elementos anteriores de la ráfaga TDMA.

384

Tercera Parte: Descripción de las Funciones Matlab

Secuencia de Sondeo sondeorec

ESTIMCAN

ESTIMSEC

Estimador de Canal y Ventana

Generar señal estimada

GENSEC

Modulador Banda Base

Generador de secuencias

S hw

Señal Recibida

RAFAGA

Demux (Extraer sondeo)

est sondeoiq ECUVIT

Señal ecualizada RAFAGA

Función de Ambigüedad

Calcular Métrica Incremental

Algoritmo de VITERBI Y

x_amb

Figura II.12.5.- Esquema del funcionamiento interno de ECUALIZ.

Pruebas Para llevar a cabo las pruebas sobre ECUALIZ se ha simulado la transmisión de varias ráfagas GSM a través de distintos tipos de canales, generados mediante la función CANAL. Para que el ecualizador sea capaz de ecualizar una señal proveniente de un canal con perfil de tipo ‘EQ’ (el definido por GSM para realizar tests a ecualizadores), es necesario un valor de V de 9 ó 10 como mínimo. Esto hace que el número de estados posibles del ecualizador Viterbi sea muy elevado (128 y 256, respectivamente), por lo que la ejecución del algoritmo se ralentiza enormemente. Para los modelos de canal de entorno rural (‘RA’), urbano (‘TU’) y de microceldas (‘TI’), se ha encontrado que un valor de V = 5 es suficiente para conseguir una buena ecualización, a la vez que el proceso es mucho más rápido ya que el número de estados del ecualizador Viterbi es de 16. Este valor de V puede incluso reducirse para zonas rurales y microceldas, donde el retardo de la última componente es como máximo de 0.5 µ s, que es mucho menor que el periodo de bit (3.69 µ s). En cambio, para los perfiles asociados a un entorno montañoso (‘HT’), la existencia de mayores retardos en los ecos debidos a reflexiones en las montañas implica la necesidad de utilizar un enventanado de mayor longitud para la estimación de canal, lo que implica un mayor valor de V, y por tanto más estados en el ecualizador y mayor lentitud del algoritmo. Los modelos de terreno montañoso proporcionados por la especificación GSM 05.05 incluyen ecos cuyo retardo relativo llega a 20 µ s en el caso de los modelos de 12 ecos, y a 17.2 µ s en el caso de los modelos de 6 ecos. Con estos valores del retardo, son necesarios, al menos en teoría, unos valores de V = 9 y V = 8 para ecualizar ráfagas provenientes de los modelos de 12 y 6 ecos, respectivamente. En cuanto al parámetro NR (número de muestras por periodo de bit), podemos decir que proporciona una menor tasa de error en la ecualización al ser incrementado. El número de operaciones aumenta al incrementarse el valor de NR, y con él el tiempo de 385

Tercera Parte: Descripción de las Funciones Matlab

computación. Sin embargo, este aumento del tiempo de computación es muy pequeño si lo comparamos con el provocado al incrementar el valor de V. En la siguiente tabla se muestran unos valores orientativos de V y NR para cada tipo de canal. MODELO ‘ra1’ ‘ra2’ ‘ht121’ ‘ht122’ ‘ht61’ ‘ht62’ ‘tu121’ ‘tu122’ ‘tu61’ ‘tu62’ ‘eq’ ‘ti’

V 5 5 9 9 8 8 5 5 5 5 10 5

NR 2 2 4 4 4 4 4 4 4 4 4 2

II.13.- Funciones de carácter general Se describirán a continuación otras funciones de carácter general. Las razones para no englobar estas funciones en ninguno de los bloques que se muestran al principio de este capítulo son diversas. Algunas de estas funciones son muy básicas y son utilizadas por otras funciones pertenecientes a diferentes bloques. Otras podrían constituir por sí solas bloques intermedios. En cualquier caso, en este bloque pueden encontrarse funciones de muy diversa índole y utilizades. arfcn2f Proporciona las frecuencias correspondientes a un ARFCN (“Absolute Radio Frequency Carrier Number”), tanto para el enlace ascendente como para el enlace descendente. Sintaxis [Fn1,Fn2]=ARFCN2F(ARFCN,SIST)

Parámetros de entrada Número absoluto del canal de radiofrecuencia. Indica el sistema del que se trata (GSM 900, DCS 1800, etc). Parámetros de salida Frecuencia del enlace ascendente, en MHz. Frecuencia del enlace descendente, en MHz.

ARFCN SIST Fn1 Fn2

En el parámetro SIST se le indica a la función el sistema del que se trata. Los valores válidos para SIST son: 'p-gsm': 'e-gsm':

Para la banda estándar o primaria de GSM 900 Para la banda extendida de GSM 900 386

Tercera Parte: Descripción de las Funciones Matlab 'r-gsm': 'dcs1800': 'pcs1900':

Para la banda de GSM 900 utilizada para ferrocarriles Para el sistema DCS 1800 Para el sistema PCS 1900

Por defecto, se tomará SIST='p-gsm'. Para cada uno de esos sistemas existe un rango válido de valores del parámetro ARFCN que es comprobado por esta función, dando un mensaje de error si se sale del rango correspondiente. Estos valores vienen definidos por la especificación GSM 05.05, y se encuentran también en el apartado II.2.2 de la segunda parte de la memoria. bingen Esta función genera una matriz de elementos binarios pseudoaleatorios. Puede utilizarse, por ejemplo, para generar los datos de entrada en simulaciones en las que se desconozcan los valores de éstos. Sintaxis Y=bingen(FIL,COL,PROB)

Parámetros de entrada Número de filas. Número de columnas. Probabilidad de que aparezca un “1”. Parámetros de salida Matriz pseudoaleatoria de FIL filas por COL columnas.

FIL COL PROB Y

Genera una matriz binaria aleatoria de FIL filas y COL columnas, partiendo de una secuencia aleatoria cuya distribución es uniforme. Mediante el parámetro PROB se indica cuál es la probabilidad deseada de que aparezcan “unos” en la matriz Y. Por defecto, se tomará PROB = 0.5 (símbolos equiprobables). bin2nrz Convierte una variable binaria en una variable NRZ. Sintaxis Y=bin2nrz(X)

X Y

Parámetros de entrada Variable binaria. Parámetros de salida Variable NRZ.

Convierte la variable binaria X en una variable NRZ (“No Return To Zero”) Y, de modo que los ceros de X se corresponden con un nivel 1 en Y, y los unos de X con el nivel -1 en Y. 387

Tercera Parte: Descripción de las Funciones Matlab

binadec Convierte un número binario a decimal. Sintaxis Y=BINADEC(X)

X

Y

Parámetros de entrada Vector de elementos binarios. El primer elemento es el bit más significativo. Parámetros de salida Valor decimal del vector binario X.

decabin Convierte un número decimal en binario, en formato vector. Es la función inversa de BINADEC. Sintaxis Y=DECABIN(X,TAMA)

X TAMA Y

Parámetros de entrada Valor decimal. Debe ser un escalar positivo y entero. Número de bits para representar X. Parámetros de salida Vector de TAMA elementos binarios que representa el valor de X. El primer elemento es el bit más significativo.

Convierte el número decimal X a formato binario utilizando TAMA bits. La salida Y se da como vector de TAMA elementos. El primer elemento es el bit más significativo y el último el menos significativo. X debe ser un escalar positivo y entero. coddif La función CODDIF realiza la codificación diferencial. La codificación diferencial se realiza sobre los elementos de una ráfaga TDMA antes de ser convertidos a NRZ (mediante BIN2NRZ) y modulados por GMSKMOD. La utilidad de la codificación diferencial fue discutida en el apartado II.2.11 de la segunda parte de la memoria, al describir las consideraciones especiales sobre la ecualización de señales GMSK mediante el algoritmo de Viterbi.

388

Tercera Parte: Descripción de las Funciones Matlab

Sintaxis Y=coddif(X)

Parámetros de entrada Secuencia binaria de entrada. Parámetros de salida Secuencia binaria de salida.

X Y

Realiza la codificación diferencial sobre los elementos de cada fila de la entrada binaria X asumiendo que el primer bit de X es el bit menos significativo y que antes de ese primer bit irá un cero. Asimismo, el primer bit de cada fila de la matriz de salida Y será el bit menos significativo. Para cada fila de X se calcula la codificación diferencial y se almacena en una fila de Y. La relación entre la salida y la entrada puede expresarse mediante el siguiente conjunto de ecuaciones: Y(:,1)=X(:,1) Y(:,2)=X(:,2)+X(:,1) ... Y(:,N)=X(:,N)+X(:,N-1)

Los signos + representan sumas módulo 2. decoddif La función DECODDIF realiza el proceso de decodificación diferencial. Es la función inversa de CODDIF. Sintaxis Y=decoddif(X)

X Y

Parámetros de entrada Secuencia binaria de entrada. Parámetros de salida Secuencia binaria de salida.

Realiza la decodificación diferencial sobre los elementos de cada fila de la entrada binaria X asumiendo que el primer bit de X es el bit menos significativo. Asimismo, el primer bit de cada fila de la matriz de salida Y será el bit menos significativo. Para cada fila de X se calcula la decodificación diferencial y se almacena en una fila de Y. La relación entre los elementos de la salida y los de la entrada puede describirse mediante el siguiente conjunto de ecuaciones: Y(:,1)=X(:,1) Y(:,2)=X(:,2)+Y(:,1) Y(:,3)=X(:,3)+Y(:,2) ... Y(:,N)=X(:,N)+Y(:,N-1)

Los signos + representan sumas módulo 2. 389

Tercera Parte: Descripción de las Funciones Matlab

diezmar Esta función realiza un diezmado de la secuencia o secuencias de entrada. Sintaxis Y=diezmar(X,R)

Parámetros de entrada Señal de entrada. Si es una matriz, cada fila se considera una señal. Tasa por la que se reduce la frecuencia de muestreo de X. R debe ser entero. Parámetros de salida Señal de salida. Corresponde a una reducción de la tasa de muestreo de las señales contenidas en X por un factor R.

X R

Y

hopping Cálculo del radiocanal de transmisión o recepción para “frequency hopping”. Sintaxis [MAI]=hopping(MA,HSN,MAIO,FN) [MAI,ARFCN]=hopping(MA,HSN,MAIO,FN)

MA HSN

MAIO FN MAI ARFCN

Parámetros de entrada “Mobile Allocation”. Vector que contiene los ARFCN de las frecuencias del grupo utilizado para “frequency hopping”. “Hopping Sequence generator Number”. Parámetro utilizado para generar la secuencia de saltos de frecuencia. Valores permitidos: enteros entre 0 y 63. “Mobile Allocation Index Offset”. Puede tomar valores entre 0 y la longitud del vector MA menos 1. Número de trama. Parámetros de salida “Mobile Allocation Index” para ser utilizado en la trama actual. “Absolute Radio Frequency Channel Number”para la trama actual. Se toma dentro del grupo de frecuencias dado en el vector MA. Es un parámetro opcional.

Todos los parámetros mencionados deben proporcionarse como números enteros. El cálculo del MAI (“Mobile Allocation Index”) que debe ser utilizado en la trama actual se realiza de acuerdo al algoritmo que se describe en el estándar GSM 05.02. Este algoritmo también se presenta en la figura II.2.11 del apartado II.2.6 de la segunda parte de la memoria. Esta función no comprueba si los valores de los ARFCN proporcionados en el vector MA son valores válidos para GSM 900, DCS 1800 o PCS 1900. Para el parámetro HSN: “Hopping Sequence generator Number” los valores permitidos van desde 0 a 63 (siempre valores enteros). Si HSN = 0, se hará rotación 390

Tercera Parte: Descripción de las Funciones Matlab

circular de frecuencias, mientras que para otros valores de HSN los saltos serán pseudoaleatorios. potrafbb Calcula la potencia de la parte útil de una ráfaga GSM a partir de las componentes banda base. Sintaxis POTENCIA=potrafbb(RAFAGA,TIPO_RAF,F_MUES,IMPED)

RAFAGA TIPO_RAF F_MUES IMPED POTENCIA

Parámetros de entrada Representación banda base de una ráfaga modulada. Sus muestras deben darse en mV. Tipo de ráfaga. Frecuencia de muestreo de la representación banda base de la ráfaga. Debe darse en Hz. Impedancia, expresada en Ω . Por defecto, valdrá 1. Parámetros de salida Potencia en la parte útil de la ráfaga, expresada en dBm.

Calcula la potencia en la parte útil de la ráfaga a partir de la representación banda base de la misma (componentes en fase y cuadratura), dada en la variable de entrada RAFAGA. Mediante TIPO_RAFAGA se indica a la función de qué tipo de ráfaga se trata, ya que la posición de la parte útil es diferente según el tipo de ráfaga. Se aceptan los siguientes valores para TIPO_RAF: 'SB': Ráfaga de sincronización 'NB': Ráfaga normal 'FB': Ráfaga de corrección de frecuencia 'DB': Ráfaga de relleno 'AB': Ráfaga de acceso

391

Cuarta Parte Cuarta Parte: SIMULACIONES

Cuarta Parte: Simulaciones

CAPÍTULO I

Capítulo I: Introducción I.1.- Introducción

I.1.- Introducción En esta parte de la memoria se van a presentar varias simulaciones realizadas utilizando las rutinas de la librería, que se han descrito en el capítulo II de la tercera parte. El principal objetivo de estas simulaciones es servir de ejemplo para dar una idea del uso que se les puede dar a las funciones desarrolladas en el presente Proyecto, así como para clarificar las interrelaciones entre las diferentes rutinas. Las simulaciones que se han desarrollado son las siguientes: -

-

-

Simulación de transmisión del radiocanal "baliza" de una BTS, con una determinada estructura de multitramas en sus intervalos de tiempo, propagación de la señal por un determinado canal (pueden probarse varios), y medición de la potencia recibida por la MS. Además se supondrá que la MS tiene asignado un determinado intervalo de tiempo y se decodificarán las ráfagas pertenecientes a dicho intervalo. Se pueden obtener gráficas de la potencia recibida para cada ráfaga y la potencia de las ráfagas de los distintos canales en cada punto del receptor, así como el número de errores para cada canal antes y después de la decodificación. Simulación de un entorno urbano en el que una MS recibe señal de tres BTS. En determinado momento, la MS da la vuelta a una esquina. Se obtendrá la potencia recibida de cada una de las BTSs en distintos puntos del trayecto de la MS y se compararán los resultados con medidas realizadas sobre una red real. Simulación de una transmisión de varias tramas de voz por parte de la MS, que tendrá asignado un determinado intervalo de tiempo en la trama TDMA, y recepción por parte de la BTS.

393

Cuarta Parte: Simulaciones

CAPÍTULO II

Capítulo II: Simulación 1 II.1.- Descripción 1I.2.- Ficheros de comandos II.3.- Resultados

II.1.- Descripción Se va a simular la transmisión del radiocanal “baliza” por parte de una BTS. El radiocanal “baliza” es el que transporta en el primer intervalo de tiempo de cada trama una estructura de multitrama que incluye al canal BCCH. La técnica de saltos en frecuencia (“Frequency Hopping”) no puede utilizarse en el primer intervalo de tiempo de este radiocanal, ya que dicho intervalo de tiempo transporta la multitrama donde se mapea el canal BCCH. El radiocanal baliza se transmite constantemente, ya que la señal es utilizada por las estaciones móviles para realizar medidas de la potencia, que serán útiles para los algoritmos de “handover”, etc. Por consiguiente, si no se emplea “frequency hopping”, no se utilizará la técnica de “power ramping” sobre las ráfagas de este radiocanal. Uno de los intervalos de tiempo dedicados a canales de tráfico en la trama estará asignado a la comunicación con una estación móvil. Se simulará la recepción de los datos contenidos en dicho intervalo de tiempo por parte de la estación móvil. Configuración del transmisor En la simulación que se va a desarrollar se montarán distintas estructuras de multitrama sobre los intervalos de tiempo de la trama. En concreto se ha empleado la siguiente correspondencia: Intervalo de tiempo 0

Estructura de multitrama1 III

1 2 3 4 5 6 7

IV I I I I I I

Canales lógicos BCCH, SCH, FCCH y 9 bloques de CCCH (AGCH + PCH) 8 SDCCH y 8 SACCH TCH/F y SACCH TCH/F y SACCH TCH/F y SACCH TCH/F y SACCH TCH/F y SACCH TCH/F y SACCH

No se tendrá en cuenta la reserva de bloques para el canal AGCH en la estructura de multitrama tipo III, que se define mediante el parámetro 1

Según la clasificación que aparece en el apartado II.2.3 de la segunda parte de la memoria.

394

Cuarta Parte: Simulaciones

BS_AG_BLKS_RES. Eso quedaría para funciones de orden superior. Aquí trataremos todos los canales CCCH de igual manera, sin hacer distinción alguna entre AGCH y PCH. Uno de los intervalos de tiempo que llevan asociada una multitrama tipo I estará asignado a la comunicación con una estación móvil. Se simulará una comunicación de voz a través del canal TCH/FS generando una secuencia binaria pseudoaleatoria que representa la salida del codificador de voz, bloque para el que no se han desarrollado funciones en este Proyecto. Para los demás canales lógicos que se transmitirán (BCCH, CCCH, SDCCH, SACCH) los datos se generarán también como secuencias pseudoaleatorias, empleando para ello la función BINGEN. La información perteneciente a los canales SCH y FCCH es generada internamente por la función TRANSBTS. Los datos de los distintos canales lógicos se codificarán mediante la función CODCANAL. Se utilizará para la transmisión la portadora con ARFCN = 60 de la banda primaria de GSM. Este ARFCN corresponde a una frecuencia de 947 MHz para el enlace descendente, que es el que vamos a simular. La potencia de salida del transmisor será de 35 W, lo que corresponde a la clase 5 de GSM 900. El BSIC de la BTS será 3-2. Como sabemos, el segundo octeto proporcionará el código de la secuencia de sondeo (TSC) que se incluye en la parte central de las ráfagas normales para poder llevar a cabo la ecualización en el receptor. La simulación de la parte de radiofrecuencia se llevará a cabo utilizando la envolvente compleja de las distintas señales, ahorrando así tiempo y carga computacional. Se tomará una frecuencia de muestreo para la envolvente compleja que corresponda a 40 muestras por periodo de bit, de modo que sea posible mantener la resolución adecuada para los perfiles potencia – retardo del canal definidos en la especificación GSM 05.05. Se utilizará la función TRANSBTS para realizar la correspondencia entre canales lógicos y canales físicos y obtener las ráfagas moduladas. Bloques del transmisor de RF En la figura II.1 se muestra un esquema de la cadena de transmisión desde la salida del modulador (incluido en el bloque TX) hasta la antena transmisora de la BTS. Se han señalado las longitudes de los cables que conectan los distintos equipos. La señal de salida del modulador pasa a un combinador (cuyo objetivo es sumar las señales de salida de varios moduladores para combinarlas en la misma antena transmisora), y después recorre el cable coaxial que la transporta hasta el amplificador de RF, que estará colocado junto a la antena, en lo alto de una torre de 45 m de altura.

395

Cuarta Parte: Simulaciones

Antena

Amplificador RF

Combinador

TX

1.20 m

50 m

0.70 m

Figura II.1.- Esquema del bloque transmisor de RF en la BTS.

Admitiremos que la impedancia es de 50 Ω en los distintos elementos del transmisor de RF. Utilizaremos los cables que se presentaron en apartado II.9 de la tercera parte. Para los tramos más cortos (entre la salida del TRX y la entrada del combinador, y entre la salida del amplificador de RF y la entrada de la antena) se utilizará un cable Heliax® FSJ4-50B, fabricado por Andrew®. El cable entre la salida del combinador y la entrada del amplificador de RF será Heliax® LDF7-50A, del mismo fabricante. Reproducimos aquí parte de la tabla que presentábamos en el apartado II.9 de la tercera parte. Tipo de cable LDF7-50A

FSJ4-50B

Frecuencia (MHz) 894 960 1700 2000 894 960 1700 2000

Atenuación (dB/100m) 2.52 2.62 3.72 4.10 11.20 11.60 16.10 17.70

Para obtener las pérdidas para la frecuencia de transmisión utilizada en esta simulación (947 MHz), realizaremos una interpolación lineal entre los valores que aparecen en la tabla. Como resultado de esta interpolación, obtenemos que las pérdidas para el caso del LDF7-50A son de 2.60 dB/100m, mientras que para el FSJ4-50B son de 11.52 dB/100m. El combinador que emplearemos será el Siemens DUCOM 4:1, cuyas pérdidas se cifran en 5.2 dB. Si suponemos que en cada conector las pérdidas son de 0.15 dB, las pérdidas totales debidas a los 4 conectores del primer tramo lineal serán 0.6 dB . Los dos conectores existentes entre el amplificador y la antena tendrían entonces unas pérdidas de 0.3 dB. Para el cálculo de las pérdidas en cada uno de los tramos lineales, se va a utilizar la función SUMPERD. Respecto al ruido, calcularemos por separado el ruido en los tramos lineales y en el amplificador. Supondremos que la figura de ruido de cables y conectores es despreciable. En cuanto al combinador, no se ha encontrado en la documentación de Siemens el valor de su figura de ruido. Supondremos que es bajo, dado que se trata de un elemento pasivo. Se considerará que la figura de ruido del tramo lineal entre la salida del modulador y la entrada del amplificador de RF es de 1 dB. 396

Cuarta Parte: Simulaciones

Se considerará que el ancho de banda de ruido es de 200 KHz para todos los elementos del transmisor de RF, ya que ese es el ancho de banda de un radiocanal GSM. Se empleará la función GENRUIDO para generar las secuencias de ruido asociadas a la salida de cada bloque. Se sumarán dichas secuencias a las señales correspondientes para obtener la salida de cada elemento. Los elementos de la cadena de transmisión de RF deberán tener un ancho de banda de 25 MHz, para dejar pasar toda la banda de frecuencias asignadas para el enlace descendente de P-GSM. Incluso modelando los filtros de RF mediante sus equivalentes en banda base, el ancho de banda de éstos precisaría de una frecuencia de muestreo al menos 5 ó 6 veces superior a la que estamos empleando en esta simulación, lo cual implica un esfuerzo computacional mucho mayor, y unos tiempos de simulación también mayores, máxime teniendo en cuenta que se pretende simular una transmisión que abarca multitramas completas, lo cual implica un gran número de ráfagas TDMA. Por tanto, vamos a considerar despreciables los efectos del filtrado provocados por los elementos de la cadena de transmisión de RF. Para simular la no linealidad del amplificador de RF se utilizará el modelo “soft limiter” desarrollado en la función AMPLIF. Las características fundamentales del amplificador de RF se reproducen a continuación. Banda de frecuencias de operación (MHz) Ganancia (dB) Punto de compresión de 1 dB (dBm) Figura de ruido (dB)

935-960 10 38 12

El modelo de la antena será muy simplificado. La antena se describirá únicamente por su ganancia de potencia. Este parámetro incluye los efectos de la ganancia directiva y de las pérdidas en el circuito de antena. La señal de salida de la antena se hará pasar por el canal de propagación, descrito a continuación. Se considerará una ganancia de potencia de la antena de 14 dBi. Canal Los parámetros para el modelado del canal serán los que se definieron en el apartado II.11 de la tercera parte, al describir las funciones PATHLOSS y CANAL. Consideraremos que la transmisión toma lugar en un entorno rural. La torre donde está ubicada la antena de la BTS tendrá 45 m de altura. La altura del móvil será de 1.5 m y se desplazará a una velocidad de 100 Km/h. En primer lugar, se hará una simulación en la que la distancia entre el móvil y la estación base sea de 15 Km. Posteriormente, se variará la distancia y se considerará el caso en que ésta es mucho menor, por ejemplo 300 m. Por último, se repetirá la simulación para una distancia de 30 Km. Para el cálculo de las pérdidas de propagación se va a utilizar el método de Okumura-Hata, identificado como ‘hata’ en la llamada a la función PATHLOSS. Para el desvanecimiento lento se considerará una desviación típica de 8 dB. Si admitimos que el valor del desvanecimiento lento se actualiza cada 70 m, para la 397

Cuarta Parte: Simulaciones

velocidad del móvil que estamos considerando esto equivale a un periodo de actualización de 194.4 ms. El perfil potencia-retardo que se va a emplear será el modelo de 6 coeficientes para área rural, que se identifica como ‘ra1’ al realizar la llamada a la función CANAL. A continuación se reproducen los valores del tiempo relativo y la potencia relativa media de cada coeficiente o “tap” del modelo, así como el tipo de espectro Doppler asociado. Número de “tap” 1 2 3 4 5 6

Tiempo relativo ( µ s) 0 0.1 0.2 0.3 0.4 0.5

Potencia relativa media (dB) 0 -4 -8 -12 -16 -20

Espectro Doppler RICE CLASS CLASS CLASS CLASS CLASS

Receptor RF En la figura II.2 se muestra un esquema de la cadena de recepción en la MS, desde la antena hasta la entrada del demodulador (incluido en el bloque RX). El bloque de RF que se ha diseñado para esta simulación es un receptor superheterodino. Se han anotado también los niveles máximo y mínimo de señal esperados en cada punto del receptor. La señal de salida de la antena receptora pasa a un amplificador de bajo ruido (LNA, “Low Noise Amplifier”). La señal amplificada es trasladada a la frecuencia intermedia (FI) mediante un mezclador ideal. El filtrado en frecuencia intermedia tiene como objetivo seleccionar las frecuencias del espectro alrededor de la frecuencia intermedia, eliminando la componente de alta frecuencia de salida del mezclador. Finalmente, el amplificador de ganancia variable tratará de ajustar los niveles de señal a su salida para que sean acordes con la sensibilidad del demodulador. Será el demodulador el encargado de la sintonización del canal de frecuencia asignado a la comunicación. Amplificador de FI ganancia variable

Antena

RX

Filtro en FI

X LNA

Max: -12 dBm Min: -102 dBm

AGC

Fc-FI Max: 3 dBm Min: -87 dBm

Max: -3.5 dBm Min: -90.5 dBm Max: 6 dBm Min: -52.5 dBm

Figura II.2.- Esquema del bloque receptor de RF de la estación móvil.

398

Cuarta Parte: Simulaciones

Se supondrá que la MS es un portátil de mano con antena integrada. Al tratarse de un equipo compacto, no aparecerán pérdidas debidas a cables. Todas las pérdidas que puedan existir se asociarán a los elementos de la cadena de recepción. Para la antena receptora, al igual que se hizo para la transmisora, se empleará un modelo simplificado. En este caso, además de la ganancia de potencia de la antena, se incluirá la figura de ruido, con objeto de simular el ruido aditivo provocado por el canal. Para un móvil con antena integrada, como es el caso que nos ocupa, se admite que la ganancia de potencia de la antena es de 0 dBi. La figura de ruido de la antena receptora será de 11.80 dB. El amplificador de bajo ruido se sitúa al principio de la cadena de recepción con objeto de minimizar la figura de ruido del conjunto. Los parámetros que emplearemos para este amplificador son los siguientes: Banda de frecuencias de operación (MHz) Ganancia (dB) Punto de compresión de 1 dB (dBm) Figura de ruido (dB)

935-960 15 -5 2.2

Se empleará la función AMPLIF para la simulación del LNA, y se incluirá a su salida el ruido generado por el amplificador, calculado mediante GENRUIDO. Dado que en la simulación que estamos llevando a cabo se emplea la representación de las señales mediante sus componentes en fase y cuadratura, no se incluirá el mezclador de la figura II.2 en la simulación. Es más, el filtro subsiguiente al convertidor de frecuencia deberá tener un ancho de banda de 25 MHz, lo que haría necesaria una frecuencia de muestreo muy superior a la utilizada en esta simulación, y que haría que la carga computacional y el tiempo de simulación se disparasen. Por tanto, nos limitaremos a simular el efecto conjunto del mezclador y el filtro en FI como una pérdida de 3.5 dB y la adición del ruido generado por el conjunto de estos elementos. Se supondrá que la figura de ruido del conjunto es baja, por ejemplo, 1 dB. El conjunto formado por el AGC y el amplificador de ganancia variable se simulará utilizando la función AGC, descrita en el apartado II.10 de la tercera parte de la memoria. La ganancia inicial del amplificador será de 10 dB. Los parámetros que se utilizarán para el control automático de ganancia se muestran a continuación: Banda de frecuencias de operación (MHz) Ganancia mínima (dB) Ganancia máxima (dB) Ganancia inicial para cada ráfaga (dB) Punto de compresión de 1 dB (dBm) Figura de ruido (dB) Nivel de señal deseado a la salida (dBm) Paso de adaptación del algoritmo de AGC Periodo de actualización del valor de la ganancia (expresado en periodos de bit)

935-960 -4 38 10 10 7 6 0.8 1 399

Cuarta Parte: Simulaciones

El efecto de filtrado del amplificador no se tendrá en cuenta, por las mismas razones que hemos argüido para los diferentes filtros de RF y FI de la simulación: la frecuencia de muestreo necesaria para simular correctamente su ancho de banda incrementaría considerablemente el tiempo de computación, sin que los resultados finales se vieran muy afectados por ello. Se admitirá que la impedancia en todos los elementos que forman el receptor es de 50 Ω . Al igual que se hizo para el transmisor de RF, se considerará que el ancho de banda de ruido de todos los elementos de la cadena de recepción es de 200 KHz. Demodulación, ecualización y decodificación de canal En esta simulación, en la que se trabaja sobre la envolvente compleja de señales moduladas, la función GMSKDEM nos servirá para modelar los efectos que el filtro paso bajo y el convertidor analógico digital del demodulador de cuadratura tienen sobre la señal. El filtro paso bajo elegido para el demodulador es un Chebyshev tipo II de orden 5 con frecuencia de corte de 300 KHz y 20 dB de atenuación en la banda de rechazo. Se ha empleado la función CHEBY2 para el diseño del filtro analógico. La discretización se ha realizado mediante la función BILINEAR, utilizando como frecuencia de “prewarping” 300 KHz. Ambas funciones pertenecen a la librería de Procesado de Señal de Matlab®. En la figura II.3 se muestra la respuesta en frecuencia del filtro paso bajo analógico, obtenida mediante la función FREQS.

Magnitude

10

Respuesta en frecuencia del filtro paso bajo C hebyshev tipo II

0

-2

10

-4

10

5

10

6

10 Frequency (radians)

7

10

Phase (degrees)

200 100 0 -100 -200 10

5

6

10 Frequency (radians)

10

7

Figura II.3.- Respuesta en frecuencia del filtro paso bajo empleado para el demodulador.

400

Cuarta Parte: Simulaciones

Los parámetros para la cuantización realizada por el convertidor analógico – digital del demodulador se obtendrán a partir de los niveles máximo y mínimo de señal a la salida del amplificador de ganancia variable de la figura II.2. Asignaremos al valor de saturación del cuantizador el nivel de 6 dBm, que, admitiendo que la impedancia es de 50 Ω , corresponde a una tensión de pico de 630.9573 mV. Si asignamos al nivel de sensibilidad del cuantizador (tamaño del escalón de cuantización) el nivel mínimo esperado a la entrada del demodulador (-52.5 dBm, que corresponde a 0.7499 mV), obtendremos que el número de bits necesarios para la cuantización es 10.7. Redondeando esta cifra hacia arriba se emplearán 11 bits para el convertidor, lo que proporciona un tamaño del escalón de cuantización igual a 0.6162 mV, que corresponde a –54.2 dBm. El número de muestras por periodo de bit para la conversión a formato digital será igual a 2, que es suficiente para asegurar un buen funcionamiento del ecualizador Viterbi. Tras demodular cada ráfaga, se procederá a su ecualización, utilizando para ello la función ECUALIZ. Como se mostró en el apartado II.12 de la tercera parte de la memoria, para la ecualización de señales GMSK que han atravesado un canal de propagación con un perfil potencia – retardo de tipo rural las secuencias GMSK generadas internamente por el ecualizador deberían extenderse, como mínimo, a 5 periodos de bit. Emplearemos la función GENSEC para la generación de las señales GMSK internas al ecualizador, que servirán para estimar las señales recibidas a partir de la estimación de canal y posteriormente emplear el algoritmo de Viterbi para la ecualización. El número de muestras por periodo de bit coincidirá con el especificado para el convertidor analógico – digital del demodulador, que es 2 como hemos dicho antes. El ecualizador entrega a la salida secuencias binarias, pero no lleva a cabo la decodificación diferencial. Esto es tarea de la función DECODDIF, que deberá aplicarse a cada ráfaga para deshacer la codificación diferencial que se aplica en el transmisor previamente a la modulación. A continuación, se extraen los bits de información de cada una de las ráfagas, utilizando para ello la función EXTRAEDAT. Hay que tener en cuenta que la salida de la función EXTREDAT incluye los “stealing flags” o indicadores de “robo” de las ráfagas, por lo que éstos deberán ser a su vez extraídos antes de realizar la decodificación de canal. Finalmente, se empleará DECODCAN para decodificar los mensajes de los distintos canales: - el canal de tráfico TCH/FS, - su señalización asociada (SACCH) - el canal de difusión (BCCH).

II.2.- Ficheros de comandos Los comandos para la realización de esta simulación se han dividido en varios ficheros, con la intención de facilitar posibles modificaciones en los parámetros. A continuación se describe brevemente el contenido de cada uno de estos ficheros. 401

Cuarta Parte: Simulaciones

-

-

-

SIMUL_1a:

Generación de los datos aleatorios de los distintos canales lógicos que intervienen en la simulación, codificación de canal, generación de la estructura de multitramas de cada intervalo de tiempo, generación de ráfagas y modulación GMSK. SIMUL_1b: Bloques de transmisión de RF de la BTS. SIMUL_1c: Canal de propagación. SIMUL_1d: Bloques de recepción de RF de la estación móvil. SIMUL_1e: Demodulación, ecualización y decodificación de los datos de los diferentes canales lógicos tratados por la estación móvil (TCH/FS, SACCH y BCCH). SIMUL_1f: Obtención de los resultados que se presentarán en el apartado II.3.

A continuación se presenta el contenido de cada uno de estos ficheros. Fichero SIMUL_1a %SIMUL_1a % % Simulación 1, primer fichero % % Transmisión del radiocanal "baliza" por parte de una BTS % % La configuración de los intervalos de tiempo será: % % TN 0: Correspondencia tipo III % TN 1: Correspondencia tipo IV % TN 2: Correspondencia tipo I % TN 3: Correspondencia tipo I % TN 4: Correspondencia tipo I % TN 5: Correspondencia tipo I % TN 6: Correspondencia tipo I % TN 7: Correspondencia tipo I % % Supondremos que el TN 4 está asociado a la comunicación con un móvil. %Número total de tramas de la simulación: NUM_TRAMAS_VOZ=10; %Datos de configuración conf=[3 4 1 1 1 1 1 1]; asig_full=[NaN NaN 0 0 1 0 0 0]; %Asignaremos el 5º intervalo de tiempo %a una comunicación TCH/F asig_half=[NaN NaN 0 0 0 0 0 0]; BSIC=[3 2]; %BS_AG_BLKS_RES= %No se usará en las simulaciones. sistema='p-gsm' ARFCN=60 [Fuplink_MHz Fdownlink_MHz]=arfcn2f(ARFCN,sistema); Fc=Fdownlink_MHz*1e6; %La pasamos a Hz Pot_Wat=35; potencia=10*log10(Pot_Wat*1e3); %Potencia del transmisor, en dBm. imped=50; %Impedancia: 50 ohmios T=3.69e-6 %1 bit -> 3.69 microsegundos Fs=40/T %Hz %Haremos la simulación en banda base... pos_asig_f=find(asig_full==1); NTF=length(pos_asig_f);

402

Cuarta Parte: Simulaciones %Se generan datos de TCH/F y SACCH asociados como intervalos %asignados a TCH/F haya en la trama. for ind_matriz=1:NTF datos_tchf(:,:,ind_matriz)=bingen(NUM_TRAMAS_VOZ,260); temp=datos_tchf(:,:,ind_matriz); codigo_tchf(:,:,ind_matriz)=codcanal(temp,'tch/fs'); datos_sacchf(:,:,ind_matriz)=bingen(ceil(NUM_TRAMAS_VOZ/26),184); temp=datos_sacchf(:,:,ind_matriz); codigo_sacchf(:,:,ind_matriz)=codcanal(temp,'sacch'); end temp=size(codigo_tchf); NUM_TRAMAS_TOT=temp(1)+floor(temp(1)/13); %El segundo sumando es para %tener en cuenta que se añaden tramas de SACCH y tramas "idle" en la %multitrama MF26. %Generación de los datos de los canales de control %BCCH datos_bcch=bingen(ceil(NUM_TRAMAS_TOT/51),184); %Bloques de 184 bits codigo_bcch=codcanal(datos_bcch,'bcch'); %CCCH (Incluye AGCH y PCH) for ind_matriz=1:9 datos_ccch(:,:,ind_matriz)=bingen(ceil(NUM_TRAMAS_TOT/51),184); temp=datos_ccch(:,:,ind_matriz); codigo_ccch(:,:,ind_matriz)=codcanal(temp,'agch'); end %SDCCH/8 y SACCH/8 for ind_matriz=1:9 datos_sdcch8(:,:,ind_matriz)=bingen(ceil(NUM_TRAMAS_TOT/51),184); temp=datos_sdcch8(:,:,ind_matriz); codigo_sdcch8(:,:,ind_matriz)=codcanal(temp,'sdcch'); datos_sacchc8(:,:,ind_matriz)=bingen(ceil(NUM_TRAMAS_TOT/51),184); temp=datos_sacchc8(:,:,ind_matriz); codigo_sacchc8(:,:,ind_matriz)=codcanal(temp,'sacch'); end %Estos no se usan en esta simulación: datos_sdcch4=[]; codigo_sdcch4=[]; datos_sacchc4=[]; codigo_sacchc4=[]; datos_tchh=[]; codigo_tchh=[]; datos_sacchh=[]; codigo_sacchh=[]; %Transmisión (incluye el empaquetado y la modulación) %Se empeará la función transbts [salida_mod,rafagadif]=transbts(NUM_TRAMAS_TOT,Fc,Fs,BSIC,potencia,... ...conf,asig_full,asig_half,imped,codigo_bcch,codigo_ccch,... ...codigo_sdcch8, codigo_sacchc8,codigo_sdcch4,codigo_sacchc4,... ...codigo_tchf,codigo_sacchf,codigo_tchh,codigo_sacchh);

Fichero SIMUL_1b %SIMUL_1b % % Simulación 1, segundo fichero %

403

Cuarta Parte: Simulaciones %

Bloque transmisor RF para la BTS de SIMUL_1a.

%Tomamos cada ráfaga y aplicamos los distintos bloques que componen el %transmisor de RF. %No hay "power ramping" por tratarse del radiocanal "baliza" (transmitirá %constantemente). %El transmisor de RF constará de una primera parte lineal, un %amplificador de RF y otra parte lineal que va a la antena. %Tramo lineal 1: Pérdidas, ruido y efecto del filtrado %Pérdidas: Lcables1=[2.60 50; 11.52 1.20]; Lconec1=0.6; Lcomb1=5.2; %Siemens DUCOM 4:1 Lotros1=0; [coef_tramo1,perdidas_tramo1_dB]=sumperd(Lcables1,Lconec1,Lcomb1,Lotros1); %Efecto de filtrado: Btramo1=1; Atramo1=1; salida_tramo1_sinruido=coef_tramo1*filter(Btramo1,... ...Atramo1,salida_mod,[],2); %Hay que hacer que filtre por filas. %Ruido aditivo: B1=200e3; %Ancho de banda de ruido: 200 KHz (el ancho de banda %de un canal radio). F1=1; %Suponemos que el factor de ruido del DUCOM es 1 dB y %que los cables no meten ruido. G1=-perdidas_tramo1_dB; TAMA=size(salida_tramo1_sinruido); ruido_tramo1=genruido(B1,F1,G1,TAMA,'iq',imped); salida_tramo1=salida_tramo1_sinruido+ruido_tramo1; %Amplificador de RF Gamp=10; %Ganancia del amplificador, en dB. P1=38; %Pto de compresión de 1dB, en dBm. Limite=p12l(P1,'d',imped); Bamp=1; Aamp=1; salida_amplif_sinruido=amplif(salida_tramo1,Gamp,Bamp,Aamp,Limite); Bruidoamp=200e3; %Consideraremos el ancho de banda de ruido igual %al ancho de un radiocanal (200 KHz). Famp=12; %Factor de ruido del amplificador: 12 dB. TAMA=size(salida_amplif_sinruido); ruido_amplif=genruido(Bruidoamp,Famp,Gamp,TAMA,'iq',imped); salida_amplif=salida_amplif_sinruido+ruido_amplif; %Tramo lineal 2: Pérdidas, ruido... %Pérdidas: Lcables2=[11.52 0.70]; Lconec2=0.3; Lcomb2=0; Lotros2=0; [coef_tramo2,perdidas_tramo2_dB]=sumperd(Lcables2,Lconec2,Lcomb2,Lotros2); %Efecto de filtrado: Btramo2=1; Atramo2=1; salida_tramo2_sinruido=coef_tramo2*filter(Btramo2,Atramo2,... ...salida_amplif,[],2); salida_tramo2=salida_tramo2_sinruido; %El tramo 2 no mete ruido en esta simulación. %Antena

404

Cuarta Parte: Simulaciones Gant_TX=14; %Ganancia en dB gant_tx=10^(Gant_TX/20); y1=gant_tx*salida_tramo2;

Fichero SIMUL_1c %SIMUL_1c % % Simulación 1, tercer fichero % % Propagación por el canal de la señal del radiocanal "baliza" % de la BTS, que ha sido generada en SIMUL_1a y SIMUL1b. %Modelado de las pérdidas de propagación dist=15 %Km. Primer ejemplo %dist=0.3 %Segundo ejemplo %dist=30 %Tercer ejemplo hBS=45; %m hMS=1.5; %m %Método Okumura-Hata: metodo='hata'; terreno=4; %1:Ciudad paqueña o mediana, 2:ciudad grande, %3:área suburbana, 4:zona rural. perdidas_prop=pathloss(metodo,Fdownlink_MHz,dist,hBS,hMS,terreno); %Parámetros para "fast fading" y "slow fading" modelo='ra1'; %"Rural Area" de 6 "taps". %modelo='ht61' veloc_movil=100; %Km/h sigma_slow=8; %dB act_slow=0.1944; %s %Aplicación del modelo de canal [y2,canalprop]=canal(y1,Fc,Fs,modelo,veloc_movil,perdidas_prop,... ...sigma_slow,act_slow);

Fichero SIMUL_1d %SIMUL_1d % % Simulación 1, cuarto fichero % % Recepción por parte del móvil de la señal del radiocanal % "baliza" enviada por la BTS. % % El móvil tiene asignado para TCH el intervalo de tiempo 4 % de la trama. % % La señal proveniente del canal ha sido previamente generada % en SIMUL_1c.m.

%"Front End" del receptor %Receptor superheterodino: % - Antena receptora

405

Cuarta Parte: Simulaciones % % % % %

- Amplificador de bajo ruido (LNA) - Convertidor de frecuencia + filtrado en FI (como simulamos en banda base, sólo tenemos que incluir aquí el efecto de filtrado...) - Amplificador de FI, con ganancia variable (usar la función AGC)

%Antena receptora: modelo muy simplificado (ganancia de potencia y ruido) Gant_RX=0; gant_rx=10^(Gant_RX/20); y3_sinruido=gant_rx*y2; Fant=11.8; %Figura de ruido, en dB. Bruidoant=200e3; %Consideramos el ruido en un radiocanal de 200 KHz. TAMA=size(y2); ruido_ant=genruido(Bruidoant,Fant,Gant_RX,TAMA,'iq',imped); y3=y3_sinruido+ruido_ant; %HAY QUE SELECCIONAR LAS RÁFAGAS A DECODIFICAR... %(también se seleccionan las filas adecuadas de rafagadif, %para después poder establecer comparaciones...) tslot_asig=4; %Intervalo de tiempo asignado al móvil... if conf(tslot_asig+1)~=1 error('El intervalo de tiempo asignado no corresponde a una... ... multitrama de TCH/F'); end TAMA=size(y3); fn=0; ind_sacch=1; ind_tchf=1; %Inicialización de variables, por si quedaran vacías: y3_sacch=[]; y3_tchf=[]; y3_bcch=[]; for indice=tslot_asig+1:8:TAMA(1) %indice es el índice de la ráfaga... if mod(fn,26)==25 %Idle elseif mod(fn,26)==12 %SACCH y3_sacch(ind_sacch,:)=y3(indice,:); rafagadif_sacch(ind_sacch,:)=rafagadif(indice,:); ind_sacch=ind_sacch+1; else %TCH/F y3_tchf(ind_tchf,:)=y3(indice,:); rafagadif_tchf(ind_tchf,:)=rafagadif(indice,:); ind_tchf=ind_tchf+1; end fn=fn+1; end %También hay que leer las ráfagas de BCCH %Existirán ráfagas de BCCH en la portadora que estamos simulando %si aparece un 3 o un 5 en el primer elemento de conf: indice_bcch=1; fn=0; if (conf(1)==3)|(conf(1)==5) %Leer BCCH: En ambas correspondencias, el BCCH va mapeado %en las tramas 2, 3, 4 y 5 (empezando a contar por 0, se entiende). for indice=1:8:TAMA(1) %Va siempre en el Tslot 0 (primer intervalo) %de cada trama. if (mod(fn,51)>1)&(mod(fn,51)0 cod_rec_tchf=[cod_rec_tchf_st(:,1:57) cod_rec_tchf_st(:,60:116)]; end if length(cod_rec_sacch_st)>0 cod_rec_sacch=[cod_rec_sacch_st(:,1:57) cod_rec_sacch_st(:,60:116)]; end if length(cod_rec_bcch_st)>0 cod_rec_bcch=[cod_rec_bcch_st(:,1:57) cod_rec_bcch_st(:,60:116)]; end

410

Cuarta Parte: Simulaciones

%Decodificación de los datos de los distintos canales lógicos: %En principio, vamos a decodificar los datos del TCH/F, %SACCH y BCCH %"Hard decision decoding", puesto que el ecualizador proporciona %valores binarios a su salida. if length(cod_rec_tchf)>0 [datos_recup_tchf,metrica_vit_tchf,sindr_tchf]=... ...decodcan(cod_rec_tchf,'tch/fs'); end if length(cod_rec_sacch)>0 [datos_recup_sacch,metrica_vit_sacch,sindr_sacch]=... ...decodcan(cod_rec_sacch,'sacch'); end if length(cod_rec_bcch)>0 [datos_recup_bcch,metrica_vit_bcch,sindr_bcch]=... ...decodcan(cod_rec_bcch,'bcch'); end

Fichero SIMUL_1f %SIMUL_1f % % Simulación 1, sexto fichero % % Obtención de los siguientes resultados: % % 1.- Gráfica de la potencia de cada ráfaga en el conector de antena RX. % 2.- Errores antes del decodificador de canal. % 3.- Errores tras el decodificador de canal, para distintos canales % o grupos de bits dentro de un canal. % %Gráficas de POTENCIA de las ráfagas... TAMA=size(salida_mod); for indice=1:TAMA(1) %Potencia a la salida del modulador potencia_salida_mod(indice)=potrafbb(salida_mod(indice,:),... ...'nb',Fs,imped); %Potencia tras el primer tramo lineal del transmisor de la BTS potencia_salida_tramo1(indice)=potrafbb(salida_tramo1(indice,:),... ...'nb',Fs,imped); %Potencia tras el amplificador de RF de la BTS potencia_salida_amplif(indice)=potrafbb(salida_amplif(indice,:),... ...'nb',Fs,imped); %Potencia a la salida de la antena transmisora potencia_y1(indice)=potrafbb(y1(indice,:),'nb',Fs,imped); %Potencia en el conector de antena de la MS potencia_y3(indice)=potrafbb(y3(indice,:),'nb',Fs,imped); %Potencia de ruido en la antena receptora potencia_ruido_y3(indice)=potrafbb(ruido_ant(indice,:)... ...,'nb',Fs,imped); end ejex=1:TAMA(1); figure, plot(ejex,potencia_salida_mod,'b') hold on, plot(ejex,potencia_salida_tramo1,'g') plot(ejex,potencia_salida_amplif,'m')

411

Cuarta Parte: Simulaciones plot(ejex,potencia_y1,'y') plot(ejex,potencia_y3,'r') plot(ejex,potencia_ruido_y3,'c') ylabel('Potencia (dBm)') xlabel('Número de ráfaga') title('Comparación de potencias en distintos puntos del transmisor ... ... y a la entrada del receptor.') %SÓLO PARA LAS RÁFAGAS DE LOS CANALES TRATADOS POR EL RECEPTOR: %Potencia tras la antena receptora if length(y3_tchf)>0 [filas,col]=size(y3_tchf); for indice=1:filas potencia_y3_tchf(indice)=... ...potrafbb(y3_tchf(indice,:),'nb',Fs,imped); end end if length(y3_sacch)>0 [filas,col]=size(y3_sacch); for indice=1:filas potencia_y3_sacch(indice)=... ...potrafbb(y3_sacch(indice,:),'nb',Fs,imped); end end if length(y3_bcch)>0 [filas,col]=size(y3_bcch); for indice=1:filas potencia_y3_bcch(indice)=... ...potrafbb(y3_bcch(indice,:),'nb',Fs,imped); end end %Potencia tras el LNA if length(salida_lna_tchf)>0 [filas,col]=size(salida_lna_tchf); for indice=1:filas potencia_salida_lna_tchf(indice)=... ...potrafbb(salida_lna_tchf(indice,:),'nb',Fs,imped); end end if length(salida_lna_sacch)>0 [filas,col]=size(salida_lna_sacch); for indice=1:filas potencia_salida_lna_sacch(indice)=... ...potrafbb(salida_lna_sacch(indice,:),'nb',Fs,imped); end end if length(salida_lna_bcch)>0 [filas,col]=size(salida_lna_bcch); for indice=1:filas potencia_salida_lna_bcch(indice)=... ...potrafbb(salida_lna_bcch(indice,:),'nb',Fs,imped); end end %Potencia tras el mezclador if length(y_fi_tchf)>0 [filas,col]=size(y_fi_tchf); for indice=1:filas potencia_y_fi_tchf(indice)=potrafbb(y_fi_tchf(indice,:),... ...'nb',Fs,imped); end end if length(y_fi_sacch)>0

412

Cuarta Parte: Simulaciones [filas,col]=size(y_fi_sacch); for indice=1:filas potencia_y_fi_sacch(indice)=... ...potrafbb(y_fi_sacch(indice,:),'nb',Fs,imped); end end if length(y_fi_bcch)>0 [filas,col]=size(y_fi_bcch); for indice=1:filas potencia_y_fi_bcch(indice)=... ...potrafbb(y_fi_bcch(indice,:),'nb',Fs,imped); end end %Potencia tras el amplificador de ganancia variable (controlado por el AGC) if length(salida_agc_tchf)>0 [filas,col]=size(salida_agc_tchf); for indice=1:filas potencia_salida_agc_tchf(indice)=... ...potrafbb(salida_agc_tchf(indice,:),'nb',Fs,imped); end end if length(salida_agc_sacch)>0 [filas,col]=size(salida_agc_sacch); for indice=1:filas potencia_salida_agc_sacch(indice)=... ...potrafbb(salida_agc_sacch(indice,:),'nb',Fs,imped); end end if length(salida_agc_bcch)>0 [filas,col]=size(salida_agc_bcch); for indice=1:filas potencia_salida_agc_bcch(indice)=... ...potrafbb(salida_agc_bcch(indice,:),'nb',Fs,imped); end end %Potencia a la salida del demodulador %Téngase en cuenta que la tasa de muestreo %a la salida del demodulador es nr/T. if length(IQ_tchf)>0 [filas,col]=size(IQ_tchf); for indice=1:filas potencia_IQ_tchf(indice)=... ...potrafbb(IQ_tchf(indice,:),'nb',nr/T,imped); end end if length(IQ_sacch)>0 [filas,col]=size(IQ_sacch); for indice=1:filas potencia_IQ_sacch(indice)=... ...potrafbb(IQ_sacch(indice,:),'nb',nr/T,imped); end end if length(IQ_bcch)>0 [filas,col]=size(IQ_bcch); for indice=1:filas potencia_IQ_bcch(indice)=... ...potrafbb(IQ_bcch(indice,:),'nb',nr/T,imped); end end %Figuras de potencia de la ráfagas de TCH

413

Cuarta Parte: Simulaciones [filas,col]=size(IQ_tchf); ejex=1:filas; figure, plot(ejex,potencia_y3_tchf,'b'); hold on, plot(ejex,potencia_salida_lna_tchf,'m'); plot(ejex,potencia_y_fi_tchf,'g'); plot(ejex,potencia_salida_agc_tchf,'r'); plot(ejex,potencia_IQ_tchf,'y'); title('Potencia de las ráfagas de TCH en distintos puntos del receptor') xlabel('Índice de la ráfaga de TCH'); ylabel('Potencia (dBm)') %%Figuras de potencia de la ráfagas de SACCH [filas,col]=size(IQ_sacch); ejex=1:filas; figure, plot(ejex,potencia_y3_sacch,'b'); hold on, plot(ejex,potencia_salida_lna_sacch,'m'); plot(ejex,potencia_y_fi_sacch,'g'); plot(ejex,potencia_salida_agc_sacch,'r'); plot(ejex,potencia_IQ_sacch,'y'); title('Potencia de las ráfagas de SACCH en distintos puntos del receptor') xlabel('Índice de la ráfaga de SACCH'); ylabel('Potencia (dBm)') %Figuras de potencia de la ráfagas de BCCH [filas,col]=size(IQ_bcch); ejex=1:filas; figure, plot(ejex,potencia_y3_bcch,'b'); hold on, plot(ejex,potencia_salida_lna_bcch,'m'); plot(ejex,potencia_y_fi_bcch,'g'); plot(ejex,potencia_salida_agc_bcch,'r'); plot(ejex,potencia_IQ_bcch,'y'); title('Potencia de las ráfagas de BCCH en distintos puntos del receptor') xlabel('Índice de la ráfaga de BCCH'); ylabel('Potencia (dBm)') %Errores PARA CADA CANAL tratado por el receptor %Errores a la salida del ecualizador err_sal_ec_tchf=y_ecual_tchf(:,1:156)-rafagadif_tchf; err_sal_ec_sacch=y_ecual_sacch(:,1:156)-rafagadif_sacch; err_sal_ec_bcch=y_ecual_bcch(:,1:156)-rafagadif_bcch; %Sumas: sum_err_sal_ec_tchf=sum(abs(err_sal_ec_tchf),2); sum_err_sal_ec_sacch=sum(abs(err_sal_ec_sacch),2); sum_err_sal_ec_bcch=sum(abs(err_sal_ec_bcch),2); %Errores tras la decodificación diferencial err_decdif_tchf=y_nodif_tchf(:,1:156)-decoddif(rafagadif_tchf); err_decdif_sacch=y_nodif_sacch(:,1:156)-decoddif(rafagadif_sacch); err_decdif_bcch=y_nodif_bcch(:,1:156)-decoddif(rafagadif_bcch); %Sumas: sum_err_decdif_tchf=sum(abs(err_decdif_tchf),2); sum_err_decdif_sacch=sum(abs(err_decdif_sacch),2); sum_err_decdif_bcch=sum(abs(err_decdif_bcch),2); %Sin los bits de la secuencia de entrenamiento: for indice=1:TamNod_tchf(1) datos_tchf_entrel(indice,:)=... ...extraedat(decoddif(rafagadif_tchf(indice,:)),'nb'); end for indice=1:TamNod_sacch(1) datos_sacch_entrel(indice,:)=... ...extraedat(decoddif(rafagadif_sacch(indice,:)),'nb'); end for indice=1:TamNod_bcch(1) datos_bcch_entrel(indice,:)=...

414

Cuarta Parte: Simulaciones ...extraedat(decoddif(rafagadif_bcch(indice,:)),'nb'); end err_extr_tchf=cod_rec_tchf_st-datos_tchf_entrel; err_extr_sacch=cod_rec_sacch_st-datos_sacch_entrel; err_extr_bcch=cod_rec_bcch_st-datos_bcch_entrel; %Sumar: sum_err_extr_tchf=sum(abs(err_extr_tchf),2); sum_err_extr_sacch=sum(abs(err_extr_sacch),2); sum_err_extr_bcch=sum(abs(err_extr_bcch),2); %Errores tras la decodificación de canal err_sal_cod_tchf=datos_recup_tchf-datos_tchf; err_sal_cod_sacch=datos_recup_sacch-datos_sacch; err_sal_cod_bcch=datos_recup_bcch-datos_bcch; %Sumas sum_err_sal_cod_tchf=sum(abs(err_sal_cod_tchf),2); sum_err_sal_cod_sacch=sum(abs(err_sal_cod_sacch),2); sum_err_sal_cod_bcch=sum(abs(err_sal_cod_bcch),2); %Errores en los bits de TCH/FS, por clases: %Bits calse 1a: err_sal_clase1a=datos_recup_tchf(:,1:50)-datos_tchf(:,1:50); sum_err_sal_clase1a=sum(abs(err_sal_clase1a),2); %Bits clase 1b: err_sal_clase1b=datos_recup_tchf(:,51:182)-datos_tchf(:,51:182); sum_err_sal_clase1b=sum(abs(err_sal_clase1b),2); %Bits clase 2 (no protegidos) err_sal_clase2=datos_recup_tchf(:,183:260)-datos_tchf(:,183:260); sum_err_sal_clase2=sum(abs(err_sal_clase2),2);

II.3.- Resultados En primer lugar, se han simulado 10 bloques de voz de salida del codificador vocal de velocidad completa. Esto se traduce, tras la pertinente codificación de canal, entrelazado y mapeo en la multitrama MF26, en un total de 47 tramas, es decir: 376 ráfagas. Se ha supuesto que el entorno de la simulación es rural y que la estación móvil se encuentra a 15 Km de la BTS y se desplaza a una velocidad de 100 Km/h. El desvanecimiento multitrayecto se ha modelado mediante el perfil ‘ra1’ de la función CANAL. En la figura II.4 se muestran los niveles de potencia en distintos puntos del transmisor de la BTS, junto con el nivel de potencia en el conector de antena de la estación móvil, para cada una de las ráfagas de la simulación. Los niveles de potencia que se muestran corresponden a la parte útil de cada ráfaga. Se han calculado empleando la función POTRAFBB. Los colores de las líneas representadas indican lo siguiente: Azul Verde Magenta Amarillo Rojo Celeste

Salida del modulador Salida del primer tramo lineal (entrada al amplificador de RF) Salida del amplificador de RF Salida la antena transmisora Conector de antena en recepción (estación móvil) Ruido en la antena receptora. 415

Cuarta Parte: Simulaciones

Comparación de potencias en distintos puntos del transmisor y a la entrada del receptor. 100

Potencia (dBm)

50

0

-50

-100

-150 0

50

100

150 200 250 Número de ráfaga

300

350

400

Figura II.4.

En la estación móvil se leen los datos correspondientes al canal TCH/FS que tiene asignado, así como a su señalización asociada (SACCH). En la figura II.5 se ha representado la potencia de la parte útil de las distintas ráfagas del canal lógico TCH/FS en distintos puntos del receptor de la estación móvil. El código de colores empleado es el siguiente: Azul Magenta Verde Rojo Amarillo

Potencia en el conector de la antena receptora Potencia a la salida del amplificador de bajo ruido (LNA) Potencia a la salida del filtro de frecuencia intermedia. Potencia tras el amplificador de ganancia variable Potencia de las componentes IQ demoduladas

416

Cuarta Parte: Simulaciones

Potencia de las ráfagas de TCH en distintos puntos del receptor -10 -20 -30

Potencia (dBm)

-40 -50 -60 -70 -80 -90 -100 0

5

10

15 20 25 30 Índice de la ráfaga de TCH

35

40

45

Figura II.5.

Puede observarse cómo la potencia de la señal a la salida del demodulador es prácticamente igual a la potencia a la salida del amplificador de ganancia variable. La diferencia media está en torno a 0.04 dB, aunque pueden alcanzarse valores cercanos a 0.2 dB2. Los niveles de señal en el conector de la antena receptora oscilan en torno a –75 dBm, llegando incluso a –93 dBm en algunas ráfagas de la simulación. Es de esperar que aparezcan algunos errores al decodificar los datos. En una situación normal, lo más probable es que se hubiera realizado un “handover”, de manera que la comunicación se realizase con otra BTS que proporcionase un mejor nivel de señal (del orden de –55 dBm ó –60 dBm). En la figura II.6 se muestra la evolución de la ganancia del amplificador de frecuencia intermedia (controlado por el AGC) para cada ráfaga. Se observan mínimas variaciones entre ellas, llegándose en todos los casos a alcanzar la máxima ganancia del amplificador, en un intento por lograr que la potencia de salida sea 6 dBm, para aprovechar así al máximo el rango del convertidor analógico-digital del demodulador.

2

En otras simulaciones se han encontrado diferencias de hasta 1 dB.

417

Cuarta Parte: Simulaciones

Evolución de la ganacia del amplificador de FI para distintas ráfagas de TCH 40

35

Ganancia (dB)

30

25

20

15

10 0

20

40

60

80 100 Periodos de bit

120

140

160

Figura II.6.

Tras la ecualización se obtiene el número de errores para cada ráfaga (variable A continuación se realiza la decodificación diferencial, tras la cual el número de errores para cada ráfaga viene expresado en el vector sum_err_decdif_tchf, cuyos valores se reproducen a continuación, junto con el número de errores para cada ráfaga tras la extracción de los datos del canal TCH/FS de la misma (sum_err_extr_tchf). sum_err_sal_ec_tchf).

Número de ráfaga 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17

sum_err_sal_ec_tchfsum_err_decdif_tchf sum_err_extr_tchf 9 15 12 9 11 8 5 13 10 12 6 6 5 3 2 7 7 4 13 9 6 10 6 4 16 13 11 19 12 9 10 7 5 15 14 11 8 6 4 12 7 5 11 10 7 13 9 6 12 8 6

418

Cuarta Parte: Simulaciones Número de ráfaga 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44

sum_err_sal_ec_tchfsum_err_decdif_tchf sum_err_extr_tchf 7 12 5 15 8 11 10 14 13 11 8 11 12 11 13 14 12 10 6 14 9 9 11 10 13 9 13

6 8 4 11 8 17 9 12 13 7 6 13 8 10 9 11 6 8 10 12 6 9 12 5 7 5 7

3 6 3 8 6 14 7 10 10 4 4 10 6 7 6 9 4 6 8 10 3 6 9 3 4 2 4

Puede observarse cómo aparecen errores en todas las ráfagas del canal TCH/FS. El efecto global del decodificador diferencial ha sido hacer que el número de errores pase de 477 a 395. El decodificador de canal será el encargado de detectar y corregir, cuando sea posible, estos errores. En primer lugar, se realizará el desentrelazado, para a continuación realizar la decodificación del código convolucional que protege a los 182 bits de clase 1 de cada bloque de 260 bits. Por último, se calculará el síndrome del código bloque detector de errores que protege a los 50 bits de clase 1a. En la siguiente tabla se han desglosado los errores según la clase de los bits, para los 10 bloques de 260 bits que componen esta simulación, presentándose también la métrica obtenida por el decodificador Viterbi para el código convolucional de los bits de clase 1 (metrica_vit_tchf) y el síndrome de los bits de clase 1a (sindr_tchf).

419

Cuarta Parte: Simulaciones

Nº bloque 1 2 3 4 5 6 7 8 9 10

Errores en bits Errores en bits Errores en bits metrica_vit_t chf clase 1a clase 1b clase 2 0 0 2 23 0 0 5 20 0 0 6 24 0 0 2 20 0 0 5 24 0 0 5 26 0 0 6 21 0 0 5 23 0 0 4 22 0 0 4 24

sindr_tchf 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

De la tabla anterior se desprende que el decodificador convolucional ha sido capaz de detectar y corregir todos los errores que aparecían en los bits de clase 1. Al no existir ya errores en los bits de clase 1a, el síndrome calculado a partir del código bloque es cero para los 10 bloques. Los bits de clase 2, al no tener ningún tipo de protección, son afectados por los errores. En la figura II.7 se muestra la potencia de las ráfagas de SACCH en distintos puntos del receptor. Sólo se leen 2 ráfagas de SACCH, lo cual no es suficiente para llegar a desentrelazar y decodificar un bloque de datos completo de este canal. Para conseguir tal cosa, habría que realizar una simulación prácticamente con el doble de ráfagas, lo que redundaría en un enorme esfuerzo computacional. Potencia de las ráfagas de SACCH en distintos puntos del receptor -30

-40

Potencia (dBm)

-50

-60

-70

-80

-90 1

1.2

1.4 1.6 Índice de la ráfaga de SACCH

1.8

2

Figura II.7.

420

Cuarta Parte: Simulaciones

Como el esquema de codificación de canal utilizado para el SACCH es el mismo que el que se emplea para el BCCH, y es posible decodificar un bloque de datos completo de este canal utilizando las ráfagas de nuestra simulación (dado que estos datos se mapean en el intervalo de tiempo 0 de las tramas 2, 3, 4 y 5), realizaremos la decodificación de los datos del canal BCCH, y los resultados, en cuanto a potencia en diferentes puntos del receptor y a errores tras la decodificación de canal, serán extrapolables al caso del canal SACCH. En la figura II.8 se muestra la potencia de la parte útil de cada ráfaga para el canal BCCH en distintos puntos de la cadena de recepción de la estación móvil. El código de colores empleado en esta figura es el mismo que para el caso de la figura II.5.

Potencia de las ráfagas de BC C H en distintos puntos del receptor -20

-30

Potencia (dBm)

-40

-50

-60

-70

-80 1

1.5

2 2.5 3 Índice de la ráfaga de BCCH

3.5

4

Figura II.8.

De nuevo, los niveles de señal a la salida del amplificador de ganancia variable y a la salida del demodulador son muy similares, con una diferencia que oscila en torno a 0.03 dB. En la siguiente tabla se muestra el número de errores para las distintas ráfagas de BCCH a la salida del ecualizador (sum_err_sal_ec_bcch), tras la decodificación diferencial (sum_err_decdif_bcch) y tras la extracción de los datos de la ráfaga (sum_err_extr_bcch).

421

Cuarta Parte: Simulaciones Número de ráfaga sum_err_sal_ec_bcch de BCCH 1 10 2 16 3 17 4 13

sum_err_decdif_bcch

sum_err_extr_bcch

7 8 10 11

4 6 8 8

Todos los bits de información del canal BCCH van protegidos por el código convolucional externo, y además por un código FIRE interno. En esta simulación, tras deshacer el entrelazado, a partir de las 4 ráfagas de BCCH se obtiene un bloque de datos del canal BCCH. Tras la decodificación de canal se recuperan los datos originales sin error alguno. La métrica (distancia Hamming) obtenida por el decodificador Viterbi para el código convolucional externo es 26, y el síndrome del código FIRE es 0. El decodificador ha sido capaz de recuperar los datos originales sin errores. Si repetimos la simulación considerando que la distancia entre la estación móvil y la BTS es de 300 m, podemos observar en la figura II.9 cómo la potencia recibida por el móvil está ahora en torno a los –24 dBm. El código de colores utilizado es el mismo que el que se empleó para la figura II.4. Comparación de potencias en distintos puntos del transmisor y a la entrada del receptor. 100

Potencia (dBm)

50

0

-50

-100

-150 0

50

100

150 200 250 Número de ráfaga

300

350

400

Figura II.9

En la figura II.10 se muestra la potencia de las ráfagas correspondientes al canal TCH/FS en distintos puntos del receptor. Se ha empleado el mismo código de colores utilizado en la figura II.5. Puede observarse cómo el bucle de control automático de ganancia consigue una compresión en los valores de la potencia de las distintas ráfagas, proporcionando a su salida valores muy cercanos a los 6 dBm requeridos como valor 422

Cuarta Parte: Simulaciones

máximo de amplitud por el demodulador. Mientras que la señal en el conector de la antena receptora sufre unas oscilaciones que llegan casi a 30 dB de diferencia entre el máximo y el mínimo, tras el amplificador de ganancia variable la diferencia entre la potencia máxima y la mínima no llega a los 4 dB. Potencia de las ráfagas de TCH en distintos puntos del receptor 10

0

Potencia (dBm)

-10

-20

-30

-40

-50 0

5

10

15 20 25 30 Índice de la ráfaga de TCH

35

40

45

Figura II.10

En la figura II.11 podemos ver también cómo la evolución de la ganancia del amplificador de ganancia variable es muy diferente de la del caso anterior (que se presentó en la figura II.6). Sólo se alcanzan los valores máximos para la sexta ráfaga, que es la que se recibe con menor potencia, debido a un desvanecimiento profundo provocado por el canal de propagación.

423

Cuarta Parte: Simulaciones

Evolución de la ganacia del amplificador de FI para distintas ráfagas de TCH 40

35

Ganancia (dB)

30

25

20

15

10 0

20

40

60

80 100 Periodos de bit

120

140

160

Figura II.11

En la siguiente tabla se representa el número de errores en cada ráfaga del canal TCH/FS tras la decodificación diferencial (sum_err_decdif_tchf) y tras la extracción de los datos de la ráfaga, eliminando los errores en los bits pertenecientes a la secuencia de sondeo (sum_err_extr_tchf). Nº ráfaga 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19

sum_err_decdif_tchf sum_err_extr_tchf 0 0 0 0 1 0 0 0 1 0 5 5 1 0 1 0 1 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0

424

Cuarta Parte: Simulaciones Nº ráfaga 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44

sum_err_decdif_tchf sum_err_extr_tchf 2 1 1 2 1 0 1 1 0 1 1 1 1 0 1 1 0 0 1 1 1 0 0 1 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

En la sexta ráfaga, aparecen 5 errores que afectan a bits de datos del canal TCH/FS. Si esos errores afectan a bits de clase 1, deberán ser detectados por el decodificador de canal. En la siguiente tabla se muestran los errores tras la decodificación de canal, así como la métrica calculada por el decodificador Viterbi para los bits de clase 1, y el síndrome del código bloque de los bits de clase 1a. Nº bloque 1 2 3 4 5 6 7 8 9 10

Errores en bits clase 1a 0 0 0 0 0 0 0 0 0 0

Errores en bits clase 1b 0 0 0 0 0 0 0 0 0 0

Errores en bits clase 2 1 0 0 0 0 0 0 0 0 0

metrica_vit_tchf 2 2 0 0 0 0 0 0 0 0

sindr_tchf 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0

Se comprueba que el decodificador del código convolucional detecta 4 bits erróneos, y los corrige. El único bit erróneo que queda es de clase 2.

425

Cuarta Parte: Simulaciones

En la figura II.12 se muestra la potencia de las ráfagas de BCCH en los distintos puntos del receptor, siguiendo el mismo código de colores utilizado para la figura II.5. Vuelve a apreciarse el efecto de compresión que el bucle de control automático de ganancia tiene sobre el nivel de señal. Potencia de las ráfagas de BC C H en distintos puntos del receptor 10

5

0

Potencia (dBm)

-5

-10

-15

-20

-25

-30 1

1.5

2 2.5 3 Índice de la ráfaga de BCCH

3.5

4

Figura II.12.

Mostramos en la siguiente tabla los errores encontrados en las 4 ráfagas de BCCH tras la decodificación diferencial (sum_err_decdif_bcch) y tras la extracción de los datos de cada ráfaga (sum_err_extr_bcch). Número de ráfaga de sum_err_decdif_bcch sum_err_extr_bcch BCCH 1 0 0 2 1 0 3 1 0 4 0 0

Como se ve, tras la extracción de los datos de cada ráfaga no aparecen bits erróneos. El decodificador convolucional proporciona a su salida los datos correctos, y su métrica es 0 (no hay errores que detectar). Igualmente, el síndrome del código FIRE es 0. Si repetimos la simulación suponiendo que la distancia entre la estación base y el móvil es de 30 Km, observaremos que los niveles de señal son tan bajos que el amplificador de ganancia variable siempre funcionará con su máxima ganancia, y aún 426

Cuarta Parte: Simulaciones

así aparecerán errores en la señal recuperada, ya que el nivel de la señal de entrada al demodulador es muy cercano al valor de sensibilidad del convertidor analógico digital. En la figura II.13 se muestran los niveles de señal en el transmisor y en el conector de la antena receptora, siguiendo el mismo código de colores empleado para la figura II.4. La potencia recibida oscila en torno a los –93 dBm, llegando a producirse desvanecimientos profundos que alcanzan los –125 dBm. Comparación de potencias en distintos puntos del transmisor y a la entrada del receptor. 100

Potencia (dBm)

50

0

-50

-100

-150 0

50

100

150 200 250 Número de ráfaga

300

350

400

Figura II.13

En la figura II.14 se representan los niveles de potencia de las ráfagas del canal TCH/FS en distintos puntos del receptor. El código de colores empleado es el mismo que se utilizó en la figura II.5. Puede apreciarse que el amplificador de ganancia variable previo al demodulador debe funcionar en todo momento con la máxima ganancia para conseguir a su salida un nivel aceptable para el convertidor analógicodigital del demodulador. En la figura II.15 se observa cómo la evolución de la ganancia de este amplificador es la misma para todas las ráfagas del canal TCH/FS, intentando en todo momento alcanzar la máxima potencia de salida en el menor tiempo posible.

427

Cuarta Parte: Simulaciones

Potencia de las ráfagas de TCH en distintos puntos del receptor -30

-40

-50

Potencia (dBm)

-60

-70

-80

-90

-100

-110 0

5

10

15 20 25 30 Índice de la ráfaga de TCH

35

40

45

Figura II.14

Evolución de la ganacia del amplificador de FI para distintas ráfagas de TCH 40

35

Ganancia (dB)

30

25

20

15

10 0

20

40

60

80 100 Periodos de bit

120

140

160

Figura II.15

428

Cuarta Parte: Simulaciones

En la siguiente tabla se recoge el número de errores para cada ráfaga del canal TCH/FS tras la decodificación diferencial (sum_err_decdif_tchf) y tras la extracción de los datos de la ráfaga (sum_err_extr_tchf). Nº ráfaga 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44

sum_err_decdif_tchf sum_err_extr_tchf 14 12 11 8 5 5 16 14 10 7 8 6 9 6 7 4 13 11 8 5 7 5 13 11 11 9 13 10 8 5 7 4 8 5 12 9 9 6 4 3 7 4 8 5 11 8 11 8 14 12 23 23 8 5 7 4 13 10 8 6 10 7 7 4 11 8 8 5 8 6 10 8 13 10 6 3 8 6 7 5 5 3 6 4 4 2 6 4

429

Cuarta Parte: Simulaciones

La ráfaga con más errores es la vigésimo sexta, que es la que se ve afectada por el mayor desvanecimiento. Tras la decodificación de canal llevada a cabo sobre las ráfagas de TCH/FS, se obtienen los siguientes resultados: Nº bloque 1 2 3 4 5 6 7 8 9 10

Errores en bits Errores en bits clase 1a clase 1b 0 0 0 0 0 0 0 0 0 0 1 0 5 4 0 0 0 0 0 0

Errores en bits metrica_vit_tchf sindr_tchf clase 2 2 28 0 0 0 5 21 0 0 0 5 29 0 0 0 3 22 0 0 0 4 20 0 0 0 4 27 0 1 1 6 30 0 0 0 5 24 0 0 0 3 20 0 0 0 4 22 0 0 0

Gracias al código convolucional que protege a los bits de clase 1, se detectan y corrigen la gran mayoría de los errores en estos bits, como atestiguan los valores de la variable metrica_vit_tchf. Aun así, permanecen 6 bits erróneos de clase 1a y 4 de clase 1b. Los 6 errores en los bits de clase 1a se distribuyen entre los bloques 6º y 7º. Como vemos por los valores del síndrome (sindr_tchf), el código bloque encargado de detectar estos errores ha sido capaz de detectar el bit erróneo en el 6º bloque, pero no así los 5 errores que aparecen en el séptimo bloque. Por su parte, en los bits de clase 2 quedan un total de 41 errores, que no son detectados ni corregidos, al no estar protegidos por código alguno. En la figura II.16 se ha representado la potencia de cada ráfaga del canal BCCH en los distintos puntos del receptor, siguiento el mismo código de colores utilizado en la figura II.5.

430

Cuarta Parte: Simulaciones

Potencia de las ráfagas de BC C H en distintos puntos del receptor -30

-40

Potencia (dBm)

-50

-60

-70

-80

-90

-100 1

1.5

2 2.5 3 Índice de la ráfaga de BCCH

3.5

4

Figura II.16.

En la siguiente tabla se muestra el número de errores de cada ráfaga de BCCH tras la decodificación diferencial y tras la extracción de los bits de datos. Número de ráfaga de sum_err_decdif_bcch sum_err_extr_bcch BCCH 1 8 5 2 9 6 3 9 7 4 10 8

En la simulación realizada, todos estos errores son detectados y corregidos por el decodificador Viterbi, cuya métrica de salida es 26. El síndrome del código FIRE es 0, ya que no quedan errores por detectar.

431

Cuarta Parte: Simulaciones

CAPÍTULO III

Capítulo III: Simulación 2 III.1.- Descripción III.2.- Ficheros de comandos III.3.- Resultados

III.1.- Descripción En este capítulo se va a simular un entorno urbano en el que una MS en modo “idle” recibe señal de tres BTSs diferentes. En determinado momento, la MS da la vuelta a una esquina. Se obtendrá la potencia recibida de cada una de las BTSs en distintos puntos del trayecto de la MS. Los resultados de la simulación intentarán compararse con medidas realizadas mediante el “software” de ingeniería del terminal Motorola® CD930 sobre la señal de la red de Amena® en la zona de Triana, Sevilla. En la figura III.1 se ha representado un plano de la zona en la que se desarrolla el experimento. Se han marcado los puntos en los que están situadas las estaciones base mediante triángulos de color azul. Identificaremos a las estaciones base como “A”, “B” y “C”, tal como se muestra en el plano. También se ha señalado, con una línea roja, el trayecto recorrido por la estación móvil. En la figura III.2 se muestra un esquema ampliado del trayecto de la MS. Se han marcado los puntos donde se realizarán las medidas como “1”, “2”, “3” y “4”.

BTS “B”

1 PARROQUIA SAN GONZALO

2 4

3

ew

BTS “C” BTS “A”

ESCUELA INDUSTRIAL

Figura III.1.- Plano de la zona en la que se desarrolla la simulación.

432

Cuarta Parte: Simulaciones

1 C/ Prosperidad

4

2 3 C/ Trabajo

Figura III.2.- Detalle del trayecto de la estación móvil.

La simulación se llevará a cabo empleando la banda de frecuencias de DCS 1800, que es la banda utilizada por el operador sobre cuya red se realizaron las medidas. Datos de las Estaciones Base Para las tres BTS se admite una cadena de transmisión en RF como la mostrada en la figura III.3, cambiando cuando sea conveniente el tipo y longitud del cable entre el combinador y la antena, así como el modelo de antena o de combinador, si procede. Para el cable entre la salida del modulador (TRX) y el combinador se empleará en todos los casos el modelo Heliax® FSJ4-50B, que mostramos anteriormente en el apartado II.9 de la tercera parte de la memoria, así como en la primera simulación (capítulo II de esta cuarta parte). En los tres casos se ha considerado que la potencia de salida del bloque TRX (modulador) es de 35 W, lo que corresponde a una BTS de clase 1 de DCS 1800. Antena

Combinador

TX

1.20 m

d

Figura III.3.- Bloques de RF

433

Cuarta Parte: Simulaciones

En la figura III.4 se muestran los dos modelos de antenas que se emplean en las BTSs de esta simulación, junto con una representación esquemática de su patrón de radiación tanto en el plano horizontal como en el vertical. Kathrein® 739495

Kathrein® 739496

Figura III.4.- Modelos de las antenas de las BTS de la simulación.

El término “downtilt” hace referencia al ángulo que forma el máximo del patrón de radiación con el plano horizontal. La diferencia entre los dos modelos de antena es este “downtilt” eléctrico. Para conseguir otros valores del ángulo entre el lóbulo principal del patrón de radiación y el plano horizontal se puede modificar la inclinación física de la antena. El ángulo que forma la antena con el eje vertical se denomina “downtilt” mecánico. Describimos a continuación los parámetros fundamentales para la configuración de las tres estaciones base en esta simulación. Los datos empleados son los que había en la red real en el momento de las medidas que se desarrollaron en campo.

434

Cuarta Parte: Simulaciones

BTS “A” ARFCN BSIC Combinador Azimut Antena Ganancia de la antena (dBi) Ancho horizontal Ancho vertical “Downtilt” eléctrico “Downtilt” mecánico Altura de la antena sobre el suelo (m) Longitud del cable entre combinador y antena (m) Tipo de cable

807 1-7 Siemens® DUCOM 4:1 33º Kathrein® 739495 18 65º 7º 2º 2º 34.4 20 1/2” (Heliax® LDF4-50A)

La frecuencia correspondiente al ARFCN 807 es 1864.2 MHz. A esa frecuencia, las pérdidas en los cables son: - Pérdidas en FSJ4-50B: 16.9757 dB/100m - Pérdidas en LDF4-50A 10.8373 dB/100m El ángulo entre el máximo del lóbulo principal y el eje horizontal será la suma de los dos términos de “downtilt”, es decir, 4º. BTS “B” ARFCN BSIC Combinador Azimut Antena Ganancia de la antena (dBi) Ancho horizontal Ancho vertical “Downtilt” eléctrico “Downtilt” mecánico Altura de la antena sobre el suelo (m) Longitud del cable entre combinador y antena (m) Tipo de cable

822 1-1 Siemens® DUCOM 4:1 110º Kathrein® 739495 18 65º 7º 2º 2º 25.7 35 7/8” (Heliax® LDF5-50A)

La frecuencia correspondiente al ARFCN 822 es 1867.2 MHz. A esa frecuencia, las pérdidas en los cables son: - Pérdidas en FSJ4-50B: 16.9917 dB/100m - Pérdidas en LDF5-50A: 6.1988 dB/100m El ángulo entre el máximo del lóbulo principal y el eje horizontal será la suma de los dos términos de “downtilt”, es decir, 4º. 435

Cuarta Parte: Simulaciones

BTS “C” ARFCN BSIC Combinador Azimut Antena Ganancia de la antena (dBi) Ancho horizontal Ancho vertical “Downtilt” eléctrico “Downtilt” mecánico Altura de la antena sobre el suelo (m) Longitud del cable entre combinador y antena (m) Tipo de cable

813 1-5 Siemens® DUCOM 4:1 90º Kathrein® 739496 18 65º 7º 6º 0º 46.2 35 7/8” (Heliax® LDF5-50A)

La frecuencia correspondiente al ARFCN 813 es 1865.4 MHz. A esa frecuencia, las pérdidas en los cables son: - Pérdidas en FSJ4-50B: 16.9821 dB/100m - Pérdidas en LDF5-50A: 6.1953 dB/100m El ángulo entre el máximo del lóbulo principal y el eje horizontal será la suma de los dos términos de “downtilt”, es decir, 6º. Se utiliza un ángulo mayor que en las antenas de las BTSs “A” y “B” debido a que la BTS “C” se encuentra a más altura y de esta forma se consigue una determinada área de cobertura para la celda, a la vez que se limitan las posibles interferencias con otras celdas del entorno. Canal de Propagación Para el cálculo de las pérdidas de propagación se empleará el método COST 231, identificado como ‘cost’ en la llamada a la función PATHLOSS. Este método tiene en cuenta, además de la frecuencia de transmisión, alturas de las antenas y distancia, parámetros relativos a la geometría del trayecto, tales como anchura de la calle por la que se desplaza el móvil, anchura entre centros de edificios, ángulo que forma el rayo con el eje de la calle y altura media de los edificios. Reproducimos a continuación los valores que se han tomado para los distintos parámetros geométricos de la simulación. Anchura de la calle en el punto 1: 20 m Anchura de la calle en el punto 2: 22 m Anchura de la calle en el punto 3: 16 m Anchura de la calle en el punto 4: 16 m Distancia entre centros de edificios en el punto 1: 100 m Distancia entre centros de edificios en el punto 2: 100 m Distancia entre centros de edificios en el punto 3: 40 m Distancia entre centros de edificios en el punto 4: 40 m 436

Cuarta Parte: Simulaciones

Distancias (en m) entre las BTSs y los puntos marcados en el trayecto: Distancias (m) BTS “A” BTS “B” BTS “C”

Punto 1 325 382 504

Punto 2 291 361 455

Punto 3 293 354 451

Punto 4 314 314 437

Ángulo que forma el rayo con el eje de la calle, para los distintos trayectos: Ángulos BTS “A” BTS “B” BTS “C”

Punto 1 43º 72º 0º

Punto 2 50º 77º 0º

Punto 3 36º 19º 95º

Punto 4 30º 20º 99º

Para la altura media de los edificios que aparecen en los diferentes trayectos se ha realizado una estimación basada en el número de plantas de los mismos, y considerando que cada planta equivale a unos 3 m, aproximadamente. Altura media (m) BTS “A” BTS “B” BTS “C”

Punto 1 15 12 15

Punto 2 15 12 15

Punto 3 15 12 15

Punto 4 15 12 15

El tipo de terreno es, en este caso, el correspondiente a una ciudad de tamaño medio. Además de la pérdida de propagación, debemos tener en cuenta la ganancia de la antena en la dirección de la propagación, para lo que hay que calcular el ángulo vertical y horizontal entre el rayo que representa el trayecto directo y el máximo del lóbulo principal. Habría que hacer esto para cada trayecto. En realidad, debido a la existencia de propagación multitrayecto, los “rayos” que alcanzan la MS “salen” de la antena con distintos ángulos, y por tanto cada componente del multitrayecto se ve afectada por una ganancia diferente, por lo que daremos un valor estimado de la ganancia media de la antena para cada caso teniendo en cuenta, principalmente, si el ángulo formado por el trayecto rectilíneo (entre la antena y la posición del móvil) y la dirección del máximo del patrón de radiación pertenece o no al lóbulo principal de dicho patrón. En las siguientes tablas se han representado los ángulos horizontal y vertical de cada trayecto respecto al lóbulo principal de la antena. Se han marcado en cursiva aquellos valores que caen fuera del ancho del lóbulo principal. Ángulo horizontal BTS “A” BTS “B” BTS “C”

Punto 1 46º 0º 31º

Punto 2 35º 12º 31º

Punto 3 30º 12º 32º

Punto 4 26º 12º 36º

437

Cuarta Parte: Simulaciones

Ángulo vertical BTS “A” BTS “B” BTS “C”

Punto 1 -1.7º 0.4º 1º

Punto 2 -2.4º 0.2º 0.4º

Punto 3 -2.4º 0.1º 0.4º

Punto 4 -1.9º -0.4º 0.2º

Consideraremos que la ganancia de potencia media de ambos modelos de antena es de 15.6 dB, y añadiremos unas pérdidas adicionales para los casos en los que el hipotético trayecto directo cae fuera del lóbulo principal de la antena. En concreto, se trata de los trayectos: -

BTS “A” – posición “1”: 4 dB BTS “A” – posición “2”: 1.5 dB BTS “C” – posición “4”: 1 dB

donde los valores de las pérdidas adicionales ha sido estimados a partir de los patrones de radiación de la figura III.4. En cuanto al desvanecimiento lento, consideraremos las siguientes desviaciones típicas: -

Para la BTS “A”: 6.5 dB Para la BTS “B”: 6 dB Para la BTS “C”: 7 dB

En los tres casos se ha considerado un periodo de actualización del desvanecimiento lento de 0.5 s, que es un valor muy grande comparado con la duración del número de ráfagas simuladas. La velocidad del móvil es de 5 Km/h. El valor del periodo de actualización del desvanecimiento lento corresponde entonces a 9 m. El modelo para el desvanecimiento rápido será el primer modelo urbano de 12 coeficientes que aparece en el anexo C de la especificación GSM 05.05 (modelo ‘tu121’ en la llamada a la función CANAL), y que reproducimos a continuación. Número de “tap” 1 2 3 4 5 6 7 8 9 10 11 12

Tiempo relativo ( µ s) 0 0.1 0.3 0.5 0.8 1.1 1.3 1.7 2.3 3.1 3.2 5

Potencia relativa media (dB) -4 -3 0 -2.6 -3 -5 -7 -5 -6.5 -8.6 -11 -10

Espectro Doppler CLASS CLASS CLASS CLASS CLASS CLASS CLASS CLASS CLASS CLASS CLASS CLASS 438

Cuarta Parte: Simulaciones

III.2.- Ficheros de comandos Los comandos para la realización de esta simulación se han dividido en varios ficheros, cuyo contenido describimos brevemente a continuación. -

SIMUL_2a:

Generación de las estructuras de tramas para las tres BTS, incluyendo la modulación GMSK. SIMUL_2b: Bloques de transmisión de RF de las tres BTSs. Obtención de la señal radiada por la antena en cada caso. SIMUL_2c: Simulación de los 12 trayectos de propagación posibles entre las 3 estaciones base y las 4 posiciones del móvil. SIMUL_2d: Obtención de los resultados que se presentarán en el apartado III.3.

A continuación se presenta el contenido de cada uno de estos ficheros. Fichero SIMUL_2a %SIMUL_2a % % Simulación 2, primer fichero % % Transmisión del radiocanal "baliza" por parte de varias BTS % % La configuración de los intervalos de tiempo será: % % TS 0: Correspondencia tipo III % TS 1: Correspondencia tipo IV % TS 2: Correspondencia tipo I % TS 3: Correspondencia tipo I % TS 4: Correspondencia tipo I % TS 5: Correspondencia tipo I % TS 6: Correspondencia tipo I % TS 7: Correspondencia tipo I %Datos de configuración de las BTS conf_A=[3 4 1 1 1 1 1 1]; conf_B=[3 4 1 1 1 1 1 1]; conf_C=[3 4 1 1 1 1 1 1]; %Nos es indiferente qué canales estén asignados. %Suponemos que ninguno, en ninguno de los tres casos. asig_full_A=[NaN NaN 0 0 0 0 0 0]; asig_half_A=[NaN NaN 0 0 0 0 0 0]; asig_full_B=[NaN NaN 0 0 0 0 0 0]; asig_half_B=[NaN NaN 0 0 0 0 0 0]; asig_full_C=[NaN NaN 0 0 0 0 0 0]; asig_half_C=[NaN NaN 0 0 0 0 0 0]; BSIC_A=[1 7]; BSIC_B=[1 1]; BSIC_C=[1 5]; sistema='dcs1800' ARFCN_A=807; ARFCN_B=822;

439

Cuarta Parte: Simulaciones ARFCN_C=813; [Fuplink_MHz_A Fdownlink_MHz_A]=arfcn2f(ARFCN_A,sistema); [Fuplink_MHz_B Fdownlink_MHz_B]=arfcn2f(ARFCN_B,sistema); [Fuplink_MHz_C Fdownlink_MHz_C]=arfcn2f(ARFCN_C,sistema); Fc_A=Fdownlink_MHz_A*1e6; %La pasamos a Hz Fc_B=Fdownlink_MHz_C*1e6; Fc_C=Fdownlink_MHz_B*1e6; Pot_Wat_A=35; Pot_Wat_B=35; Pot_Wat_C=35; potencia_A=10*log10(Pot_Wat_A*1e3); %Potencia del transmisor, en dBm. potencia_B=10*log10(Pot_Wat_B*1e3); potencia_C=10*log10(Pot_Wat_C*1e3); imped=50; %Igual para las 3 BTS. T=3.69e-6 %1 bit -> 3.69 microsegundos Fs=40/T %Hz %Haremos la simulación en banda base... NUM_TRAMAS_TOT=6 %BCCH datos_bcch=bingen(ceil(NUM_TRAMAS_TOT/51),184); %Bloques de 184 bits codigo_bcch=codcanal(datos_bcch,'bcch'); %CCCH (Incluye AGCH y PCH) for ind_matriz=1:9 datos_ccch(:,:,ind_matriz)=bingen(ceil(NUM_TRAMAS_TOT/51),184); temp=datos_ccch(:,:,ind_matriz); codigo_ccch(:,:,ind_matriz)=codcanal(temp,'agch'); end %SDCCH/8 y SACCH/8 for ind_matriz=1:9 datos_sdcch8(:,:,ind_matriz)=bingen(ceil(NUM_TRAMAS_TOT/51),184); temp=datos_sdcch8(:,:,ind_matriz); codigo_sdcch8(:,:,ind_matriz)=codcanal(temp,'sdcch'); datos_sacchc8(:,:,ind_matriz)=bingen(ceil(NUM_TRAMAS_TOT/51),184); temp=datos_sacchc8(:,:,ind_matriz); codigo_sacchc8(:,:,ind_matriz)=codcanal(temp,'sacch'); end codigo_tchf=[]; codigo_sacchf=[]; %Estos no se usan en esta simulación: datos_sdcch4=[]; codigo_sdcch4=[]; datos_sacchc4=[]; codigo_sacchc4=[]; datos_tchh=[]; codigo_tchh=[]; datos_sacchh=[]; codigo_sacchh=[]; %Transmisión (incluye el empaquetado y la modulación) %Se empleará la función transbts [salida_mod_A,rafagadif_A]=transbts(NUM_TRAMAS_TOT,Fc_A,Fs,BSIC_A,... ...potencia_A,conf_A,asig_full_A,asig_half_A,imped,codigo_bcch,... ...codigo_ccch,codigo_sdcch8,codigo_sacchc8,codigo_sdcch4,... ...codigo_sacchc4,codigo_tchf,codigo_sacchf,... ...codigo_tchh,codigo_sacchh); [salida_mod_B,rafagadif_B]=transbts(NUM_TRAMAS_TOT,Fc_B,Fs,BSIC_B... ...,potencia_B,conf_B,asig_full_B,asig_half_B,imped,codigo_bcch,... ...codigo_ccch,codigo_sdcch8,codigo_sacchc8,codigo_sdcch4,... ...codigo_sacchc4,codigo_tchf,codigo_sacchf,... ...codigo_tchh,codigo_sacchh);

440

Cuarta Parte: Simulaciones [salida_mod_C,rafagadif_C]=transbts(NUM_TRAMAS_TOT,Fc_C,Fs,BSIC_C... ...,potencia_C,conf_C,asig_full_C,asig_half_C,imped,codigo_bcch,... ...codigo_ccch,codigo_sdcch8,codigo_sacchc8,codigo_sdcch4,... ...codigo_sacchc4,codigo_tchf,codigo_sacchf,... ...codigo_tchh,codigo_sacchh);

Fichero SIMUL_2b %SIMUL_2b % % Simulación 2, segundo fichero % % Bloques de RF para las 3 BTS de SIMUL_2a. %Tomamos cada ráfaga y aplicamos los distintos bloques %que componen el transmisor de RF. %No hay "power ramping" por tratarse del radiocanal %"baliza" (transmitirá constantemente). %El transmisor de RF constará de una primera parte lineal, %una amplificador de RF y otra parte lineal que va a la antena. %BTS A %Tramo lineal 1: Pérdidas, ruido y efecto del filtrado %Pérdidas: Lcables1_A=[10.8473 20; 16.9757 1.20]; Lconec1_A=0.6; Lcomb1_A=5.2; %Siemens DUCOM 4:1 Lotros1_A=7; [coef_tramo1_A,perdidas_tramo1_dB_A]=... ...sumperd(Lcables1_A,Lconec1_A,Lcomb1_A,Lotros1_A); %Efecto de filtrado: %%[Btramo1_a,Atramo1_a]=butter(10,2*pi*25e6,'s'); %%[Btramo1,Atramo1]=bilinear(Btramo1_a,Atramo1_a,Fs); Btramo1=1; Atramo1=1; salida_tramo1_sinruido_A=coef_tramo1_A*filter(Btramo1,Atramo1,... ...salida_mod_A,[],2); %Hay que hacer que filtre por filas. %Ruido aditivo: B1_A=200e3; %Ancho de banda de ruido: 200 KHz %(el ancho de la banda de un canal radio). F1_A=1; %Suponemos que el factor de ruido es 1 dB G1_A=-perdidas_tramo1_dB_A; TAMA=size(salida_tramo1_sinruido_A); ruido_tramo1_A=genruido(B1_A,F1_A,G1_A,TAMA,'iq',imped); salida_tramo1_A=salida_tramo1_sinruido_A+ruido_tramo1_A; %Antena %Ganancia de potencia Gant_TX_A=15.6; gant_tx_A=10^(Gant_TX_A/20); y1_A=gant_tx_A*salida_tramo1_A; %BTS B %Tramo lineal 1: Pérdidas, ruido y efecto del filtrado %Pérdidas: Lcables1_B=[6.1988 35; 16.9917 1.20]; Lconec1_B=0.6;

441

Cuarta Parte: Simulaciones Lcomb1_B=5.2; %Siemens DUCOM 4:1 Lotros1_B=7; [coef_tramo1_B,perdidas_tramo1_dB_B]=... ...sumperd(Lcables1_B,Lconec1_B,Lcomb1_B,Lotros1_B); %Efecto de filtrado: %%[Btramo1_a,Atramo1_a]=butter(10,2*pi*25e6,'s'); %%[Btramo1,Atramo1]=bilinear(Btramo1_a,Atramo1_a,Fs); Btramo1=1; Atramo1=1; salida_tramo1_sinruido_B=coef_tramo1_B*filter(Btramo1,Atramo1,... ...salida_mod_B,[],2); %Hay que hacer que filtre por filas. %Ruido aditivo: B1_B=200e3; %Ancho de banda de ruido: 200 KHz F1_B=1; %Suponemos que el factor de ruido es 1 dB. G1_B=-perdidas_tramo1_dB_B; TAMA=size(salida_tramo1_sinruido_B); ruido_tramo1_B=genruido(B1_B,F1_B,G1_B,TAMA,'iq',imped); salida_tramo1_B=salida_tramo1_sinruido_B+ruido_tramo1_B; %Antena %Ganancia de potencia Gant_TX_B=15.6; gant_tx_B=10^(Gant_TX_B/20); y1_B=gant_tx_B*salida_tramo1_B; %BTS C %Tramo lineal 1: Pérdidas, ruido y efecto del filtrado %Pérdidas: Lcables1_C=[6.1953 35; 16.9821 1.20]; Lconec1_C=0.6; Lcomb1_C=5.2; %Siemens DUCOM 4:1 Lotros1_C=7; [coef_tramo1_C,perdidas_tramo1_dB_C]=... ...sumperd(Lcables1_C,Lconec1_C,Lcomb1_C,Lotros1_C); %Efecto de filtrado: %%[Btramo1_a,Atramo1_a]=butter(10,2*pi*25e6,'s'); %%[Btramo1,Atramo1]=bilinear(Btramo1_a,Atramo1_a,Fs); Btramo1=1; Atramo1=1; salida_tramo1_sinruido_C=coef_tramo1_C*filter(Btramo1,Atramo1,salida_mo d_C,[],2); %Hay que hacer que filtre por filas. %Ruido aditivo: B1_C=200e3; %Ancho de banda de ruido: 200 KHz F1_C=1; %Suponemos que el factor de ruido es 1 dB. G1_C=-perdidas_tramo1_dB_C; TAMA=size(salida_tramo1_sinruido_C); ruido_tramo1_C=genruido(B1_C,F1_C,G1_C,TAMA,'iq',imped); salida_tramo1_C=salida_tramo1_sinruido_C+ruido_tramo1_C; %Antena %Ganancia de potencia Gant_TX_C=15.6; gant_tx_C=10^(Gant_TX_C/20); y1_C=gant_tx_C*salida_tramo1_C;

Fichero SIMUL_2c %SIMUL_2c %

442

Cuarta Parte: Simulaciones % % % % %

Simulación 2, tercer fichero Propagación por el canal de las señales de los radiocanales "baliza" de las 3 BTSs, que han sido generadas en SIMUL_2a y SIMUL2b.

%Parámetros para "fast fading" y "slow fading" modelo='tu121'; %"Typical Urban area" de 12 "taps". veloc_movil=5; %Km/h (andando) %Pérdidas de propagación: Método COST 231. metodo='cost'; flag_cost=1; %1: Ciudad de tamaño medio; %2: Grandes centros metropolitanos hMS=1.7; %170 cm %BTS "A" hBS_A=34.4; sigma_slow_A=6.5; %dB act_slow_A=0.5; %s %Señal proveniente de la BTS "A" medida en el punto 1: dist_A1=0.325; %Km hmediaedif_A1=15; %5 plantas ancho_calle_A1=20; ancho_centros_A1=100; ang_rayo_A1=43; paramcost_A1=[hmediaedif_A1 ancho_calle_A1 ancho_centros_A1 ... ... ang_rayo_A1 flag_cost]; perdidas_prop_A1=pathloss(metodo,Fdownlink_MHz_A,dist_A1,... ...hBS_A,hMS,paramcost_A1); perdidas_adic_antena_A1=4; %dB perdidas_trayecto_A1=perdidas_prop_A1+perdidas_adic_antena_A1; [y2_A1,canalprop_A1]=canal(y1_A,Fc_A,Fs,modelo,veloc_movil,... ...perdidas_trayecto_A1,sigma_slow_A,act_slow_A); %Señal proveniente de la BTS "A" medida en el punto 2: dist_A2=0.291; hmediaedif_A2=15; %5 plantas ancho_calle_A2=22; ancho_centros_A2=100; ang_rayo_A2=50; paramcost_A2=[hmediaedif_A2 ancho_calle_A2 ancho_centros_A2 ... ... ang_rayo_A2 flag_cost]; perdidas_prop_A2=pathloss(metodo,Fdownlink_MHz_A,dist_A2,... ...hBS_A,hMS,paramcost_A2); perdidas_adic_antena_A2=1.5; %dB perdidas_trayecto_A2=perdidas_prop_A2+perdidas_adic_antena_A2; [y2_A2,canalprop_A2]=canal(y1_A,Fc_A,Fs,modelo,veloc_movil,... ...perdidas_trayecto_A2,sigma_slow_A,act_slow_A); %Señal proveniente de la BTS "A" medida en el punto 3: dist_A3=0.293; hmediaedif_A3=15; %5 plantas ancho_calle_A3=16; ancho_centros_A3=40; ang_rayo_A3=36; paramcost_A3=[hmediaedif_A3 ancho_calle_A3 ancho_centros_A3 ... ... ang_rayo_A3 flag_cost]; perdidas_prop_A3=pathloss(metodo,Fdownlink_MHz_A,dist_A3,... ...hBS_A,hMS,paramcost_A3); [y2_A3,canalprop_A3]=canal(y1_A,Fc_A,Fs,modelo,veloc_movil,... ...perdidas_prop_A3,sigma_slow_A,act_slow_A); %Señal proveniente de la BTS "A" medida en el punto 4: dist_A4=0.314;

443

Cuarta Parte: Simulaciones hmediaedif_A4=15; %5 plantas ancho_calle_A4=16; ancho_centros_A4=40; ang_rayo_A4=30; paramcost_A4=[hmediaedif_A4 ancho_calle_A4 ancho_centros_A4 ... ... ang_rayo_A4 flag_cost]; perdidas_prop_A4=pathloss(metodo,Fdownlink_MHz_A,dist_A4,... ...hBS_A,hMS,paramcost_A4); [y2_A4,canalprop_A4]=canal(y1_A,Fc_A,Fs,modelo,veloc_movil,... ...perdidas_prop_A4,sigma_slow_A,act_slow_A); %BTS "B" hBS_B=25.7; sigma_slow_B=6; %dB act_slow_B=0.5; %s %Señal proveniente de la BTS "B" medida en el punto 1: dist_B1=0.382; hmediaedif_B1=12; %4 plantas ancho_calle_B1=20; ancho_centros_B1=100; ang_rayo_B1=72; paramcost_B1=[hmediaedif_B1 ancho_calle_B1 ancho_centros_B1 ... ... ang_rayo_B1 flag_cost]; perdidas_prop_B1=pathloss(metodo,Fdownlink_MHz_B,dist_B1,... ...hBS_B,hMS,paramcost_B1); [y2_B1,canalprop_B1]=canal(y1_B,Fc_B,Fs,modelo,veloc_movil,... ...perdidas_prop_B1,sigma_slow_B,act_slow_B); %Señal proveniente de la BTS "B" medida en el punto 2: dist_B2=0.361; hmediaedif_B2=12; %4 plantas ancho_calle_B2=22; ancho_centros_B2=100; ang_rayo_B2=77; paramcost_B2=[hmediaedif_B2 ancho_calle_B2 ancho_centros_B2 ... ... ang_rayo_B2 flag_cost]; perdidas_prop_B2=pathloss(metodo,Fdownlink_MHz_B,dist_B2,... ...hBS_B,hMS,paramcost_B2); [y2_B2,canalprop_B2]=canal(y1_B,Fc_B,Fs,modelo,veloc_movil,... ...perdidas_prop_B2,sigma_slow_B,act_slow_B); %Señal proveniente de la BTS "B" medida en el punto 3: dist_B3=0.354; hmediaedif_B3=12; %4 plantas ancho_calle_B3=16; ancho_centros_B3=40; ang_rayo_B3=19; paramcost_B3=[hmediaedif_B3 ancho_calle_B3 ancho_centros_B3 ... ... ang_rayo_B3 flag_cost]; perdidas_prop_B3=pathloss(metodo,Fdownlink_MHz_B,dist_B3,... ...hBS_B,hMS,paramcost_B3); [y2_B3,canalprop_B3]=canal(y1_B,Fc_B,Fs,modelo,veloc_movil,... ...perdidas_prop_B3,sigma_slow_B,act_slow_B); %Señal proveniente de la BTS "B" medida en el punto 4: dist_B4=0.314; hmediaedif_B4=12; %4 plantas ancho_calle_B4=16; ancho_centros_B4=40; ang_rayo_B4=20; paramcost_B4=[hmediaedif_B4 ancho_calle_B4 ancho_centros_B4 ... ... ang_rayo_B4 flag_cost]; perdidas_prop_B4=pathloss(metodo,Fdownlink_MHz_B,dist_B4,... ...hBS_B,hMS,paramcost_B4);

444

Cuarta Parte: Simulaciones [y2_B4,canalprop_B4]=canal(y1_B,Fc_B,Fs,modelo,veloc_movil,... ...perdidas_prop_B4,sigma_slow_B,act_slow_B); %BTS "C" hBS_C=46.2; sigma_slow_C=7; %dB act_slow_C=0.5; %s %Señal proveniente de la BTS "C" medida en el punto 1: dist_C1=0.504; hmediaedif_C1=15; %5 plantas ancho_calle_C1=20; ancho_centros_C1=100; ang_rayo_C1=0; paramcost_C1=[hmediaedif_C1 ancho_calle_C1 ancho_centros_C1 ... ... ang_rayo_C1 flag_cost]; perdidas_prop_C1=pathloss(metodo,Fdownlink_MHz_C,dist_C1,... ...hBS_C,hMS,paramcost_C1); [y2_C1,canalprop_C1]=canal(y1_C,Fc_C,Fs,modelo,veloc_movil,... ...perdidas_prop_C1,sigma_slow_C,act_slow_C); %Señal proveniente de la BTS "C" medida en el punto 2: dist_C2=0.455; hmediaedif_C2=15; %5 plantas ancho_calle_C2=22; ancho_centros_C2=100; ang_rayo_C2=0; paramcost_C2=[hmediaedif_C2 ancho_calle_C2 ancho_centros_C2 ... ... ang_rayo_C2 flag_cost]; perdidas_prop_C2=pathloss(metodo,Fdownlink_MHz_C,dist_C2,... ...hBS_C,hMS,paramcost_C2); [y2_C2,canalprop_C2]=canal(y1_C,Fc_C,Fs,modelo,veloc_movil,... ...perdidas_prop_C2,sigma_slow_C,act_slow_C); %Señal proveniente de la BTS "C" medida en el punto 3: dist_C3=0.451; hmediaedif_C3=15; %5 plantas ancho_calle_C3=16; ancho_centros_C3=40; ang_rayo_C3=95; paramcost_C3=[hmediaedif_C3 ancho_calle_C3 ancho_centros_C3 ... ... ang_rayo_C3 flag_cost]; perdidas_prop_C3=pathloss(metodo,Fdownlink_MHz_C,dist_C3,hBS_C,... ...hMS,paramcost_C3); [y2_C3,canalprop_C3]=canal(y1_C,Fc_C,Fs,modelo,veloc_movil,... ...perdidas_prop_C3,sigma_slow_C,act_slow_C); %Señal proveniente de la BTS "C" medida en el punto 4: dist_C4=0.437; hmediaedif_C4=15; %5 plantas ancho_calle_C4=16; ancho_centros_C4=40; ang_rayo_C4=99; paramcost_C4=[hmediaedif_C4 ancho_calle_C4 ancho_centros_C4 ... ... ang_rayo_C4 flag_cost]; perdidas_prop_C4=pathloss(metodo,Fdownlink_MHz_C,dist_C4,... ...hBS_C,hMS,paramcost_C4); perdidas_adic_antena_C4=1; %dB perdidas_trayecto_C4=perdidas_prop_C4+perdidas_adic_antena_C4; [y2_C4,canalprop_C4]=canal(y1_C,Fc_C,Fs,modelo,veloc_movil,... ...perdidas_trayecto_C4,sigma_slow_C,act_slow_C);

445

Cuarta Parte: Simulaciones

Fichero SIMUL_2d %SIMUL_2d % % Simulación 2, cuarto fichero % % Obtención de las gráficas de potencia recibida en los distintos % puntos TAMA=size(y2_A1); for indice=1:TAMA(1) potencia_y2_A1(indice)=potrafbb(y2_A1(indice,:),'nb',Fs,imped); potencia_y2_A2(indice)=potrafbb(y2_A2(indice,:),'nb',Fs,imped); potencia_y2_A3(indice)=potrafbb(y2_A3(indice,:),'nb',Fs,imped); potencia_y2_A4(indice)=potrafbb(y2_A4(indice,:),'nb',Fs,imped); potencia_y2_B1(indice)=potrafbb(y2_B1(indice,:),'nb',Fs,imped); potencia_y2_B2(indice)=potrafbb(y2_B2(indice,:),'nb',Fs,imped); potencia_y2_B3(indice)=potrafbb(y2_B3(indice,:),'nb',Fs,imped); potencia_y2_B4(indice)=potrafbb(y2_B4(indice,:),'nb',Fs,imped); potencia_y2_C1(indice)=potrafbb(y2_C1(indice,:),'nb',Fs,imped); potencia_y2_C2(indice)=potrafbb(y2_C2(indice,:),'nb',Fs,imped); potencia_y2_C3(indice)=potrafbb(y2_C3(indice,:),'nb',Fs,imped); potencia_y2_C4(indice)=potrafbb(y2_C4(indice,:),'nb',Fs,imped); end %Gráfica en el punto 1: ejex=1:TAMA(1); figure, plot(ejex,potencia_y2_A1,'b') hold on, plot(ejex,potencia_y2_B1,'r') plot(ejex,potencia_y2_C1,'g') title('Potencia recibida en el punto 1, para las distintas BTSs') xlabel('Número de ráfaga') ylabel('Potencia (dBm)') %Gráfica en el punto 2: figure, plot(ejex,potencia_y2_A2,'b') hold on, plot(ejex,potencia_y2_B2,'r') plot(ejex,potencia_y2_C2,'g') title('Potencia recibida en el punto 2, para las distintas BTSs') xlabel('Número de ráfaga') ylabel('Potencia (dBm)') %Gráfica en el punto 3: figure, plot(ejex,potencia_y2_A3,'b') hold on, plot(ejex,potencia_y2_B3,'r') plot(ejex,potencia_y2_C3,'g') title('Potencia recibida en el punto 3, para las distintas BTSs') xlabel('Número de ráfaga') ylabel('Potencia (dBm)') %Gráfica en el punto 4: figure, plot(ejex,potencia_y2_A4,'b') hold on, plot(ejex,potencia_y2_B4,'r') plot(ejex,potencia_y2_C4,'g') title('Potencia recibida en el punto 4, para las distintas BTSs') xlabel('Número de ráfaga') ylabel('Potencia (dBm)')

446

Cuarta Parte: Simulaciones

III.3.- Resultados En la siguiente tabla se muestra la pérdida de propagación calculada por la función PATHLOSS empleando el método COST 231 para cada uno de los trayectos de la simulación. Pérdidas de propagación (dB) BTS “A” BTS “B” BTS “C”

Punto 1

Punto 2

Punto 3

Punto 4

109.3523 111.3927 99.9354

107.6397 109.4887 97.8336

111.6672 108.7957 113.3103

110.0476 107.1440 113.2355

A continuación, mostramos la PIRE de la antena de cada BTS en la dirección de la propagación. Como hemos comentado anteriormente (en el apartado III.1), se ha considerado que la ganancia de potencia de las antenas es 15.6 dB (es una ganancia media que tiene en cuenta los efectos del multitrayecto) en todos los casos, salvo en los trayectos cuyo ángulo no pertenece al lóbulo principal, que por ello se verán afectados por una pérdida adicional. Esos casos particulares se han representado en cursiva en la siguiente tabla. PIRE (dBm) BTS “A” BTS “B” BTS “C”

Punto 1 41.8675 45.8672 45.8685

Punto 2 44.3675 45.8672 45.8685

Punto 3 45.8675 45.8672 45.8685

Punto 4 45.8675 45.8672 44.8685

De acuerdo con la PIRE y las pérdidas de propagación para cada trayecto, la potencia media de la señal recibida en cada punto desde cada BTS será la mostrada en la siguiente tabla. Potencia recibida media (dBm) BTS “A” BTS “B” BTS “C”

Punto 1

Punto 2

Punto 3

Punto 4

-67.4847 -65.5255 -54.0669

-63.2722 -63.6215 -51.9650

-65.7997 -62.9285 -67.4418

-64.1801 -61.2768 -68.3670

De las tablas anteriores se desprende que: -

-

-

En los puntos 1 y 2 es mucho más probable que el proceso de reselección de celda llevado a cabo por la estación móvil elija la BTS “C” como BTS servidora. La pérdida de propagación que afecta a la señal proveniente de la BTS “C” es del orden de 10 u 11 dB menor que la que afecta a la señal procedente de las BTSs “A” y “B”. Esto es debido en gran medida al ángulo que forma el “rayo” con el eje de la calle. Al dar la vuelta a la esquina, aumenta mucho (unos 15.5 dB) la pérdida que afecta a la señal proveniente de la BTS “C”, ya que el rayo y el eje de la calle ya no son paralelos, sino que forman un ángulo cercano al ángulo recto. En el punto 3 la diferencia entre las potencias recibidas de las distintas BTS no supera los 3.5 dB, por lo que las variaciones en el nivel de señal debidas a

447

Cuarta Parte: Simulaciones

-

los desvanecimientos pueden hacer que se lleve a cabo un proceso de reselección de celda cada poco tiempo. En el punto 4 la potencia recibida de las BTSs “A” y “B” es muy similar (apenas 3 dB de diferencia). Los efectos del desvanecimiento harán que en determinados momentos la MS elija como servidora a la BTS “A” y en otros a la BTS “B”, dependiendo de los umbrales, ventanas y prioridades definidos por el operador de red para el criterio de reselección de celda.

Podemos comparar estos resultados con las mediciones realizadas en campo, que se muestran en la siguiente tabla. Potencia recibida (dBm), medida en campo BTS “A” BTS “B” BTS “C”

Punto 1

Punto 2

Punto 3

Punto 4

-65 -70 -65 -70 -59 -70

-61

-69 -74 -67 -76 -65 -75

-70 -74 -68 -73 -78 -84

-66 -49 -53

En las medidas realizadas en campo, en el punto 1 la mayor parte de las veces el móvil estaba acampado en la celda “C”. En contadas ocasiones llegaba a seleccionar otra celda. En el punto 2 ocurría algo similar, recibiéndose aún más potencia desde la BTS “C”. Al dar la vuelta a la esquina (punto 3), disminuía bruscamente la potencia recibida desde la BTS “C”, situándose en niveles similares a la recibida desde las otras BTSs. En este punto el móvil realiza constantemente el proceso de reselección de celda, llegando a acampar en las tres durante tiempos muy similares, tal como se predice a partir de las pérdidas de propagación. En el punto 4 la estación móvil acampa alternativamente en las celdas “A” y “B”, con más probabilidad de que ocurra en ésta última que en la primera. En las figuras III.5 a III.8 se han representado los niveles de señal recibidos en cada uno de los cuatro puntos de medida dentro del trayecto, para cada ráfaga de la simulación. Los valores han sido obtenidos utilizando la función POTRAFBB.

448

Cuarta Parte: Simulaciones

Potencia recibida en el punto 1, para las distintas BTSs -45

-50

-55

Potencia (dBm)

-60

-65

-70

-75

-80

-85 0

10

20

30 40 Número de ráfaga

50

60

70

Figura III.5.

Potencia recibida en el punto 2, para las distintas BTSs -35 -40 -45

Potencia (dBm)

-50 -55 -60 -65 -70 -75 -80 0

10

20

30 40 Número de ráfaga

50

60

70

Figura III.6.

449

Cuarta Parte: Simulaciones

Potencia recibida en el punto 3, para las distintas BTSs -50

-55

Potencia (dBm)

-60

-65

-70

-75

-80 0

10

20

30 40 Número de ráfaga

50

60

70

Figura III.7.

Potencia recibida en el punto 4, para las distintas BTSs -45

-50

Potencia (dBm)

-55

-60

-65

-70

-75

-80 0

10

20

30 40 Número de ráfaga

50

60

70

Figura III.8.

450

Cuarta Parte: Simulaciones

CAPÍTULO IV

Capítulo IV: Simulación 3 IV.1.- Descripción IV.2.- Ficheros de comandos IV.3.- Resultados

IV.1.- Descripción En este cuarto capítulo se realizará la simulación de una transmisión de varias tramas de voz por parte de una estación móvil, que tendrá asignado un determinado intervalo de tiempo en la trama TDMA, y la recepción por parte de la BTS. Configuración de la transmisión Se va a suponer que la comunicación se realiza entre la MS y una BTS cuyo BSIC es 1-5. La frecuencia utilizada será la correspondiente al ARFCN 32 de la banda primaria de GSM 900, esto es, 886.4 MHz. El intervalo de tiempo reservado para la comunicación será el TN 7. Se admitirá que la estación móvil pertenece a la clase de potencia 4 de GSM 900. Esto equivale a decir que la máxima potencia en el conector de la antena transmisora es de 8 W (39 dBm). La antena irá montada en un vehículo y tendrá un ganancia de potencia igual a 7 dBi. Al describir la cadena de transmisión entre la salida del modulador y la entrada a la antena, veremos que es suficiente con que el modulador entregue una señal con una potencia de 0.5 W (27 dBm), ya que los bloques posteriores harán que la potencia alcance el nivel deseado de 39 dBm. Se generarán los datos de los canales TCH/FS y SACCH/F de manera pseudoaleatoria, empleando la función BINGEN. La codificación de canal se realizará mediante CODCANAL. Se incluirán los indicadores de “robo” (“stealing flags”), y se empleará la función BURSTGEN para generar las ráfagas, que serán sometidas a codificación diferencial (utilizando la función CODDIF). Los valores binarios se convertirán a formato NRZ mediante la función BIN2NRZ. Finalmente las ráfagas son moduladas por GMSKMOD y colocadas en la posición adecuada de la trama, según el número de trama (FN) y el número de intervalo (TN). Transmisor de RF Una de las posibles estructuras para la realización de los bloques de transmisión de una estación móvil GSM es la que se presenta en la figura IV.1. El modulador GMSK produce una señal en frecuencia intermedia que es filtrada por un filtro paso de banda, para a continuación mezclarse con una portadora local. Tras esto, se lleva a cabo un filtrado de modo que se seleccione la componente de la mezcla en la banda de transmisión. Finalmente, un amplificador de RF será el encargado de proporcionar un nivel adecuado de señal a la antena transmisora. Se puede incluir otro filtro de RF entre el amplificador y la antena. 451

Cuarta Parte: Simulaciones

Amplificador RF Antena

TX

BPF FI

BPF RF

X

Oscilador Local

Cable RF Figura IV.1.- Un posible esquema para el transmisor de RF de una MS

Por simplicidad, y dado que estamos realizando la simulación empleando la envolvente compleja de la señal modulada, consideraremos que el conjunto formado por el filtro de frecuencia intermedia, el mezclador, el filtro de RF y el cable hasta el amplificador de RF tendrá un efecto sobre la señal que cuantificaremos únicamente mediante unas pérdidas de 4 dB y una figura de ruido de 2 dB, por ejemplo. Se considerará que la impedancia es de 50 Ω en todos los puntos de la cadena de transmisión. El amplificador de RF, como hemos dicho, debe proporcionar a su salida una potencia máxima de 39 dBm, dada la clase de potencia de la estación móvil. Se utilizará el modelo de amplificador tipo “soft limiter” que se ha desarrollado en la función AMPLIF. La ganancia del amplificador será de 16 dB. Por tanto, un punto de compresión de 1 dB igual a 25.2 dBm es suficiente para que el amplificador trabaje en la zona lineal para niveles de entrada de hasta 23 dBm, que proporcionarán a la salida niveles de 39 dBm. Por consiguiente, para alcanzar la potencia de 39 dBm en el conector de la antena, basta con que el modulador proporcione una potencia de salida de 27 dBm (0.5 W). La figura de ruido del amplificador de RF será de 3.5 dB. El modelo de la antena transmisora será muy simple. Tan sólo se supondrá que tiene una ganancia de potencia de 7 dBi. Canal Se supondrá la antena de la BTS está situada en una torre a 45 m de altura. La altura de la estación móvil será de 1.5 m. La comunicación se desarrollará en un entorno rural. La estación móvil estará a 1 Km de la ubicación de la BTS y se desplazará con una velocidad de 100 Km/h. Para el cálculo de las pérdidas de propagación se empleará el método de Okumura-Hata, eligiendo la opción ‘hata’ en la llamada a la función PATHLOSS. Para el desvanecimiento lento se tomará una desviación típica de 8 dB y un periodo de actualización de 0.05 s, lo que, para la velocidad considerada, equivale a admitir que el valor del desvanecimiento lento se actualiza cada 18 m. Para el desvanecimiento rápido, se va a utilizar el perfil ‘ra61’ en la llamada a la función CANAL. Reproducimos a continuación los valores de los retardos relativos y potencia media relativa de cada coeficiente del filtro variante con el tiempo que 452

Cuarta Parte: Simulaciones

representa al canal. La última columna indica el tipo de espectro Doppler asociado a cada coeficiente, que es en todos los casos CLASS. Número de “tap” 1 2 3 4 5 6

Tiempo relativo ( µ s) 0 0.1 0.2 0.3 0.4 0.5

Potencia relativa media (dB) 0 -4 -8 -12 -16 -20

Espectro Doppler RICE CLASS CLASS CLASS CLASS CLASS

Receptor de RF En la figura IV.2 se muestra la cadena de recepción de la BTS, desde la antena hasta la entrada del demodulador. El esquema vuelve a estar basado en un receptor superheterodino, al igual que en la simulación 1 (capítulo II), con la inclusión de un duplexor, que permitirá utilizar la antena tanto para transmisión como para recepción. La impedancia se supondrá igual a 50 Ω en todos los puntos de la cadena de recepción.

Antena

LNA 50 m

Max: -12 dBm Min: -102 dBm

0.70 m

Amplificador de FI ganancia variable Duplexor

Filtro en FI

X Fc-FI

Max: 1.5 dBm Min: -88.5 dBm

RX

AGC

Max: -5 dBm Min: -95 dBm Max: 6 dBm Min: -53 dBm

Figura IV.2.- Esquema del receptor de RF de la BTS.

El modelo de la antena será, de nuevo, muy simple. Se supondrá que la ganancia de potencia de la antena receptora es de 15 dBi, y que su figura de ruido es de 11 dB.

453

Cuarta Parte: Simulaciones

La antena se conectará al amplificador de bajo ruido (LNA) mediante un cable coaxial Heliax® FSJ4-50A de 0.70 m, cuyas pérdidas a la frecuencia de operación (896.4 MHz) son de 11.2145 dB/100m. En este primer tramo lineal existirán 2 conectores, cuyas pérdidas serán de 0.15 dB cada uno. Las pérdidas en este primer tramo lineal se calcularán mediante la función SUMPERD. No se tomará en consideración el ruido que pudiera introducir el cable. Tanto la antena como el LNA irán montados sobre una torre de 45 m de altura. Para el amplificador de bajo ruido podemos tomar, por ejemplo, las características del modelo AVGSMMHA, fabricado por Grintek® Antennas, que reproducimos a continuación. Banda de frecuencias de operación (MHz) Ganancia (dB) Punto de compresión de 1 dB (dBm) Figura de ruido (dB)

890-915 11 - 15 >5 < 2.2

En nuestra simulación, tomaremos el valor máximo de la ganancia (15 dB), el mínimo punto de compresión de 1 dB (5 dBm) y la máxima figura de ruido (2.2 dB). Se tomará como ancho de banda de ruido el ancho de un canal GSM (200 KHz). Al igual que en las simulaciones anteriores, no se tomarán en cuenta los efectos de filtrado. Tras el amplificador de bajo ruido, una tirada de 50 m de cable coaxial Heliax® LDF7-50A transporta la señal hasta la entrada del duplexor. Las pérdidas de este cable a la frecuencia de operación se cifran en 2.5236 dB/100m. Las pérdidas en cada uno de los dos conectores extremos serán de 0.15 dB. Se considerará despreciable el ruido que pueda introducir el cable. Las pérdidas del conjunto formado por el duplexor, el mezclador y el filtro de frecuencia intermedia se cifrarán en 6.5 dB. La figura de ruido del conjunto será de 2 dB, por ejemplo. No se tendrán en cuenta los efectos del filtrado, por las mismas razones explicadas al describir la primera simulación (en el capítulo II). Las características del bloque formado por el amplificador de ganancia variable y el control automático de ganancia se representan en la siguiente tabla. Este bloque se simulará mediante la función AGC. Banda de frecuencias de operación (MHz) Ganancia mínima (dB) Ganancia máxima (dB) Ganancia inicial para cada ráfaga (dB) Punto de compresión de 1 dB (dBm) Figura de ruido (dB) Nivel de señal deseado a la salida (dBm) Paso de adaptación del algoritmo de AGC Periodo de actualización del valor de la ganancia (expresado en periodos de bit)

890-915 -4 42 10 10 7 6 0.8 1

El nivel deseado a la salida del amplificador de ganancia variable (6 dBm) viene determinado por el valor de saturación del convertidor analógico – digital del demodulador. No se tendrán en cuenta los efectos de filtrado del amplificador. 454

Cuarta Parte: Simulaciones

Demodulación, ecualización y decodificación de canal Al igual que ocurría en la primera simulación (capítulo II), estamos trabajando con la envolvente compleja de la señal modulada, por lo que la función GMSKDEM servirá básicamente para simular los efectos del filtrado paso bajo y la conversión de la señal a formato digital. En esta simulación, supondremos que el filtro paso bajo es un Chebyshev tipo II de orden 5 con frecuencia de corte 1 MHz y rizado en la banda de rechazo de 20 dB. Obtendremos el filtro mediante la función CHEBY2 y llevaremos a cabo la discretización de sus coeficientes utilizando la función BILINEAR. Ambas pertenecen a la librería de Procesado de Señal de Matlab®. En la figura IV.3 se ha representado la respuesta en frecuencia del filtro paso bajo.

Magnitude

10

10

10

10

Respuesta en frecuencia del filtro paso bajo CHebyshev tipo II

0

-1

-2

-3

10

5

10

6

10

7

10

8

Frequency (radians)

Phase (degrees)

200 100 0 -100 -200 10

5

10

6

10

7

10

8

Frequency (radians) Figura IV.3.

En cuanto a los parámetros para el convertidor analógico – digital, se tomarán ocho muestras por periodo de bit (NR = 8). El valor de saturación del cuantizador será, al igual que en la primera simulación, de 630.9573 mV (que corresponde a 6 dBm, teniendo en cuenta que la impedancia es de 50 Ω ). Para el cálculo del número de bits necesarios, hay que tener en cuenta el nivel de sensibilidad requerido. Como se desprende de la figura IV.2, el mínimo nivel de señal esperado a la entrada del demodulador es de –53 dBm, que corresponde a 0.7079 mV. El número de bits necesarios para la cuantización de cada muestra sería entonces 10.8. Redondeando, tomaremos 11 bits, lo que proporciona un tamaño del escalón de cuantización igual a 0.6162 mV, que corresponde a –54.2 dBm, con lo que se consigue ganar 1.2 dB de sensibilidad. 455

Cuarta Parte: Simulaciones

Para la ecualización se generarán las secuencias internas mediante GENSEC. Tal como se discutió en el apartado II.12 de la tercera parte de la memoria, para la ecualización de señales GMSK que han atravesado un canal de propagación con un perfil potencia – retardo de tipo rural las secuencias GMSK generadas internamente por el ecualizador deberían extenderse, como mínimo, a 5 periodos de bit. En esta simulación, se utilizarán 6 secuencias internas de 6 periodos de bit. El número de muestras por periodo de bit será igual al utilizado en el convertidor analógico – digital del demodulador, es decir, 8. Tras la ecualización realizada por ECUALIZ, la función DECODDIF realizará la decodificación diferencial. Mediante EXTRAEDAT se extraerán los bits de información contenidos en cada ráfaga. La salida de esta función incluye los “stealing flags”, por lo que éstos deberán ser extraidos por separado, antes de realizar la decodificación de canal, mediante la función DECODCAN, aplicada a los datos de cada canal lógico.

IV.2.- Ficheros de comandos Los comandos para la realización de esta simulación se han dividido en varios ficheros, que se describen brevemente a continuación. -

-

-

SIMUL_3a:

Generación de los datos aleatorios de los distintos canales lógicos (TCH/FS y SACCH) que intervienen en la simulación, codificación de canal, mapeo en el intervalo de tiempo, generación de ráfagas y modulación GMSK. SIMUL_3b: Bloques de transmisión de RF de la MS. SIMUL_3c: Canal de propagación. SIMUL_3d: Bloques de recepción de RF de la BTS. SIMUL_3e: Demodulación, ecualización y decodificación de los datos de los diferentes canales lógicos enviados por la MS hacia la BTS (TCH/FS y SACCH). SIMUL_3f: Obtención de los resultados que se presentarán en el apartado IV.3.

Seguidamente se presenta el contenido de cada uno de estos ficheros. Fichero SIMUL_3a %SIMUL_3a % % Simulación 1, primer fichero % % Transmisión de datos del canal TCH/FS por parte % de una estación móvil. % % La comunicación tiene asignado el intervalo de tiempo TN 7 % (empezando a contar desde 0). %Número total de tramas de voz de la simulación: NUM_TRAMAS_VOZ=10; %BSIC de la BTS con la que está establecida la comunicación

456

Cuarta Parte: Simulaciones BSIC=[1 5]; tsc=BSIC(2); %"Training sequence code" sistema='p-gsm' ARFCN=32 [Fuplink_MHz Fdownlink_MHz]=arfcn2f(ARFCN,sistema); %Nos quedaremos con la del UPLINK. Fc=Fuplink_MHz*1e6; %La pasamos a Hz potencia=27; %dBm imped=50; %Impedancia: 50 ohmios T=3.69e-6 %1 bit -> 3.69 microsegundos Fs=40/T %Hz %Haremos la simulación en banda base... tslot_asig=7; %Intervalo de tiempo asigando al móvil %Generación pseudoaleatoria de los bits de datos del canal %TCH/F y su SACCH asociado, y codificación de canal. datos_tchf=bingen(NUM_TRAMAS_VOZ,260); codigo_tchf=codcanal(datos_tchf,'tch/fs'); datos_sacchf=bingen(ceil(NUM_TRAMAS_VOZ/26),184); codigo_sacchf=codcanal(datos_sacchf,'sacch'); temp=size(codigo_tchf); NUM_TRAMAS_TOT=temp(1)+floor(temp(1)/13); %El segundo sumando es para tener en cuenta que se añaden %tramas de SACCH y tramas "idle" en la multitrama MF26. %Inclusión de los "stealing flags" %Para SACCH, hl y hu son 1. %Para TCH/F, hl y hu son 0. tamcod_tchf=size(codigo_tchf); tamcod_sacchf=size(codigo_sacchf); flags_tchf=zeros(tamcod_tchf(1),2); flags_sacchf=zeros(tamcod_sacchf(1),2); cod_tchf_flag=[codigo_tchf(:,1:57) flags_tchf codigo_tchf(:,58:114)]; cod_sacchf_flag=[codigo_sacchf(:,1:57) flags_sacchf ... ... codigo_sacchf(:,58:114)]; %Generación de las ráfagas for indice=1:tamcod_tchf(1) rafaga_tchf_bin(indice,:)=... ...burstgen('nb',cod_tchf_flag(indice,:),tsc); end for indice=1:tamcod_sacchf(1) rafaga_sacchf_bin(indice,:)=... ...burstgen('nb',cod_sacchf_flag(indice,:),tsc); end %Codificación diferencial rafagadif_tchf=coddif(rafaga_tchf_bin); rafagadif_sacch=coddif(rafaga_sacchf_bin); %Conversión a formato NRZ rafaga_tchf_nrz=bin2nrz(rafagadif_tchf); rafaga_sacchf_nrz=bin2nrz(rafagadif_sacch); %Modulación GMSK pot_nat=10^(potencia/10); %En mW Eb=pot_nat*T; L=3; N=ceil(Fs*T); Fs=N/T; filtrog=filgaus(0.3,N,L); filtroq=cumsum(filtrog); FLAG=2; %Simulación en banda base cola=1; %Inclusión de los 0.25 bits finales de cada ráfaga al modular. salida_mod=zeros(NUM_TRAMAS_TOT*8,156.25*N); %Se hará "power ramping"

457

Cuarta Parte: Simulaciones OPC=zeros(NUM_TRAMAS_TOT*8,1); %Indicará para qué ráfaga hay que hacer power ramping, %y si se hace al principio, al final o en ambos extremos. indice_tchf=1; indice_sacchf=1; for fn=0:NUM_TRAMAS_TOT-1 if mod(fn,26)==12 %En esa trama corresponde mapear el SACCH salida_mod(8*fn+tslot_asig+1,:)=... ...gmskmod(rafaga_sacchf_nrz(indice_sacchf,:),filtroq,T,... ...Fs,Eb,FLAG,Fc,cola,imped); opc(8*fn+tslot_asig+1)=3; %Power ramping al principio %y al final de esa ráfaga. indice_sacchf=indice_sacchf+1; elseif mod(fn,26)==25 %"Idle". No hacemos nada, lo dejamos a cero, %porque no se transmite. else %En el resto, van datos de TCH/F salida_mod(8*fn+tslot_asig+1,:)=... ...gmskmod(rafaga_tchf_nrz(indice_tchf,:),filtroq,T,... ...Fs,Eb,FLAG,Fc,cola,imped); opc(8*fn+tslot_asig+1)=3; %Power ramping al principio y al final de esa ráfaga. indice_tchf=indice_tchf+1; end end %Ahora se realiza el "power ramping" salida_ramp=powramp(salida_mod,Fs,T,'nb',OPC);

Fichero SIMUL_3b %SIMUL_3b % % Simulación 3, segundo fichero % % Bloque transmisor RF para la BTS de SIMUL_3a. %Tramo lineal 1 %Pérdidas perdidas_tramo1=4; %dB coef_tramo1=10^(-perdidas_tramo1/20); salida_tramo1_sinruido=coef_tramo1*salida_ramp; %Ruido F1=1; %dB. Figura de ruido. G1=-perdidas_tramo1; B1=200e3; %200 KHz TAMA=size(salida_tramo1_sinruido); ruido_tramo1=genruido(B1,F1,G1,TAMA,'iq',imped); salida_tramo1=salida_tramo1_sinruido+ruido_tramo1; %Amplificador de RF %Ganancia Gamp=16; %Ganancia del amplificador, en dB. P1=25.2; %Pto de compresión de 1dB, en dBm. Limite=p12l(P1,'d',imped); Bamp=1;

458

Cuarta Parte: Simulaciones Aamp=1; salida_amplif_sinruido=amplif(salida_tramo1,Gamp,Bamp,Aamp,Limite); %(con efecto de filtrado incluido) %Ruido Bruidoamp=200e3; %Consideraremos el ancho de banda de ruido igual al ancho de un radiocanal (200 KHz). Famp=3.5; %Figura de ruido del amplificador: 5 dB. TAMA=size(salida_amplif_sinruido); ruido_amplif=genruido(Bruidoamp,Famp,Gamp,TAMA,'iq',imped); salida_amplif=salida_amplif_sinruido+ruido_amplif; %Antena transmisora %Ganancia de potencia Gant_TX=7; gant_tx=10^(Gant_TX/20); y1=gant_tx*salida_amplif;

Fichero SIMUL_3c %SIMUL_3c % % Simulación 3, tercer fichero % % Propagación por el canal de la señal emitida por la MS, % que ha sido generada en SIMUL_3a y SIMUL3b. %Modelado de las pérdidas de propagación dist=1; %Km %dist=10; hBS=45; %m hMS=1.5; %m %Método Okumura-Hata: metodo='hata'; terreno=4; %1:Ciudad paqueña o mediana, %2:ciudad grande, 3:área suburbana, 4:zona rural. %terreno=4 perdidas_prop=pathloss(metodo,Fuplink_MHz,dist,hBS,hMS,terreno); %Parámetros para "fast fading" y "slow fading" modelo='ra1' veloc_movil=100; %Km/h sigma_slow=8; %dB act_slow=0.05; %s %Aplicación del modelo de canal [y2,canalprop]=canal(y1,Fc,Fs,modelo,veloc_movil,... ...perdidas_prop,sigma_slow,act_slow);

Fichero SIMUL_3d %SIMUL_3d % % Simulación 3, cuarto fichero % % Recepción por parte de la BTS de la señal enviada por el móvil. %

459

Cuarta Parte: Simulaciones % % % %

El móvil tiene asignado para TCH el TN 7 de la trama. La señal proveniente del canal ha sido previamente generada en SIMUL_3c.m.

%"Front End" del receptor %Receptor superheterodino: % - Antena receptora % - 0.7 m de cable % - Amplificador de bajo ruido (LNA) % - 50 m de cable % - Duplexor + Convertidor de frecuencia + filtrado en FI % (como simulamos en banda base, sólo tenemos que incluir % aquí el efecto de filtrado...) % - Amplificador de FI, con ganacia variable (usar la función AGC) %Antena receptora: modelo muy simplificado (ganancia de potencia y ruido) Gant_RX=15; gant_rx=10^(Gant_RX/20); y3_sinruido=gant_rx*y2; Fant=11; %Figura de ruido, en dB. Bruidoant=200e3; %Consideramos el ruido en un radiocanal de 200 KHz. TAMA=size(y2); ruido_ant=genruido(Bruidoant,Fant,Gant_RX,TAMA,'iq',imped); y3=y3_sinruido+ruido_ant; %HAY QUE SELECCIONAR LAS RÁFAGAS A DECODIFICAR... TAMA=size(y3); fn=0; ind_sacch=1; ind_tchf=1; %Inicialización de variables, por si quedaran vacías: y3_sacch=[]; y3_tchf=[]; for fn=0:NUM_TRAMAS_TOT-1 if mod(fn,26)==25 %Idle elseif mod(fn,26)==12 %SACCH y3_sacch(ind_sacch,:)=y3(fn*8+tslot_asig+1,:); ind_sacch=ind_sacch+1; else %TCH/F y3_tchf(ind_tchf,:)=y3(fn*8+tslot_asig+1,:); ind_tchf=ind_tchf+1; end end %PRIMER TRAMO LINEAL %Pérdidas: Lcables1=[11.2145 0.7]; Lconec1=0.3; Lcomb1=0; Lotros1=0; [coef_tramo1rx,perdidas_tramo1rx_dB]=... ...sumperd(Lcables1,Lconec1,Lcomb1,Lotros1); salida_tramo1_sinruido_sacch=coef_tramo1rx*y3_sacch; salida_tramo1_sinruido_tchf=coef_tramo1rx*y3_tchf; %AMPLIFICADOR DE BAJO RUIDO (LNA) %LNA: Lo suponemos de ganancia constante.

460

Cuarta Parte: Simulaciones %Efecto de filtrado del amplificador Blna=1; Alna=1; Glna=15; %Ganancia, en dB. P1lna=5; %Punto de compresión de 1 dB, expresado en dBm. LimiteLNA=p12l(P1lna,'d',imped); %Valor límite de la entrada, correspondiente al P1lna, expresado en mV. salida_lna_sinruido_tchf=amplif(salida_tramo1_sinruido_tchf,... ...Glna,Blna,Alna,LimiteLNA); salida_lna_sinruido_sacch=amplif(salida_tramo1_sinruido_sacch,... ...Glna,Blna,Alna,LimiteLNA); Flna=2.2; %Figura de ruido BW_lna=200e3; %Ancho de banda de ruido del LNA: 200 KHz TAMA_tchf=size(salida_lna_sinruido_tchf); ruidoLNA_tchf=genruido(BW_lna,Flna,Glna,TAMA_tchf,'iq',imped); TAMA_sacch=size(salida_lna_sinruido_sacch); ruidoLNA_sacch=genruido(BW_lna,Flna,Glna,TAMA_sacch,'iq',imped); salida_lna_tchf=salida_lna_sinruido_tchf+ruidoLNA_tchf; salida_lna_sacch=salida_lna_sinruido_sacch+ruidoLNA_sacch; %SEGUNDO TRAMO LINEAL Lcables2=[2.5236 50]; Lconec2=0.3; Lcomb2=0; Lotros2=0; [coef_tramo2,perdidas_tramo2_dB]=... ...sumperd(Lcables2,Lconec2,Lcomb2,Lotros2); salida_tramo2_sinruido_sacch=coef_tramo2*salida_lna_sacch; salida_tramo2_sinruido_tchf=coef_tramo2*salida_lna_tchf; %CONJUNTO FORMADO POR DUPLEXOR + MEZCLADOR + FILTRO DE FI perd_FI=6.5; %Pérdidas coef_FI=10^(-perd_FI/20); y_fi_sinruido_tchf=coef_FI*salida_tramo2_sinruido_tchf; y_fi_sinruido_sacch=coef_FI*salida_tramo2_sinruido_sacch; BW_ruidoFI=200e3; %Ancho de banda de ruido: 200 KHz G_FI=-perd_FI; F_ruidoFI=2; %Figura de ruido, en dB. ruido_FI_tchf=... ...genruido(BW_ruidoFI,F_ruidoFI,G_FI,TAMA_tchf,'iq',imped); ruido_FI_sacch=... ...genruido(BW_ruidoFI,F_ruidoFI,G_FI,TAMA_sacch,'iq',imped); y_fi_tchf=y_fi_sinruido_tchf+ruido_FI_tchf; y_fi_sacch=y_fi_sinruido_sacch+ruido_FI_sacch; %AMPLIFICADOR DE GANANCIA VARIABLE Tama_FI_tchf=size(y_fi_tchf); Tama_FI_sacch=size(y_fi_sacch); Bagc=1; Aagc=1; Gmin=-4; Gmax=42; P1agc=10; %Punto de compresión de 1 dB, expresado en dBm. LimiteAGC=p12l(P1agc,'d',imped); %valor límite de la entrada, %en mV, a partir del cual %la característica del amplificador %se hace no lineal. Fagc=7; %Figura de ruido BW_agc=200e3; %Ancho de banda de ruido NIVEL_DES=6; %Nivel deseado a la salida del amplificador, en dBm.

461

Cuarta Parte: Simulaciones mu=0.8; %Paso de adaptación del algoritmo del AGC NUMBITS_ACT=1; %Periodo de actualización de la ganancia, %expresado en periodos de bit. Ginic=10; %Ganancia inicial (para cada ráfaga). %Hay que inicializar las siguientes variables, %por si acaso no se entrase nunca en el bucle correspondiente: salida_agc_tchf=[]; salida_agc_sacch=[]; salida_agc_sinruido_tchf=[]; salida_agc_sinruido_sacch=[]; ruido_agc_tchf=[]; ruido_agc_sacch=[]; ganancia_agc_tchf=[]; ganancia_agc_sacch=[]; for indice=1:Tama_FI_tchf(1) %Para cada ráfaga de y_fi: [salida_agc_tchf(indice,:) salida_agc_sinruido_tchf(indice,:) ... ... ruido_agc_tchf(indice,:) ... ...ganancia_agc_tchf(indice,:)]=agc(y_fi_tchf(indice,:)... ...,Fs,T,Bagc,Aagc,Ginic,Gmin,Gmax,P1agc,Fagc,BW_agc,... ...NIVEL_DES,mu,NUMBITS_ACT,1,Fc,imped); end for indice=1:Tama_FI_sacch(1) %Para cada ráfaga de y_fi: [salida_agc_sacch(indice,:) salida_agc_sinruido_sacch(indice,:) ... ... ruido_agc_sacch(indice,:) ganancia_agc_sacch(indice,:)]=... ...agc(y_fi_sacch(indice,:),Fs,T,Bagc,Aagc,Ginic,... ...Gmin,Gmax,P1agc,Fagc,BW_agc,NIVEL_DES,mu,... ...NUMBITS_ACT,1,Fc,imped); end

Fichero SIMUL_3e %SIMUL_3e % % Simulación 3, quinto fichero % % Demodulación, ecualización, decodificación diferencial % extracción de información de cada canal y decodificación. % % Los datos de entrada vienen de los ficheros anteriores: % SIMUL_3a, SIMUL_3b, SIMUL_3c y SIMUL_3d. %Demodulación, ecualización, decodificación diferencial %y extracción de datos de las ráfagas. %Tomaremos cada canal lógico por separado... %DEMODULADOR %Parámetros del demodulador: %ADC: nr=8; nbits=11; vsat=630.9573; %mV %Filtro paso bajo: N=5; aten=20; w1=1.0e6*2*pi; %BW= 300 KHz %[Blpf_a,Alpf_a]=butter(N,w1,'s');

462

Cuarta Parte: Simulaciones [Blpf_a,Alpf_a]=cheby2(N,aten,w1,'s'); Fp=1e6; %Prewarping... [Blpf,Alpf]=bilinear(Blpf_a,Alpf_a,Fs,Fp); %Discretización TAMA_tchf=size(salida_agc_tchf); TAMA_sacch=size(salida_agc_sacch); %Inicialización de algunas variables, por si acaso: I_tchf=[]; Q_tchf=[]; I_sacch=[]; Q_sacch=[]; for indice=1:TAMA_tchf(1) [I_tchf(indice,:),Q_tchf(indice,:)]=... ...gmskdem(salida_agc_tchf(indice,:),Fs,T,Blpf,Alpf,nr,nbits,vsat); end for indice=1:TAMA_sacch(1) [I_sacch(indice,:),Q_sacch(indice,:)]=... ...gmskdem(salida_agc_sacch(indice,:),Fs,T,Blpf,Alpf,nr,nbits,vsat); end IQ_tchf=I_tchf+sqrt(-1)*Q_tchf; IQ_sacch=I_sacch+sqrt(-1)*Q_sacch; %ECUALIZACIÓN V=5; V=6 %Secuencias posibres de V bits con nr muestras por periodo de bit. [secuencias,filtroq]=gensec(V,nr); %Esta nr es la misma que la del demodulador. TSC=BSIC(2); PINTAR=0; %Inicialización de variables: y_ecual_tchf=[]; y_ecual_sacch=[]; metric_camino_tchf=[]; metric_camino_sacch=[]; for indice=1:TAMA_tchf(1) [y_ecual_tchf(indice,:),metric_camino_tchf(indice)]=... ...ecualiz(V,nr,IQ_tchf(indice,:),'nb',TSC,PINTAR,... ...secuencias,filtroq); end for indice=1:TAMA_sacch(1) [y_ecual_sacch(indice,:),metric_camino_sacch(indice)]=... ...ecualiz(V,nr,IQ_sacch(indice,:),'nb',TSC,PINTAR,... ...secuencias,filtroq); end %Decodificación diferencial: y_nodif_tchf=decoddif(y_ecual_tchf); y_nodif_sacch=decoddif(y_ecual_sacch); %Extracción de la información de cada ráfaga: TamNod_tchf=size(y_nodif_tchf); TamNod_sacch=size(y_nodif_sacch); %Inicialicemos algunas variables: cod_rec_tchf_st=[]; cod_rec_sacch_st=[]; for indice=1:TamNod_tchf(1) cod_rec_tchf_st(indice,:)=extraedat(y_nodif_tchf(indice,:),'nb'); end

463

Cuarta Parte: Simulaciones for indice=1:TamNod_sacch(1) cod_rec_sacch_st(indice,:)=extraedat(y_nodif_sacch(indice,:),'nb'); end %Extracción de los "stealing flags" if length(cod_rec_tchf_st)>0 cod_rec_tchf=[cod_rec_tchf_st(:,1:57) cod_rec_tchf_st(:,60:116)]; end if length(cod_rec_sacch_st)>0 cod_rec_sacch=[cod_rec_sacch_st(:,1:57) cod_rec_sacch_st(:,60:116)]; end %Decodificación de los datos de los distintos canales lógicos: %"Hard decision decoding", puesto que el ecualizador %proporciona valores binarios a su salida. if length(cod_rec_tchf)>0 [datos_recup_tchf,metrica_vit_tchf,sindr_tchf]=... ...decodcan(cod_rec_tchf,'tch/fs'); end if length(cod_rec_sacch)>0 [datos_recup_sacch,metrica_vit_sacch,sindr_sacch]=... ...decodcan(cod_rec_sacch,'sacch'); end

Fichero SIMUL_3f %SIMUL_3f % % Simulación 3, sexto fichero % % Obtención de los siguientes resultados: % % 1.- Gráfica de la potencia de cada ráfaga en % el conector de antena del receptor. % 2.- Errores antes del decodificador de canal. % 3.- Errores tras el decodificador de canal, para distintos canales % o grupos de bits dentro de un canal. % %Gráficas de POTENCIA de las ráfagas... TAMA=size(salida_mod); for indice=1:TAMA(1) %Potencia a la salida del modulador potencia_salida_mod(indice)=... ...potrafbb(salida_mod(indice,:),'nb',Fs,imped); %Potencia tras el primer tramo lineal del transmisor de la MS potencia_salida_tramo1(indice)=... ...potrafbb(salida_tramo1(indice,:),'nb',Fs,imped); %Potencia tras el amplificador de RF de la MS potencia_salida_amplif(indice)=... ...potrafbb(salida_amplif(indice,:),'nb',Fs,imped); %Potencia a la salida de la antena transmisora potencia_y1(indice)=... ...potrafbb(y1(indice,:),'nb',Fs,imped); %Potencia en el conector de antena de la BTS potencia_y3(indice)=...

464

Cuarta Parte: Simulaciones ...potrafbb(y3(indice,:),'nb',Fs,imped); %Potencia de ruido en la antena receptora potencia_ruido_y3(indice)=... ...potrafbb(ruido_ant(indice,:),'nb',Fs,imped); end ejex=1:TAMA(1); figure, plot(ejex,potencia_salida_mod,'b') hold on, plot(ejex,potencia_salida_tramo1,'g') plot(ejex,potencia_salida_amplif,'m') plot(ejex,potencia_y1,'y') plot(ejex,potencia_y3,'r') plot(ejex,potencia_ruido_y3,'c') ylabel('Potencia (dBm)') xlabel('Número de ráfaga') title('Comparación de potencias en distintos ... ...puntos del transmisor y a la entrada del receptor.') %SÓLO PARA LAS RÁFAGAS DE LOS CANALES TRATADOS POR EL RECEPTOR: %Potencia tras la antena receptora if length(y3_tchf)>0 [filas,col]=size(y3_tchf); for indice=1:filas potencia_y3_tchf(indice)=... ...potrafbb(y3_tchf(indice,:),'nb',Fs,imped); end end if length(y3_sacch)>0 [filas,col]=size(y3_sacch); for indice=1:filas potencia_y3_sacch(indice)= )=... ...potrafbb(y3_sacch(indice,:),'nb',Fs,imped); end end %Potencia tras el LNA if length(salida_lna_tchf)>0 [filas,col]=size(salida_lna_tchf); for indice=1:filas potencia_salida_lna_tchf(indice)= )=... ...potrafbb(salida_lna_tchf(indice,:),'nb',Fs,imped); end end if length(salida_lna_sacch)>0 [filas,col]=size(salida_lna_sacch); for indice=1:filas potencia_salida_lna_sacch(indice)= )=... ...potrafbb(salida_lna_sacch(indice,:),'nb',Fs,imped); end end %Potencia tras el bloque formado por duplexor, mezclador y filtro de FI if length(y_fi_tchf)>0 [filas,col]=size(y_fi_tchf); for indice=1:filas potencia_y_fi_tchf(indice)= )=... ...potrafbb(y_fi_tchf(indice,:),'nb',Fs,imped); end end if length(y_fi_sacch)>0 [filas,col]=size(y_fi_sacch); for indice=1:filas

465

Cuarta Parte: Simulaciones potencia_y_fi_sacch(indice)= )=... ...potrafbb(y_fi_sacch(indice,:),'nb',Fs,imped); end end %Potencia tras el amplificador de ganancia variable %(controlado por el AGC) if length(salida_agc_tchf)>0 [filas,col]=size(salida_agc_tchf); for indice=1:filas potencia_salida_agc_tchf(indice)= )=... ...potrafbb(salida_agc_tchf(indice,:),'nb',Fs,imped); end end if length(salida_agc_sacch)>0 [filas,col]=size(salida_agc_sacch); for indice=1:filas potencia_salida_agc_sacch(indice)= )=... ...potrafbb(salida_agc_sacch(indice,:),'nb',Fs,imped); end end %Potencia a la salida del demodulador %Téngase en cuenta que la tasa de muestreo %a la salida del demodulador es nr/T if length(IQ_tchf)>0 [filas,col]=size(IQ_tchf); for indice=1:filas potencia_IQ_tchf(indice)= )=... ...potrafbb(IQ_tchf(indice,:),'nb',nr/T,imped); end end if length(IQ_sacch)>0 [filas,col]=size(IQ_sacch); for indice=1:filas potencia_IQ_sacch(indice)= )=... ...potrafbb(IQ_sacch(indice,:),'nb',nr/T,imped); end end %Figuras de potencia de la ráfagas de TCH [filas,col]=size(IQ_tchf); ejex=1:filas; figure, plot(ejex,potencia_y3_tchf,'b'); hold on, plot(ejex,potencia_salida_lna_tchf,'m'); plot(ejex,potencia_y_fi_tchf,'g'); plot(ejex,potencia_salida_agc_tchf,'r'); plot(ejex,potencia_IQ_tchf,'y'); title('Potencia de las ráfagas de TCH ... ...en distintos puntos del receptor') xlabel('Índice de la ráfaga de TCH'); ylabel('Potencia (dBm)') %%Figuras de potencia de la ráfagas de SACCH [filas,col]=size(IQ_sacch); ejex=1:filas; figure, plot(ejex,potencia_y3_sacch,'b'); hold on, plot(ejex,potencia_salida_lna_sacch,'m'); plot(ejex,potencia_y_fi_sacch,'g'); plot(ejex,potencia_salida_agc_sacch,'r'); plot(ejex,potencia_IQ_sacch,'y'); title('Potencia de las ráfagas de SACCH en ... ... distintos puntos del receptor')

466

Cuarta Parte: Simulaciones xlabel('Índice de la ráfaga de SACCH'); ylabel('Potencia (dBm)') %Errores PARA CADA CANAL tratado por el receptor %Errores a la salida del ecualizador err_sal_ec_tchf=y_ecual_tchf(:,1:156)-rafagadif_tchf; err_sal_ec_sacch=y_ecual_sacch(:,1:156)-rafagadif_sacch(1:filas,:); %Sumas: sum_err_sal_ec_tchf=sum(abs(err_sal_ec_tchf),2); sum_err_sal_ec_sacch=sum(abs(err_sal_ec_sacch),2); %Errores tras la decodificación diferencial err_decdif_tchf=y_nodif_tchf(:,1:156)-decoddif(rafagadif_tchf); err_decdif_sacch=)=... ...y_nodif_sacch(:,1:156)-decoddif(rafagadif_sacch(1:filas,:)); %Sumas: sum_err_decdif_tchf=sum(abs(err_decdif_tchf),2); sum_err_decdif_sacch=sum(abs(err_decdif_sacch),2); %Sin los bits de la secuencia de entrenamiento: for indice=1:TamNod_tchf(1) datos_tchf_entrel(indice,:)= ... ...extraedat(decoddif(rafagadif_tchf(indice,:)),'nb'); end for indice=1:TamNod_sacch(1) datos_sacch_entrel(indice,:)= ... ...extraedat(decoddif(rafagadif_sacch(indice,:)),'nb'); end err_extr_tchf=cod_rec_tchf_st-datos_tchf_entrel; err_extr_sacch=cod_rec_sacch_st-datos_sacch_entrel(1:filas,:); %Sumar: sum_err_extr_tchf=sum(abs(err_extr_tchf),2); sum_err_extr_sacch=sum(abs(err_extr_sacch),2); %Errores tras la decodificación de canal err_sal_cod_tchf=datos_recup_tchf-datos_tchf; %err_sal_cod_sacch=datos_recup_sacch-datos_sacch; %Sumas sum_err_sal_cod_tchf=sum(abs(err_sal_cod_tchf),2); %sum_err_sal_cod_sacch=sum(abs(err_sal_cod_sacch),2); %Errores en los bits de TCH/FS, por clases: %Bits calse 1a: err_sal_clase1a=datos_recup_tchf(:,1:50)-datos_tchf(:,1:50); sum_err_sal_clase1a=sum(abs(err_sal_clase1a),2); %Bits clase 1b: err_sal_clase1b=datos_recup_tchf(:,51:182)-datos_tchf(:,51:182); sum_err_sal_clase1b=sum(abs(err_sal_clase1b),2); %Bits clase 2 (no protegidos) err_sal_clase2=datos_recup_tchf(:,183:260)-datos_tchf(:,183:260); sum_err_sal_clase2=sum(abs(err_sal_clase2),2);

467

Cuarta Parte: Simulaciones

IV.3.- Resultados En la figura IV.4 se muestran los niveles de potencia de cada una de las ráfagas del canal TCH/FS en distintos puntos del receptor. El código de colores es el mismo que el empleado en la figura II.5. Podemos observar que las diferencias entre la señal de salida del amplificador de ganancia variable y la salida del demodulador son mínimas. También queda patente la compresión de los niveles de señal llevada a cabo por el amplificador de ganancia variable, que intenta siempre proporcionar a su salida valores de potencia cercanos a 6 dBm. Potencia de las ráfagas de TCH en distintos puntos del receptor 10

0

Potencia (dBm)

-10

-20

-30

-40

-50

-60 0

5

10

15 20 25 30 Índice de la ráfaga de TCH

35

40

45

Figura IV.4.

Mostramos a continuación el número de errores en cada ráfaga del canal TCH/FS tras la ecualización (sum_err_sal_ec_tchf), tras la decodificación diferencial (sum_err_decdif_tchf) y tras la extracción de los bits de datos contenidos en la ráfaga (sum_err_extr_tchf). La decodificación diferencial consigue reducir el número total de bits erróneos desde 106 hasta 70.

468

Cuarta Parte: Simulaciones

Nº ráfaga 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44

sum_err_sal_ec_tchf sum_err_decdif_tchf 0 0 4 2 0 0 0 0 4 2 0 0 0 0 5 3 0 0 2 2 0 0 4 3 6 6 0 0 2 1 15 10 4 4 2 1 5 4 7 5 0 0 4 2 0 0 4 2 2 1 7 5 0 0 2 1 0 0 2 2 0 0 0 0 2 1 0 0 0 0 0 0 0 0 0 0 2 1 9 5 0 0 5 3 4 2 3 2

sum_err_extr_tchf 0 2 0 0 2 0 0 2 0 2 0 3 6 0 1 7 4 1 3 4 0 2 0 2 1 4 0 1 0 2 0 0 1 0 0 0 0 0 1 4 0 2 2 1

La decodificación de canal tratará de eliminar los errores restantes. En la siguiente tabla se muestra el número de errores para los bits de clase 1a, 1b y 2 de cada bloque de 260 bits del canal TCH/FS, junto con la métrica (distancia Hamming) 469

Cuarta Parte: Simulaciones

devuelta por el algoritmo de Viterbi y el síndrome del código bloque. Como se observa, el algoritmo de Viterbi es capaz de detectar y corregir en este caso todos los bits erróneos de la clase 1, de manera que el síndrome del código bloque que afecta a los bits de clase 1a es [0 0 0] para todos los bloques de voz. Errores en Errores en Nº bloque bits clase 1a bits clase 1b 1 0 0 2 0 0 3 0 0 4 0 0 5 0 0 6 0 0 7 0 0 8 0 0 9 0 0 10 0 0

Errores en bits clase 2 0 0 2 2 1 0 0 0 0 1

metrica_vit_tchf 3 5 9 9 6 5 6 2 2 7

sindr_tchf 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

Se repitió la simulació variando únicamente la distancia entre MS y BTS, de manera que sea igual a 10 Km, obteniéndose la representación de la potencia de cada ráfaga de TCH/FS que puede verse en la figura IV.5. Potencia de las ráfagas de TCH en distintos puntos del receptor 0 -10 -20

Potencia (dBm)

-30 -40 -50 -60 -70 -80 -90 0

5

10

15 20 25 30 Índice de la ráfaga de TCH

35

40

45

Figura IV.5.

Podemos ver cómo los niveles son mucho menores que en el anterior caso. El amplificador de ganancia variable no consigue proporcionar a su salida la máxima potencia deseada (6 dBm), aun trabajando con su máxima ganancia. 470

Cuarta Parte: Simulaciones

En la siguiente tabla se han reproducido los valores del número de errores para cada ráfaga del canal TCH/FS tras el ecualizador, tras el decodificador diferencial y tras la extracción de los datos de cada ráfaga. Nº ráfaga 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44

sum_err_sal_ec_tchf 12 6 6 10 10 6 12 8 11 14 13 10 8 12 12 8 12 10 10 14 12 8 8 12 13 10 11 7 10 13 13 10 8 8 10 8 11 8 10 10 8 14 10 12

sum_err_decdif_tchf 6 3 3 5 8 7 7 10 13 9 10 8 12 11 11 14 14 10 21 8 7 8 10 7 10 10 11 5 5 9 11 13 8 10 5 7 9 8 6 8 4 7 5 6

sum_err_extr_tchf 6 3 3 5 8 7 6 10 12 9 9 8 12 11 11 14 13 10 21 8 7 8 10 7 9 9 10 4 5 8 10 13 8 10 5 7 8 8 6 8 4 6 4 4

471

Cuarta Parte: Simulaciones

Como vemos, el número de errores por ráfaga es muy superior al del ejemplo anterior. El decodificador de canal intentará en la medida de lo posible eliminar estos errores. En la siguiente tabla se muestra el número de errores que afectan a los bits de clase 1a, 1b y 2 de cada bloque de 260 bits del canal TCH/FS. Errores en Errores en Nº bloque bits clase 1a bits clase 1b 1 0 0 2 0 4 3 7 14 4 2 7 5 6 12 6 0 0 7 7 2 8 0 0 9 0 0 10 6 0

Errores en bits clase 2 metrica_vit_tchf sindr_tchf 1 30 0 0 0 6 30 0 0 0 6 32 0 0 0 8 42 1 1 1 9 33 1 0 1 5 27 0 0 0 6 29 0 0 0 3 28 0 0 0 4 27 0 0 0 3 30 1 1 0

Se observa que, aunque el código convolucional interno es capaz de detectar y corregir bastantes errores, aún queda un número considerable de errores en cada bloque de 260 bits de voz. El código bloque detector de errores en los bits de clase 1a falla en los casos de los bloques tercero y séptimo, en los que el síndrome es [0 0 0] a pesar de existir errores. Para mejorar la tasa de error en el sistema del ejemplo pueden llevarse a cabo diversas acciones, como por ejemplo: -

modificar el ancho de banda y el tipo del filtro paso bajo del demodulador, incrementar el número de muestras por periodo de bit en el convertidor analógico – digital del demodulador, aumentar la longitud de las secuencias internas generadas en el ecualizador para realizar la comparación y obtener las métricas incrementales, reducir la figura de ruido en las distintas etapas del transmisor y del receptor de RF.

472

Quinta Parte

Quinta Parte: CONCLUSIONES Y FUTURAS LÍNEAS DE INVESTIGACIÓN

Quinta Parte: Conclusiones y líneas futuras de investigación

CAPÍTULO I

Capítulo I: Conclusiones

En el presente proyecto se ha diseñado, desarrollado y probado un conjunto de rutinas para la simulación del tratamiento de la señal en la capa física de la interfaz radio del sistema de telefonía móvil digital GSM. Estas rutinas han sido realizadas en Matlab®, dado que se trata de un entorno muy apropiado para la simulación de señales y sistemas, por tres razones, principalmente: una es la sintaxis, que permite trabajar con vectores y matrices de forma muy intuitiva, otra es que, al ser un lenguaje interpretado, no precisa de compilación del código antes de la ejecución, lo que facilita la modificación de las diferentes funciones, y la tercera razón es la existencia de librerías con funciones específicas para tratamiento digital de señales, comunicaciones, etc. Los objetivos propuestos inicialmente han sido cubiertos mediante un conjunto de funciones que abarcan la codificación y decodificación de canal, la modulación y demodulación, la simulación de bloques de RF, la ecualización de señales GMSK y el modelado de canales de propagación con respuesta variable con el tiempo. Cada función incluye su ayuda correspondiente. Asimismo, en la memoria se ha descrito con todo detalle la sintaxis de todas y cada una de las funciones. Se ha comprobado lo más exhaustivamente que ha sido posible el funcionamiento de las diferentes rutinas de la librería, proporcionando en la memoria una descripción detallada de las pruebas más significativas llevadas a cabo. Se han desarrollado simulaciones que implican al sistema completo, demostrando la relación entre las diferentes rutinas a la hora de simular diferentes configuraciones. En muchas de dichas simulaciones se han tenido en cuenta parámetros de equipos reales. En una de las simulaciones, se han comparado los resultados con los obtenidos en mediciones realizadas sobre una red real, siendo esta comparación satisfactoria. El carácter modular de la librería de rutinas aquí desarrollada facilita la inclusión de nuevas funciones, así como la sustitución de otras en caso de que se pretenda probar alguna modificación a un subsistema concreto. Además, la librería contiene una serie de funciones cuyo carácter general las hace útiles para la simulación de diversos sistemas, no sólo para GSM.

474

Quinta Parte: Conclusiones y líneas futuras de investigación

CAPÍTULO II Capítulo II: Líneas de investigación futuras y posibles ampliaciones

Entre las líneas de investigación futuras y posibles ampliaciones podemos mencionar: -

-

-

-

-

-

Creación de una interfaz gráfica para la realización de simulaciones empleando las funciones de la librería. Inclusión de nuevos modelos de canales de propagación (“indoor”, etc.). Modelado de antenas, teniendo en cuenta los patrones de radiación. Para que tenga sentido, habría que modificar la forma en que se modela el canal de propagación, de modo que se trate cada trayecto de forma separada. Simulación de retardos y “timing advance”. Programación de funciones para la simulación de la codificación y decodificación de la voz, empleando los diferentes códecs que se describen en las recomendaciones GSM (“Full Rate”, “Half Rate”, “Enhanced Full Rate”). Esto implicaría la inclusión de dos nuevos bloques: codificador de voz y decodificador de voz, y la posibilidad de seleccionar el tipo de codificación a emplear en la simulación. Inclusión de la opción de transmisión discontinua (DTX), para lo cual es necesario tener programado un códec vocal, así como generar una rutina para detección de actividad vocal (VAD). En el receptor deben programarse funciones para la extrapolación de segmentos de voz y generación de ruido de fondo (“comfort noise”). Estas funciones estarían muy ligadas a otros bloques del receptor, como el Decodificador de Canal, lo que puede resultar en la necesidad de crear bucles que pueden hacer que las simulaciones se ralenticen bastante. Programación algoritmos para decodificación de códigos bloque, como por ejemplo el algoritmo de Berlekamp – Massey. Puede resultar interesante para intentar aprovechar la capacidad correctora del código FIRE utilizado por los canales BCCH, SACCH, FACCH, etc. Inclusión de rutinas para la simulación de los canales lógicos de GPRS (“General Packet Radio Service”). Los bloques afectados serían en principio el Codificador de Canal y el Decodificador de Canal, puesto que los nuevos canales lógicos que se definen para GPRS utilizan sus propios esquemas de codificación de canal. Además, se deberían incluir en el mapeo de los canales lógicos en canales físicos, teniendo en cuenta que un canal de tráfico de datos GPRS puede ocupar varios intervalos de tiempo consecutivos en la misma trama, y que un mismo intervalo de tiempo puede ser compartido por varios canales de tráfico, que pueden pertenecer a distintos usuarios. Inclusión de rutinas para la simulación de HSCSD (“High Speed CircuitSwitched Data”). En este caso la principal modificación a tener en cuenta es

475

Quinta Parte: Conclusiones y líneas futuras de investigación

-

el hecho de que se emplean varios intervalos de tiempo consecutivos para la transmisión de datos de un mismo usuario. Inclusión de rutinas para simulación de sistemas EDGE (“Enhanced Data rates for Global Evolution”). La modulación es diferente a la utilizada por GSM, se trata de 8-PSK, por lo que habría que modificar el bloque Modulador, el Demodulador y la generación de las señales moduladas que se lleva a cabo en el Ecualizador. Además, se deben incluir nuevos canales lógicos, con su correspondiente codificación y decodificación de canal.

Todas estas posibles ampliaciones no deben presentar excesivos problemas en su realización, debido a la modularidad inherente a la librería de funciones que se ha desarrollado en el presente Proyecto.

476

APÉNDICES

Apéndices

APÉNDICE A

Abreviaturas empleadas en la Memoria

AB ACCH ADC ADC ADCT ADPCM AFS AGC AGCH AHS AM AMPS ARFCN ARQ AUC AWGN B.E.R. BAPCM BB BCC BCCH BCF BFI BN BS BSC BSC BSIC BSS BSSAP BTS BTSM C/R CBCH CC CC CCCH CCH CCITT CDMA CELP

“Access Burst” “Asocciated Control Channel” “Administration Centre” “Analog to Digital Converter” “Adaptive DCT” “Adaptive DPCM” “Adaptive multi rate Speech at Full rate” “Automatic Gain Control” “Access Grant Channel” “Adaptive multi rate Speech at Half rate” “Amplitude Modulation” “Advanced Mobile Phone Service” “Absolute Radio Frequency Channel Number” “Automatic Request” “Autenthication Centre” “Aditive White Gaussian Noise” “Bit Error Rate” “Block Adaptive PCM” “Baseband” “Base station Colour Code” “Broadcast Control Channel” “Base station Control Functions” “Bad Frame Indicator” “Bit Number” “Base Station” “Base Station Controller” “Binary Simmetric Channel” “Base Station Identity Code” “Base Station Subsystem” “Base Station System Application Part” “Base Transceiver Station” “BTS Management” “Command/response field bit” “Cell Broadcast Channel” “Convolutional Code” “Call Control” “Common Control Channel” “Control Channel” “Comité Consultatif International Télégraphique et Téléphonique” “Code Division Multiple Access” “Code-Excited Linear Prediction” 478

Apéndices

CEPT CGI CI CM CNU CP CPFSK CPM D*PCM DB DCS DCS DCT DFM DISC DLCI DM DPCM DPM DTE DTX DTX EA EDGE EFS E-GSM EIR EOS EQ ESIDR ETSI EVSIDR FACCH FB FCCH FDMA FEC FER FH FI FIR FN GMSC GMSK GP GPRS GSM

“Conference Européenne des Administration des Postes et des Télécommunications” “Cell Global Identity” “Cell Identity” “Connection Management” “Comfort Noise Update” “Control Protocol” “Continuous Phase Frequency Shift Keying” “Continuous Phase Modulation” “Differential-star PCM” “Dummy Burst” “Digital Cellular telecommunications System” “Downlink Signalling failure Counter” “Discrete Cosine Transform” “Digital Frequency Modulation” “Disconnect” “Data Link Connection Identifier” “Disconnect Mode” “Differential Pulse Code Modulation” “Digital Phase Modulation” “Data Terminal Equipment” “Discontinuous Transmission” “Discontinuous Transmission” “Address field extension bit” “Enhanced Data rates for GSM Evolution” “Enhanced Full-rate Speech” “Extended GSM band” “Equipment Identity Register” “End Of Speech” “Equalization testing profile” “Erased SID Frame Rate” “European Telecommunications Standards Institute” “Erased Valid SID Frame Rate” “Fast Associated Control Channel” “Frequency Correction Burst” “Frequency Correction Channel” “Frequency Division Multiple Access” “Forward Error Correction” “Frame Erasure Rate” “Frequency Hopping” Frecuencia Intermedia “Finite Impulse Response” “Frame Number” “Gateway MSC” “Gaussian Minimum Shift Keying” “Guard Period” “General Packet Radio Service” “Groupe Spéciale Mobile” 479

Apéndices

GSM GTFM GWSSUS HGO HLR HO HOCT H-PLMN HSCSD HSN HT IF IIR IMEI IMSI ISDN ISDN-UP ISI ITU-T

“Global System for Mobile communications” “Generalized TFM” “Gaussian Wide Sense Stationary, Uncorrelated Scattering” “Hangover” “Home Location Register” “Handover” “Hangover Counter” “Home PLMN” “High Speed Circuit Switched Data” “Hopping Sequence generator Number” “Hilly Terrain” “Intermediate Frequency” “Infinite Impulse Response” “International Mobile Equipment Identity” “International Mobile Subscriber Identity” “Integrated Services Digital Network” “ISDN User Part” “Inter Symbol Interference” “International Telecommunication Union, Telecommunication standardization sector” LA “Location Area” LAC “Location Area Code” LAI “Location Area Identifier” LAPD “Link Access Procedures for D-channel” LAPDm “Link Access Procedures for Dm-channel” LAR “Logarithmic Area Ratios” LMS “Least Mean Square” LPC “Linear Prediction Coding” LPD “Link Protocol Discriminator” LPF “Low Pass Filter” LSB “Least Significant Bit” LTP “Long Term Predictor” MA “Mobile Allocation” MAI “Mobile Allocation Index” MAIO “Mobile Allocation Index Offset” MAP “Mobile Application Part” MAP “maximum a posteriori” MCC “Mobile Country Code” MF “Multiframe” ML “maximum likelihood” MLSD “Maximum Likelihood Sequence Detection” MM “Mobility Management” MMI “Man-Machine Interface” MNC “Mobile Network Code” MNCCSAP “Mobile Network CC Service Access Point” MNS “Mobile Network Signaling” MNSMS-SAP “Mobile Network SMS Service Access Point” MOS “Mean Opinion Scores” 480

Apéndices

MoU MPE MS MSC MSE MSK MT MTP NAMTS NB NCC NER NMC NMT NRZ NSP NSS NUFT OMC OSI P/F PAD PARCOR PB PBI PCC PCH PCM PCN PCS PD PDF PDP P-GSM PIN PLL PLMN PRBS PSTN QN RA RACH RBER RDSI REJ RF RFCH RFN

“Memorandum of Understanding” “Multi-Pulse Excitation” “Mobile Station” “Mobile services Switching Centre” “Mean Squared Error” “Minimum Shift Keying” “Mobile Termination” “Message Transfer Part” “Nippon Advanced Mobile Telephone System” “Normal Burst” “Network Colour Code” “Nominal Error Rates” “Network Management Centre” “Nordic Mobile Telephone” “No Return to Zero” “Network Service Part” “Network Switching Subsystem” “Noise Update Flag” “Operation and Maintenance Centre” “Open Systems Interconnection” “poll/final bit” “Packet Assembly Disassembly” “Partial Correlation” “Paging Block” “Paging Block Index” “Punctured Convolutional Code” “Paging Channel” “Pulse Code Modulation” “Personal Communication Network” “Personal Communication System” “Protocol Discriminator” “Probability Density Function” “Power – Delay Profile” “Primary GSM band” “Personal Identification Number” “Phase Locked Loop” “Public Land Mobile Network” “Pseudo Random Binary Sequence” “Public Switched Telephone Network” “Quarter bit Number” “Rural Area” “Random Access Channel” “Residual BER” Red Digital de Servicios Integrados “REJect” “Radio Frequency” “Radio Frequency Channel” “Reduced Frame Number” 481

Apéndices

R-GSM RLF RMS RNR RP RPE RR RR SABM SACCH SAP SAPI SB SBC SCCP SCH SDCCH SE SID SIM SMC SMCP SMG SMR SMS SMSCB SNR SPRX SPTX SRES SS STP TA TA TACS TB TC TCAP TCH TDMA TE TFM TI TI TMN TMSI TN TRAU

“Railways GSM band” “Radio Link Failure” “Root-Mean-Square” “Receive Not Ready” “Relay Protocol” “Regular Pulse Excitation” “Radio Resource management” “Receive Ready” “Set Asynchronous Balanced Mode” “Slow Associated Control Channel” “Service Access Point” “Service Accesss Point Identifier” “Synchronization Burst” “Sub-Band Coding” “Signalling Connection Control Part” “Synchronization Channel” “Stand-alone Dedicated Control Channel” “Speech/noise Extrapolation” “Silence Identifier” “Subscriber Identity Module” “Short Message Control” “Short Message Control Protocol” “Special Mobile Group” “Short Message Relay” “Short Message Service” “Short Message Service Cell Broadcast” “Signal to Noise Ratio” “Speech Reception” “Speech Transmission” “Signed Response” “Supplementary Services” “Short Term Predictor” “Terminal Adapter” “Timing Advance” ó “Time Alignment” “Total Access Communications System” “Tail Bits” “Transform Coding” “Transaction Capabilities Application Part” “Traffic Channel” “Time Division Multiple Access” “Terminal Equipment” “Tamed Frequency Modulation” “Typical Small Cells” “Transaction Identifier” “Telecommunications Managed Network” “Temporal Mobile Sobscriber Identity” “Timeslot Number” “Transcoding And Adaptation Unit” 482

Apéndices

TRX TS TSC TU TUP UA UFI UFR UHF UI UMTS US V_PLMN VA VAD VCO VLR VSELP WARC WSS WSSUS

“Transmitter / Receiver” “Training Sequence” “Training Sequence Code” “Typical Urban” “Telephony User Part” “Unnumberd Acknowledgment” “Unreliable Frame Indicator” “Unreliable Frame Rate” “Ultra High Frequency” “Unnumbered Information” “Universal Mobile Telephony System” “Uncorrelated Scattering” “Visited PLMN” “Viterbi Algorithm” “Voice Activity Detection” “Voltage Controlled Oscilator” “Visitors Location Register” “Vector Sum Excited Linear Prediction coding” “World Administrative Radio Conference” “Wide Sense Stationary” “Wide Sense Stationary with Uncorrelated Scattering”

483

Apéndices

APÉNDICE B

Bibliografía

[1] R. Steele et al., "Mobile Radio Communications", Pentech Press Publishers, Londres, 1992 [2] J.M. Hernando Rábanos, "Transmisión por Radio", Ed. Centro de Estudios Ramón Areces S.A., Madrid, 1993 [3] Simon Haykin, "Digital Communications", Wiley, [4] M.C. Jeruchin, Philip Balaban, K. Shanmugan, "Simulation of Communication Systems", Plenum Press, 1992 [5] M. Mouly, M.B. Pautet, "The GSM System for Mobile Communications", Cell & Sys, 1992 [6] D. Parsons, "The Mobile Radio Propagation Channel", Pentech Press Publishers, Londres, 1992 [7] A.V. Oppenheim, R.W. Schafer, "Discrete - Time Signal Processing", Prentice Hall International, Englewood Cliffs, NJ, 1989 [8] J. Tisal, "GSM Cellular Radio Telephony", Wiley, 1998 [9] Varios autores, artículos recopilados por T.S Rappaport, "Cellular Radio & Personal Communications (A Book of Selected Readings)", IEEE, 1995 [10] J.M. Hernando Rábanos, "Comunicaciones Móviles", Editorial Centro de Estudios Ramón Areces, S.A., Madrid, 1997 [11] S. Haykin, B. Van Veen, "Signals and Systems", John Wiley and Sons, 1999 [12] Apuntes de la asignatura "Radiación y Radiocomunicación", ETSIT, Sevilla, curso 1996/97 [13] Apuntes de la asignatura "Redes, Sistemas y Servicios II", ETSIT, Sevilla, curso 1997/98 [14] Apuntes de la asignatura "Tratamiento Digital de Señales", ETSIT, Sevilla, curso 1996/97 [15] Apuntes de la asignatura "Tratamiento Digital de Señales en Comunicaciones", ETSIT, Sevilla, curso 1997/98

484

Apéndices

[16] Ph. A. Regalia, “Adaptive IIR Filtering in Signal Processing and Control”, Ed. Dekker, 1995 [17] S. Haykin, “Adaptive Filter Theory (3rd Edition)”, Prentice-Hall International Editions, 1996 [18] Curso “GSM Advanced System Technique”, Ericsson Radio Systems AB, 2000 [19] Curso “BSS Radio Network Parameters”, Siemens AG, 1995 [20] Estándar GSM 04.04 v 7.0.0 “Layer 1; General Requirements”, ETSI, 1999 [21] Estándar GSM 04.05 v 8.0.1 “Data Link (DL) Layer; General Aspects”, ETSI, 2000 [22] Estándar GSM 04.06 v 8.0.1 “Mobile Station – Base Station System (MS - BSS) interface; Data Link (DL) Layer Specification”, ETSI, 2000 [23] Estándar GSM 04.07 v 7.3.0 “Mobile Radio Interface Signalling Layer 3; General Aspects”, ETSI, 1999 [24] Estándar GSM 05.02 v 8.5.1 “Multiple Access On The Radio Path”, ETSI, 2000 [25] Estándar GSM 05.03 v 7.1.1 “Channel Coding”, ETSI, 1999 [26] Estándar GSM 05.04 v 8.1.2 “Modulation”, ETSI, 2001 [27] Estándar GSM 05.05 v 7.1.1 “Radio Transmission And Reception”, ETSI, 1999 [28] Estándar GSM 05.08 v 8.5.0 “Radio Subsystem Link Control”, ETSI, 2000 [29] Estándar GSM 05.10 v 8.3.1 “Radio Subsystem Sinchronization”, ETSI, 2000 [30] Estándar GSM 06.01 v 8.0.1 “Full Rate Speech; Processing Functions”, ETSI, 2000 [31] Estándar GSM 06.02 v 8.0.1 “Half Rate Speech; Half Rate Speech Processing Functions”, ETSI, 2000 [32] Estándar GSM 06.10 v 8.1.1 “Full Rate Speech; Transcoding”, ETSI, 2000 [33] Estándar GSM 06.20 v 8.0.1 “Half Rate Speech; Half Rate Speech Transcoding”, ETSI, 2000 [34] Kalle Ruttik, Mauri Honkanen, Michael Hall, Timo Korhonen, Veikko Porra, “A Wideband Radio Channel Model for simulation of Chaotic Communication Systems”, Institute of Radio Communications, Helsinki University of Technology, Finlandia [35] Catálogos de amplificadores, antenas y cables Heliax® de Andrew® (www.andrew.com) 485

Apéndices

[36] Juho Pirskanen, Markku Renfors, “Filter Partitioning And Wideband AnalogtoDigital Conversion in Multimode Mobile Terminals”, Telecommuinication Laboratory, Tampere University of Technology, Finlandia [37] Nihal Godambe, “Low-IF Receiver for GSM handset applications”, Motorola-CE [38] Catálogo de antenas “790 – 2200 MHz Base Station Antennas for Mobile Communications” de Kathrein® (www.kathrein.de) [39] Catálogos de antenas y amplificadores de Grintek® Electronics (www.grintek.com)

486

View more...

Comments

Copyright ©2017 KUPDF Inc.
SUPPORT KUPDF